java實(shí)現(xiàn)肯德基收銀系統(tǒng)
參考肯德基官網(wǎng)的信息模擬肯德基快餐店的收銀系統(tǒng),合理使用C++或Java或Python結(jié)合設(shè)計(jì)模式(2種以上)至少實(shí)現(xiàn)系統(tǒng)的以下功能:
1.正常餐品結(jié)算和找零。
2.基本套餐結(jié)算和找零。
3.使用優(yōu)惠券購(gòu)買(mǎi)餐品結(jié)算和找零。
4.可在一定時(shí)間段參與店內(nèi)活動(dòng)(自行設(shè)計(jì)或參考官網(wǎng)信息)。
5.模擬打印小票的功能(寫(xiě)到文件中)。
小票信息保存
class print{ String s=""; //存訂單信息 }
食物工廠
interface FoodFactory{ public Hamburger createHamburger(print s,int kind,int num); //生產(chǎn)漢堡包 public Drink createDrink(print s,int kind,int num); //生產(chǎn)飲品 public Chicken createChicken(print s,int kind,int num); //生產(chǎn)雞肉類(lèi) public Sweetmeats createSweetmeats(print s,int kind,int num); //生產(chǎn)甜品 public Snack createSnack(print s,int kind,int num); //生產(chǎn)小吃 public FrenchFries createFrenchFries(print s,int kind,int num); //生產(chǎn)薯?xiàng)l public SetMeal createSetMeal(print s,int kind,int num); //生產(chǎn)套餐 }
具體食物工廠
interface Hamburger{ public double price(int num); } interface Drink{ public double price(int num); } interface Chicken{ public double price(int num); } interface Sweetmeats{ public double price(int num); } interface Snack{ public double price(int num); } interface FrenchFries{ public double price(int num); } interface SetMeal{ public double price(int num); }
具體食物
//漢堡 //奧爾良烤堡 class Hamburger_1 implements Hamburger{ public double price(int num) { System.out.println("奧爾良烤堡"+" "+" 數(shù)量:"+num+" "+"合計(jì):"+(num*8)); return num*8; //返回價(jià)格 } } //香辣雞腿堡 class Hamburger_2 implements Hamburger{ public double price(int num) { System.out.println("香辣雞腿堡"+" "+" 數(shù)量:"+num+" "+"合計(jì):"+(num*9)); return num*9; } } //勁脆雞腿堡 class Hamburger_3 implements Hamburger{ public double price(int num) { System.out.println("勁脆雞腿堡"+" "+" 數(shù)量:"+num+" "+"合計(jì):"+(num*10)); return num*10; } } //飲品 //橙汁 class Drink_1 implements Drink{ public double price(int num) { System.out.println("橙汁"+" "+" 數(shù)量:"+num+" "+"合計(jì):"+(num*7)); return num*7; //返回價(jià)格 } } //百事可樂(lè) class Drink_2 implements Drink{ public double price(int num) { System.out.println("百事可樂(lè)"+" "+" 數(shù)量:"+num+" "+"合計(jì):"+(num*8)); return num*8; } } //百威啤酒 class Drink_3 implements Drink{ public double price(int num) { System.out.println("百威啤酒"+" "+" 數(shù)量:"+num+" "+"合計(jì):"+(num*9)); return num*9; } } //雞肉類(lèi) //老北京雞肉卷 class Chicken_1 implements Chicken{ public double price(int num) { System.out.println("老北京雞肉卷"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*9)); return num*9; //返回價(jià)格 } } //香辣雞翅 class Chicken_2 implements Chicken{ public double price(int num) { System.out.println("香辣雞翅"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*13)); return num*13; } } //雞排 class Chicken_3 implements Chicken{ public double price(int num) { System.out.println("雞排"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*10)); return num*10; } } //甜品 //原味圣代 class Sweetmeats_1 implements Sweetmeats{ public double price(int num) { System.out.println("原味圣代"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*9)); return num*9; //返回價(jià)格 } } //葡式蛋撻 class Sweetmeats_2 implements Sweetmeats{ public double price(int num) { System.out.println("葡式蛋撻"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*12)); return num*12; } } //巧克力味華夫 class Sweetmeats_3 implements Sweetmeats{ public double price(int num) { System.out.println("巧克力味華夫"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*10)); return num*10; } } //小吃 //蔬菜沙拉 class Snack_1 implements Snack{ public double price(int num) { System.out.println("蔬菜沙拉"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*10)); return num*10; //返回價(jià)格 } } //醇香土豆泥 class Snack_2 implements Snack{ public double price(int num) { System.out.println("醇香土豆泥"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*11)); return num*11; } } //香甜粟米棒 class Snack_3 implements Snack{ public double price(int num) { System.out.println("香甜粟米棒"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*6)); return num*6; } } //薯?xiàng)l //波紋霸王薯?xiàng)l class FrenchFries_1 implements FrenchFries{ public double price(int num) { System.out.println("波紋霸王薯?xiàng)l"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*12)); return num*12; //返回價(jià)格 } } //套餐 //套餐1 class SetMeal_1 implements SetMeal{ public double price(int num) { System.out.println("香辣雞翅+百事可樂(lè)"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*17)); return num*17; } } //套餐2 class SetMeal_2 implements SetMeal{ public double price(int num) { System.out.println("勁脆雞腿堡+橙汁"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*15)); return num*15; } } //套餐3 class SetMeal_3 implements SetMeal{ public double price(int num) { System.out.println("香辣雞腿堡+百威啤酒+波紋霸王薯?xiàng)l"+" "+"數(shù)量:"+num+" "+"合計(jì):"+(num*25)); return num*25; } }
生產(chǎn)具體食物
//生產(chǎn)具體食物 class createFood implements FoodFactory{ print p=new print(); public Hamburger createHamburger(print s,int kind,int num) { if(kind==1){ s.s=s.s+"\n"+"奧爾良漢堡 單價(jià):"+"8"+" 數(shù)量:"+num+" 合計(jì):"+(num*8); //將信息保存至s中 return new Hamburger_1();} else if(kind==2) { s.s=s.s+"\n"+"香辣雞腿堡 單價(jià):"+"9"+" 數(shù)量:"+num+" 合計(jì):"+(num*9); return new Hamburger_2();} else if(kind==3) { s.s=s.s+"\n"+"勁脆雞腿堡 單價(jià):"+"10"+" 數(shù)量:"+num+" 合計(jì):"+(num*10); return new Hamburger_3();} else return null; } public Drink createDrink(print s,int kind,int num) { if(kind==1) { s.s=s.s+"\n"+"橙汁 單價(jià):"+"7"+" 數(shù)量:"+num+" 合計(jì):"+(num*7); //將信息保存至s中 return new Drink_1();} else if(kind==2) { s.s=s.s+"\n"+"百事可樂(lè) 單價(jià):"+"8"+" 數(shù)量:"+num+" 合計(jì):"+(num*8); return new Drink_2();} else if(kind==3) { s.s=s.s+"\n"+"百威啤酒 單價(jià):"+"9"+" 數(shù)量:"+num+" 合計(jì):"+(num*9); return new Drink_3();} else return null; } public Chicken createChicken(print s,int kind,int num) { if(kind==1) { s.s=s.s+"\n"+"老北京雞肉卷 單價(jià):"+"9"+" 數(shù)量"+num+" 合計(jì):"+(num*9); //將信息保存至s中 return new Chicken_1();} else if(kind==2) { s.s=s.s+"\n"+"香辣雞翅 單價(jià):"+"13"+" 數(shù)量"+num+" 合計(jì):"+(num*13); return new Chicken_2();} else if(kind==3) { s.s=s.s+"\n"+"雞排 單價(jià):"+"10"+" 數(shù)量"+num+" 合計(jì):"+(num*10); return new Chicken_3();} else return null; } public Sweetmeats createSweetmeats(print s,int kind,int num) { if(kind==1) { s.s=s.s+"\n"+"原味圣代 單價(jià):"+"9"+" 數(shù)量"+num+" 合計(jì):"+(num*9); //將信息保存至s中 return new Sweetmeats_1();} else if(kind==2) { s.s=s.s+"\n"+"葡式蛋撻 單價(jià):"+"12"+" 數(shù)量"+num+" 合計(jì):"+(num*12); return new Sweetmeats_2();} else if(kind==3) { s.s=s.s+"\n"+"巧克力味華夫 單價(jià):"+"10"+" 數(shù)量"+num+" 合計(jì):"+(num*10); return new Sweetmeats_3();} else return null; } public Snack createSnack(print s,int kind,int num) { if(kind==1) { s.s=s.s+"\n"+"蔬菜沙拉 單價(jià):"+"10"+" 數(shù)量"+num+" 合計(jì):"+(num*10); //將信息保存至s中 return new Snack_1();} else if(kind==2) { s.s=s.s+"\n"+"醇香土豆泥 單價(jià):"+"11"+" 數(shù)量"+num+" 合計(jì):"+(num*11); return new Snack_2();} else if(kind==3) { s.s=s.s+"\n"+"香甜粟米棒 單價(jià):"+"6"+" 數(shù)量"+num+" 合計(jì):"+(num*6); return new Snack_3();} else return null; } public FrenchFries createFrenchFries(print s,int kind,int num){ if(kind==1) { s.s=s.s+"\n"+"波紋霸王薯?xiàng)l 單價(jià):"+"12"+" 數(shù)量"+num+" 合計(jì):"+(num*12); //將信息保存至s中 return new FrenchFries_1();} else return null; } public SetMeal createSetMeal(print s,int kind, int num) { if(kind==1) { s.s=s.s+"\n"+"套餐1 單價(jià):"+"17"+" 數(shù)量"+num+" 合計(jì):"+(num*17); //將信息保存至s中 return new SetMeal_1();} else if(kind==2) { s.s=s.s+"\n"+"套餐2 單價(jià):"+"15"+" 數(shù)量"+num+" 合計(jì):"+(num*15); return new SetMeal_2();} else if(kind==3) { s.s=s.s+"\n"+"套餐3 單價(jià):"+"25"+" 數(shù)量"+num+" 合計(jì):"+(num*25); return new SetMeal_3();} else return null; } }
訂購(gòu)食物,返回價(jià)格
class Price{ public FoodFactory create; //構(gòu)造方法將抽象工廠傳入 public Price(FoodFactory create) { this.create=create; } public double orderHamburger(print s,int kind,int num) { Hamburger hamburger=create.createHamburger(s,kind, num); return hamburger.price(num); } public double orderDrink(print s,int kind,int num) { Drink drink=create.createDrink(s,kind, num); return drink.price(num); } public double orderChicken(print s,int kind,int num) { Chicken chicken=create.createChicken(s,kind, num); return chicken.price(num); } public double orderSweetmeats(print s,int kind,int num) { Sweetmeats sweetmeats=create.createSweetmeats(s,kind, num); return sweetmeats.price(num); } public double orderSnack(print s,int kind,int num) { Snack snack=create.createSnack(s,kind, num); return snack.price(num); } public double orderFrenchFries(print s,int kind,int num) { FrenchFries frenchFries=create.createFrenchFries(s,kind, num); return frenchFries.price(num); } public double orderSetMeal(print s,int kind,int num) { SetMeal setMeal=create.createSetMeal(s,kind, num); return setMeal.price(num); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中@ConfigurationProperties 配置綁定
本文主要介紹了SpringBoot中@ConfigurationProperties 配置綁定,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11java面試常問(wèn)的Runnable和Callable的區(qū)別
大家好,本篇文章主要講的是java面試常問(wèn)的Runnable和Callable的區(qū)別,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01解決沒(méi)有@RunWith 和 @SpringBootTest注解或失效問(wèn)題
這篇文章主要介紹了解決沒(méi)有@RunWith 和 @SpringBootTest注解或失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Java解決LocalDateTime傳輸前端為時(shí)間的數(shù)組
本文主要介紹了Java解決LocalDateTime傳輸前端為時(shí)間的數(shù)組,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03java+socket實(shí)現(xiàn)簡(jiǎn)易局域網(wǎng)聊天室
這篇文章主要為大家詳細(xì)介紹了java+socket實(shí)現(xiàn)簡(jiǎn)易局域網(wǎng)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05超詳細(xì)介紹idea中java程序打jar包的兩種方式
這篇文章主要介紹了超詳細(xì)介紹idea中java程序打jar包的兩種方式一種是可直接執(zhí)行的runnable jar文件,另一種是包含多個(gè)主類(lèi),運(yùn)行時(shí)需要指定主類(lèi)全類(lèi)名的jar包,感興趣的可以了解一下2020-07-07