[Java] 실습 class AppleOrange

2022. 8. 10. 16:33·Language/Java
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

실행 결과
1입력 엔터 결과
금액 입력 후
3입력 엔터 결과
오렌지도 구매 후 현황

'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
'Language/Java' 카테고리의 다른 글
  • [Java] 해시테이블 (Hashtable)
  • [Java] 해시맵 (HashMap)
  • [Java] compareTo 메소드
  • [Java] 실습 CardDeckExam
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (509)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (71)
        • 공부 (18)
        • 기타 (6)
        • 일 (47)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    변수
    자바스크립트
    CSS
    array
    타입스크립트
    JavaScript
    제어문
    객체
    MySQL
    TypeScript
    react
    object
    event
    Java
    next.js
    web
    HTML
    Python
    파이썬
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
[Java] 실습 class AppleOrange
상단으로

티스토리툴바