♣ 第一阶段目标

    能把计算的功能封装起来,通过测试程序API接口测试其简单的加法功能。

♣ 第二阶段目标

    通过测试程序API接口测试其简单的加法、减法、乘法、除法功能。并能看到代码覆盖率。

♣ 第三阶段目标

    通过测试程序API接口测试对于各种参数的支持。并能看到代码覆盖率。

♣ 第四阶段目标

    通过增量修改改进程序,完成对各种错误情况的处理

 


 

开发环境: Eclipse 

结对伙伴:

 

姓名 学号 博客地址
余雅诗(领航员) 201306114453 http://www.cnblogs.com/ys1101/
方俊杰(驾驶员) 201306114417 http://www.cnblogs.com/imfjj/

 

源程序:

  1 package operation;
  2 
  3 import java.awt.Dimension;
  4 
  5 public class Test implements ActionListener, KeyListener {
  6 
  7     private JFrame frame;
  8     private JTextField textField;
  9     private JTextField textField_1;
 10     private JTextField textField_2;
 11     private JTextField textField_3;
 12     private JTextField textField_4;
 13     private JTextField textField_5;
 14     private JTextField textField_6;
 15     private JTextField textField_7;
 16     private JButton btnNewButton;
 17     private JButton btnNewButton_1;
 18     private  DecimalFormat df;
 19     private Random r=new Random();
 20 
 21     private int five=0;//判断运算符
 22     private static double a;
 23     private static double b;
 24     private JTextField textField_8;
 25 
 26     /**
 27      * Launch the application.
 28      */
 29     public static void main(String[] args) {
 30         EventQueue.invokeLater(new Runnable() {
 31             public void run() {
 32                 try {
 33                     Test window = new Test();
 34                     window.frame.setVisible(true);
 35                 } catch (Exception e) {
 36                     e.printStackTrace();
 37                 }
 38             }
 39         });
 40     }
 41 
 42     /**
 43      * Create the application.
 44      */
 45     public Test() {
 46         initialize();
 47     }
 48 
 49     /**
 50      * Initialize the contents of the frame.
 51      */
 52     public static boolean isNumeric(String number) {
 53           for (int i = number.length(); --i >= 0;) {
 54              
 55               if (!Character.isDigit(number.charAt(i))&&number.charAt(i)!='.') {
 56                   return false;
 57               }
 58           }
 59           return true;
 60         }
 61     private void initialize() {
 62         
 63          df=new DecimalFormat(".##");//保留两位
 64          five=r.nextInt(3);
 65          a=r.nextDouble()*100;
 66          b=r.nextDouble()*100;
 67         
 68         String as=df.format(a);
 69         a=Double.parseDouble(as);
 70         String ab=df.format(b);
 71         b=Double.parseDouble(ab);
 72         frame = new JFrame();
 73         frame.setTitle("\u5C0F\u5B66\u751F\u7B80\u6613\u56DB\u5219\u8FD0\u7B97--\uFF08\u5355\u5143\u6D4B\u8BD5\u7BC7\uFF09");
 74         Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();
 75         frame.setSize(500, 300 );
 76         frame.setLocation((screenSize.width-500 )/2, (screenSize.height-500)/2);
 77         frame.getContentPane().setLayout(null);
 78         
 79         JLabel label = new JLabel("\u9898\u76EE");
 80         label.setBounds(10, 10, 54, 15);
 81         frame.getContentPane().add(label);
 82         
 83         textField = new JTextField();
 84         textField.setBounds(46, 7, 66, 21);
 85         frame.getContentPane().add(textField);
 86         textField.setColumns(10);
 87         textField.setText(String.valueOf(a));
 88         
 89         textField_1 = new JTextField();
 90         textField_1.setBounds(139, 7, 33, 21);
 91         frame.getContentPane().add(textField_1);
 92         textField_1.setColumns(10);
 93         if(five==0)
 94         textField_1.setText("+");
 95         else if(five==1)
 96             textField_1.setText("-");
 97         else if(five==2)
 98             textField_1.setText("*");
 99         else if(five==3)
100                 textField_1.setText("/");//随机产生第一次进去的运算符号
101         
102         textField_2 = new JTextField();
103         textField_2.setBounds(207, 7, 66, 21);
104         frame.getContentPane().add(textField_2);
105         textField_2.setColumns(10);
106         textField_2.setText(String.valueOf(b));
107         
108         JLabel lblNewLabel = new JLabel("    =");
109         lblNewLabel.setBounds(283, 10, 31, 15);
110         frame.getContentPane().add(lblNewLabel);
111         
112         textField_3 = new JTextField();
113         textField_3.setBounds(322, 7, 66, 21);
114         frame.getContentPane().add(textField_3);
115         textField_3.setColumns(10);
116         
117         JLabel label_1 = new JLabel("\u7B54\u6848");
118         label_1.setBounds(10, 52, 54, 15);
119         frame.getContentPane().add(label_1);
120         
121         textField_4 = new JTextField();
122         textField_4.setEditable(false);
123         textField_4.setBounds(46, 49, 66, 21);
124         frame.getContentPane().add(textField_4);
125         textField_4.setColumns(10);
126         
127         textField_5 = new JTextField();
128         textField_5.setEditable(false);
129         textField_5.setBounds(140, 49, 33, 21);
130         frame.getContentPane().add(textField_5);
131         textField_5.setColumns(10);
132         
133         textField_6 = new JTextField();
134         textField_6.setEditable(false);
135         textField_6.setBounds(207, 49, 66, 21);
136         frame.getContentPane().add(textField_6);
137         textField_6.setColumns(10);
138         
139         JLabel lblNewLabel_1 = new JLabel("    =");
140         lblNewLabel_1.setBounds(283, 52, 31, 15);
141         frame.getContentPane().add(lblNewLabel_1);
142         
143         textField_7 = new JTextField();
144         textField_7.setEditable(false);
145         textField_7.setBounds(322, 49, 66, 21);
146         frame.getContentPane().add(textField_7);
147         textField_7.setColumns(10);
148         
149         btnNewButton = new JButton("\u9000\u51FA");
150         btnNewButton.setBounds(173, 211, 93, 23);
151         frame.getContentPane().add(btnNewButton);
152         
153         btnNewButton_1 = new JButton("\u4E0B\u4E00\u9898");
154         btnNewButton_1.setBounds(398, 6, 76, 23);
155         frame.getContentPane().add(btnNewButton_1);
156         btnNewButton.addActionListener(this);
157         
158         JLabel label_2 = new JLabel("\u60C5\u51B5");
159         label_2.setBounds(10, 106, 54, 15);
160         frame.getContentPane().add(label_2);
161         
162         textField_8 = new JTextField();
163         textField_8.setEditable(false);
164         textField_8.setBounds(46, 103, 428, 21);
165         frame.getContentPane().add(textField_8);
166         textField_8.setColumns(10);
167         btnNewButton_1.addActionListener(this);
168         frame.setResizable(false);
169     }
170 
171     
172 
173     @Override
174     public void keyPressed(KeyEvent arg0) {
175         // TODO Auto-generated method stub
176     
177         if (arg0.getKeyCode() == KeyEvent.VK_ENTER) 
178         {
179             textField_4.setText(textField.getText());
180             textField_5.setText(textField_1.getText());
181             textField_6.setText(textField_2.getText());
182         }
183     }
184 
185     @Override
186     public void keyReleased(KeyEvent e) {
187         // TODO Auto-generated method stub
188         
189     }
190     @Override
191     public void keyTyped(KeyEvent e) {
192         // TODO Auto-generated method stub
193         
194         
195     }
196     @Override
197     public void actionPerformed(ActionEvent e) {
198         // TODO Auto-generated method stub
199         if(e.getSource()==btnNewButton_1)
200         {
201             textField_4.setText(textField.getText());
202             textField_5.setText(textField_1.getText());
203             textField_6.setText(textField_2.getText());
204             
205             if(textField_1.getText().equals("+")||textField_1.getText().equals("-")||textField_1.getText().equals("*")||textField_1.getText().equals("/"))
206             {
207                 if(textField_3.getText().equals(""))
208                 {
209                     textField_8.setText("答案为空");
210                     textField_7.setText(null);
211                     textField_4.setText(null);
212                     textField_5.setText(null);
213                     textField_6.setText(null);
214                 }
215                 else
216                 {
217                     if(textField_1.getText().equals("+"))
218                     {
219                         Additive add=new Additive(Double.parseDouble(textField.getText()),Double.parseDouble(textField_2.getText()));//构造对象
220                         double c=add.Get_AaddB();
221                         String cs=df.format(c);
222                         c=Double.parseDouble(cs);
223                         System.out.print("cs="+cs+"c="+c);
224                         textField_7.setText(String.valueOf(c));
225                     }
226                     else if(textField_1.getText().equals("-"))
227                     {
228                          Subduction sub=new Subduction(Double.parseDouble(textField.getText()),Double.parseDouble(textField_2.getText()));
229                         
230                         double c=sub.Get_AsbuB();
231                         String cs=df.format(c);
232                         c=Double.parseDouble(cs);
233                     
234                         textField_7.setText(String.valueOf(c));
235                     }
236                     else if(textField_1.getText().equals("*"))
237                     {
238                          Multiplication mul=new Multiplication(Double.parseDouble(textField.getText()),Double.parseDouble(textField_2.getText()));
239                         
240                         double c=mul.Get_AmulB();
241                         String cs=df.format(c);
242                         c=Double.parseDouble(cs);
243                         textField_7.setText(String.valueOf(c));
244                     }
245                     else if(textField_1.getText().equals("/"))
246                     {
247                          Division div=new Division(Double.parseDouble(textField.getText()),Double.parseDouble(textField_2.getText()));
248                         if(div.Get_b()!=0)
249                         {
250                         double c=div.Get_AmulB();
251                         String cs=df.format(c);
252                         c=Double.parseDouble(cs);
253                             
254                             textField_7.setText(String.valueOf(c));
255                         
256                         }
257                         
258                         else
259                         {
260                         
261                             textField_8.setText("分母不能为"+0+"\n");
262                             textField_7.setText(null);
263                             textField_4.setText(null);
264                             textField_5.setText(null);
265                             textField_6.setText(null);
266                         }
267                             
268                     }
269                     //if(!textField_1.getText().equals("/"))
270                     if(this.isNumeric(textField_3.getText()))
271                     {
272                         
273                         if(Double.parseDouble(textField_3.getText())==Double.parseDouble(textField_7.getText()))
274                         {
275                         textField_8.setText("答对了");
276                         }    
277                         else
278                         textField_8.setText("答错了");                    
279                     }
280                     else
281                     textField_8.setText("答案无效");
282                     
283                 }
284                 
285                 
286             
287             }
288             else
289             {
290                 textField_8.setText("符号无效");
291                 textField_7.setText(null);
292                 textField_4.setText(null);
293                 textField_5.setText(null);
294                 textField_6.setText(null);
295             }
296             
297             
298             
299             five=r.nextInt(4);//重新设置运算
300              a=r.nextDouble()*100;
301              b=r.nextDouble()*100;
302             
303             String as=df.format(a);
304             a=Double.parseDouble(as);
305             String ab=df.format(b);
306             b=Double.parseDouble(ab);
307             textField.setText(String.valueOf(a));
308             if(five==0)
309                 textField_1.setText("+");
310                 else if(five==1)
311                     textField_1.setText("-");
312                 else if(five==2)
313                     textField_1.setText("*");
314                 else if(five==3)
315                         textField_1.setText("/");//随机产生第一次进去的运算符号
316 
317             textField_2.setText(String.valueOf(b));
318             
319         
320                 
321             textField_3.setText(null);
322                 
323         }
324         else if(e.getSource()==btnNewButton)
325         {
326             System.exit(0);
327         }
328         
329     }
330     
331 }
Test

相关文章: