参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:

1.正常餐品结算和找零。

2.基本套餐结算和找零。

3.使用优惠券购买餐品结算和找零。

4.可在一定时间段参与店内活动(自行设计或参考官网信息)。

5.模拟打印小票的功能(写到文件中)。

小票信息保存

class print{
String s=""; //存订单信息
}
1
2
食物工厂

interface FoodFactory{
public Hamburger createHamburger(print s,int kind,int num); //生产汉堡包
public Drink createDrink(print s,int kind,int num); //生产饮品
public Chicken createChicken(print s,int kind,int num); //生产鸡肉类
public Sweetmeats createSweetmeats(print s,int kind,int num); //生产甜品
public Snack createSnack(print s,int kind,int num); //生产小吃
public FrenchFries createFrenchFries(print s,int kind,int num); //生产薯条
public SetMeal createSetMeal(print s,int kind,int num); //生产套餐
}
1
2
3
4
5
6
7
8
具体食物工厂

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);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
具体食物

//汉堡
//奥尔良烤堡
class Hamburger_1 implements Hamburger{
public double price(int num)
{
System.out.println("奥尔良烤堡"+" "+" 数量:"+num+" "+"合计:"+(num*8));
return num*8; //返回价格
}
}
//香辣鸡腿堡
class Hamburger_2 implements Hamburger{
public double price(int num)
{
System.out.println("香辣鸡腿堡"+" "+" 数量:"+num+" "+"合计:"+(num*9));
return num*9;
}
}
//劲脆鸡腿堡
class Hamburger_3 implements Hamburger{
public double price(int num)
{
System.out.println("劲脆鸡腿堡"+" "+" 数量:"+num+" "+"合计:"+(num*10));
return num*10;
}
}
//饮品
//橙汁
class Drink_1 implements Drink{
public double price(int num)
{
System.out.println("橙汁"+" "+" 数量:"+num+" "+"合计:"+(num*7));
return num*7; //返回价格
}
}
//百事可乐
class Drink_2 implements Drink{
public double price(int num)
{
System.out.println("百事可乐"+" "+" 数量:"+num+" "+"合计:"+(num*8));
return num*8;
}
}
//百威啤酒
class Drink_3 implements Drink{
public double price(int num)
{
System.out.println("百威啤酒"+" "+" 数量:"+num+" "+"合计:"+(num*9));
return num*9;
}
}
//鸡肉类
//老北京鸡肉卷
class Chicken_1 implements Chicken{
public double price(int num)
{
System.out.println("老北京鸡肉卷"+" "+"数量:"+num+" "+"合计:"+(num*9));
return num*9; //返回价格
}
}
//香辣鸡翅
class Chicken_2 implements Chicken{
public double price(int num)
{
System.out.println("香辣鸡翅"+" "+"数量:"+num+" "+"合计:"+(num*13));
return num*13;
}
}
//鸡排
class Chicken_3 implements Chicken{
public double price(int num)
{
System.out.println("鸡排"+" "+"数量:"+num+" "+"合计:"+(num*10));
return num*10;
}
}
//甜品
//原味圣代
class Sweetmeats_1 implements Sweetmeats{
public double price(int num)
{
System.out.println("原味圣代"+" "+"数量:"+num+" "+"合计:"+(num*9));
return num*9; //返回价格
}
}
//葡式蛋挞
class Sweetmeats_2 implements Sweetmeats{
public double price(int num)
{
System.out.println("葡式蛋挞"+" "+"数量:"+num+" "+"合计:"+(num*12));
return num*12;
}
}
//巧克力味华夫
class Sweetmeats_3 implements Sweetmeats{
public double price(int num)
{
System.out.println("巧克力味华夫"+" "+"数量:"+num+" "+"合计:"+(num*10));
return num*10;
}
}
//小吃
//蔬菜沙拉
class Snack_1 implements Snack{
public double price(int num)
{
System.out.println("蔬菜沙拉"+" "+"数量:"+num+" "+"合计:"+(num*10));
return num*10; //返回价格
}
}
//醇香土豆泥
class Snack_2 implements Snack{
public double price(int num)
{
System.out.println("醇香土豆泥"+" "+"数量:"+num+" "+"合计:"+(num*11));
return num*11;
}
}
//香甜粟米棒
class Snack_3 implements Snack{
public double price(int num)
{
System.out.println("香甜粟米棒"+" "+"数量:"+num+" "+"合计:"+(num*6));
return num*6;
}
}
//薯条
//波纹霸王薯条
class FrenchFries_1 implements FrenchFries{
public double price(int num)
{
System.out.println("波纹霸王薯条"+" "+"数量:"+num+" "+"合计:"+(num*12));
return num*12; //返回价格
}
}
//套餐
//套餐1
class SetMeal_1 implements SetMeal{
public double price(int num) {
System.out.println("香辣鸡翅+百事可乐"+" "+"数量:"+num+" "+"合计:"+(num*17));
return num*17;
}
}
//套餐2
class SetMeal_2 implements SetMeal{
public double price(int num) {
System.out.println("劲脆鸡腿堡+橙汁"+" "+"数量:"+num+" "+"合计:"+(num*15));
return num*15;
}
}
//套餐3
class SetMeal_3 implements SetMeal{
public double price(int num) {
System.out.println("香辣鸡腿堡+百威啤酒+波纹霸王薯条"+" "+"数量:"+num+" "+"合计:"+(num*25));
return num*25;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
生产具体食物

//生产具体食物
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"+"奥尔良汉堡 单价:"+"8"+" 数量:"+num+" 合计:"+(num*8); //将信息保存至s中
return new Hamburger_1();}
else if(kind==2) {
s.s=s.s+"\n"+"香辣鸡腿堡 单价:"+"9"+" 数量:"+num+" 合计:"+(num*9);
return new Hamburger_2();}
else if(kind==3) {
s.s=s.s+"\n"+"劲脆鸡腿堡 单价:"+"10"+" 数量:"+num+" 合计:"+(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"+"橙汁 单价:"+"7"+" 数量:"+num+" 合计:"+(num*7); //将信息保存至s中
return new Drink_1();}
else if(kind==2) {
s.s=s.s+"\n"+"百事可乐 单价:"+"8"+" 数量:"+num+" 合计:"+(num*8);
return new Drink_2();}
else if(kind==3) {
s.s=s.s+"\n"+"百威啤酒 单价:"+"9"+" 数量:"+num+" 合计:"+(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"+"老北京鸡肉卷 单价:"+"9"+" 数量"+num+" 合计:"+(num*9); //将信息保存至s中
return new Chicken_1();}
else if(kind==2) {
s.s=s.s+"\n"+"香辣鸡翅 单价:"+"13"+" 数量"+num+" 合计:"+(num*13);
return new Chicken_2();}
else if(kind==3) {
s.s=s.s+"\n"+"鸡排 单价:"+"10"+" 数量"+num+" 合计:"+(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"+"原味圣代 单价:"+"9"+" 数量"+num+" 合计:"+(num*9); //将信息保存至s中
return new Sweetmeats_1();}
else if(kind==2) {
s.s=s.s+"\n"+"葡式蛋挞 单价:"+"12"+" 数量"+num+" 合计:"+(num*12);
return new Sweetmeats_2();}
else if(kind==3) {
s.s=s.s+"\n"+"巧克力味华夫 单价:"+"10"+" 数量"+num+" 合计:"+(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"+"蔬菜沙拉 单价:"+"10"+" 数量"+num+" 合计:"+(num*10); //将信息保存至s中
return new Snack_1();}
else if(kind==2) {
s.s=s.s+"\n"+"醇香土豆泥 单价:"+"11"+" 数量"+num+" 合计:"+(num*11);
return new Snack_2();}
else if(kind==3) {
s.s=s.s+"\n"+"香甜粟米棒 单价:"+"6"+" 数量"+num+" 合计:"+(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"+"波纹霸王薯条 单价:"+"12"+" 数量"+num+" 合计:"+(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 单价:"+"17"+" 数量"+num+" 合计:"+(num*17); //将信息保存至s中
return new SetMeal_1();}
else if(kind==2) {
s.s=s.s+"\n"+"套餐2 单价:"+"15"+" 数量"+num+" 合计:"+(num*15);
return new SetMeal_2();}
else if(kind==3) {
s.s=s.s+"\n"+"套餐3 单价:"+"25"+" 数量"+num+" 合计:"+(num*25);
return new SetMeal_3();}
else return null;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
订购食物,返回价格

class Price{
public FoodFactory create;
//构造方法将抽象工厂传入
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);
}
}
---------------------

肯德基收银系统java的更多相关文章

  1. Atitit.收银系统pos 以及打印功能的行业标准

    Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...

  2. Atitit.收银系统模块架构attilax 总结

    Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2.  ...

  3. PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机

    在零售方面也有很好的应用.如在一些高端品牌零售店,营业员可以随身导购,一站式完成了商品销售和收银,很是受消费者追捧,符合了企业对客户体验以及行业领先的追求. PDA收银系统是一款多功能可以取代专业收银 ...

  4. C++ 大作业 超市收银系统

    #include<iostream> #include<fstream> #include<string> #include<iomanip> #inc ...

  5. 读《大话设计模式》——应用工厂模式的"商场收银系统"(WinForm)

    要做的是一个商场收银软件,营业员根据客户购买商品单价和数量,向客户收费.两个文本框,输入单价和数量,再用个列表框来记录商品的合计,最终用一个按钮来算出总额就可以了,还需要一个重置按钮来重新开始. 核心 ...

  6. PDA移动POS开单扫描打票收银系统-带来零售批发 新的技术 新的手段!!

    手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...

  7. PosPal银豹收银系统

    http://pospal.cn/pc.html 注册公司的地址,便宜的快法务 http://www.kuaifawu.com/

  8. python面向过程编程小程序- 模拟超市收银系统

    6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式 ...

  9. 读《大话设计模式》——应用策略模式的"商场收银系统"(WinForm)

    策略模式的结构 这个模式涉及到三个角色: 环境(Context)角色:持有一个 Strategy 类的引用.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现.此角色给出所 ...

随机推荐

  1. [poj3321]Apple Tree_dfs序_树状数组

    Apple Tree poj-3321 题目大意:给你一个根固定的树,每一个点的点权是0或1,查询子树点权和. 注释:$1\le n \le 10^5$. 想法:刚刚学习dfs序,刷到水题偶哈哈. 什 ...

  2. 为什么视频流一般都用UDP

    我们知道TCP 和 UDP的一个区别之一就是TCP要保证丢失的package会被再次重发,确保对方能够收到. 而在视频播放中,如果有一秒钟的信号确实,导致画面出现了一点瑕疵,那么最合适的办法是把这点瑕 ...

  3. js 推断字符串是否包括某字符串

    var Cts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包括Text字符串'); } ...

  4. [E2E] Visual Differing Tests with Puppeteer and PixelMatch

    Take your end to end tests to the next level by comparing your current application's view with an al ...

  5. 【Git使用具体解释】Egit使用过程中遇到的问题及解决的方法

    1.   Git错误non-fast-forward后的冲突解决 问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不同意你直接把你的代码覆盖上去.于是你有2 ...

  6. 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第七节:PS基础:UV动画

    <使用Cocos2d-x 开发3D游戏>系列在线课程 第七节:PS基础:UV动画 视频地址:http://edu.csdn.net/course/attend/1330/20807 交流论 ...

  7. luogu2161 [SHOI2009]会场预约

    题目大意 随着时间的推移这里有几个任务对应着一段区间.每次要将任务安到时间线上时,要把时间线上已有的与该任务对应区间有交集的区间对应的任务删去.求每次删去的区间个数,以及整个时间线上有几个任务.时间线 ...

  8. git fetch批处理,遍历一个文件夹下的所有子目录,执行git fetch --all

    echo off for /d %%i in (*) do ( echo %%i cd %%i git fetch --all cd .. ) 判断子目录是否有.git文件夹 echo off for ...

  9. B1270 [BeijingWc2008]雷涛的小猫 dp

    这个题的原始方法谁都会,但是n^3会T.之后直接优化,特别简单,就是每次处理出来每层的最大值,而不用枚举.之前没这么做是因为觉得在同一棵树的时候没有下落,所以不能用这个方法.后来想明白了,在同一棵树上 ...

  10. 杂项-Java:JDBC

    ylbtech-杂项-Java:JDBC JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访 ...