728x90
<아라>
package fruitSales.ver04;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
//--------------------------------------------------------------------------
// 사과 장수
//--------------------------------------------------------------------------
class AppleSeller {
int myMoney;
int numOfApple;
int APPLE_PRICE;
public AppleSeller() {
this(0, 100, 1500);
}
public AppleSeller(int money, int appleNum, int price) {
myMoney = money;
numOfApple = appleNum;
APPLE_PRICE = price;
}
public Map<String, Integer> saleApple(int money) {
Map<String, Integer> map = new HashMap();
int num = money / APPLE_PRICE; // 사과개수
int jandon = money % APPLE_PRICE; // 잔돈
myMoney += num * APPLE_PRICE; // 사과장수 번돈 추가
numOfApple -= num; // 팔고 남은 사과 개수
map.put("appleCnt", num);
map.put("jandon", jandon);
return map;
}
public void showSaleResult() {
System.out.println("남은 사과 개수 : " + numOfApple);
System.out.println("사과 판매 수익 : " + myMoney);
System.out.println("---------------------------");
}
} // End - class AppleSeller
//--------------------------------------------------------------------------
// 오렌지 장수
//--------------------------------------------------------------------------
class OrangeSeller {
int numOfOrange;
int myMoney;
int ORANGE_PRICE;
public OrangeSeller() {
this(0, 100, 1000);
}
public OrangeSeller(int money, int orangeNum, int price) {
myMoney = money;
numOfOrange = orangeNum;
ORANGE_PRICE = price;
}
public Map<String, Integer> saleOrange(int money) {
Map<String, Integer> map = new HashMap();
int num = money / ORANGE_PRICE;
int jandon = money % ORANGE_PRICE;
myMoney += num * ORANGE_PRICE;
numOfOrange -= num;
map.put("orangeCnt", num);
map.put("jandon", jandon);
return map;
}
public void showSaleResult() {
System.out.println("남은 오렌지 개수 : " + numOfOrange);
System.out.println("오렌지 판매 수익 : " + myMoney);
System.out.println("---------------------------");
}
} // End - class OrangeSeller
//--------------------------------------------------------------------------
// 과일 구매자
//--------------------------------------------------------------------------
class FruitBuyer {
int myMoney;
int numOfApple;
int numOfOrange;
public FruitBuyer(int money) {
myMoney = money;
numOfApple = 0;
numOfOrange = 0;
}
public void buyApple(AppleSeller seller, int money) {
Map<String,Integer> map = new HashMap();
map = seller.saleApple(money); // 잔돈, 사과개수 받기
numOfApple += map.get("appleCnt");
myMoney = myMoney - money + map.get("jandon");
}
public void buyOrange(OrangeSeller seller, int money) {
Map<String,Integer> map = new HashMap();
map = seller.saleOrange(money); // 잔돈, 오렌지 개수 받기
numOfOrange += map.get("orangeCnt");
myMoney = myMoney - money + map.get("jandon");
}
public void showBuyResult() {
System.out.println("현재 잔액 : " + myMoney);
System.out.println("사과 개수 : " + numOfApple);
System.out.println("오렌지 개수 : " + numOfOrange);
System.out.println("---------------------------");
}
}
//--------------------------------------------------------------------------
// 작업 메뉴
//--------------------------------------------------------------------------
class MenuViewer {
public static Scanner keyboard = new Scanner(System.in);
public static void showMenu() {
System.out.println("1.사과 2.오렌지 3.구매자현황 0.종료");
System.out.println("사고자하는 과일에 해당하는 번호를 누르십시오. : ");
}
} // End - class MenuViewer
//--------------------------------------------------------------------------
//public class AppleOrange
//--------------------------------------------------------------------------
public class AppleOrange {
public static void main(String[] args) {
AppleSeller appleseller = new AppleSeller();
OrangeSeller orangeseller = new OrangeSeller();
FruitBuyer buyer = new FruitBuyer(100000);
//spManager manager = new spManager();
int choice = 0; // 작업 선택을 한 값을 저장할 변수
while(true) {
MenuViewer.showMenu();
choice = MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
switch(choice) {
case 1:
System.out.println("사과를 얼마만큼 사시겠습니까?");
buyer.buyApple(appleseller, MenuViewer.keyboard.nextInt());
break;
case 2:
System.out.println("오렌지를 얼마만큼 사시겠습니까?");
buyer.buyOrange(orangeseller, MenuViewer.keyboard.nextInt());
break;
case 3:
appleseller.showSaleResult();
orangeseller.showSaleResult();
buyer.showBuyResult();
break;
case 0: // 프로그램 종료
return;
}
}
}
} // End - class AppleOrange
'Language > Java' 카테고리의 다른 글
[Java] 해시테이블 (Hashtable) (0) | 2022.08.11 |
---|---|
[Java] 해시맵 (HashMap) (0) | 2022.08.10 |
[Java] compareTo 메소드 (0) | 2022.08.09 |
[Java] 실습 CardDeckExam (0) | 2022.08.09 |
[Java] 실습 DrawShapeExam (0) | 2022.08.09 |