Test/JAVA Test

자판기 프로그램03

오류나면꽥꽥 2023. 5. 8. 14:42

1. 상품은 4개
2. 이름은 정하되 
3. 가격, 재고 랜덤으로 설정
4. 1-구매   2-종료
5. 상품목록을 출력해주세요!
단, 재고가  없는 상품은 출력하지 않습니다.
      ex) 1-콜라[3]  2-사이다[재고없음]  3-환타[4]
1 입력시 몇개구매?
2 입력시 재고가 없어서 구매가 불가능합니다!
4 입력시 없는 상품입니다!

 

 

package class04;

import java.util.Random;
import java.util.Scanner;

public class Test01 {

	public static void main(String[] args) {

		Random rand=new Random();
		Scanner sc=new Scanner(System.in);

		int N=4; // 상품 4개
		String mName[]=new String[N];
		mName[0]="콜라";
		mName[1]="사이다";
		mName[2]="토레타";
		mName[3]="물";

		int mPrice[]=new int[N];
		for(int i=0;i<mPrice.length;i++) {
			mPrice[i]=(rand.nextInt(6)+10)*100; 
			// 10~15 x100 : 연산자 우선순위 이슈 체크!
		}

		int mCnt[]=new int[N];
		for(int i=0;i<mCnt.length;i++) {
			mCnt[i]=rand.nextInt(10);
		}

		while(true) {
			System.out.println("1-구매 2-종료");
			System.out.println("입력) ");
			int action=sc.nextInt();

			if(action==2) {
				System.out.println("이용해주셔서 감사합니다:)");
				System.out.println();
				break;
			}else if(action<1 || 2<action) {
				System.out.println("유효하지 않는 값입니다.");
				System.out.println("다시입력하세요!");
				continue;	
			}


			int num;
			while(true) {
				System.out.println("=== 메뉴판 ===");
				for(int i=0;i<mName.length;i++) {
					System.out.print((i+1)+". "+mName[i]+"[");
					if(mCnt[i]==0) {
						System.out.print("재고없음");
					}else {
						System.out.print(+mCnt[i]);
					}
					System.out.println("]");
				}
				System.out.println("=============");
				System.out.print("구매 상품 입력) ");
				num=sc.nextInt();

				// 1~4사이이고, 재고도 있어야함
				if((1<=num && num<=N)&& (mCnt[num-1]>0)) {
					break;
				}

				if(num<1 || N<num) {
					System.out.println("없는 상품입니다!");
				}else if(mCnt[num-1]==0) {
					System.out.println("재고가 없어서 구매가 불가능합니다!");
				}
			}

			int cnt;
			while(true){
				System.out.println("선택한 상품은 "+mName[num-1]+"입니다.");
				System.out.println("가격: "+mPrice[num-1]+"원"+" 재고:"+mCnt[num-1]+"개");
				System.out.println("구매 개수 입력) ");
				cnt=sc.nextInt();
				if(cnt>=0 && mCnt[num-1]>=cnt) {
					break;
				}
				System.out.println("잘못된 입력값입니다.");
				System.out.println("다시 입력하세요!");
				System.out.println();
			}

			int money;
			int res=mPrice[num-1]*cnt;
			while(true) {
				System.out.println("금액: "+res+"원");
				System.out.println("돈 입력) ");
				money=sc.nextInt();
				if(res<=money) {
					break;
				}
				System.out.println("잘못된 입력값입니다.");
				System.out.println("다시 입력하세요!");
				System.out.println();
			}

			res=money-res;
			if(res!=0) {
				System.out.println("거스름돈: "+res+"원 반환 완료!");

			}
			System.out.println("구매 성공!");
			System.out.println();

			mCnt[num-1]-=cnt; // 장바구니 이슈를 생각해볼것!


		}

	}
}

'Test > JAVA Test' 카테고리의 다른 글

작은 수 부터 큰 수까지 출력하세요  (0) 2023.05.14
1시간20분 전 시간 출력  (0) 2023.05.14
자판기 프로그램02  (0) 2023.05.08
학생 6명에 대한 점수 구하기  (0) 2023.05.08
나이에 맞게 금액 출력하세요.  (0) 2023.05.07