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: 프로그램 종료