赞
踩
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
提高要求:
1.实现可视化界面(使用MFC)。
2.实现会员储值卡功能,完成储值卡消费。
3.实现当天营业额和餐品销量计算和统计,用数据库记录。
`package kfc;
public class BeefBurger implements Hamburger{
private double price=10.0;
int num=0;
public void display() {
System.out.println(“至尊牛肉堡 *”+num+" “+price+”/份");
}
public void numplus() {
num++;
}
public double getprice() {
return price;
}
public int getnum() {
return num;
}
public String getd() {
String xixi =new String();
xixi=“至尊牛肉堡 *”+num+" “+price+”/份";
return xixi;
}
}
package kfc;
public class BeefBurgerFactory implements HamburgerFactory {
public Hamburger productHamburger() {
return new BeefBurger();
}
}
package kfc; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.*; public class Client { public static void main(String[] args) { int select,choice,H=0,i=0,flag=0; double price=0.0; BeefBurgerFactory BeefBurgerF=new BeefBurgerFactory(); WholeShrimpBurgerFactory WholeShrimpBurgerF=new WholeShrimpBurgerFactory(); ZingerBurgerFactory ZingerBurgerF=new ZingerBurgerFactory(); Hamburger H1=BeefBurgerF.productHamburger(); Hamburger H2=WholeShrimpBurgerF.productHamburger(); Hamburger H3=ZingerBurgerF.productHamburger(); SnackFactory TaroDiguaPillsF=new TaroDiguaPillsFactory();//1 SnackFactory CornSaladF=new CornSaladFactory();//2 SnackFactory CrispyMeatStringF=new CrispyMeatStringFactory();//3 SnackFactory HotWingF=new HotWingFactory();//4 SnackFactory PopcornChickenF=new PopcornChickenFactory();//5 SnackFactory FrenchFriesF=new FrenchFriesFactory();//6 Snack S1=TaroDiguaPillsF.productSnack(); Snack S2=CornSaladF.productSnack(); Snack S3=CrispyMeatStringF.productSnack(); Snack S4=HotWingF.productSnack(); Snack S5=PopcornChickenF.productSnack(); Snack S6=FrenchFriesF.productSnack(); SetMeal set=new SetMeal(); DrinkFactory D=new DrinkFactory(); Drinks [] arr=new Drinks [4]; FileWriter fw = null; try { //如果文件存在,则追加内容;如果文件不存在,则创建文件 File f=new File("E:\\javaxixi\\KFC\\dd.txt"); fw = new FileWriter(f, true); } catch (IOException e) { e.printStackTrace(); } PrintWriter pw = new PrintWriter(fw); Scanner in=new Scanner(System.in); System.out.println(" 欢迎来到KFC,请选择食物 "); System.out.println(" 汉堡系列 "); System.out.println("———————————————————————————"); System.out.println("至尊牛肉堡"+" ¥10.0"); System.out.println("至尊鲜虾堡"+" ¥12.0"); System.out.println("香辣鸡腿堡"+" ¥ 9.5"); System.out.println(" "); System.out.println(" "); System.out.println(" 小吃系列 "); System.out.println("———————————————————————————"); System.out.println("香芋地瓜丸"+" ¥ 5.0"); System.out.println("玉米沙拉 "+" ¥ 4.0"); System.out.println("骨肉相连 "+" ¥ 3.0"); System.out.println("香辣鸡翅 "+" ¥ 7.5"); System.out.println("鸡米花 "+" ¥ 7.5"); System.out.println("薯条 "+" ¥ 8.0"); System.out.println(" "); System.out.println(" "); System.out.println(" 饮品系列 "); System.out.println("——————————————————————————"); System.out.println("可口可乐 "+" ¥ 6.0"); System.out.println("热咖啡 "+" ¥ 8.0"); System.out.println("热奶茶 "+" ¥ 7.0"); System.out.println("热牛奶 "+" ¥ 7.0"); System.out.println(" "); System.out.println(" "); System.out.println(" 套餐系列 "); System.out.println("———————————————————————————"); System.out.println("情侣套餐 "+" ¥ 46.6"); System.out.println("请选择要购买的食物: 1.汉堡系列 2.小吃系列3.饮品系列 4套餐系列."); select=in.nextInt(); while(select!=0) { if(select==1) { System.out.println("请选择要购买的汉堡: 1.至尊牛肉堡 2.至尊鲜虾堡 3.香辣鸡腿堡 "); choice=in.nextInt(); while(choice!=0) { if(choice==1) { H1.numplus(); price+=H1.getprice(); } else if (choice==2 ) { H2.numplus(); price+=H2.getprice(); } else if(choice==3) { H3.numplus(); price+=H3.getprice(); } System.out.println("添加成功,请继续选择;或者按0返回上一级"); choice=in.nextInt(); } } if(select==2) { System.out.println("请选择要购买的小吃: 1.香芋地瓜丸 2.玉米沙拉 3.骨肉相连 4.香辣鸡翅 5.鸡米花 6.薯条 "); choice=in.nextInt(); while(choice!=0) { if(choice==1) { S1.numplus(); price+=S1.getprice(); } else if(choice==2) { S2.numplus(); price+=S2.getprice(); } else if(choice==3) { S3.numplus(); price+=S3.getprice(); } else if(choice==4) { S4.numplus(); price+=S4.getprice(); } else if(choice==5) { S5.numplus(); price+=S5.getprice(); } else if(choice==6) { S6.numplus(); price+=S6.getprice(); } System.out.println("添加成功,请继续选择;或者按0返回上一级"); choice=in.nextInt(); } } else if(select==3) { System.out.println("请选择要购买的饮品: 1.可口可乐(橙汁) 2.热咖啡 3.热奶茶 4.热牛奶 "); choice=in.nextInt(); while(choice!=0) { D.fun(choice); Drinks DR=D.make(); price+=DR.getprice(); arr[choice]=DR; System.out.println("添加成功,请继续选择;或者按0返回上一级"); choice=in.nextInt(); } } else if(select==4) { System.out.println("请选择要购买的套餐: 1.情侣套餐 或者按0返回上一层"); choice=in.nextInt(); while(choice==1) { set.numplus(); price+=set.getprice(); flag=1; System.out.println("添加成功,请继续选择;或者按0返回上一级"); choice=in.nextInt(); } } System.out.println("请选择要购买的食物: 1.汉堡系列 2.小吃系列3.饮品系列 4.套餐系列;或者按0退出"); select=in.nextInt(); } String xixi=new String(); if(H1.getnum()!=0) { H1.display(); pw.println(H1.getd()); } if(H2.getnum()!=0) { H2.display(); pw.println(H2.getd()); } if(H3.getnum()!=0) { H3.display(); pw.println(H3.getd()); } if(S1.getnum()!=0) { S1.display(); pw.println(S1.getd()); } if(S2.getnum()!=0) { S2.display(); pw.println(S1.getd()); } if(S3.getnum()!=0) { S3.display(); pw.println(S3.getd()); } if(S4.getnum()!=0) { S4.display(); pw.println(S4.getd()); } if(S5.getnum()!=0) { S5.display(); pw.println(S5.getd()); } if(S6.getnum()!=0) { S6.display(); pw.println(S6.getd()); } for(int j=0;j<4;j++) { if(arr[j]!=null) { arr[j].display(); pw.println(arr[j].getd()); } } if(flag!=0) { set.diplay(); pw.println(set.getd()); } Date date=new Date(); String week=GetDate.getWeek(date); if(week.equals("星期六")||week.equalsIgnoreCase("星期日")) { price*=0.88; pw.println("周末 0.88折"); } System.out.println("应付:"+String.format("%.2f", price) +"请输入支付方式:1.使用优惠券 2.直接付款"); choice=in.nextInt(); if(choice==1) { System.out.println("请选择使用的优惠卷:1.¥3.3元无门槛 2.满20-5"); choice=in.nextInt(); if(choice==1) { price-=3.3; } else { if(price<20) { System.out.println("未达到用券门槛,error"); } } } System.out.println("请输入您给的金额"); choice=in.nextInt(); System.out.println("实付:"+choice+"元"+"找零:"+String.format("%.2f", (price-choice))); System.out.println("—————————————————————————————————————————————"); System.out.println("总价格 ¥ "+String.format("%.2f", price)); pw.println("应付:"+String.format("%.2f", price)+"元 "); pw.println("实付:"+choice+"元 "+"找零:"+String.format("%.2f", (choice-price))); pw.println("总价格 ¥ "+String.format("%.2f", price)); pw.flush(); try { fw.flush(); pw.close(); fw.close(); } catch (IOException e) { e.printStackTrace(); } } }
package kfc; public class Coffee implements Drinks{ private double price=8.0; private int num=0; public void display() { System.out.println("热咖啡 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="热咖啡 *"+num+" "+price+"/份"; return xixi; } }
package kfc; public class Cola implements Drinks{ private double price=6.0; private int num=0; public void display() { System.out.println("可口可乐 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="可口可乐 *"+num+" "+price+"/份"; return xixi; } }
package kfc; public class CornSalad implements Snack{ private double price=4.0; private int num=0; public void display() { System.out.println("玉米沙拉 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="玉米沙拉 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class CornSaladFactory implements SnackFactory{
public Snack productSnack() {
return new CornSalad();
}
}
package kfc; public class CrispyMeatString implements Snack{ private double price=3.0; private int num=0; public void display() { System.out.println("骨肉相连 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="骨肉相连 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class CrispyMeatStringFactory implements SnackFactory {
public Snack productSnack() {
return new CrispyMeatString();
}
}
package kfc; public class DrinkFactory { private int choice; DrinkFactory(int t){ choice =t; } DrinkFactory(){ choice=0; } public void fun(int i) { choice=i; } public Drinks make() { if(choice==1) { return new Cola(); } else if(choice==2){ return new Coffee(); } else if(choice==3) { return new TeaMilk(); } else if(choice==4){ return new Milk(); } else { return null; } } }
package kfc;
public interface Drinks {
public void display();
public void numplus();
public double getprice();
public int getnum() ;
public String getd();
}
package kfc; public class FrenchFries implements Snack{ private double price=8.0; private int num=0; public void display() { System.out.println("薯条 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="薯条 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class FrenchFriesFactory implements SnackFactory{
public Snack productSnack() {
return new FrenchFries();
}
}
package kfc;
import java.text.SimpleDateFormat;
import java.util.*;
public class GetDate {
public static String getWeek(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
String week = sdf.format(date);
return week;
}
}
package kfc;
public interface Hamburger {
public void display();
public void numplus();
public double getprice();
public int getnum() ;
public String getd();
}
package kfc;
public interface HamburgerFactory {
public Hamburger productHamburger();
}
package kfc; public class HotWing implements Snack{ private double price=7.5; private int num=0; public void display() { System.out.println("香辣鸡翅 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="香辣鸡翅 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class HotWingFactory implements SnackFactory{
public Snack productSnack() {
return new HotWing();
}
}
package kfc; public class Milk implements Drinks{ private double price=7.0; private int num=0; public void display() { System.out.println("热牛奶 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="热牛奶 *"+num+" "+price+"/份"; return xixi; } }
package kfc; public class PopcornChicken implements Snack{ private double price=7.5; private int num=0; public void display() { System.out.println("鸡米花 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="鸡米花 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class PopcornChickenFactory implements SnackFactory{
public Snack productSnack() {
return new PopcornChicken();
}
}
package kfc; public class SetMeal { private double price=46.6; private int num=0; public void diplay() { System.out.println("情侣套餐 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="情侣套餐 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public interface Snack {
public void display();
public void numplus();
public double getprice();
public int getnum();
public String getd();
}
package kfc;
public interface SnackFactory {
public Snack productSnack();
}
package kfc; public class TaroDiguaPills implements Snack{ private double price=5.0; private int num=0; public void display() { System.out.println("香芋地瓜丸 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="香芋地瓜丸 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class TaroDiguaPillsFactory implements SnackFactory{
public Snack productSnack() {
return new TaroDiguaPills();
}
}
package kfc; public class TeaMilk implements Drinks{ private double price=7.0; private int num=0; public void display() { System.out.println("热奶茶 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="热奶茶 *"+num+" "+price+"/份"; return xixi; } }
package kfc; public class WholeShrimpBurger implements Hamburger{ private double price=12.0; int num=0; public void display() { System.out.println("至尊鲜虾堡 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="至尊鲜虾堡 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class WholeShrimpBurgerFactory implements HamburgerFactory{
public Hamburger productHamburger() {
return new WholeShrimpBurger();
}
}
package kfc; public class ZingerBurger implements Hamburger{ private double price=9.5; int num=0; public void display() { System.out.println("香辣鸡腿堡 *"+num+" "+price+"/份"); } public void numplus() { num++; } public double getprice() { return price; } public int getnum() { return num; } public String getd() { String xixi =new String(); xixi="香辣鸡腿堡 *"+num+" "+price+"/份"; return xixi; } }
package kfc;
public class ZingerBurgerFactory implements HamburgerFactory{
public Hamburger productHamburger() {
return new ZingerBurger();
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。