KFC收银系统

**程序设计方法学
*作业四 *2018.10.27
*KFC收银系统
题目:同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.可用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
用时2周。
基本要求:
1.程序设计风格良好,控制台界面友好。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
提高要求:
1.实现可视化界面。
2.实现会员储值卡功能,完成储值卡消费。
3.实现当天营业额和餐品销量计算和统计,用数据库记录。

package Homework4_3;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
/**
 *
 * @author 
 *
 */
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(newTitledBorder("结算"));
        panel01 =new JPanel();
        panel03=new JPanel();
        panel03.setBorder(newTitledBorder(""));     
        panel04=new JPanel();
        panel04.setBorder(newTitledBorder(""));
        panel05=new JPanel();
        panel05.setBorder(newTitledBorder("充值"));
        panel=new JPanel();
        panel.setBorder(newTitledBorder(""));
        //结算区域
        table=new JTable(a,th);
        table.setFont(newFont("Dialog", 1, 20));
        table.setBounds(0,0,100,100);
        table.setRowHeight(30);
        button1=new JButton("结账");
        button1.setSize(100,60);
        button1.addActionListener(newSettleCountsListener(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(newFont("Dialog", 1, 20));
        name.setBounds(50,20,50,50);
        namef=new JTextField();
        namef.setBounds(120,30,200,35);
        account=new JLabel("账号:");
        account.setFont(newFont("Dialog", 1, 20));
        account.setBounds(50,70,50,50);
        accountf=new JTextField();
        accountf.setBounds(120,80,200,35);
        lastmoney=new JLabel("密码:");
        lastmoney.setFont(newFont("Dialog", 1, 20));
        lastmoney.setBounds(50,120,50,50);
        passwordf =new JTextField();
        passwordf.setBounds(120,130,200,35);
        rechange= new JLabel("充值:");
        rechange.setFont(newFont("Dialog", 1, 20));
        rechange.setBounds(50,170,50,50);
        rechangef=newJTextField("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(newRechangeListener(this,1));
        canel.addActionListener(newRechangeListener(this,2));
        select.addActionListener(newRechangeListener(this,3));
    }
    public void add(){
        //添加面板
        this.add(panel,BorderLayout.CENTER);
        this.add(panel02,BorderLayout.WEST);
        //panel02添加组件, 添加table组件(滚动条方式添加),放在panel01的north方位
        panel02.setLayout(newGridLayout(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(newBorderLayout());
        panel04.setPreferredSize(newDimension(225,450));
        panel01.add(panel04,BorderLayout.NORTH);
        panel01.add(panel05,BorderLayout.CENTER);
     //选购区域
        panel04.setLayout(newGridLayout(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());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值