肯德基收银系统java
参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用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的更多相关文章
- Atitit.收银系统pos 以及打印功能的行业标准
Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...
- Atitit.收银系统模块架构attilax 总结
Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2. ...
- PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机
在零售方面也有很好的应用.如在一些高端品牌零售店,营业员可以随身导购,一站式完成了商品销售和收银,很是受消费者追捧,符合了企业对客户体验以及行业领先的追求. PDA收银系统是一款多功能可以取代专业收银 ...
- C++ 大作业 超市收银系统
#include<iostream> #include<fstream> #include<string> #include<iomanip> #inc ...
- 读《大话设计模式》——应用工厂模式的"商场收银系统"(WinForm)
要做的是一个商场收银软件,营业员根据客户购买商品单价和数量,向客户收费.两个文本框,输入单价和数量,再用个列表框来记录商品的合计,最终用一个按钮来算出总额就可以了,还需要一个重置按钮来重新开始. 核心 ...
- PDA移动POS开单扫描打票收银系统-带来零售批发 新的技术 新的手段!!
手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...
- PosPal银豹收银系统
http://pospal.cn/pc.html 注册公司的地址,便宜的快法务 http://www.kuaifawu.com/
- python面向过程编程小程序- 模拟超市收银系统
6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式 ...
- 读《大话设计模式》——应用策略模式的"商场收银系统"(WinForm)
策略模式的结构 这个模式涉及到三个角色: 环境(Context)角色:持有一个 Strategy 类的引用.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现.此角色给出所 ...
随机推荐
- VI 快捷操作 【持续更新】
2014-9-23 一. 大小写转换 vim中大小写转化的命令是 gu或者gU 形象一点的解释就是小u意味着转为小写:大U意味着转为大写. 剩下的就是对这两个命令的限定(限定操作的行,字母,单词) ...
- 洛谷——P2925 [USACO08DEC]干草出售Hay For Sale
https://www.luogu.org/problem/show?pid=2925 题目描述 Farmer John suffered a terrible loss when giant Aus ...
- 对于Linux内核tty设备的一点理解
http://blog.chinaunix.net/uid-7828352-id-3233064.html
- systemtap dtrace与 oracle
https://fritshoogland.wordpress.com/page/3/ http://externaltable.blogspot.com/2013/06/dtrace-explora ...
- SSH框架之Struts(3)——Struts的执行流程之核心方法
上篇讲了Tomcat实例化一个单例的ActionServlet.依据web.xml配置文件做好对应的初始化工作. 这时client产生一个.do结尾的request请求,採用get/post方式提交之 ...
- joinColumns和inverseJoinColumns的使用方法
近期在工作中使用springside.里面用到了hibernate的多对多 一開始我在配置department(部门表)和menu(栏目表)的时候.这样写的. Department实体类中的getMe ...
- mysql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) ...
- yum install mysql(转载)
linux下使用yum安装mysql 1.安装查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查 ...
- oc43--野指针和空指针
// // main.m // 野指针和空指针 #import <Foundation/Foundation.h> #import "Person.h" int mai ...
- Ubuntu下终端Vim编写C语言程序 AAAAA
我是开虚拟机下的Ubuntu,装双系统又卸了,Ubuntu默认是不包含编辑器vim和编译器gcc.如果你是刚安装好的Ubuntu电脑,下面我们将来实现自己的第一个程序. 1.准备工作 首先进入root ...