结对作业(11陈梓仪,21林庆光) 四则运算
由于这次作业是用结对模式完成,因此我选择了同组成员21林庆光同学组成一个队伍(博客地址http://www.cnblogs.com/guangge/)。我们这次的代码是在Eclipse环境下调试的,这次四则运算在原有作业的基础上进行了拓展,拓展的4个方向分别是:
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
- 用户答题结束以后,程序可以显示用户答题所用的时间
- 程序可以出单个整数阶乘的题目:如:4!=24
- 程序可以设置皮肤功能,可以改变界面的颜色即可。
这次完成作业的过程中,我们运用了java 中WINDOWS building工具来制作界面,这个工作主要是由林庆光同学完成的,而同伴也完成了皮肤功能 ,而我则主要负责完成剩下的三个拓展。当然在编程的过程中遇到了各种各样的难题,我们通过网上百度,以及询问同学将其一一解决 。比如“用户答题结束以后,程序可以显示用户答题所用的时间”
这个功能,我们就完全没有方向,在百度的情况下才将问题解决。
这次结对编程我们收获良多,体会到结对编程时的高效和快捷,以及两人合作时思想碰撞的火花,当然互相之间也会争执,不过这样才会有收获,提高自己的编程能力,领略到软件工程的编程思想。以下是我们的源程序代码:
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.math.*; public class YUNSUAN { private JFrame frame; private JTextField textField; private JTextField textField_1; private JTextField textField_2; public int d; public int h; public int f=0; public int g=0; public int a; public int b; public int c; public int sum; private JTextField textField_3; public long startMili; public long endMili; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { YUNSUAN window = new YUNSUAN(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public YUNSUAN() { initialize(); } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame("四则运算"); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); frame.setVisible(true); final JPanel panel = new JPanel(); panel.setBounds(0, 0, 434, 262); frame.getContentPane().add(panel); panel.setLayout(null); //panel.setBackground(Color.red); JButton button = new JButton("\u5F00\u59CB"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent o) { c=(int)(Math.random()*5)+1; a=(int)(Math.random()*(-200))+100; b=(int)(Math.random()*(-200))+100; f=(int)(Math.random()*10)+1; startMili=System.currentTimeMillis(); switch(c) { case 1: { d=a+b; if(a<0 && b>0) { textField.setText("("+a+")"+"+"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"+"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"+"+"("+b+")"+"="); } else{ textField.setText(a+"+"+b+"="); } // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } case 2: { d=a-b; if(a<0 && b>0) { textField.setText("("+a+")"+"-"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"-"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"-"+"("+b+")"+"="); } else{ textField.setText(a+"-"+b+"="); } // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } case 3: { d=a*b; if(a<0 && b>0) { textField.setText("("+a+")"+"*"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"*"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"*"+"("+b+")"+"="); } else{ textField.setText(a+"*"+b+"="); } // h=Integer.parseInt(textField_1.getText()); //h=Double.parseDouble(textField_1.getText()); break; } case 4: { d=a/b; System.out.print(d); if(a<0 && b>0) { textField.setText("("+a+")"+"/"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"/"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"/"+"("+b+")"+"="); } else{ textField.setText(a+"/"+b+"="); } // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } case 5: { sum=1; for(int i=1;i<=f;i++) { sum=sum*i; } d=sum; textField.setText(f+"!"+"="); // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } } } }); button.setBounds(166, 22, 93, 23); panel.add(button); JLabel label = new JLabel("\u9898\u76EE"); label.setBounds(51, 61, 54, 15); panel.add(label); textField = new JTextField(); textField.setBounds(119, 57, 220, 23); panel.add(textField); textField.setColumns(100); JLabel label_1 = new JLabel("\u7528\u6237\u8F93\u5165"); label_1.setBounds(51, 101, 54, 15); panel.add(label_1); textField_1 = new JTextField(); textField_1.setBounds(119, 98, 220, 18); panel.add(textField_1); textField_1.setColumns(100); JLabel label_2 = new JLabel("\u53CD\u9988\u4FE1\u606F"); label_2.setBounds(51, 140, 54, 15); panel.add(label_2); textField_2 = new JTextField(); textField_2.setBounds(119, 137, 220, 23); panel.add(textField_2); textField_2.setColumns(100); JButton btnNewButton = new JButton("\u786E\u5B9A"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent o) { endMili=System.currentTimeMillis(); h=Integer.parseInt(textField_1.getText()); if(d==h) { textField_2.setText("恭喜你答对了"); textField_3.setText("一共耗时"+(endMili-startMili)+"毫秒"); } else { textField_2.setText("很抱歉,正确答案是"+d); textField_3.setText("一共耗时"+(endMili-startMili)+"毫秒"); } } }); btnNewButton.setBounds(349, 97, 61, 23); panel.add(btnNewButton); JLabel label_3 = new JLabel("\u8017\u65F6"); label_3.setBounds(51, 172, 54, 15); panel.add(label_3); textField_3 = new JTextField(); textField_3.setBounds(119, 170, 220, 23); panel.add(textField_3); textField_3.setColumns(10); JButton btnNewButton_1 = new JButton("\u7EE7\u7EED"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { c=(int)(Math.random()*5)+1; a=(int)(Math.random()*(-200))+100; b=(int)(Math.random()*(-200))+100; f=(int)(Math.random()*10)+1; startMili=System.currentTimeMillis(); switch(c) { case 1: { d=a+b; if(a<0 && b>0) { textField.setText("("+a+")"+"+"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"+"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"+"+"("+b+")"+"="); } else{ textField.setText(a+"+"+b+"="); } // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } case 2: { d=a-b; if(a<0 && b>0) { textField.setText("("+a+")"+"-"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"-"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"-"+"("+b+")"+"="); } else{ textField.setText(a+"-"+b+"="); } // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } case 3: { d=a*b; if(a<0 && b>0) { textField.setText("("+a+")"+"*"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"*"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"*"+"("+b+")"+"="); } else{ textField.setText(a+"*"+b+"="); } // h=Integer.parseInt(textField_1.getText()); //h=Double.parseDouble(textField_1.getText()); break; } case 4: { d=a/b; if(a<0 && b>0) { textField.setText("("+a+")"+"/"+b+"="); } else if(a<0 && b<0) { textField.setText("("+a+")"+"/"+"("+b+")"+"="); } else if(a>0 && b<0) { textField.setText(a+"/"+"("+b+")"+"="); } else{ textField.setText(a+"/"+b+"="); } // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } case 5: { sum=1; for(int i=1;i<=f;i++) { sum=sum*i; } d=sum; textField.setText(f+"!"+"="); // h=Integer.parseInt(textField_1.getText()); // h=Double.parseDouble(textField_1.getText()); break; } } textField_1.setText(""); textField_2.setText(""); textField_3.setText(""); } }); btnNewButton_1.setBounds(349, 137, 61, 23); panel.add(btnNewButton_1); JButton button_1 = new JButton("\u8BBE\u7F6E\u80CC\u666F\u989C\u8272"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { g=(int)(Math.random()*5)+1; switch(g) { case 1: { panel.setBackground(Color.red); break; } case 2: { panel.setBackground(Color.blue); break; } case 3: { panel.setBackground(Color.yellow); break; } case 4: { panel.setBackground(Color.pink); break; } case 5: { panel.setBackground(Color.green); break; } } } }); button_1.setBounds(153, 213, 122, 23); panel.add(button_1); } }