티스토리 뷰
# Drink.java
package am; public class Drink { String name; int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } }# VendingMashine.java
package am; import java.util.Scanner; public class VendingMashine { Drink[] dk = new Drink[4]; int coin; Scanner scan = new Scanner(System.in); StringBuffer sb = new StringBuffer(); VendingMashine(){ for (int i = 0; i < dk.length; i++) { dk[i] = new Drink(); } // 음료수 셋팅 dk[0].name = "콜라"; dk[0].price = 900; dk[1].name = "사이다"; dk[1].price = 800; dk[2].name = "커피"; dk[2].price = 700; dk[3].name = "식혜"; dk[3].price = 650; } public void insertCoin(){ System.out.print("InsertCoin: "); coin += scan.nextInt(); scan.reset(); } public void outputMenu(){ sb.append("[0.InsertCoin]"); for (int i = 0; i < dk.length; i++) { sb.append("[").append(i+1).append(".").append(dk[i].name).append("(").append(dk[i].price).append(")]"); } sb.append("[9.Refund]"); System.out.println(sb.toString()); sb.delete(0, sb.length()); System.out.printf("[잔액:%d] 선택: ", coin); } public void choiceMenu(){ boolean repeat = false; int change = 0; do{ outputMenu(); int menu = scan.nextInt(); scan.reset(); if( !(menu == 9 || menu >=0 && menu <= dk.length) ){ // 정상적인 값이 아닐때 System.out.println("다시 입력해 주세요"); continue; } switch(menu){ case 0: insertCoin(); repeat = true; break; case 9: // 반환 outputRefund(); repeat = false; break; default: // 돈이 모자랄 경우, 다른 음료수를 뽑을 수 있을 경우, 바로 반환되어야 하는경우 change = coin - dk[menu-1].price; // 돈-음료수가격 if(change < 0){ // 돈이 모자랄 경우 System.out.printf("%d원 모자랍니다\n",change); repeat = true; }else if(change >= retMinPrice()){ coin = change; System.out.printf("%s가 나왔습니다.\n", dk[menu-1].name); repeat = true; }else{ coin = change; System.out.printf("%s가 나왔습니다.\n", dk[menu-1].name); outputRefund(); repeat = false; } } }while(repeat); } // 잔돈 출력 public void outputRefund(){ System.out.printf("잔돈: %d원\n", coin); } // 돈이 모자라는지 검증 public boolean coinVerify(int menu){ // 안모자르면 true , 모자르면 false return coin - dk[menu-1].price >= 0 ? true:false; } // 다른 음료수를 뽑을 수 있는지 --> coin - minprice > 0 public int retMinPrice(){ int min = dk[0].price; for (int i = 1; i < dk.length; i++) { if(min > dk[i].price) min = dk[i].price; } return min; } public static void main(String[] args) { VendingMashine vm = new VendingMashine(); // 동전 삽입 vm.insertCoin(); vm.choiceMenu(); // 메뉴 선택 } }
'프로그래밍 > Java' 카테고리의 다른 글
자바(java) - 생성자 (0) | 2013.07.09 |
---|---|
자바(java) - 메서드 오버로딩(Overloading) (0) | 2013.07.08 |
자바(java) - 인자 전달 방식 (0) | 2013.07.08 |
자바(java) - 클래스 (0) | 2013.07.04 |
자바 공부 순서 (0) | 2013.07.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- excel to json
- 자바 소켓
- PowerShell ObjectNotFound
- profile.ps1
- 크롬 한글
- 소켓 예제
- 자바
- aws configure
- 크롬 한글 스페이스
- 파일 입출력 예제
- dynamodb console
- Windows Terminal cmd
- SIS
- aws dynamodb
- 자바 예제
- Windows Terminal Color
- excel2json
- java 소켓
- 재테크
- ajax 예제
- MySQL
- java socket
- Windows Terminal
- 예제
- excel을 json으로
- New-Alias
- RUBY
- golang excel2json
- Java
- 크롬 한글 문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함