设计模式课设之蛋糕店结账子程序.docx

上传人:b****3 文档编号:27562759 上传时间:2023-07-02 格式:DOCX 页数:54 大小:159.12KB
下载 相关 举报
设计模式课设之蛋糕店结账子程序.docx_第1页
第1页 / 共54页
设计模式课设之蛋糕店结账子程序.docx_第2页
第2页 / 共54页
设计模式课设之蛋糕店结账子程序.docx_第3页
第3页 / 共54页
设计模式课设之蛋糕店结账子程序.docx_第4页
第4页 / 共54页
设计模式课设之蛋糕店结账子程序.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

设计模式课设之蛋糕店结账子程序.docx

《设计模式课设之蛋糕店结账子程序.docx》由会员分享,可在线阅读,更多相关《设计模式课设之蛋糕店结账子程序.docx(54页珍藏版)》请在冰豆网上搜索。

设计模式课设之蛋糕店结账子程序.docx

设计模式课设之蛋糕店结账子程序

设计模式课设之蛋糕店结账子系统

系统说明:

本系统采用eclipse开发,IDEA,eclipse,myeclipse均可运行(书生)

界面采用swing实现

设计模式使用:

策略模式、工厂模式、装饰模式

项目说明:

简单模拟蛋糕店结账程序,某店面目前卖奶油蛋糕,蛋糕有三种,芝士蛋糕、慕斯蛋糕和奶油蛋糕,每种蛋糕有3种大小6寸,8寸,12寸,然后加入的配料,配料单独收费。

蛋糕的包装风格必须一致。

该店面为不同类型的用户提供不同的打折方式,具体打折方案如下:

(1)年龄在10周岁及以下的儿童可享受5折的优惠(原始价格需大于等于100元);

(2)VIP用户除享受8折优惠

该店面在将来可能还要根据需要引入新的蛋糕品种,新的打折方式,新的配料。

编程模拟实现。

项目结构图:

Uml图:

项目运行图:

完整代码如下:

package打折;

publicinterface打折{

publicdouble打折price();

}

打折包下的打折类:

 

package打折;

publicclass儿童implements打折{

publicdouble打折price(){

return0.9;

}

}

儿童类:

 

Vip类:

package打折;

publicclassvipimplements打折{

publicdouble打折price(){

return0.8;

}

}

 

package界面;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.*;

importjavax.swing.JOptionPane;

importcake类别.*;

import打折.*;

importcake工厂.*;

publicclassviewextendsFrameimplementsActionListener,KeyListener,FocusListener{

Buttonb1=newButton("购买");

Buttonb2=newButton("选择");

Buttonb3=newButton("清空");

Buttonb4=newButton("退出");

Labell=newLabel("卖蛋糕管理系统");

Labell1=newLabel("蛋糕类型");

Labell2=newLabel("配料种类");

Labell3=newLabel("蛋糕订单如下:

");

Labell4=newLabel("折扣类型");

Labell5=newLabel("(*必选)");

Labell6=newLabel("(*vip可以8折优惠,儿童购买金额大于或者等于200可以9折优惠!

)");

界面包下的view类:

 

String[]cakeType={"6.8寸的慕斯蛋糕(¥100)","10寸的慕斯蛋糕(¥150)","12寸的慕斯蛋糕(¥200)","6.8寸奶油蛋糕(¥110)","10寸奶油蛋糕(¥160)",

"12寸奶油蛋糕(¥210)","6.8寸芝士蛋糕(¥120)","10寸芝士蛋糕(¥170)","12寸芝士蛋糕(¥220)"};

Choicecake=newChoice();

Checkbox水果=newCheckbox("水果(¥30)");

Checkbox巧克力=newCheckbox("巧克力(¥40)");

Checkboxvip=newCheckbox("VIP");

Checkbox儿童=newCheckbox("儿童");

Checkbox普通顾客=newCheckbox("普通顾客");

CheckboxGroupdiscount=newCheckboxGroup();

TextAreat=newTextArea();

publicview(Stringtitle){

super(title);

this.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

this.setSize(400,500);

this.setLayout(null);

l.setBounds(150,50,100,20);

l1.setBounds(50,100,50,20);

cake.setBounds(120,100,150,20);

l2.setBounds(50,150,50,20);

水果.setBounds(120,150,90,20);

巧克力.setBounds(220,150,100,20);

l4.setBounds(50,200,50,20);

vip.setBounds(120,200,50,20);

儿童.setBounds(180,200,50,20);

普通顾客.setBounds(240,200,70,20);

l5.setBounds(310,200,50,25);

l5.setForeground(Color.red);

l3.setBounds(50,240,80,50);

t.setBounds(50,290,300,100);

b1.setBounds(50,400,60,30);

b2.setBounds(120,400,60,30);

b3.setBounds(190,400,60,30);

b4.setBounds(260,400,60,30);

l6.setBounds(20,450,350,30);vip.setCheckboxGroup(discount);

儿童.setCheckboxGroup(discount);

普通顾客.setCheckboxGroup(discount);

for(inti=0;i

cake.add(cakeType[i]);

}

 

vip.setCheckboxGroup(discount);

儿童.setCheckboxGroup(discount);

普通顾客.setCheckboxGroup(discount);

for(inti=0;i

cake.add(cakeType[i]);

}

this.add(l);

this.add(l1);

this.add(cake);

this.add(l2);

this.add(水果);

this.add(巧克力);

this.add(l4);

this.add(vip);

this.add(儿童);

this.add(普通顾客);

this.add(l5);

this.add(l6);

this.add(l3);

this.add(t);

this.add(b1);

this.add(b2);

this.add(b3);

this.add(b4);

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b4.addActionListener(this);

}

publicvoidfocusGained(FocusEvente){

}

publicvoidfocusLost(FocusEvente){

}

publicvoidkeyTyped(KeyEvente){

}

publicvoidkeyPressed(KeyEvente){

}

publicvoidkeyReleased(KeyEvente){

}

 

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==b1){

Stringa,s,s1,s2,s4;

a=cake.getSelectedItem();

s1=水果.getState()?

水果.getLabel():

"";

s2=巧克力.getState()?

巧克力.getLabel():

"";

s=discount.getSelectedCheckbox().getLabel();

if(a.equals("6.8寸的慕斯蛋糕(¥100)")){

Factorymusi=new幕斯cake工厂();

cakemusi1=musi.create("A");

if(s1.equals("水果(¥30)")&&s2.equals("")){

cakemusi2=new水果(musi1);

doublemoney=musi2.cost();

if(s.equals("VIP")){

打折count=newvip();

doublemoney1=money*count.打折price();

//Object[]options={"付款","取消"};

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿童折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money<200){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}elseif(s.equals("普通顾客")){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}

}elseif(s1.equals("")&&s2.equals("巧克力(¥40)")){

cakemusi2=new巧克力(musi1);

doublemoney=musi2.cost();

if(s.equals("VIP")){

打折count=newvip();

 

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"购买成功"+"\n"+"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿童折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money<200){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}elseif(s.equals("普通顾客")){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}

}elseif(s1.equals("水果(¥30)")&&s2.equals("巧克力(¥40)")){

cakemusi2=new水果(musi1);

cakemusi3=new巧克力(musi2);

doublemoney=musi3.cost();

if(s.equals("VIP")){

打折count=newvip();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿童折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money<200){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}elseif(s.equals("普通顾客")){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}

}elseif(s1.equals("")&&s2.equals("")){

cakemusi2=(musi1);

doublemoney=musi2.cost();

 

if(s.equals("VIP")){

打折count=newvip();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿童折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money<200){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}elseif(s.equals("普通顾客")){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}

}

}elseif(a.equals("10寸的慕斯蛋糕(¥150)")){

Factorymusi=new幕斯cake工厂();

cakemusi1=musi.create("B");

if(s1.equals("水果(¥30)")&&s2.equals("")){

cakemusi2=new水果(musi1);

doublemoney=musi2.cost();

if(s.equals("VIP")){

打折count=newvip();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿童折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money<200){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

 

}elseif(s.equals("普通顾客")){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}

}elseif(s1.equals("")&&s2.equals("巧克力(¥40)")){

cakemusi2=new巧克力(musi1);

doublemoney=musi2.cost();

if(s.equals("VIP")){

打折count=newvip();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿童折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money<200){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}elseif(s.equals("普通顾客")){

JOptionPane.showMessageDialog(null,"你的订单总金额为:

"+money+"元");

}

}elseif(s1.equals("水果(¥30)")&&s2.equals("巧克力(¥40)")){

cakemusi2=new水果(musi1);

cakemusi3=new巧克力(musi2);

doublemoney=musi3.cost();

if(s.equals("VIP")){

打折count=newvip();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"Vip折后价为:

"+money1+"元");

}elseif(s.equals("儿童")&&money>=200){

 

打折count=new儿童();

doublemoney1=money*count.打折price();

JOptionPane.showMessageDialog(null,

"你的订单总金额为:

"+money+"元"+"\n"+"儿

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1