본문 바로가기
Programming/java

JAVA 관리시스템 작성하기

by cbqnk9 2021. 6. 4.
package manage_system;
import java.util.Scanner;
import java.lang.String;

interface Cancelable {
	void canSeat(); // 예약 취소 메서드
}

abstract class SWUTrain {
	protected String[] seat = new String[] {"","","","","","","","","",""};
	
	public void show() { //조회 메서드
		for (String i : this.seat) {
			if (i == "")
				System.out.print("---  ");
			else 
				System.out.print(i + "  ");
		}
		System.out.print("\n");
	}
	
	public void rsvSeat() { //예약 메서드
		int count = 1;
		
		for (String i : this.seat) {
			if (i == "") System.out.print( "(" + count + ")" + "  " );
			else System.out.print(i + "  ");
			count++;
		} System.out.print("\n");
		
		System.out.print("좌석 번호: ");
		Scanner scanner = new Scanner(System.in);
		int seatNum = scanner.nextInt();
		
		if (this.seat[seatNum-1] == "") {
			System.out.print("예약자 명: ");
			Scanner scanner1 = new Scanner(System.in);
			String name = scanner1.nextLine();
			this.seat[seatNum-1]=name;
			System.out.println("예약되었습니다.");
		}
		else
			System.out.println("이미 예약된 좌석입니다.");
	}
	public void chgSeat() {
		int count = 0;
		
		System.out.print("예약자명>> "); //변경할 예약자명 확인
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();
		
		for (String i : this.seat) {
			if (i.equals(name)) {
				System.out.print("변경할 좌석>> "); //변경할 예약자명 확인
				Scanner scanner1 = new Scanner(System.in);
				int chgName = scanner1.nextInt();
				String s = i;
				this.seat[count]="";
				this.seat[chgName]=s;
				System.out.println("좌석이 변경되었습니다.");
				return;
			}
			count++;
		}
		System.out.println("예약자 명단에 없습니다.");
	};
}

class Busan extends SWUTrain implements Cancelable {
	public void canSeat() {
		int count = 0;
		System.out.print("부산행>> ");
		this.show(); //현재 좌석 상태 출력
		
		System.out.print("예약자명>> "); //취소할 예약자명 확인
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();
		
		for (String i : this.seat) {
			if (i.equals(name)) {
				this.seat[count]="";
				System.out.println("예약취소되었습니다.");
				return;
			}
			count++;
		}
		System.out.println("예약자 명단에 없습니다.");
	}
}
	
class Gyeongju extends SWUTrain implements Cancelable {
	public void canSeat() {
		int count = 0;
		System.out.print("경주행>> ");
		this.show(); //현재 좌석 상태 출력
		
		System.out.print("예약자명>> "); //취소할 예약자명 확인
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();
		
		for (String i : this.seat) {
			if (i.equals(name)) {
				this.seat[count]="";
				System.out.println("예약취소되었습니다.");
				return;
			}
			count++;
		}
		System.out.print("예약자 명단에 없습니다.");
	}
}

class Sokcho extends SWUTrain implements Cancelable {
	public void canSeat() {
		int count = 0;
		System.out.print("속초행>> ");
		this.show(); //현재 좌석 상태 출력
		
		System.out.print("예약자명>> "); //취소할 예약자명 확인
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();
		
		for (String i : this.seat) {
			if (i.equals(name)) {
				this.seat[count]="";
				System.out.println("예약취소되었습니다.");
				return;
			} count++;
		}
		System.out.println("예약자 명단에 없습니다.");
	}
}

public class TrainManageSystem  {
	public static void main(String[] args) {
		System.out.println("SWU호 예약 시스템입니다.");
		
		Busan bsTrain = new Busan();
		Gyeongju gjTrain = new Gyeongju();
		Sokcho scTrain = new Sokcho();
		
		while(true) {
			System.out.println("1.예약 2.취소 3.좌석 변경 4.좌석 조회 5.프로그램 종료");
			Scanner scanner1 = new Scanner(System.in);
			int i = scanner1.nextInt();
			if (i == 1) {
				System.out.println("1.부산행 기차 2.경주행 기차 3.속초행 기차");
				Scanner scanner2 = new Scanner(System.in);
				int des = scanner2.nextInt();
				if (des == 1) {
					bsTrain.rsvSeat();
				}
				else if (des == 2) {
					gjTrain.rsvSeat();
				}
				else if (des == 3) {
					scTrain.rsvSeat();
				}
				else {
					System.out.println("번호를 다시 입력하여 주십시오.");
				}
			}
			else if(i == 2) {
				System.out.println("1.부산행 기차 2.경주행 기차 3.속초행 기차");
				Scanner scanner2 = new Scanner(System.in);
				int des = scanner2.nextInt();
				if (des == 1) {
					bsTrain.canSeat();
				}
				else if (des == 2) {
					gjTrain.canSeat();
				}
				else if (des == 3) {
					scTrain.canSeat();
				}
				else {
					System.out.println("번호를 다시 입력하여 주십시오.");
				}
			}
			else if(i == 3) {
				System.out.println("1.부산행 기차 2.경주행 기차 3.속초행 기차");
				Scanner scanner2 = new Scanner(System.in);
				int des = scanner2.nextInt();
				if (des == 1) {
					bsTrain.chgSeat();
				}
				else if (des == 2) {
					gjTrain.chgSeat();
				}
				else if (des == 3) {
					scTrain.chgSeat();
				}
				else {
					System.out.println("번호를 다시 입력하여 주십시오.");
				}
			}
			else if(i == 4) {
				System.out.print("부산행>>");
				bsTrain.show();
				System.out.print("경주행>>");
				gjTrain.show();
				System.out.print("속초행>>");
				scTrain.show();
			}
			else if (i == 5) {
				break;
			}
			else {
				System.out.println("번호를 잘못 입력하셨습니다.");
			}		
		}
	}

}
  • 기능 1 : 기차표 예약 ( 데이터 삽입 ) -원하는 좌석번호가 비어 있을 경우 좌석을 예약함
  • 기능 2 : 기차표 취소 ( 데이터 삭제 ) -예약자 명을 확인한 후 좌석 예약 취소
  • 기능 3 : 좌석 변경 ( 데이터 수정 ) -예약자 명을 확인한 후 좌석을 변경
  • 기능 4: 예약 좌석 확인 ( 목록 보기 ) -현재 예약 현황을 출력해줌
  • 기능 5: 프로그램 종료