首页 > 编程 > Java > 正文

java Gui实现肯德基点餐收银系统

2019-11-26 09:18:56
字体:
来源:转载
供稿:网友

大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的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()); }}

抽象工厂:

参考这个java抽象工厂实现kfc点餐链接,介绍的很详细。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表