我的结对项目编程感想

1、课堂上,李巍老师给了我们一个结对项目的练习:

  某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。二柱立马就想到写一个小程序来做这件事。 这个事情可以用很多语言或者工具来实现:
  Excel、C/C++、Java、C#、VB、Unix Shell、Vbscript、Javascript、Perl、 Python、…

2、我的队友博客地址:http://www.cnblogs.com/liushilin/
结对编程照片:

3、拿到这道题的时候,我们都觉得用循环,产生随机数就可以实现。我看着他编写,在看队友编写的时候,萌发了很多想法,都是些细节,比如说产生随机数,会有重复的情况,应该怎么去解决呢,讨论之后,找出了一个解决方案:将随机数设为静态变量,这样就不会出现重复的题目;如果是除法,那么除数不能为零,这个也是需要考虑到的,当为除法时,单独判断一下除法是否为零即可。

 

4、感想:

  每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。
  结对项目的好处有:
  (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
  (2)对开发人员自身来说,结对工作能让自己的工作更有意义,不会陷入一个人孤军奋战的想法中。
  (3)在心理上,  当有另一个人在你身边和你紧密配合, 两个人都会考虑对方的感受,比单独做更有责任感。
  (4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。
  (5)在项目上,结对工作可以融合两个人的想法,可以避免一些低级的错误,使整个开发过程更加的高效; 如果运用得当,结对编程能得到更高的投入产出比。
  对于李巍老师新颖、开放的教学方式,我非常喜欢,虽然这门课程很枯燥,但是老师给了我们自由讨论的空间和时间,这是我们大家都非常喜欢的一种教学方式。
5、由于之前的博文不太完整,现在重新贴代码,结果以及结对编程图片。

6、下面附上我和队友结对编程的代码以及结果:

代码:

package com.chunchuner.fourcompute;

import java.util.Random;

public class C {

    // private String []operations = {"+","-","*","/"};
    private static Random random = new Random();
    private final static int COUNT = 30;

    private static boolean getProject() {
        int num1 = random.nextInt(101);
        int num2 = random.nextInt(101);
        int index = random.nextInt(4);
        String str = "";
        boolean flag = false;
        int answer = 0;
        switch (index) {
        case 0:
            answer = num1 + num2;
            if (answer > 100) {
                break;
            }
            str = num1 + "+" + num2 + "=";
            flag = true;
            break;
        case 1:
            if (num1 < num2) {
                break;
            }
            str = num1 + "-" + num2 + "=";
            flag = true;
            break;
        case 2:
            answer = num1 * num2;
            if (answer > 100) {
                break;
            }
            str = num1 + "*" + num2 + "=";
            flag = true;
            break;
        case 3:
            if (num2 == 0) {
                break;
            }
            str = num1 + "÷" + num2 + "=";
            flag = true;
            break;
        }
        if (flag) {
            System.out.println(str);
        }
        return flag;
    }

    public static void main(String[] args) {
        System.out.println("当前得到的30道四则运算题目如下:");
        int count = 0;
        do {
            if (getProject()) {
                count++;
            }
        } while (count < COUNT);
    }

}

结果:

posted on 2016-03-22 15:36  if-初见  阅读(194)  评论(0编辑  收藏  举报