플로우 차트 설명
- 키오스크 실행 흐름에 대해 위와 같이 설계하고 시작
- 키오스크를 작동시키면 음료 메뉴판을 보임
- 음료 메뉴를 정하여 선택하면 디저트 구매 여부를 물음
- 디저트를 고르면 디저트 메뉴판을 보여주고 메뉴를 선택하도록 함
- 디저트를 구매하지 않는다면 바로 주문 메뉴 확인으로 이동
- 선택했던 것이 맞는지 <주문 메뉴 확인> 부분에서 체크
- 주문을 하면 영수증이 출력되고, 취소를 선택하면 end!!
ㅋ
ㅋ
ㅋ
public class Drink {
public void menu() {
String[] menu = { "1. 아메리카노:2,400원", "2. 카페라떼:2,800원", "3. 카페모카:2,800원",
"4. 말차라떼:2,700원", "5. 초코:2,800원", "6. 담기"};
System.out.println("---------------음료 메뉴---------------------");
for (int i = 0; i<menu.length;i++) {
System.out.println(menu[i]);
}
System.out.println("-------------------------------------------");
}
}
public class Dessert {
public void menu() {
String[] menu_de = { "1. 젤리:2,000원", "2. 마쉬멜로우초코:400원", "3. 뚱카롱:2,000원",
"4. 과자:1,200원", "5. 구슬아이스크림:2,500원", "6. 담기"};
System.out.println("---------------디저트 메뉴---------------------");
for (int i = 0; i<menu_de.length;i++) {
System.out.println(menu_de[i]);
}
System.out.println("-------------------------------------------");
}
}
ㅋ
ㅋ
ㅋ
public class Random {
private static Random rec;
// 싱글톤 객체
public static Random getInstance() {
if(rec == null) {
rec = new Random();
}
return rec;
}
public static void freeInstance() {
rec = null;
}
private Random() {
}
public int random(int max, int min) {
int a = (int)((Math.random()*(max - min + 1))+min);
return a;
}
}
ㅋ
ㅋ
package project;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class step {
public static void main(String[] args) {
// total : 총합 / cnt : 개수 / price : 가격
int total = 0;
int cnt1 = 0;
int cnt2 = 0;
int cnt3 = 0;
int cnt4 = 0;
int cnt5 = 0;
int price1 = 0;
int price2 = 0;
int price3 = 0;
int price4 = 0;
int price5 = 0;
int cnt11 = 0;
int cnt12 = 0;
int cnt13 = 0;
int cnt14 = 0;
int cnt15 = 0;
int price11 = 0;
int price12 = 0;
int price13 = 0;
int price14 = 0;
int price15 = 0;
Scanner sc = new Scanner(System.in);
Drink dr = new Drink(); // Drink클래스 불러오기
dr.menu();
int choice = 0; // 메뉴 선택 입력값(choice)
// 메뉴 선택 입력값이 1~5일 때 반복문
while (choice < 6) {
System.out.print("메뉴를 선택하세요 : ");
// 메뉴 선택 입력값에 따른 가격 합산과 수량 +1
for(;;) {
choice = sc.nextInt();
if(choice == 1) {
price1 += 2400;
cnt1 += 1;
}
if(choice == 2) {
price2 += 2800;
cnt2 += 1;
}
if(choice == 3) {
price3 += 2800;
cnt3 += 1;
}
if(choice == 4) {
price4 += 2700;
cnt4 += 1;
}
if(choice == 5) {
price5 += 2800;
cnt5 += 1;
} break;
}
}
// 메뉴 선택 입력값이 6일 때, 장바구니 담기로 다음 질문으로 이동
if (choice == 6) {
for(;;) {
System.out.println("");
System.out.println("디저트를 주문하시겠습니까? (1. 네 / 2. 아니요)");
int answer2 = sc.nextInt();
//[디저트를 선택했을 경우]--------------------------------------------------------
if (answer2 == 1) { // 디저트를 주문할 경우
Dessert ds = new Dessert(); // 디저트 클래스 불러오기
ds.menu();
int check = 0; // 디저트 메뉴 입력값 (check)
// 디저트 메뉴 입력값이 1~5일 때 반복문
while (check < 6) {
System.out.print("디저트를 선택하세요 : ");
for(;;) {
check = sc.nextInt();
// 디저트 메뉴 입력값에 따른 가격과 개수 +1
if(check == 1) {
price11 += 2000;
cnt11 += 1;
}
if(check == 2) {
price12 += 400;
cnt12 += 1;
}
if(check == 3) {
price13 += 2000;
cnt13 += 1;
}
if(check == 4) {
price14 += 1200;
cnt14 += 1;
}
if(check == 5) {
price15 += 2000;
cnt15 += 1;
} break;
} }
// 디저트 메뉴 입력값이 6일 때, 장바구니 담기 수 주문 확인 할 수 있는 영역으로 이동
if (check == 6) { System.out.println("주문을 확인하세요"); }
//[디저트를 선택하지 않았을 경우]--------------------------------------------------
// 디저트를 선택하지 않을 경우
} else if (answer2 == 2) {
System.out.println("주문을 확인하세요");
// 그 외 다른 값을 입력하였을 경우
} else {
System.out.println("다시 입력하세요.");
continue;
} break;
}
}
System.out.println("------------------------<주문메뉴확인>--------------------------");
System.out.println("<음료>");
System.out.println("[메뉴]" + "\t\t" + "[수량]" + "\t\t" + "[단가]");
System.out.println("아메리카노" + "\t\t" + cnt1 +"잔" + "\t\t" + price1 + "원");
System.out.println("카페라떼" + "\t\t" + cnt2 +"잔" + "\t\t" + price2 + "원");
System.out.println("카페모카" + "\t\t" + cnt3 +"잔" + "\t\t" + price3 + "원");
System.out.println("말차라떼" + "\t\t" + cnt4 +"잔" + "\t\t" + price4 + "원");
System.out.println("초코" + "\t\t" + cnt5 +"잔" + "\t\t" + price5 + "원");
System.out.println("<디저트>");
System.out.println("[메뉴]" + "\t\t" + "[수량]" + "\t\t" + "[단가]");
System.out.println("젤리" + "\t\t" + cnt11 +"개" + "\t\t" + price11 + "원");
System.out.println("마쉬멜로우초코" + "\t" + cnt12 +"개" + "\t\t" + price12 + "원");
System.out.println("뚱카롱" + "\t\t" + cnt13 +"개" + "\t\t" + price13 + "원");
System.out.println("과자" + "\t\t" + cnt14 +"개" + "\t\t" + price14 + "원");
System.out.println("구슬아이스크림" + "\t" + cnt15 +"개" + "\t\t" + price5 + "원");
System.out.println("--------------------------------------------------------------");
total = price1 + price2 + price3 + price4 + price5 + price11 + price12
+ price13 + price14 + price15 ;
// 장바구니 보고 주문여부 결정
System.out.println("주문하시겠습니까? (1. 네 / 2. 취소)");
int answerl = sc.nextInt();
// 주문 결정
if (answerl == 1) {
System.out.println("");
System.out.println("결제 금액 : " + total + "원 입니다.");
// 영수증 출력
System.out.println("_________________________________________________");
System.out.println("\t\t[영수증]");
Random rd = Random.getInstance(); // 랜덤 주문번호
System.out.println("주문번호 :" + "\t" + rd.random(100, 999));
LocalDateTime now = LocalDateTime.now();
String printNow = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm"));
System.out.println(printNow); // 시스템 날짜 출력
System.out.println("-------------------------------------------------");
System.out.println("<음료>");
System.out.println("[메뉴]" + "\t\t" + "[수량]" + "\t\t" + "[단가]");
System.out.println("아메리카노" + "\t\t" + cnt1 +"잔" + "\t\t" + price1 + "원");
System.out.println("카페라떼" + "\t\t" + cnt2 +"잔" + "\t\t" + price2 + "원");
System.out.println("카페모카" + "\t\t" + cnt3 +"잔" + "\t\t" + price3 + "원");
System.out.println("말차라떼" + "\t\t" + cnt4 +"잔" + "\t\t" + price4 + "원");
System.out.println("초코" + "\t\t" + cnt5 +"잔" + "\t\t" + price5 + "원");
System.out.println("<디저트>");
System.out.println("[메뉴]" + "\t\t" + "[수량]" + "\t\t" + "[단가]");
System.out.println("젤리" + "\t\t" + cnt11 +"개" + "\t\t" + price11 + "원");
System.out.println("마쉬멜로우초코" + "\t" + cnt12 +"개" + "\t\t" + price12 + "원");
System.out.println("뚱카롱" + "\t\t" + cnt13 +"개" + "\t\t" + price13 + "원");
System.out.println("과자" + "\t\t" + cnt14 +"개" + "\t\t" + price14 + "원");
System.out.println("구슬아이스크림" + "\t" + cnt15 +"개" + "\t\t" + price5 + "원");
System.out.println("-------------------------------------------------");
System.out.println("합계" + "\t\t\t\t" + total);
} else if (answerl == 2) {
System.out.println("취소합니다.");
} else {
System.out.println("다시 입력해주세요.");
}
}
}
ㅋ
ㅋ
package project;
import java.util.Scanner;
public class Main_cafe {
public static void main(String[] args) {
for(;;) {
System.out.println("1. 매장 / 2. 포장");
Scanner sc = new Scanner(System.in); //직접 입력하기 위해 scanner 사용
// 포장여부 입력값(eat)
int eat = sc.nextInt();
if(eat == 1 || eat == 2) {
for (;;) {
System.out.println("주문하시겠습니까? (1. 네 / 2. 아니요)");
int answer1 = sc.nextInt();
// 주문 결정하면 step 메소드 실행
if(answer1 == 1) {
step ts = new step();
ts.main(args);
} else if (answer1 == 2) { //주문X
System.out.println("처음으로 돌아갑니다.");
continue;
} else {
System.out.println("다시 입력해주세요.");
} break;
} break;
// 매장, 포장 외 다른 값 입력했으 시
} else {
System.out.println("다시 입력해주세요.");
continue;}
}}
}
ㅋ
ㅋ
잘 읽었습니다. 좋은 정보 감사드립니다.