第4次作业类测试代码+105032014162+张倩

一、类图

 

 

 

二、代码

  1 package demo04;
  2 import java.awt.event.ActionEvent;
  3 import java.awt.event.ActionListener;
  4 import java.awt.Color;
  5 import java.awt.Font;
  6 import javax.swing.JFrame;
  7 import javax.swing.JLabel;
  8 import javax.swing.JButton;
  9 import javax.swing.JTextField;
 10 import javax.swing.JOptionPane;
 11 public class caculate {
 12     public static void main(String args[]){
 13         JFrame frame = new JFrame("配件销售计算程序"); 
 14         frame.setLayout(null);
 15         //建立标签对象
 16         JLabel title = new JLabel("请输入销售数量:"); 
 17         JLabel headphone = new JLabel("耳机:"); 
 18         JLabel shell = new JLabel("手机壳:"); 
 19         JLabel protector = new JLabel("贴膜:"); 
 20         JLabel commission = new JLabel("应返还的佣金:"); 
 21         JLabel mostSale = new JLabel("销售额最高的配件是:"); 
 22         JLabel diffSale = new JLabel("销售配件最多与最少数量相差:");    
 23         //建立单行文本框
 24         JTextField t_headphone = new JTextField();
 25         JTextField t_shell = new JTextField();
 26         JTextField t_protector = new JTextField();
 27         JTextField t_commission = new JTextField();
 28         JTextField t_mostSale = new JTextField();
 29         JTextField t_diffSale = new JTextField();        
 30         //建立按钮对象
 31         JButton submit = new JButton("确定"); 
 32         JButton cancel = new JButton("清除"); 
 33         
 34         //使用匿名内部类为“确定”按钮添加监听事件
 35         submit.addActionListener(new ActionListener() 
 36         {        
 37             @Override
 38             public void actionPerformed(ActionEvent arg0) 
 39             { 
 40                 int headphone = Commission.changeToInt(t_headphone.getText()); 
 41                 if(headphone < 0) 
 42                 { 
 43                     JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "出错", JOptionPane.ERROR_MESSAGE); 
 44                     return; 
 45                 } 
 46                 int protector=Commission.changeToInt(t_protector.getText()); 
 47                 if(protector < 0)
 48                 { 
 49                     JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "出错", JOptionPane.ERROR_MESSAGE); 
 50                     return; 
 51                 } 
 52                 int shell=Commission.changeToInt(t_shell.getText()); 
 53                 if(shell < 0) 
 54                 { 
 55                     JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "出错", JOptionPane.ERROR_MESSAGE); 
 56                     return; 
 57                 } 
 58                 float returnAns=Commission.commission(headphone, shell, protector); 
 59                 String returnString=String.format("%.2f元", returnAns); 
 60                 t_commission.setText(returnString); 
 61                 String maxAns=Commission.mostSale(headphone, shell, protector); 
 62                 t_mostSale.setText(maxAns); 
 63                 int differenceAns=Commission.diffSale(headphone, shell, protector); 
 64                 String differenceString=String.format("%d", differenceAns); 
 65                 t_diffSale.setText(differenceString); 
 66             } 
 67 
 68         });
 69         //使用匿名内部类为“清除”按钮添加监听事件
 70         cancel.addActionListener(new ActionListener() 
 71         {            
 72             @Override
 73             public void actionPerformed(ActionEvent arg0)
 74             { 
 75                 t_headphone.setText(""); 
 76                 t_protector.setText(""); 
 77                 t_shell.setText(""); 
 78                 t_commission.setText(""); 
 79                 t_mostSale.setText(""); 
 80                 t_diffSale.setText(""); 
 81             } 
 82         });
 83         //设置标签大小及位置
 84         Font ft = new Font("宋体",Font.BOLD,24);
 85         title.setFont(ft);
 86         title.setBounds(62, 62, 250, 25);
 87         headphone.setFont(ft);
 88         headphone.setBounds(80, 124, 300, 25);
 89         shell.setFont(ft);
 90         shell.setBounds(210, 124, 250, 25);
 91         protector.setFont(ft);
 92         protector.setBounds(380, 124, 155, 25);
 93         commission.setFont(ft);
 94         commission.setBounds(62, 248, 500, 25);
 95         mostSale.setFont(ft);
 96         mostSale.setBounds(62, 310, 900, 25);
 97         diffSale.setFont(ft);
 98         diffSale.setBounds(62, 372, 1000, 25);
 99         //设置文字大小及位置
100         Font fft=new Font("宋体",Font.BOLD,14);
101         t_headphone.setBounds(150, 124, 50, 25);
102         t_shell.setBounds(310, 124, 50, 25);
103         t_protector.setBounds(450, 124, 50, 25);
104         t_commission.setBounds(230, 248, 200, 25);
105         t_commission.setFont(fft);
106         t_commission.setForeground(Color.black);//设置字体颜色
107         t_mostSale.setBounds(300, 310, 200, 25);
108         t_mostSale.setFont(fft);
109         t_mostSale.setForeground(Color.black);
110         t_diffSale.setBounds(400, 372, 150, 25);
111         t_diffSale.setFont(fft);
112         t_diffSale.setForeground(Color.black);
113         //设置按钮位置及大小
114         submit.setBounds(180, 187, 62, 31);
115         cancel.setBounds(320, 187, 62, 31);        
116         //把所有组件添加到frame中    
117         frame.add(title);frame.add(headphone);frame.add(shell);frame.add(protector);
118         frame.add(commission);frame.add(mostSale);frame.add(diffSale);
119         frame.add(t_headphone);frame.add(t_shell);frame.add(t_protector);
120         frame.add(t_commission);frame.add(t_mostSale);frame.add(t_diffSale);
121         frame.add(submit);frame.add(cancel);
122         //设置显示画布大小及显示的位置
123         frame.setSize(600, 490);
124         frame.setLocation(300,300);
125         frame.setVisible(true);
126     }
127 
128 }
package demo04;

public class Commission {
    //判断输入的值是否符合要求 
    public static int changeToInt(String number)
    { 
        int result=0; 
        try{ 
            result = Integer.parseInt(number); 
        } 
        catch (Exception e){ 
            result=-1; 
        } 
        return result; 
    }
    
    //计算应该返还的佣金
    public static float commission(int headphone,int shell,int protector)
    {
        int all = headphone*80+shell*10+protector*8; 
        float result = 0;
        if(headphone>=0&&shell>=0&&protector>=0)
        {
            if(all<1000&&all>=0)
            { 
                result = (float) (all*0.1);
            }
            else if(all>=1000 && all<=1800)
            { 
                result = (float) (100+(all-1000)*0.15);
            }
            else if(all>1800)
            { 
                result = (float) (100+800*0.15+(all-1800)*0.2);
            } 
        }
        return result;
        
    }
      
    //计算销售额最高的配件 
    public static String mostSale(int headphone, int shell, int protector)
    { 
        int headphoneSales = headphone * 80; 
        int shellSales = shell * 10; 
        int protectorSales = protector * 8; 
        String result=""; 
        if(headphoneSales > shellSales && headphoneSales > protectorSales)
        { 
            result+="耳机"; 
        }
        
        if(shellSales > headphoneSales && shellSales > protectorSales)
        {  
                result+="手机壳"; 
        } 
        if(protectorSales > headphoneSales && protectorSales > shellSales)
        { 
                result+="贴膜";
        } 
        if(headphoneSales==shellSales&&shellSales==protectorSales)
        {
            result+="三种配件销售额一样";
        }
        if(headphoneSales==shellSales&&headphoneSales>protectorSales)
        {
            result+="耳机和手机壳";
        }
        if(headphoneSales==protector&&headphoneSales>shellSales)
        {
            result+="耳机和贴膜";
        }
        if(shellSales==protectorSales&&shellSales>headphoneSales)
        {
            result+="手机壳和贴膜";
        }
        return result; 
    }
    
    //销售配件最多与最少数量相差: 
    public static int diffSale(int headphone, int shell, int protector){ 
        int max=Math.max(Math.max(headphone, shell), protector); 
        int min=Math.min(Math.min(headphone, shell), protector); 
        return max-min; 
    } 

}

三、界面

 

posted @ 2017-05-01 23:33  Qian_Z  阅读(331)  评论(0编辑  收藏  举报