java Gui实现肯德基点餐收银系统
程序员文章站
2024-03-01 10:07:04
大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java gui模拟的肯德基收银系统。
1.系统介绍
同学们应该都去麦当劳或肯...
大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java gui模拟的肯德基收银系统。
1.系统介绍
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用c++/python/java,结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
2.系统设计
1.界面设计
采用java的gui实现简单的界面布局,界面上主要是图片和数据的显示.我大多采用的是borderlayout布局的方式,然后设置每个方位的大小.界面就很快做出来了.
界面截图:
小票信息截图:
2.后台设计
采用了抽象工厂模式和策略模式设计餐品的创建.
3.主要源代码
主界面:
package view; import javax.swing.*; import javax.swing.border.titledborder; import java.awt.*; public class menupanel extends jpanel { private jbutton button1,button3,sure,canel,select; private jpanel panel01, panel02 ,panel03,panel04,panel05,panel; private jtable table; private jbutton []btuicon= new jbutton[8]; //充值区域 private jlabel name,account,lastmoney,rechange; jtextfield namef,accountf, passwordf,rechangef; private jmenubar menubar; private jmenu menu1,menu2,menu3; public static int menutype=1; private object a[][]=new object[100][4]; private object th[]={"商品名称","金额","数量","操作"}; public menupanel(){ init(); layout(); add(); } public void init(){ panel02 =new jpanel(); panel02.setborder(new titledborder("结算")); panel01 =new jpanel(); panel03=new jpanel(); panel03.setborder(new titledborder("")); panel04=new jpanel(); panel04.setborder(new titledborder("")); panel05=new jpanel(); panel05.setborder(new titledborder("充值")); panel=new jpanel(); panel.setborder(new titledborder("")); //结算区域 table=new jtable(a,th); table.setfont(new font("dialog", 1, 20)); table.setbounds(0,0,100,100); table.setrowheight(30); button1=new jbutton("结账"); button1.setsize(100,60); button1.addactionlistener(new settlecountslistener(table)); button3=new jbutton("删除"); button3.setbounds(300,10,100,50); //菜单栏 menubar=new jmenubar(); menu1=new jmenu("当季主打"); menu1.setselected(true); menu2=new jmenu("童书套餐"); menu3=new jmenu("人气明星餐"); menu1.addmenulistener(new menuslistener(btuicon,1)); menu2.addmenulistener(new menuslistener(btuicon,2)); menu3.addmenulistener(new menuslistener(btuicon,3)); //套餐区域 for(int i=0;i<8;i++) { btuicon[i]=new jbutton("套餐"+(i+1)); //添加套餐按钮事件 if(menu1.isselected()){ btuicon[i].addactionlistener(new taocanlistener(i,table)); } else if(menu2.isselected()){ btuicon[i].addactionlistener(new taocanlistener(i,table)); } else if(menu3.isselected()){ btuicon[i].addactionlistener(new taocanlistener(i,table)); } imageicon icon = new imageicon("src/images/d"+(i+1)+".png"); btuicon[i].seticon(icon); } //充值区域 name=new jlabel("姓名:"); name.setfont(new font("dialog", 1, 20)); name.setbounds(50,20,50,50); namef=new jtextfield(); namef.setbounds(120,30,200,35); account=new jlabel("账号:"); account.setfont(new font("dialog", 1, 20)); account.setbounds(50,70,50,50); accountf=new jtextfield(); accountf.setbounds(120,80,200,35); lastmoney=new jlabel("密码:"); lastmoney.setfont(new font("dialog", 1, 20)); lastmoney.setbounds(50,120,50,50); passwordf =new jtextfield(); passwordf.setbounds(120,130,200,35); rechange= new jlabel("充值:"); rechange.setfont(new font("dialog", 1, 20)); rechange.setbounds(50,170,50,50); rechangef=new jtextfield("0.0"); rechangef.setbounds(120,180,200,35); sure=new jbutton("确定充值"); sure.setbounds(40,235,100,40); canel=new jbutton("取消充值"); canel.setbounds(300,235,100,40); select=new jbutton("查询余额"); select.setbounds(400,150,100,40); sure.addactionlistener(new rechangelistener(this,1)); canel.addactionlistener(new rechangelistener(this,2)); select.addactionlistener(new rechangelistener(this,3)); } public void add(){ //添加面板 this.add(panel,borderlayout.center); this.add(panel02,borderlayout.west); //panel02添加组件, 添加table组件(滚动条方式添加),放在panel01的north方位 panel02.setlayout(new gridlayout(2,1)); //左侧栏添加按钮 panel02.add(new jscrollpane(table)); panel02.add(panel03); panel03.add(button3); panel03.add(button1); // panel.setlayout(new borderlayout()); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); panel.add(menubar,borderlayout.north); panel.add(panel01,borderlayout.center); panel01.setlayout(new borderlayout()); panel04.setpreferredsize(new dimension(225,450)); panel01.add(panel04,borderlayout.north); panel01.add(panel05,borderlayout.center); //选购区域 panel04.setlayout(new gridlayout(2,4)); for(int i=0;i<8;i++) { panel04.add(btuicon[i]); } //充值区域 panel05.setlayout(null); panel05.add(name); panel05.add(namef); panel05.add(account); panel05.add(accountf); panel05.add(lastmoney); panel05.add(passwordf); panel05.add(rechange); panel05.add(rechangef); panel05.add(sure); panel05.add(canel); panel05.add(select); } public void layout(){ this.setlayout(new borderlayout()); } }
抽象工厂:
参考这个,介绍的很详细。
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 推荐几本Android程序员必读书籍