java swing实现简单KFC点餐系统

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.math.*;
import java.awt.event.MouseAdapter;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.net.URL;
import java.util.logging.SimpleFormatter;

import static java.lang.Math.random;

public class Mykfc extends Panel{
    public static void main(String[] args){

        //创建frame及panel容器
        JFrame frame=new JFrame("KFC点餐");
        JPanel panel1=new JPanel();

        //设置label标签
        JLabel label1=new JLabel("应付价钱");
        JLabel label2=new JLabel("实付价钱");
        JLabel label3=new JLabel("优惠折扣(如不选择则默认为无折扣)");
        JLabel label4=new JLabel("结余");
        JLabel label5=new JLabel("汉堡个数(20元一个)");
        JLabel label6=new JLabel("可乐瓶数(5元一个)");
        JLabel label7=new JLabel("薯条(10元一个)");
        JLabel label8=new JLabel("套餐一:香辣鸡腿堡+可乐+薯条");
        JLabel label9=new JLabel("套餐二:香辣鸡腿堡+可乐+冰淇淋+薯条");
        JLabel label10=new JLabel("套餐三:由本店随机奉上");
        JLabel label11=new JLabel("亲!如果已选择本店套餐请不要在选择具体商品哦!如果您非要选择具体商品则会按您所输入的商品进行计费!");

        //设置三个空容器来存储图片
        JLabel label12=new JLabel();
        JLabel label13=new JLabel();
        JLabel label14=new JLabel();
        ImageIcon icon1=new ImageIcon("H:\\java\\编译\\inteli idea\\文件\\Kfc\\1.jpg");   //如果不能修改请将路径改为自己的文件位置
        icon1.setImage(icon1.getImage().getScaledInstance(100,100,1));
        label12.setIcon(icon1);
        ImageIcon icon2=new ImageIcon("H:\\java\\编译\\inteli idea\\文件\\Kfc\\2.jpg");   //如果不能修改请将路径改为自己的文件位置
        icon2.setImage(icon2.getImage().getScaledInstance(100,100,1));
        label13.setIcon(icon2);
        ImageIcon icon3=new ImageIcon("H:\\java\\编译\\inteli idea\\文件\\Kfc\\3.jpg");   //如果不能修改请将路径改为自己的文件位置
        icon3.setImage(icon3.getImage().getScaledInstance(100,100,1));
        label14.setIcon(icon3);



        //创建文本框
        JTextField textField1=new JTextField(20);
        JTextField textField2=new JTextField(20);
        JTextField textField3=new JTextField(20);
        JTextField textField4=new JTextField(20);
        JTextField textField5=new JTextField(20);
        JTextField textField6=new JTextField(20);
        JTextField textField7=new JTextField(20);
        JCheckBox checkBox1=new JCheckBox();
        JCheckBox checkBox2=new JCheckBox();
        JCheckBox checkBox3=new JCheckBox();


        //创建按钮
        JButton button1=new JButton("计算应付价钱(ALT+1)");
        JButton button2=new JButton("计算找零(ALT+2)");
        JButton button3=new JButton("save(ALT+3)");

        //设置按钮快捷键
        button1.setMnemonic(KeyEvent.VK_1);
        button2.setMnemonic(KeyEvent.VK_2);
        button3.setMnemonic(KeyEvent.VK_3);

        //设置按钮字体
        button1.setFont(new Font("微软黑体",Font.BOLD,20));
        button2.setFont(new Font("微软黑体",Font.BOLD,20));
        button3.setFont(new Font("微软黑体",Font.BOLD,20));


        //设置label标签属性
        label1.setSize(500,500);
        label2.setSize(500,500);
        label3.setSize(500,500);
        label4.setSize(500,500);
        label5.setSize(500,500);
        label6.setSize(500,500);
        label7.setSize(500,500);
        textField1.setSize(100,100);
        textField2.setSize(100,100);
        textField3.setSize(100,100);
        textField3.setText(""+1);
        textField4.setSize(100,100);
        textField5.setSize(100,100);
        textField6.setSize(100,100);
        textField7.setSize(100,100);
        label1.setFont(new Font("微软黑体",Font.BOLD,50));
        label2.setFont(new Font("微软黑体",Font.BOLD,50));
        label3.setFont(new Font("微软黑体",Font.BOLD,50));
        label4.setFont(new Font("微软黑体",Font.BOLD,50));
        label5.setFont(new Font("微软黑体",Font.BOLD,50));
        label6.setFont(new Font("微软黑体",Font.BOLD,50));
        label7.setFont(new Font("微软黑体",Font.BOLD,50));
        label8.setFont(new Font("微软黑体",Font.BOLD,50));
        label9.setFont(new Font("微软黑体",Font.BOLD,50));
        label10.setFont(new Font("微软黑体",Font.BOLD,50));
        label11.setFont(new Font("微软雅黑", Font.BOLD, 20));
        label11.setForeground(Color.red);

        textField1.setFont(new Font("微软黑体",Font.BOLD,20));
        textField2.setFont(new Font("微软黑体",Font.BOLD,20));
        textField3.setFont(new Font("微软黑体",Font.BOLD,20));
        textField4.setFont(new Font("微软黑体",Font.BOLD,20));
        textField5.setFont(new Font("微软黑体",Font.BOLD,20));
        textField6.setFont(new Font("微软黑体",Font.BOLD,20));
        textField7.setFont(new Font("微软黑体",Font.BOLD,20));


        //将创建的组件添加到顶层容器中
        panel1.add(label8);
        panel1.add(checkBox1);
        panel1.add(label9);
        panel1.add(checkBox2);
        panel1.add(label10);
        panel1.add(checkBox3);
        panel1.add(label11);
        panel1.add(label5);
        panel1.add(label12);
        panel1.add(textField5);
        panel1.add(label6);
        panel1.add(label13);
        panel1.add(textField6);
        panel1.add(label7);
        panel1.add(label14);
        panel1.add(textField7);
        panel1.add(label1);
        panel1.add(textField1);
        panel1.add(label2);
        panel1.add(textField2);
        panel1.add(label3);
        panel1.add(textField3);
        panel1.add(label4);
        panel1.add(textField4);
        panel1.add(button1);
        panel1.add(button2);
        panel1.add(button3);

        //添加按钮的事件监听器
        button1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    int d1=Integer.parseInt(textField5.getText());
                    int d2=Integer.parseInt(textField6.getText());
                    int d3=Integer.parseInt(textField7.getText());
                    textField1.setText(""+((d1*20)+(d2*5)+(d3*10)));
                }
        });
        button2.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    double n1=Double.parseDouble(textField1.getText());
                    double n2=Double.parseDouble(textField2.getText());
                    double n3=Double.parseDouble(textField3.getText());
                    textField4.setText(""+(n2-n1*n3));
                }
        });
        checkBox1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    textField1.setText(""+((1*20)+(1*5)+(2*10)));
                }
        });
        checkBox2.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    textField1.setText(""+((1*20)+(1*5)+(1*10)+(1*15)));
                }
        });
        checkBox3.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    textField1.setText(""+(int)(random()*50+25));
                }
        });

        //将panel添加至frame
        frame.add(panel1);
        frame.setBounds(0,0, 1000,1000);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);


/*
        JScrollBar scrollBar=new JScrollBar();
        panel.add(scrollBar);
        JTabbedPane tabbedPane=new JTabbedPane();
        panel.add(tabbedPane);
        JRadioButton radioButton=new JRadioButton();
        panel.add(radioButton);
        JList list=new JList();
        panel.add(list);
 */

        //double a1=Double.parseDouble(textField1.getText());


        button3.addActionListener(new ActionListener() {    //将按钮3设置绑定为存储并打印票据的方式
            @Override
            public void actionPerformed(ActionEvent e) {
                Date d=new Date();
                SimpleDateFormat day=new SimpleDateFormat("yy-MM-dd HH:mm:ss");
                double d1=Double.parseDouble(textField1.getText());
                    double d2=Double.parseDouble(textField2.getText());
                    double d3=Double.parseDouble(textField3.getText());
                    double d4=Double.parseDouble(textField4.getText());
                    double d5=Double.parseDouble(textField5.getText());
                    double d6=Double.parseDouble(textField6.getText());
                    double d7=Double.parseDouble(textField7.getText());
                    try{
                    FileWriter fw = new FileWriter("otherout1.txt", true);
                    fw.write("欢迎光临肯德基:"+"\r\n");
                    fw.write("------------------------------"+"\r\n");
                    fw.write("当前订单产生时间为:"+day.format(d)+"\r\n");
                    fw.write("您共点汉堡:"+d5+"个"+"\t"+"应付"+(d5*20)+"元"+"\r\n");
                    fw.write("您共点可乐:"+d6+"瓶"+"\t"+"应付"+(d6*5)+"元"+"\r\n");
                    fw.write("您共点薯条:"+d7+"包"+"\t"+"应付"+(d7*10)+"元"+"\r\n");
                    fw.write("应付价钱:"+d1+"\r\n");
                    fw.write("实付价钱:"+d2+"\r\n");
                    fw.write("由于您拥有"+d3+"折扣的优惠券"+"\r\n");
                    fw.write("您最终应付价格为:"+d4+"\r\n");
                    fw.write("------------------------------"+"\r\n");
                    fw.write("谢谢惠顾!期待您的再次光临!"+"\r\n");
                    fw.close();
                } catch (IOException a){
                    a.printStackTrace();
                }
            }
        });
    }
}

运行截图:不太符合正常审美(啊哈哈哈)!
不太符合正常审美(啊哈哈哈)!
票据打印:在这里插入图片描述

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值