第4次作业类测试代码_078_刘玲志

1.类图:

2.输入合法时,计算结果:

输入不合法时(输入为空,不为数字,长度不在int长度范围内等),提示输入有误,并清空输入框,重新输入:

3.代码:

  1 package Practiseone;
  2
  3 import java.awt.EventQueue;
  4 import java.awt.Font;
  5 import java.awt.Frame;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8
  9 import javax.swing.JButton;
 10 import javax.swing.JFrame;
 11 import javax.swing.JLabel;
 12 import javax.swing.JOptionPane;
 13 import javax.swing.JPanel;
 14 import javax.swing.JTextField;
 15 import javax.swing.border.EmptyBorder;
 16
 17 public class MyJFrame extends JFrame {
 18
 19     private JPanel contentPane;
 20     private JTextField headphone;
 21     private JTextField shell;
 22     private JTextField protctor;
 23     private JTextField Commission;
 24     private JTextField MaxNum;
 25     private JTextField Difference;
 26
 27     /**
 28      * Launch the application.
 29      */
 30     public static void main(String[] args) {
 31         EventQueue.invokeLater(new Runnable() {
 32             public void run() {
 33                 try {
 34                     MyJFrame frame = new MyJFrame();
 35                     frame.setVisible(true);
 36                 } catch (Exception e) {
 37                     e.printStackTrace();
 38                 }
 39             }
 40         });
 41     }
 42
 43     /**
 44      * Create the frame.
 45      */
 46     public MyJFrame() {
 47         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 48         setBounds(100, 100, 450, 300);
 49         contentPane = new JPanel();
 50         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
 51         setContentPane(contentPane);
 52         contentPane.setLayout(null);
 53
 54         JLabel lblNewLabel = new JLabel("手机配件佣金计算程序");
 55         lblNewLabel.setFont(new Font("隶书", Font.PLAIN, 16));
 56         lblNewLabel.setBounds(135, -2, 186, 50);
 57         contentPane.add(lblNewLabel);
 58
 59
 60         JButton btnNewButton = new JButton("OK");
 61         btnNewButton.addActionListener(new ActionListener() {
 62             public void actionPerformed(ActionEvent arg0) {
 63                 if(arg0.getSource()==btnNewButton){
 64                     String headphoneNum = headphone.getText();
 65                     String shellNum = shell.getText();
 66                     String protctorNum = protctor.getText();
 67                     Commission commission = new Commission();
 68                     if (commission.correct(headphoneNum)&&
 69                             commission.correct(shellNum)&&
 70                             commission.correct(protctorNum))
 71                     {
 72                         int headphone = Integer.parseInt(headphoneNum);
 73                         int shell = Integer.parseInt(shellNum);
 74                         int protctor = Integer.parseInt(protctorNum);
 75                         //输出计算佣金
 76                         double result1 = commission.Commission(headphoneNum, shellNum, protctorNum);
 77                         Commission.setText(String.valueOf(result1));
 78                         //输出最大销售量
 79                          String result2 = commission.mostSale(headphone, shell, protctor);
 80                          MaxNum.setText(result2);
 81                          //输出销售数量差
 82                          double result3 = commission.diffSale(headphone, shell, protctor);
 83                          Difference.setText(String.valueOf(result3));
 84                     }else
 85                     {
 86                         JOptionPane.showMessageDialog(null, "输入有误,请重新输入!");
 87                         headphone.setText("");
 88                         shell.setText("");
 89                         protctor.setText("");
 90                     }
 91                     }
 92                 }
 93         });
 94         btnNewButton.setBounds(83, 93, 93, 23);
 95         contentPane.add(btnNewButton);
 96
 97         JButton btnNewButton_1 = new JButton("Cancle");
 98         btnNewButton_1.addActionListener(new ActionListener() {
 99             @Override
100             public void actionPerformed(ActionEvent arg1) {
101                 // TODO Auto-generated method stub
102                 System.exit(0);
103             }
104
105         });
106         btnNewButton_1.setBounds(215, 93, 93, 23);
107         contentPane.add(btnNewButton_1);
108
109         JLabel lblNewLabel_2 = new JLabel("耳机:");
110         lblNewLabel_2.setBounds(22, 55, 54, 15);
111         contentPane.add(lblNewLabel_2);
112
113         JLabel lblNewLabel_3 = new JLabel("手机壳:");
114         lblNewLabel_3.setBounds(137, 55, 54, 15);
115         contentPane.add(lblNewLabel_3);
116
117         JLabel label = new JLabel("贴膜:");
118         label.setBounds(276, 55, 54, 15);
119         contentPane.add(label);
120
121         headphone = new JTextField();
122         headphone.setBounds(54, 54, 66, 21);
123         contentPane.add(headphone);
124         headphone.setColumns(10);
125
126         shell = new JTextField();
127         shell.setBounds(188, 54, 66, 21);
128         contentPane.add(shell);
129         shell.setColumns(10);
130
131         protctor = new JTextField();
132         protctor.setBounds(316, 54, 66, 21);
133         contentPane.add(protctor);
134         protctor.setColumns(10);
135
136         JLabel lblNewLabel_1 = new JLabel("应返还的佣金:");
137         lblNewLabel_1.setBounds(18, 138, 115, 23);
138         contentPane.add(lblNewLabel_1);
139
140         Commission = new JTextField();
141         Commission.setBounds(108, 138, 139, 23);
142         contentPane.add(Commission);
143         Commission.setColumns(10);
144
145         JLabel label_1 = new JLabel("销售额最高的配件是:");
146         label_1.setBounds(17, 179, 153, 23);
147         contentPane.add(label_1);
148
149         MaxNum = new JTextField();
150         MaxNum.setColumns(10);
151         MaxNum.setBounds(137, 176, 139, 23);
152         contentPane.add(MaxNum);
153
154         JLabel label_2 = new JLabel("销售配件最多与最少数量之差:");
155         label_2.setBounds(17, 217, 241, 22);
156         contentPane.add(label_2);
157
158         Difference = new JTextField();
159         Difference.setColumns(10);
160         Difference.setBounds(189, 217, 139, 23);
161         contentPane.add(Difference);
162     }
163 }

 1 import java.util.Arrays;
 2
 3 public class Commission {
 4     public static final int headphonePrice = 80;
 5     public static final int shellPrice = 10;
 6     public static final int protctorPrice = 8;
 7     //判断输入是否符合要求
 8     public boolean correct(String num) {
 9         if("".equals(num)||!(num.matches("[0-9]+"))||num.length()>8||num==null)
10         {
11             return false;
12         }
13         return true;
14     }
15
16     public double Commission(String headphone,String shell,String protctor)
17     {
18         //定义一个变量存储佣金
19         double commission = 0;
20         //计算销售额
21         double salesAmount = headphonePrice*Integer.valueOf(headphone).intValue()
22                 +shellPrice*Integer.valueOf(shell).intValue()
23                 +protctorPrice*Integer.valueOf(protctor).intValue();
24         //判断销售额
25         if (salesAmount<1000&&salesAmount>=0) {
26             commission=salesAmount*0.1;
27         }else if (salesAmount>=1000&&salesAmount<1800) {
28             commission = (salesAmount-1000)*0.15+100;
29         }else if (salesAmount>=1800)
30         {
31             commission = (salesAmount-1800)*0.2+220;
32         }
33         return commission;
34     }
35
36     public String mostSale(int headphone,int shell,int protctor)
37     {
38
39         double headphoneSale = headphone * 80;
40         double shellSale = shell * 10;
41         double protctorSale = protctor * 8;
42         double arrays[] = {headphoneSale,shellSale,protctorSale};
43         Arrays.sort(arrays);
44         double max = arrays[2];
45         String result="";
46         if (max==headphoneSale)
47         {
48             result+="耳机";
49             if (max==shellSale)
50             {
51                 result+="、手机壳";
52             }
53             if(max==protctorSale)
54             {
55                 result+="、手机膜";
56             }
57
58         }else if (max==shellSale)
59         {
60             result+="手机壳";
61             if(max==protctorSale)
62             {
63                 result+="、手机膜";
64             }
65         }else {
66             result+="手机膜";
67         }
68         return result;
69     }
70
71     public static int diffSale(int headphone, int shell, int protector){
72          int arrays[] = {headphone,shell,protector};
73          int result1 = 0;//结果
74          Arrays.sort(arrays);
75          result1 = arrays[2]-arrays[0];
76          return result1;
77
78 }
79 }

时间: 2024-10-08 00:22:36

第4次作业类测试代码_078_刘玲志的相关文章

第4次作业类测试代码+028+刘孝天

一:类图 二:代码:  1:定义接口 1 package jframeTest; 2 /* 3 * @author lxt 4 * @date 2017年5月2日下午4:22:35 5 * @Param 6 */ 7 public interface InteUtil { 8 9 public int perimeter(int a,int b,int c); 10 public float triangleArea(int a,int b,int c); 11 public boolean I

第4次作业类测试代码+101+谢艳敏

类测试代码的具体要求如下: 界面操作说明补充: 点击OK,如果输入有效,进行相应的数值计算:如果数值不满足约束,则弹出错误说明,统一为"输入有误,请重新输入",然后回到初始输入状态. 点击Cancle,表示重置,清空前面的数据,回到初始状态. (2)NextDate函数问题 String  nextdate(int m,int d,int y) 建立界面,至少包含以下元素,但不限于此: 完成上一天方法:String lastDay(int m,int d,int y) ,完成周几的方法

第4次作业类测试代码+105032014166+张珍珍

第4次作业:准备类测试代码 类测试代码的具体要求如下: (1)设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 要求: 1.        画出类图: 2.        完成界面和相应的功能

第4次作业类测试代码+105032014138+牟平

类测试代码的具体要求如下: 设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 一.类图 二.功能界面 1 2 3 4 5 6 三.代码: import java.awt.EventQueue;

第4次作业类测试代码+105032014125+洪诗育

类测试代码的具体要求如下: 界面操作说明补充: 点击OK,如果输入有效,进行相应的数值计算:如果数值不满足约束,则弹出错误说明,统一为"输入有误,请重新输入",然后回到初始输入状态. 点击Cancle,表示重置,清空前面的数据,回到初始状态. NextDate函数问题 String  nextdate(int m,int d,int y) 建立界面,至少包含以下元素,但不限于此: 完成上一天方法:String lastDay(int m,int d,int y) ,完成周几的方法:in

第4次作业类测试代码+074+林盼皇

(友情提示:代码部分较多,为了便于测试,项目码源已上传至链接:http://pan.baidu.com/s/1pLscU3T 密码:ug8i)  界面: 1.类图 2.界面和相应的功能. 本次实验是在原来的CalDate日期计算类的基础上,添加了两个方法int weekDay(int m,int d,int y)与String lastDate(int m,int d,int y),此外还编写了GUInterface界面.  a.实现lastDate 1 public String lastDa

第4次作业类测试代码+098+吴超

一.类图 二.代码与界面 简单的分层思想,代码目录如下: 计算日期的业务类操作代码:printDate.java;具体包括如下方法. 2.1  增加计算星期几的方法weekDay(),利用蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1: 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月

实验二_078_刘玲志

一.实验目的 掌握基于覆盖理论与基本路径的基本白盒测试方法和实践 二.实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结. 三.实验内容 根据各位同学自己的被测程序,分别作出各类白盒测试技术的用例设计和相应的Junit脚本. 所有的覆盖的技术:语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.组合覆盖.路径覆盖,基本路径测试方法. 包括的内容有: 1) 被测原代码 1 import java.util.Scanner; 2 public c

第4次作业类测试代码+085+潘亭

一.类图设计如下 二.界面如下 功能演示 1.输入错误 2.不构成三角形 3.一般三角形 面积默认保留两位小数 4.直角三角形 5.等腰三角形 6.等边三角形 7.cancel演示 防止程序崩溃,默认重置为0 三.代码部分 1.Triangle类 1 package visualTriangle; 2 3 public class Triangle { 4 5 //judge the fields 6 public static boolean Check(int num) 7 { 8 if(n