請以物件導向方式撰寫報紙販賣機及飲料販賣機。
1.硬幣物件有三種幣別屬性1元 5元 10元。
2.販賣機可接受硬幣物件。
3.販賣機有投幣、退幣找零、按鈕購物及顯示物品功能。
4.販賣機可賣三種商品。
要做一個使用者視窗介面出來
Q:
老師~
用import java.io.*;、BufferedReader寫的話
可以嗎~?A: 可以
A:
簡陋版瘋哥販賣機
import java.util.*;
class Coins{//硬幣類別
private int one;
private int five;
private int ten;
private int money;
public void setMoney(int n){//應找金額硬幣數量
money = n;
ten=(int)n/10;
five = (int)(n-ten*10)/5;
one = n-(ten*10+five*5);
}
public void getMoney(){//印出硬幣數量
System.out.println("退"+ten+"個10元硬幣");
System.out.println("退"+five+"個5元硬幣");
System.out.println("退"+one+"個1元硬幣");
System.out.println("共退"+money+"元");
}
}
class Vma{
private int money;
private int[] moneyObj;
public void inPutMoney(int n){//投幣
money = n;
}
public void outPutMoney(){//找零
Coins c = new Coins();
c.setMoney(this.money);
c.getMoney();
}
public void setObj(String s,int s1 , String ss,int ss1 , String sss,int sss1){//設定三種商品
int[] moneyObj1 = {s1,ss1,sss1};
moneyObj = moneyObj1;
System.out.print("品項 1:"+s+" ");
System.out.print("2:"+ss+" ");
System.out.print("3:"+sss+"\n\n");
}
public void moneyCount(int n){//計算金額
int a = money;
if((a-n)>=0){
money-=n;
}else{
System.out.println("投入金額不足");
}
}
public int chooseObj(int n){//選擇項目
if(n==1)
return moneyObj[0];
else if(n==2)
return moneyObj[1];
else if(n==3)
return moneyObj[2];
else
System.out.println("輸入錯誤");
return 0;
}
}
public class Test4 {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("**********************");
System.out.println("******瘋哥販賣機******");
System.out.println("**********************\n");
Vma v = new Vma();
v.setObj("可樂100元",100,"紅茶50元",50,"果汁120元",120);
System.out.print("@@@@@@請輸入投幣金額:");
int n=s.nextInt();
v.inPutMoney(n);
System.out.print("\n======請輸入購買品項例如買第一個品項就輸入1)");
int n1 = s.nextInt();
v.moneyCount(v.chooseObj(n1));
v.outPutMoney();
}
}
沒有留言:
張貼留言