KFC點餐系統
阿新 • • 發佈:2018-12-17
- 題目要求 同學們應該都去麥當勞或肯德基吃過快餐吧?請同學們參考肯德基官網的資訊模擬肯德基快餐店的收銀系統,合理使用C++/python/Java,結合設計模式(2種以上)至少實現系統的以下功能:
1.正常餐品結算和找零。
2.基本套餐結算和找零。
3.使用優惠劵購買餐品結算和找零。
4.可在一定時間段參與店內活動。
5.模擬列印小票的功能
- 部分程式碼
import java.util.Scanner; //import KFC.baseStrategy; //抽象工廠模式,套餐 //工廠模式:正常餐品 //策略模式 ,打折方式(1.不打折,2.優惠券-10元,3.活動期間全場85折,4.活動期間擁有優惠券,先減10元再*0.85) /* 1. 1.選擇正常點餐還是選擇套餐 2. 2.支付選擇正常支付還是折扣支付 3. 3.看是不是活動時間,活動時間某樣東西有優惠 4. 4.列印小票(儲存到檔案中) */ public class KfcMain { public static void main(String[] args) { //檔案輸出採取[Console output redirected to file:D:\eclipse\note.txt]方式 //檔案儲存在eclipse根目錄下 int num; int a,b,c,m = 0; System.out.println("**********歡迎使用肯德基點餐系統***********"); System.out.println("**********請輸入你需要的點餐方式***********"); System.out.println("*******1.自主點餐********2.選擇套餐******"); @SuppressWarnings("resource") Scanner s=new Scanner(System.in); a=s.nextInt(); /* * 實體類物件 */ hambuger h1=new hambuger(); hambuger h2=new hambuger(); chicken c1=new chicken(); chicken c2=new chicken(); french r1=new french(); french r2=new french(); breave b1=new breave(); breave b2=new breave(); float foodPrice=0f; float z=0;//自主點餐的原價 //建立環境 MemberStrategy strategy = new Activity(); //建立價格 Price price = new Price(strategy); MemberStrategy strategy1 = new baseStrategy(); //建立環境 Price price1 = new Price(strategy1); switch(a) { case 1: System.out.println("1.漢堡,2.雞翅,3.薯條,4.飲品"); b=s.nextInt(); if(b==1) { System.out.println("請選擇漢堡種類及數量:1.牛肉漢堡,2.香辣漢堡"); m=s.nextInt(); num=s.nextInt(); switch(m) { case 1: h1.beelHanburm(num); h1.printMessage(); float f1=price.quote(h1.totalPrice()); System.out.println("活動期間打折價為:"+f1); float f11 = price1.quote(h1.totalPrice()); System.out.println("使用優惠券後價格為:"+f11); float f12=price.quote(price1.quote(h1.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f12); break; case 2: h2.xlHanburm(num); h2.printMessage(); float f2=price.quote(h2.totalPrice()); System.out.println("活動期間打折價為:"+f2); float f21 = price1.quote(h2.totalPrice()); System.out.println("使用優惠券後價格為:"+f21); float f22=price.quote(price1.quote(h2.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f22); break; } z=h1.totalPrice()+h2.totalPrice(); } else if(b==2) { System.out.println("請選擇雞翅種類及數量:1.奧爾良雞翅,2.香辣雞翅"); m=s.nextInt(); num=s.nextInt(); switch(m) { case 1: c1.aoChickenWings(num); c1.printMessage(); float f3=price.quote(c1.totalPrice()); System.out.println("活動期間打折價為:"+f3); float f31 = price1.quote(c1.totalPrice()); System.out.println("使用優惠券後價格為:"+f31); float f32=price.quote(price1.quote(c1.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f32); break; case 2: c2.laChickenWings(num); c2.printMessage(); float f4=price.quote(c2.totalPrice()); System.out.println("活動期間打折價為:"+f4); float f41 = price1.quote(c2.totalPrice()); System.out.println("使用優惠券後價格為:"+f41); float f42=price.quote(price1.quote(c2.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f42); break; } z=c1.totalPrice()+c2.totalPrice(); } else if(b==3) { System.out.println("請選擇薯條種類及數量:1.小份,2.大份"); m=s.nextInt(); num=s.nextInt(); switch(m) { case 1: r1.sFrenchFries(num); r1.printMessage(); float f5=price.quote(r1.totalPrice()); System.out.println("活動期間打折價為:"+f5); float f51 = price1.quote(r1.totalPrice()); System.out.println("使用優惠券後價格為:"+f51); float f52=price.quote(price1.quote(r1.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f52); break; case 2: r2.lFrenchFries(num); r2.printMessage(); float f6=price.quote(r2.totalPrice()); System.out.println("活動期間打折價為:"+f6); float f61 = price1.quote(r2.totalPrice()); System.out.println("使用優惠券後價格為:"+f61); float f62=price.quote(price1.quote(r2.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f62); break; } z=r1.totalPrice()+r2.totalPrice(); } else if(b==4) { System.out.println("請選擇飲品種類及數量:1.可樂,2.橙汁"); m=s.nextInt(); num=s.nextInt(); switch(m) { case 1: b1.cola(num); b1.printMessage(); float f7=price.quote(b1.totalPrice()); System.out.println("活動期間打折價為:"+f7); float f71 = price1.quote(b1.totalPrice()); System.out.println("使用優惠券後價格為:"+f71); float f72=price.quote(price1.quote(b1.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f72); break; case 2: b2.Orange(num); b2.printMessage(); float f8=price.quote(b2.totalPrice()); System.out.println("活動期間打折價為:"+f8); float f81 = price1.quote(b2.totalPrice()); System.out.println("使用優惠券後價格為:"+f81); float f82=price.quote(price1.quote(b2.totalPrice())); System.out.println("優惠券+活動之後的價格為:"+f82); break; } z=b1.totalPrice()+b2.totalPrice();//飲品總價格 } break; case 2: //套餐模式 //抽象工場模式 System.out.println("基本套餐為:"); IKFCFactory kfcFactory=new KfcFactory(); Hamburg hamburg=kfcFactory.createHamburg(1); hamburg.printMessage(); ChickenWings wings=kfcFactory.createChickenWings(1); wings.printMessage(); FrenchFires french=kfcFactory.createFrenchFries(1); french.printMessage(); Drink drink=kfcFactory.createBeverage(1); drink.printMessage(); //套餐總價 foodPrice=hamburg.price+wings.price+french.price+drink.price; //計算價格 float quote = price.quote(foodPrice); System.out.println("活動期間打折價為:"+quote); float quote1 = price1.quote(foodPrice); System.out.println("使用優惠券後價格為:"+quote1); float quote2=price.quote(quote1); System.out.println("優惠券+活動之後的價格為:"+quote2); break; } System.out.println("*************請選擇付款方式*************"); System.out.println("1.正常支付,2.優惠券支付 3.活動期間折扣,4.活動期間使用優惠券"); c=s.nextInt();//獲取使用者選擇 float g=0; float t=0; switch(c) { case 1: if(m==1) { System.out.println("總計"+z); System.out.println("請付款:"); g=s.nextFloat();//獲取付款錢數 t=g-z; } else { System.out.println("總計"+foodPrice); System.out.println("請付款:"); g=s.nextFloat();//獲取付款錢數 t=g-foodPrice; } if(t>0) { System.out.println("找零:"+t); System.out.println("請收好您的票據,歡迎下次光臨"); } else { System.out.println("付款數不足,請重新付款"); while(t>=0) { System.out.println("付款成功,請收好您的票據,歡迎下次光臨"); } } break; case 2: if (m==1) {//當選擇自主選餐時 System.out.println("總計"+price1.quote(z)); System.out.println("請付款:"); g=s.nextFloat(); t=g-price1.quote(z);//找零方式 } else{//當選擇套餐模式時 System.out.println("總計"+price1.quote(foodPrice)); System.out.println("請付款:"); g=s.nextFloat(); t=g-price1.quote(foodPrice);//找零方式 } if(t>0) { System.out.println("找零:"+t); System.out.println("請收好您的票據,歡迎下次光臨"); } else { System.out.println("付款數不足,請重新付款"); while(t>=0) { System.out.println("付款成功,請收好您的票據,歡迎下次光臨"); } } break; case 3: if(m==1) { System.out.println("總計"+price.quote(z)); System.out.println("請付款:"); g=s.nextFloat(); t=g-price.quote(z);//找零方式 } else { System.out.println("總計"+price.quote(foodPrice)); System.out.println("請付款:"); g=s.nextFloat(); t=g-price.quote(foodPrice); } if(t>0) { System.out.println("找零:"+t); System.out.println("請收好您的票據,歡迎下次光臨"); } else { System.out.println("付款數不足,請重新付款"); while(t>=0) { System.out.println("付款成功,請收好您的票據,歡迎下次光臨"); } } break; case 4: if(m==1) { System.out.println("總計"+price.quote(price1.quote(z))); System.out.println("請付款:"); g=s.nextFloat(); t=g-price.quote(price1.quote(z));//找零方式 } else { System.out.println("總計"+price.quote(price1.quote(foodPrice))); System.out.println("請付款:"); g=s.nextFloat(); t=g-price.quote(price1.quote(foodPrice)); } if(t>0) { System.out.println("找零:"+t); System.out.println("請收好您的票據,歡迎下次光臨"); } else { System.out.println("付款數不足,請重新付款"); while(t>=0) { System.out.println("付款成功,請收好您的票據,歡迎下次光臨"); } } break; } } }
- 截圖