728x90
반응형
카페 주문 관리 프로그램
요구사항
1) 사용자 인터페이스
2) 설명 : 메뉴 기반의 텍스트 사용자 인터페이스 제공
3) 사례 : "1. 주문 추가 2. 주문 조회 3. 주문 수정 4. 주문 삭제 5. 종료"
4) 핵심 : 사용자가 쉽게 각 기능을 선택
예외 처리
1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리
2) 사례 : 파일이 없을 경우, 잘못된 수량 입력
3) 핵심 : 안정적인 프로그램 동작 보장
파일 생성
package Cafe;
import java.io.File;
public class CafeCreater {
public static void main(String[] args) {
try {
File kidcafe = new File("KidCafe.csv");
if (kidcafe.createNewFile()) {
System.out.println("성공 : " + kidcafe.getName());
} else {
System.out.println("이미 있는 파일입니다.");
}
} catch (Exception e) {
System.out.println("파일만들기 오류");
}
}
}
키오스크
package Cafe;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Scanner;
public class KidCafeWrite {
public static void main(String[] args) {
Scanner cafe = new Scanner(System.in);
int cnt = 0;
String[] orderList = new String[5];
int totPrice = 0;
while (true) {
while (true) {
System.out.print(
"============= CAFE ORDER HERE =============\n1.주문하기 2.주문취소 3.주문목록 4.결제하기 5.저장 및 종료\n메뉴 선택 : ");
int selectMenu = cafe.nextInt();
System.out.println();
int orderMenu;
String deleteMenu;
if (selectMenu == 1) {
System.out.print(
"================ 주문가능 메뉴 ================\n1.에스프레소 : 3000원\n2.아메리카노 : 2500원\n3.카페라떼 : 3000원\n4.밀크티 : 4000원\n5.청포도에이드 : 4000원\n6.딸기스무디 : 5000원\n7.오므라이스 : 8000원\n8.새우볶음밥 : 8000원\n9.샌드위치 : 5000원\n10.돈가스 : 10000원\n-------------------------------------------\n주문할 메뉴 선택 : ");
orderMenu = cafe.nextInt();
deleteMenu = "";
int menuPrice = 0;
if (orderMenu == 1) {
deleteMenu = "에스프레소";
menuPrice = 3000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 2) {
deleteMenu = "아메리카노";
menuPrice = 2500;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 3) {
deleteMenu = "카페라떼";
menuPrice = 3000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 4) {
deleteMenu = "밀크티";
menuPrice = 4000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 5) {
deleteMenu = "청포도에이드";
menuPrice = 4000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 6) {
deleteMenu = "딸기스무디";
menuPrice = 5000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 7) {
deleteMenu = "오므라이스";
menuPrice = 8000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 8) {
deleteMenu = "새우볶음밥";
menuPrice = 8000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 9) {
deleteMenu = "샌드위치";
menuPrice = 5000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else if (orderMenu == 10) {
deleteMenu = "돈가스";
menuPrice = 10000;
totPrice += menuPrice;
orderList[cnt] = deleteMenu;
++cnt;
System.out.println(deleteMenu + "가 주문 목록에 추가되었습니다.");
} else {
System.out.println("잘못된 입력입니다.");
}
System.out.println();
} else if (selectMenu == 2) {
System.out.println("================== 주문 목록 ==================");
for (orderMenu = 0; orderMenu < cnt; ++orderMenu) {
System.out.println("[" + (orderMenu + 1) + "]" + orderList[orderMenu]);
}
System.out.print("-------------------------------------------\n취소할 메뉴 번호 : ");
orderMenu = cafe.nextInt();
deleteMenu = orderList[orderMenu - 1];
if (orderMenu >= 1 && orderMenu <= cnt) {
if (deleteMenu.equals("에스프레소")) {
totPrice -= 3000;
} else if (deleteMenu.equals("아메리카노")) {
totPrice -= 2500;
} else if (deleteMenu.equals("카페라떼")) {
totPrice -= 3000;
} else if (deleteMenu.equals("밀크티")) {
totPrice -= 4000;
} else if (deleteMenu.equals("청포도에이드")) {
totPrice -= 4000;
} else if (deleteMenu.equals("딸기스무디")) {
totPrice -= 5000;
} else if (deleteMenu.equals("오므라이스")) {
totPrice -= 8000;
} else if (deleteMenu.equals("새우볶음밥")) {
totPrice -= 8000;
} else if (deleteMenu.equals("샌드위치")) {
totPrice -= 5000;
} else if (deleteMenu.equals("돈가스")) {
totPrice -= 10000;
}
--cnt;
} else {
System.out.println("잘못된 입력입니다.");
}
for (int i = orderMenu - 1; i < cnt; ++i) {
orderList[i] = orderList[i + 1];
}
} else if (selectMenu == 3) {
System.out.println("================== 주문 목록 ==================");
for (orderMenu = 0; orderMenu < cnt; ++orderMenu) {
System.out.println("[" + (orderMenu + 1) + "]" + orderList[orderMenu]);
}
} else if (selectMenu != 4) {
if (selectMenu == 5) {
String csvFile = "./KidCafe.csv";
String data = String.join(",", orderList);
data = data.substring(0, data.indexOf("null"));
System.out.println(data);
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(csvFile, Charset.forName("UTF-8")));
writer.write("\uFEFF");
writer.write(data);
System.out.println("파일 저장이 완료되었습니다.");
writer.close();
}
catch (IOException var21) {
var21.printStackTrace();
}
cafe.close();
System.out.println("프로그램을 종료합니다.");
return;
}
System.out.println("잘못된 입력입니다.");
} else {
System.out.print("총 주문금액 : " + totPrice + "\n결제할 금액 : ");
orderMenu = cafe.nextInt();
if (orderMenu >= totPrice) {
System.out.println("결제가 완료되었습니다.\n거스름돈은 " + (orderMenu - totPrice) + "원 입니다.");
totPrice = 0;
cnt = 0;
for (int i = 0; i < cnt; ++i) {
orderList[i] = "";
}
} else {
System.out.println("금액이 부족합니다.");
}
System.out.println();
}
}
}
}
}
728x90
반응형
'JAVA' 카테고리의 다른 글
JAVA(골프연습장회원관리프로그램)_2024-06-28 (2) | 2024.06.30 |
---|---|
JAVA(인터페이스와 다른 형식의 클래스)_2024-05-30 (0) | 2024.05.30 |
JAVA(클래스 상속)_2024-05-29 (0) | 2024.05.29 |
JAVA(클래스 다듬기)_2024-05-28 (0) | 2024.05.28 |
JAVA(열거형)_2024-05-27 (0) | 2024.05.27 |