结对编程

Posted smalle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对编程相关的知识,希望对你有一定的参考价值。

    结对编程

一.项目前述

     1.项目内容

          1.1小学老师每周用该软件随机给同学出300道四则运算题

          1.2编程语言  java (因为要设计图形界面生成txt文件方便同学做题和老师批改)

          1.3编写出实现300道题的结果

          1.4定制出题数量

          1.5编程过程中遇到的问题

          1.6结对编程的收获

          1.7项目成员 (1759217   , 1759218

二.项目概览

1.1小学老师每周用该软件随机给同学出300道四则运算题的实现代码:(估计时间:15分钟)

import java.util.Random;

 

public class Math_Problem {

        public static void main (String args[])

        {

        String[] str=new String[]{"+","-","*","/"};

        int[] number=new int[100];

        for(int i=1;i<=100;i++)

        {

                 number[i-1]=i;

        }

        Random a=new Random();

 

        for(int i=0;i<300;i++)

        {

        System.out.println(number[a.nextInt(100)]+str[a.nextInt(4)]+number[a.nextInt(100)]+"=");

        }

        }

}

 

实现结果:

技术图片

     

1.2用java实现窗口的实现代码(估计时间:30分钟)

package ji;

 

public class Application {

     public static void main(String args[]) {

             WindowMenu win=new WindowMenu("四则运算",30,30,360,360);

     }

}

 

 

package ji;

import javax.swing.*;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import static javax.swing.JFrame.*;

 

public class WindowMenu extends JFrame {

  JMenuBar menubar;

  JMenu menu,subMenu1,subMenu2,subMenu3,subMenu4;

  JTextArea textShow1,textShow2,textShow3,textShow4;

  public WindowMenu() {

  }

  public WindowMenu(String s,int x,int y,int w,int h) {

          init(s);

          setLocation(x,y);

          setSize(w,h);

          setVisible(true);

          setDefaultCloseOperation(DISPOSE_ON_CLOSE);

  }

  void init(String s) {

          setTitle(s);

          menubar=new JMenuBar();

          menu=new JMenu("计算");

          subMenu1=new JMenu("加法");

          subMenu2=new JMenu("减法");

          subMenu3=new JMenu("乘法");

          subMenu4=new JMenu("除法");

          menu.add(subMenu1);

          menu.add(subMenu2);

          menu.add(subMenu3);

          menu.add(subMenu4);

          subMenu1.add(new JTextArea(9,30));

          subMenu2.add(new JTextArea(9,30));

          subMenu3.add(new JTextArea(9,30));

          subMenu4.add(new JTextArea(9,30));

          menubar.add(menu);

          setJMenuBar(menubar);

  }

}

实现结果:

技术图片

 

 

(扩展性:学生可以把随机给出的题在图形窗口写出结果,保存为txt文件,发给老师批改)

 

1.3编写出实现300道题的结果的实现代码(估计时间:30分钟)

import java.util.Random;     //利用Random类可以实现随机出题

 

public class Math_Problem {

        public static void main (String args[])

        {

        String[] str=new String[]{"+","-","*","/"};

        double[] number=new double[100];

        for(int i=1;i<=100;i++)

        {

                 number[i-1]=i;

        }

        Random a=new Random();

        for(int i=0;i<300;i++)

        {

                 double answer;

                 //answer=number[a.nextInt(100)]str[a.nextInt(4)]number[a.nextInt(100)];

                 double x=number[a.nextInt(100)];

                 double y=number[a.nextInt(100)];

                 String m=str[a.nextInt(4)];

                 if(m=="+")

                 {

                         answer=x+y;

                         if(answer<=100)

                         {

                         System.out.println(x+m+y+"="+answer);

                         }

                         else

                                  continue;

                         //System.out.println(answer);

                 }

                 else if(m=="-")

                 {

                         answer=x-y;

                         System.out.println(x+m+y+"="+answer);

                         //System.out.println(answer);

                 }

                 else if(m=="*")

                 {

                         answer=x*y;

                         if(answer<=100)

                         {

                         System.out.println(x+m+y+"="+answer);

                         }

                         else

                                  continue;

                         //System.out.println(answer);

                 }

                 else if(m=="/")

                 {

                         answer=x/y;

                         if(answer<=100)

                         {

                         System.out.println(x+m+y+"="+answer);

                         }

                         else

                                  continue;

                         //System.out.println(answer);

                 }

        //System.out.println(number[a.nextInt(100)]+str[a.nextInt(4)]+number[a.nextInt(100)]+"=");

        }

        }

}

实现结果:

技术图片

 

 

1.4定制出题数量的实现代码(估计时间:15分钟)

package ji;

import java.util.Random;

 

public class Math_Problem {

    public static void main (String args[])

    {

    String[] str=new String[]{"+","-","*","/"};

    double[] number=new double[100];

    int num=5;  //   出题数量

    for(int i=1;i<=100;i++)

    {

        number[i-1]=i;

    }

    Random a=new Random();

    for(int i=0;i<num;i++)//  定制出题数量

    {

        double answer;

    //answer=number[a.nextInt(100)]str[a.nextInt(4)]number[a.nextInt(100)];

        double x=number[a.nextInt(100)];

        double y=number[a.nextInt(100)];

        String m=str[a.nextInt(4)];

        if(m=="+")

        {

           answer=x+y;

           if(answer<=100)

           {

           System.out.println(x+m+y+"="+answer);

           }

           else

               continue;

           //System.out.println(answer);

        }

        else if(m=="-")

        {

           answer=x-y;

           System.out.println(x+m+y+"="+answer);

           //System.out.println(answer);

        }

        else if(m=="*")

        {

           answer=x*y;

           if(answer<=100)

           {

           System.out.println(x+m+y+"="+answer);

           }

           else

               continue;

           //System.out.println(answer);

        }

        else if(m=="/")

        {

           answer=x/y;

           if(answer<=100)

           {

           System.out.println(x+m+y+"="+answer);

           }

           else

               continue;

           //System.out.println(answer);

        }

    //System.out.println(number[a.nextInt(100)]+str[a.nextInt(4)]+number[a.nextInt(100)]+"=");

    }

    }

}

实现结果

技术图片

 

1.5编程过程中遇到的问题

(1)设计阶段:我们就一个大概的想法,然后就分工去做,最后发现截然不同,两个人的代码合不上

(2)编程阶段:单独编程总是会在最后发现不了哪里出错(虽然用JAVA编程,错误会显示,但也要重新找)

1.6结对编程的收获

  通过这次结对编程,我们发现这比单独编程的效率高并提高了我们的结对编程的能力,同时也让我们收获了很多经验和教训(发现对方的编程风格和错误,用来规范自己同时能让对方指出自己的错误并改正,另外也让我们认识到沟通的重要性)。结对编程让我们两个人所写的代码不断地处于“复审”的过程,我们能够不断的审核,提高设计和编码的质量,可以及时发现并解决问题,避免把问题拖到后面的阶段去。

以上是关于结对编程的主要内容,如果未能解决你的问题,请参考以下文章

结对编程心得

结对-结对编程项目作业名称-结对项目总结

结对-结对编程项目作业名称-结对项目总结

结对编程的总结

结对-结对编程项目作业名称-结对项目总结

结对编程项目总结