Skip to main content

[Java] 심플 자판기

투입금액을 입력하여 물품을 구입하고 거스름돈을 1만 5천 1천원.. 단위로 줌.

[#M_소스보기|접기|import java.io.*;

class test01
{
public static void main(String[] args) throws IOException
{
DataInputStream dis = new DataInputStream(System.in);
int iMoney, iMenu, iQty, iTotal, iTmp; // 투입금액, 메뉴선택, 수량, 사용금액, 잔액계산용
int iUnit[] = {0, 0, 0, 0, 0}; // 품목수량
int iRe[] = {0, 0, 0, 0, 0, 0, 0}; // 화폐별 개수
boolean bFlag = true;

System.out.print(”투입금액> ”);
iMoney = Integer.parseInt(dis.readLine());

while(bFlag) {
System.out.println(”품목>\t(1) 커피[500]    (2) 쥬스[800]    (3) 우유[700]”);
System.out.println(”\t(4) 콜라[450]    (5) 생수[1,000]  (6) 입력종료”);
System.out.print(”선택> ”);
iMenu = Integer.parseInt(dis.readLine());
// 메뉴선택 오류처리
if( iMenu < 1 || 6 < iMenu ) {
System.out.println(”잘 못 입력했습니다.”);
continue;
}
// 6번선택시 프로그램종료
if( iMenu == 6 ) {
bFlag = false;
continue;
}
System.out.print(”수량> ”);
iQty = Integer.parseInt(dis.readLine());

// 품목별 수량 누적
switch(iMenu) {
case 1:    // 커피
iUnit[iMenu-1] += iQty;
break;

case 2:    // 쥬스
iUnit[iMenu-1] += iQty;
break;

case 3:    // 우유
iUnit[iMenu-1] += iQty;
break;

case 4:    // 콜라
iUnit[iMenu-1] += iQty;
break;

case 5:    // 생수
iUnit[iMenu-1] += iQty;
break;
}
}

// 사용금액계산    커피            쥬스                        우유                        콜라                        생수
iTotal = (iUnit[0] * 500) + (iUnit[1] * 800) + (iUnit[2] * 700) + (iUnit[3] * 450) + (iUnit[4] * 1000);
// 사용금액이 투입금액보다 많을 경우 오류처리
if( iMoney < iTotal ) {
System.out.println(”투입금액이 부족합니다.”);
// 정상적인 경우 잔액 화폐 계산
} else {
iTmp = iMoney – iTotal; // 잔액
iRe[0] = iTmp / 10000;    // 1만원권 계산
iTmp = iTmp – (10000 * iRe[0]);    // 1만원권을 제외한 잔액
iRe[1] = iTmp / 5000;        // 5천원권 계산
iTmp = iTmp – (5000 * iRe[1]);        // 1만원권+5천원권을 제외한 잔액
iRe[2] = iTmp / 1000;        // 1천원권 계산
iTmp = iTmp – (1000 * iRe[2]);        // 1만원권+5천원권+1천원권을 제외한 잔액
iRe[3] = iTmp / 500;        // 500원권 계산
iTmp = iTmp – (500 * iRe[3]);        // 1만원권+5천원권+1천원권+500원을 제외한 잔액
iRe[4] = iTmp / 100;        // 100원권 계산
iTmp = iTmp – (100 * iRe[4]);        // 1만원권+5천원권+1천원권+500원+100원을 제외한 잔액
iRe[5] = iTmp / 50;            // 50원권 계산
iTmp = iTmp – (50 * iRe[5]);        // 1만원권+5천원권+1천원권+500원+100원+50원을 제외한 잔액
iRe[6] = iTmp / 10;            // 10원권 계산
iTmp = iTmp – (10 * iRe[6]);        // 1만원권+5천원권+1천원권+500원+100원+50원+10원을 제외한 잔액

System.out.println(”커피[500] ” + iUnit[0] + ”개, 쥬스[800]  ” + iUnit[1] + ”개, 우유[700] ” + iUnit[2] + ”개,”);
System.out.println(”콜라[450] ” + iUnit[3] + ”개, 생수[1000] ” + iUnit[4] + ”개”);
System.out.println(”투입금액> ” + iMoney + ”원, 사용금액> ” + iTotal + ”원”);
System.out.println(”잔액>\t10000원 ” + iRe[0] + ”개,  5000원 ” + iRe[1] + ”개,  1000원 ” + iRe[2] + ”개,”);
System.out.println(”\t  500원 ” + iRe[3] + ”개,   100원 ” + iRe[4] + ”개,    50원 ” + iRe[5] + ”개,   10원 ” + iRe[6] + ”개”);
if(iTmp != 0) System.out.println(iTmp + ”원은 자판기가 먹습니다. ^_^v”);
}
}
}

_M#]

댓글 남기기