package com.java1.day17;
import java.util.Scanner;
public class PolyArgumentTestEx {
public static void main(String[] args) {
new Shopping().selectProduct();
}
}
class Shopping {
Scanner sc = new Scanner(System.in);
BuyerEx b = new BuyerEx();
String[] str = {"Tv : ", "에어컨 : ", "컴퓨터 : ", "침대 : "};
void selectProduct() {
int select = 0;
do {
System.out.print("물건을 선택 하세요.>>1.Tv(200) 2.에어컨(100) 3.컴퓨터(300) 4.침대(500) 5.충전하기 6.나가기 : ");
select = sc.nextInt();
if(select == 1) {
if(b.buy(new TvEx()) != -1)
b.setItemList(0);
}else if(select == 2) {
if(b.buy(new AirconEx()) != -1)
b.setItemList(1);
}else if(select == 3) {
if(b.buy(new ComputerEx()) != -1)
b.setItemList(2);
}else if(select == 4) {
if(b.buy(new BedEx()) != -1)
b.setItemList(3);
}else if(select == 5)
b.reCharge();
}while(select != 6);
print();
sc.close();
}
void print() {
System.out.println("------------영수증---------------");
for(int i=0; i<str.length; i++) {
System.out.println(str[i] + b.getItemList(i));
}
System.out.println("총금액 : " + b.getTotal() );
System.out.println("잔액 : " + b.getMoney());
System.out.println("보너스 포인트 : " + b.getBonunsPoint());
System.out.println("쇼핑을 마칩니다!");
}
}
class BuyerEx {
private int money;
private int bonusPoint;
private int[] itemList;
private int total;
BuyerEx(){
money = 1000;
bonusPoint = 0;
itemList = new int[4];
total = 0;
}
Scanner sc = new Scanner(System.in);
int buy(ProductEx p) {
if(money < p.getPrice()) {
System.out.println("잔액이 부족하여 물건을 살 수 없습니다.");
return -1;
}
money -= p.getPrice();
total += p.getPrice();
bonusPoint += p.getBonusPoint();
System.out.println(p + "을 구입하셨습니다.");
return 0;
}
int getMoney() {
return money;
}
void setMoney(int money) {
this.money += money;
}
void reCharge() {
System.out.print("충전할 금액을 입력 하세요 : ");
int money = sc.nextInt();
setMoney(money);
System.out.println(money + "가 충전 되었습니다.");
System.out.println("현재 총 금액 : " + getMoney() );
}
int getItemList(int index) {
return itemList[index];
}
void setItemList(int index) {
itemList[index]++;
}
int getTotal() {
return total;
}
int getBonunsPoint() {
return bonusPoint;
}
}
class ProductEx {
private int price;
private int bonusPoint;
ProductEx(int price){
this.price = price;
bonusPoint = (int)(price/10.0);
}
int getPrice() {
return price;
}
int getBonusPoint() {
return bonusPoint;
}
}
class TvEx extends ProductEx {
TvEx() {
super(200);
}
@Override
public String toString() {
return "TV";
}
}
class AirconEx extends ProductEx {
AirconEx() {
super(100);
}
@Override
public String toString() {
return "에어컨";
}
}
class ComputerEx extends ProductEx {
ComputerEx() {
super(300);
}
@Override
public String toString() {
return "컴퓨터";
}
}
class BedEx extends ProductEx {
BedEx() {
super(500);
}
@Override
public String toString() {
return "침대";
}
}
출력결과
