结对作业(11陈梓仪,21林庆光) 四则运算

由于这次作业是用结对模式完成,因此我选择了同组成员21林庆光同学组成一个队伍(博客地址http://www.cnblogs.com/guangge/)。我们这次的代码是在Eclipse环境下调试的,这次四则运算在原有作业的基础上进行了拓展,拓展的4个方向分别是:

  1. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
  2. 用户答题结束以后,程序可以显示用户答题所用的时间
  3. 程序可以出单个整数阶乘的题目:如:4!=24
  4. 程序可以设置皮肤功能,可以改变界面的颜色即可。  

这次完成作业的过程中,我们运用了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("u5F00u59CB");
        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("u9898u76EE");
        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("u7528u6237u8F93u5165");
        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("u53CDu9988u4FE1u606F");
        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("u786Eu5B9A");
        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("u8017u65F6");
        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("u7EE7u7EED");
        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("u8BBEu7F6Eu80CCu666Fu989Cu8272");
        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);
    }

}

原文地址:https://www.cnblogs.com/chenziyi/p/4409886.html