⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 超市管理系统的主界面的代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                int location = marketCargo.find(cargoId);
                Cargo cargo=marketCargo.getCargoList().get(location);
                consumerCargo.add(new Cargo(cargoId,cargo.getName(),cargo.getPriceNormal(),cargo.getPriceVIP(),1));                
                jTextArea1.setText("");
                showInfo();
                countMoney();
                jTextField2.setText((new DecimalFormat("##########.#")).format(total));
                jTextField1.setText("");
            }
        }
    }//GEN-LAST:event_jTextField1KeyPressed
    /*随时跟踪用户击键或输入的动作,准确更新界面中jtextarea中的信息
     */
    private void showInfo(){
        for (int i = 0; i < consumerCargo.size(); i++) {
            Cargo cargo=consumerCargo.get(i);
            jTextArea1.insert("商品" + (i + 1) + " 编号:"
                    + cargo.getId() + " 名称:"
                    + cargo.getName() + " 普通价格:"
                    + cargo.getPriceNormal() + "元  会员价格:"
                    + cargo.getPriceVIP()+"元 "
                    + cargo.getNumber() + " 个" + "\n", 0);
        }
    }
    private int find(String cargoId){
        int account=consumerCargo.size();
	for(int i=0;i<account;i++){
            Cargo cargo=consumerCargo.get(i);
            if(cargo.getId().equals(cargoId))
                return i;
        }
	return -1;
    }
    private void countMoney(){
        total=0;
        if(isVIP==false)
            for(int i=0;i<consumerCargo.size();i++){
                Cargo cargo=consumerCargo.get(i);
                total+=cargo.getPriceNormal()*cargo.getNumber();
            }           
        else
            for(int i=0;i<consumerCargo.size();i++){
                Cargo cargo=consumerCargo.get(i);
                total+=cargo.getPriceVIP()*cargo.getNumber();
            }
    }
    /*客户付帐成功,销售员点击“结帐”按钮后,运行setBest()函数,
     *通过返回客户的值repay来计算返还的最佳组合,并显示到界面相应的位置处
     */
    public void setBest(){
	String	bestCombination="";
	int hundred=(int)repay/100;
	if(hundred!=0)
            bestCombination+=Integer.valueOf(hundred).toString()+"个100元 ";
	double last100=repay%100;
        int fifty=(int)last100/50;
	if(fifty!=0)
            bestCombination+=Integer.valueOf(fifty).toString()+"个50元 ";
	double last50=last100%50;
        int twenty=(int)last50/20;
	if(twenty!=0)
            bestCombination+=Integer.valueOf(twenty).toString()+"个20元 ";
	double last20=last50%20;
        int ten=(int)last20/10;
	if(ten!=0)
            bestCombination+=Integer.valueOf(ten).toString()+"个10元 ";
	double last10=last20%10;
        int five=(int)last10/5;
        if(five!=0)
	    bestCombination+=Integer.valueOf(five).toString()+"个5元 ";
        double last5=last10%5;
	int two=(int)last5/2;
        if(two!=0)
	    bestCombination+=Integer.valueOf(two).toString()+"个2元 ";
        double last2=last5%2;
	int one=(int)last2/1;
        if(one!=0)
	    bestCombination+=Integer.valueOf(one).toString()+"个1元 ";
        double last1=last2%1;
	int fiveD=(int)(last1*10)/5;
        if(fiveD!=0)
	    bestCombination+=Integer.valueOf(fiveD).toString()+"个5角 ";
        int oneD=(int)((last1*10)%5)/1;
	if(oneD!=0)
            bestCombination=bestCombination+Integer.valueOf(oneD).toString()+"个1角 ";
	jTextField3.setText(bestCombination);
    }
    /*销售员点击结帐按钮后,若结帐成功,将自动执行save()函数,帐单以文本形式(hh-mm-ss.txt)按路径:帐单/年/月/日 保存
     *同时,本次交易的总额将增加到帐单/总销售量.txt,帐单/年/年销售量.txt,帐单/年/月/月销售量.txt中记录
     *总销售额,年销售额,月销售额的数据中,若上述的路径有不存在的,将自行新建
     */
    private void save(){
        try
        {
            String date=DateFormat.getDateInstance().format(new Date());
            StringTokenizer s=new StringTokenizer(date,"-");
            String year=s.nextToken();
            String month=s.nextToken();
            String day=s.nextToken();
            String time=DateFormat.getTimeInstance().format(new Date());
            String fileName="帐单"+File.separator+year+File.separator+month+File.separator+day;
            File f=new File(fileName);
            f.mkdirs();
            if(!(new File("帐单"+File.separator+year+File.separator+month+File.separator+"月销售量.txt")).exists()){
                Writer writer=new FileWriter("帐单"+File.separator+year+File.separator+month+File.separator+"月销售量.txt");
                PrintWriter print=new PrintWriter(writer);
                print.print("");
            }
            if(!(new File("帐单"+File.separator+year+File.separator+"年销售量.txt")).exists()){
                Writer writer=new FileWriter("帐单"+File.separator+year+File.separator+"年销售量.txt");
                PrintWriter print=new PrintWriter(writer);
                print.print("");
            }
            if(!(new File("帐单"+File.separator+"总销售量.txt")).exists()){
                Writer writer=new FileWriter("帐单"+File.separator+"总销售量.txt");
                PrintWriter print=new PrintWriter(writer);
                print.print("");
            }           
            Writer fw=new FileWriter(fileName+File.separator+time.replace(':','-')+".txt");            
            BufferedWriter bw=new BufferedWriter(fw);
            PrintWriter pw=new PrintWriter(bw);
            if(isVIP==true)
                pw.println("会员结帐:"+(new DecimalFormat("##########.#")).format(total));
            else
                pw.println("普通结帐:"+(new DecimalFormat("##########.#")).format(total));
            for(int i=0;i<consumerCargo.size();i++)
            {         
                Cargo cargo=consumerCargo.get(i);
                pw.println(cargo.getId()+"  "+cargo.getName()+"  "+cargo.getPriceNormal()+"  "
                        +cargo.getPriceVIP()+"  "+cargo.getNumber()+"个");
            }     
            pw.close();
            
            Reader fr1=new FileReader("帐单"+File.separator+year+File.separator+month+File.separator+"月销售量.txt");
            BufferedReader br1=new BufferedReader(fr1);
            String monthSub=br1.readLine();
            double monthRead;
            if(monthSub!=""&&monthSub!=null)
                monthRead=Double.parseDouble(monthSub.substring(5));           
            else 
                monthRead=0;
            Writer fw1=new FileWriter("帐单"+File.separator+year+File.separator+month+File.separator+"月销售量.txt");
            BufferedWriter bw1=new BufferedWriter(fw1);
            PrintWriter pw1=new PrintWriter(bw1);
            pw1.println("月销售量:"+(new DecimalFormat("##########.#")).format(monthRead+total));
            fr1.close();br1.close();pw1.close();
            Reader fr2=new FileReader("帐单"+File.separator+year+File.separator+"年销售量.txt");
            BufferedReader br2=new BufferedReader(fr2);   
            String yearSub=br2.readLine();
            double yearRead;
            if(yearSub!=""&&yearSub!=null)
                yearRead=Double.parseDouble(yearSub.substring(5));           
            else 
                yearRead=0;            
            Writer fw2=new FileWriter("帐单"+File.separator+year+File.separator+"年销售量.txt");
            BufferedWriter bw2=new BufferedWriter(fw2);
            PrintWriter pw2=new PrintWriter(bw2);
            pw2.println("年销售量:"+(new DecimalFormat("##########.#")).format(yearRead+total));
            fr2.close();br2.close();pw2.close();
            Reader fr3=new FileReader("帐单"+File.separator+"总销售量.txt");
            BufferedReader br3=new BufferedReader(fr3);
            String totalSub=br3.readLine();
            double totalRead;
            if(totalSub!=""&&totalSub!=null)
                totalRead=Double.parseDouble(totalSub.substring(5));           
            else 
                totalRead=0;
            Writer fw3=new FileWriter("帐单"+File.separator+"总销售量.txt");
            BufferedWriter bw3=new BufferedWriter(fw3);
            PrintWriter pw3=new PrintWriter(bw3);
            pw3.println("总销售量:"+(new DecimalFormat("##########.#")).format(totalRead+total));
            fr3.close();br3.close();pw3.close();
        }
        catch(IOException ie)   
        {
            System.err.println(ie.getMessage());
        }                                     
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }
    
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    // 变量声明结束//GEN-END:variables
    private CargoManagement marketCargo=new CargoManagement();   //新建一个管理超市货物的类
    private ArrayList<Cargo> consumerCargo;    //用作顾客的购物单
    double total;              //顾客应付的钱
    double pay;                //顾客付的钱
    double repay=0;            //销售员返还顾客的钱
    boolean isVIP=false;      //跟踪判断是否会员
    boolean isChecked=false;  //跟踪判断是否已结帐
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -