1. ExecClass
public class ExecClass {
public static void main(String[] args) {
// 1. 파는 상품 목록 (표시)
// 2. 메뉴 숫자를 눌러서 구매
// 3. 현재 판매된 누적 금액 표시
// 4. 구매자 만들어서 구매자별 누적 금액 표
// 5. 종료 조건 (-1) 종료
People p1 = new People("홍길동");
People p2 = new People("장보고");
Store store = new Store();
for (int i = 0; i < 9999; i++) {
int select = store.select();
if (select == -1) { // -1이면 종료.
break;
} else if (i % 2 == 0) { // i 가 짝수일 때는 홍길동이 구매.
store.sellItem(p1, select);
} else { // i 가 홀수일 때는 장보고가 구매.
store.sellItem(p2, select);
}
System.out.println("----------------------------------------");
}
System.out.println(p1.name + "이 구매한 총 금액 : " + p1.buyTotal);
System.out.println(p2.name + "이 구매한 총 금액 : " + p2.buyTotal);
}
}
2. People
public class People {
int buyTotal = 0;
String name;
public People(String name) {
// TODO Auto-generated constructor stub
this.name = name;
}
}
3. Item
public class Item {
String name;
int price;
int stock;
public Item(String name, int price, int stock) {
// TODO Auto-generated constructor stub
this.name = name;
this.price = price;
this.stock = stock;
}
}
4. Store
import java.util.Scanner;
public class Store {
Item[] menu;
int sales = 0;
// 1. 생성자. 메뉴를 생성한다.
public Store() {
// TODO Auto-generated constructor stub
menu = new Item[5];
menu[0] = new Item("딸기우유", 1000, 10);
menu[1] = new Item("샌드위치", 2000, 5);
menu[2] = new Item("메로나", 800, 20);
menu[3] = new Item("풍선껌", 500, 2);
menu[4] = new Item("크림빵", 1000, 5);
}
// 2. 메뉴를 출력하는 메소드.
public void showMenu() {
for (int i = 0; i < menu.length; i++) {
System.out.println((i + 1) + ". " + menu[i].name + " : " + menu[i].price);
}
}
// 3. 메뉴를 선택하는 메소드.
int selectNumber;
public int select() {
Scanner s = new Scanner(System.in);
for (int i = 0; i < 99; i++) {
this.showMenu();
System.out.println("구매하고 싶은 메뉴 번호를 입력해주세요. -1 입력 시 종료.");
try {
selectNumber = Integer.parseInt(s.nextLine());
if (selectNumber == -1) {
return -1;
} else if (selectNumber >= 1 && selectNumber <= 5) {
return (selectNumber - 1);
} else {
System.out.println("메뉴 버튼의 숫자만 입력해주세요.");
continue;
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("메뉴 버튼의 숫자만 입력해주세요.");
}
}
return -1;
}
public void sellItem(People people, int number) {
if (menu[number].stock < 1) {
System.out.println("재고가 부족합니다.");
} else {
this.sales = this.sales + menu[number].price;
menu[number].stock--;
System.out.println("판매된 총 금액 : " + this.sales);
people.buyTotal = people.buyTotal + menu[number].price;
System.out.println(menu[number].name + "이(가) " + people.name + "에게 판매되었습니다.");
}
}
}
실행 결과
1. 딸기우유 : 1000
2. 샌드위치 : 2000
3. 메로나 : 800
4. 풍선껌 : 500
5. 크림빵 : 1000
구매하고 싶은 메뉴 번호를 입력해주세요. -1 입력 시 종료.
1
판매된 총 금액 : 1000
딸기우유이(가) 홍길동에게 판매되었습니다.
----------------------------------------
1. 딸기우유 : 1000
2. 샌드위치 : 2000
3. 메로나 : 800
4. 풍선껌 : 500
5. 크림빵 : 1000
구매하고 싶은 메뉴 번호를 입력해주세요. -1 입력 시 종료.
5
판매된 총 금액 : 2000
크림빵이(가) 장보고에게 판매되었습니다.
----------------------------------------
1. 딸기우유 : 1000
2. 샌드위치 : 2000
3. 메로나 : 800
4. 풍선껌 : 500
5. 크림빵 : 1000
구매하고 싶은 메뉴 번호를 입력해주세요. -1 입력 시 종료.
2
판매된 총 금액 : 4000
샌드위치이(가) 홍길동에게 판매되었습니다.
----------------------------------------
1. 딸기우유 : 1000
2. 샌드위치 : 2000
3. 메로나 : 800
4. 풍선껌 : 500
5. 크림빵 : 1000
구매하고 싶은 메뉴 번호를 입력해주세요. -1 입력 시 종료.
3
판매된 총 금액 : 4800
메로나이(가) 장보고에게 판매되었습니다.
----------------------------------------
1. 딸기우유 : 1000
2. 샌드위치 : 2000
3. 메로나 : 800
4. 풍선껌 : 500
5. 크림빵 : 1000
구매하고 싶은 메뉴 번호를 입력해주세요. -1 입력 시 종료.
-1
홍길동이 구매한 총 금액 : 3000
장보고이 구매한 총 금액 : 1800
'개발자 > Java' 카테고리의 다른 글
Java (자바) JCF(Java Collection Framework) - List, Set, Map (0) | 2020.05.24 |
---|---|
Java (자바) 예외처리 (0) | 2020.05.24 |
Java (자바) 실습 Spring을 이용해 DB 생성하고 밀어넣고 조회하기 (0) | 2020.05.22 |
Java (자바) Spring, Apache Tomcat (0) | 2020.05.22 |
Java (자바) Queue (큐), Stack (스택) (0) | 2020.05.12 |