请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
主食接口
public interface principalfood {
int price(int num);
}
//鸡排饭
class jipaifan implements principalfood{
public int price(int num){
int price=15;
return price*num;
}
}
//孜然饭
class ziranfan implements principalfood{
public int price(int num){
int price=13;
return price*num;
}
}
//小米粥
class xiaomizhou implements principalfood{
public int price(int num){
int price=8;
return price*num;
}
}
//黑米粥
class heimizhou implements principalfood{
public int price(int num){
int price=8;
return price*num;
}
}
class principalfoodfactory{
principalfood produceprincipalfood(int n){
if(n==1)
return new jipaifan();
else if(n==2)
return new ziranfan();
else if(n==3)
return new xiaomizhou();
else if(n==4)
return new heimizhou();
else
return null;
}
}
其他接口类比主食接口,就不都贴上去了,直接进入主类
上菜单(按照自己的食品接口制作)
public static void menu() {
System.out.println("————————————————————菜单——————————————————————");
System.out.println(" ");
System.out.println("————————————————————主食——————————————————————");
System.out.println("1.鸡排饭----------------------------------15元");
System.out.println("2.孜然饭----------------------------------13元");
System.out.println("3.小米粥----------------------------------8元");
System.out.println("4.黑米粥----------------------------------8元");
System.out.println("——————————————————————————————————————————————");
System.out.println("————————————————————汉堡——————————————————————");
System.out.println("5.香辣汉堡--------------------------------10元");
System.out.println("6.牛肉汉堡--------------------------------9元");
System.out.println("7.鱼肉汉堡--------------------------------8元");
System.out.println("——————————————————————————————————————————————");
System.out.println("————————————————————小吃——————————————————————");
System.out.println("8.薯条------------------------------------8元");
System.out.println("9.鸡翅------------------------------------12元");
System.out.println("10.鸡腿-----------------------------------10元");
System.out.println("——————————————————————————————————————————————");
System.out.println("————————————————————饮料——————————————————————");
System.out.println("11.可乐-----------------------------------6元");
System.out.println("12.橙汁-----------------------------------8元");
System.out.println("13.奶茶-----------------------------------10元");
System.out.println("14.咖啡-----------------------------------10元");
System.out.println("——————————————————————————————————————————————");
System.out.println("————————————————————套餐——————————————————————");
System.out.println("15.套餐A(香辣汉堡+薯条+可乐)------------------------20元");
System.out.println("16.套餐B(孜然饭+鸡腿+橙汁)---------------------------25元");
System.out.println("17.套餐C(鸡排饭+小米粥+薯条)------------------------25元");
System.out.println("——————————————————————————————————————————————");
}
主函数
public static void main(String arg[]) {
String st="";//空字符串记录产品清单
int sumprice=0;//总价
int yingfu=sumprice;//应付金额
int zhaoling=0;//找零
int n;//商品号
int num;//商品数量
principalfood pf;
hamburger h;
snack s;
drink d;
taocan t;
principalfoodfactory pff=new principalfoodfactory();
hamburgerfactory hf=new hamburgerfactory();
snackfactory sf=new snackfactory();
drinkfactory df=new drinkfactory();
taocanfactory tf=new taocanfactory();
menu();
while(true) {
System.out.print("请选择要购买的产品");
Scanner in=new Scanner(System.in);
n=in.nextInt();
switch(n) {
case 1:System.out.print("请选择要购买的数量");
num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
st=st+"鸡排饭,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
case 2:System.out.print("请选择要购买的数量");
num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
st=st+"孜然饭,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
case 3:System.out.print("请选择要购买的数量");
num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
st=st+"小米粥,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
case 4:System.out.print("请选择要购买的数量");
num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
st=st+"黑米粥,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
case 5:System.out.print("请选择要购买的数量");
num=in.nextInt();h=hf.producehamburger(n);sumprice=sumprice+h.price(num);
st=st+"香辣汉堡,数量:"+num+",价格:"+h.price(num)+"\r\n";break;
case 6:System.out.print("请选择要购买的数量");
num=in.nextInt();h=hf.producehamburger(n);sumprice=sumprice+h.price(num);
st=st+"牛肉汉堡,数量:"+num+",价格:"+h.price(num)+"\r\n";break;
case 7:System.out.print("请选择要购买的数量");
num=in.nextInt();h=hf.producehamburger(n);sumprice=sumprice+h.price(num);
st=st+"鱼肉汉堡,数量:"+num+",价格:"+h.price(num)+"\r\n";break;
case 8:System.out.print("请选择要购买的数量");
num=in.nextInt();s=sf.producesnack(n);sumprice=sumprice+s.price(num);
st=st+"薯条,数量:"+num+",价格:"+s.price(num)+"\r\n";break;
case 9:System.out.print("请选择要购买的数量");
num=in.nextInt();s=sf.producesnack(n);sumprice=sumprice+s.price(num);
st=st+"鸡翅,数量:"+num+",价格:"+s.price(num)+"\r\n";break;
case 10:System.out.print("请选择要购买的数量");
num=in.nextInt();s=sf.producesnack(n);sumprice=sumprice+s.price(num);
st=st+"鸡腿,数量:"+num+",价格:"+s.price(num)+"\r\n";break;
case 11:System.out.print("请选择要购买的数量");
num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
st=st+"可乐,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
case 12:System.out.print("请选择要购买的数量");
num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
st=st+"橙汁,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
case 13:System.out.print("请选择要购买的数量");
num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
st=st+"奶茶,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
case 14:System.out.print("请选择要购买的数量");
num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
st=st+"咖啡,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
case 15:System.out.print("请选择要购买的数量");
num=in.nextInt();t=tf.producetaocan(n);sumprice=sumprice+t.price(num);
st=st+"套餐A(香辣汉堡+薯条+可乐),数量:"+num+",价格:"+t.price(num)+"\r\n";break;
case 16:System.out.print("请选择要购买的数量");
num=in.nextInt();t=tf.producetaocan(n);sumprice=sumprice+t.price(num);
st=st+"套餐B(孜然饭+鸡腿+橙汁),数量:"+num+",价格:"+t.price(num)+"\r\n";break;
case 17:System.out.print("请选择要购买的数量");
num=in.nextInt();t=tf.producetaocan(n);sumprice=sumprice+t.price(num);
st=st+"套餐C(鸡排饭+小米粥+薯条),数量:"+num+",价格:"+t.price(num)+"\r\n";break;
}
System.out.print("是否要继续购买(1.是 2.否):");
int s1=in.nextInt();
if(s1==2)
break;
}
System.out.println("总价为:"+sumprice+"元");
System.out.print("是否使用优惠券(1.是 2.否):");
Scanner in=new Scanner(System.in);
int s2=in.nextInt();
if(s2==1)
{System.out.print("请输入优惠券金额:");
int s3=in.nextInt();
yingfu=sumprice-s3;
System.out.println("应付金额为:"+yingfu+"元");
}
else
System.out.println("应付金额:"+yingfu+"元");
System.out.print("实付金额:");
int s4=in.nextInt();
zhaoling=s4-yingfu;
System.out.print("找零:"+zhaoling+"元");
try {
FileWriter out=new FileWriter("小票.txt");
out.write("产品清单:"+"\r\n"+st);
out.write("\r\n");
out.write("总价:"+sumprice+"元");
out.write("\r\n");
out.write("应付金额:"+yingfu+"元");
out.write("\r\n");
out.write("实付金额:"+s4+"元");
out.write("\r\n");
out.write("找零:"+zhaoling+"元");
out.write("\r\n");
out.write("谢谢惠顾!");
out.close();
}catch(Exception e) {
e.printStackTrace();
}
}