大家應(yīng)該都去麥當(dāng)勞或肯德基吃過快餐,參考肯德基官網(wǎng)的信息模擬肯德基快餐店的收銀系統(tǒng),簡單的java Gui模擬的肯德基收銀系統(tǒng)。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)新會免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1.系統(tǒng)介紹
同學(xué)們應(yīng)該都去麥當(dāng)勞或肯德基吃過快餐吧?請同學(xué)們參考肯德基官網(wǎng)的信息模擬肯德基快餐店的收銀系統(tǒng),合理使用C++/python/Java,結(jié)合設(shè)計模式(2種以上)至少實現(xiàn)系統(tǒng)的以下功能:
1.正常餐品結(jié)算和找零。
2.基本套餐結(jié)算和找零。
3.使用優(yōu)惠劵購買餐品結(jié)算和找零。
4.可在一定時間段參與店內(nèi)活動(自行設(shè)計或參考官網(wǎng)信息)。
5.模擬打印小票的功能(寫到文件中)。
2.系統(tǒng)設(shè)計
1.界面設(shè)計
采用java的Gui實現(xiàn)簡單的界面布局,界面上主要是圖片和數(shù)據(jù)的顯示.我大多采用的是BorderLayout布局的方式,然后設(shè)置每個方位的大小.界面就很快做出來了.
界面截圖:
小票信息截圖:
2.后臺設(shè)計
采用了抽象工廠模式和策略模式設(shè)計餐品的創(chuàng)建.
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]; //充值區(qū)域 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[]={"商品名稱","金額","數(shù)量","操作"}; public MenuPanel(){ init(); layOut(); add(); } public void init(){ panel02 =new JPanel(); panel02.setBorder(new TitledBorder("結(jié)算")); 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("")); //結(jié)算區(qū)域 table=new JTable(a,th); table.setFont(new Font("Dialog", 1, 20)); table.setBounds(0,0,100,100); table.setRowHeight(30); button1=new JButton("結(jié)賬"); button1.setSize(100,60); button1.addActionListener(new SettleCountsListener(table)); button3=new JButton("刪除"); button3.setBounds(300,10,100,50); //菜單欄 menuBar=new JMenuBar(); menu1=new JMenu("當(dāng)季主打"); 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)); //套餐區(qū)域 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); } //充值區(qū)域 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)); //左側(cè)欄添加按鈕 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); //選購區(qū)域 panel04.setLayout(new GridLayout(2,4)); for(int i=0;i<8;i++) { panel04.add(btuIcon[i]); } //充值區(qū)域 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抽象工廠實現(xiàn)kfc點餐鏈接,介紹的很詳細(xì)。
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。