• 结对编程——四则运算


     
     
    结对对象:吴鹏宇2013110438
    博客地址:http://www.cnblogs.com/wpy0032/
     
    双方贡献比例:  1:1
     
    结对照片
     
     
    题目
      某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。二柱立马就想到写一个小程序来做这件事。 这个事情可以用很多语言或者工具来实现:
    •Excel、C/C++、Java、C#、VB、Unix Shell、Vbscript、Javascript、Perl、 Python、…
     
    源程序

    /**
     * 
     */
    package wpy.test;

    import java.util.Scanner;
    import java.util.Scanner;

    public class main {
     
        public static Scanner scanner=new Scanner(System.in);
        public static void main(String[] args) {
         
            int i=30;
            int correct=0;
            
            Output out;
            
            while(i>0){
             
            out=new Output();
            
            System.out.print(out.getString());
            String s=scanner.nextLine();
            
            if(out.panduan(s)){
                System.out.println("回答正确!");
                correct++;
            }else{
                System.err.println("回答错误!");
            }
            i--;
            System.out.println("还有"+i+"道题未回答");
            }
            
            System.out.println("恭喜你!,回答完毕,回答正确的为"+correct+"道");

        } 
    }

    output.java

    package wpy.test;

    import java.util.Random;

    public class Output {

        private int a, b;
        private int i;
        private String operator[]={"+","-","×","÷"};

        public Output(){

          while(true){

            a=new Random().nextInt(100);
            b=new Random().nextInt(100);
            i=new Random().nextInt(4);

            if(i==1&&a<b){       
                continue;
            }

            if(i==3){             
                if(b==0){
                    continue;
                }
                if(a%b!=0){      
                    continue;
                }
            }
            break;      
          }
        }

        public String getString(){
           return new String(a+operator[i]+b+"=");
        }

        public  boolean panduan(String s){
            int i,result = 0;
            try{
                i=Integer.valueOf(s).intValue();
            }catch(Exception e){
                return false;
            }

            switch(this.operator().toCharArray()[0]){
               case '+':result=this.getA()+this.getB();break;
               case '-':result=this.getA()-this.getB();break;
               case '×':result=this.getA()*this.getB();break;
               case '÷':result=this.getA()/this.getB();break;
            }

            if(result==i){
                return true;
            }return false;
        }

        public String operator(){
            return operator[this.i];
        }
        
        public int getA() {
            return a;
        }

        public int getB() {
            return b;
        }
    }

      

    测试结果
     
    总结
       .通过结对编程,可以提高写代码的速度,写出的代码Bug相对于一个来说更少。队友之间可以相互学习,共同提高,可以交替写代码,减少工作量。但是有时候对于一个问题,两个人想法不同的时候容易产生争执。还有写代码习惯不一样,容易产生有的地方看不懂的情况。总之,“结对编程”优点还是多于缺点,我们还是可以多通过这种练习来提高我们的编程能力。
     
    学习进度条:

    点滴成就

    学习时间

    新编写代码行数

    博客量(篇)

    学到知识点

     

     

     

     

     

    第一周

    8h

    0

    0

    组成团队,角色分配

    第二周

    8h

    0

    1

    确定团队项目

    第三周

    12h

    0

    1

    使用博客,制作调查问卷,环境图

    第四周

    14h

    105

    1

    软件需求文档,用例图,需求分析结对编程,代码规范

     第五周

     12h

     0

     0

     类图

    第六周

    10h

    200

    0

    顺序图,状态图

     第七周

    14h

     0

     1

     软件系统设计文档,软件测试

  • 相关阅读:
    C++中使用多线程
    hdu 4223 dp 求连续子序列的和的绝对值最小值
    hdu 1372 bfs 计算起点到终点的距离
    hdu 4217 线段树 依次取第几个最小值,求其sum
    心得
    hdu 1175 bfs 按要求进行搜索,是否能到达,抵消两个(相同)棋子
    hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值
    hdu 2844 多重背包 多种硬币,每一种硬币有一点数量,看他能组成多少种钱
    uva LCDDisplay
    hdu 4218 模拟 根据一个圆点和半径画一个圆 注意半径要求
  • 原文地址:https://www.cnblogs.com/WangLiangHui/p/5377020.html
Copyright © 2020-2023  润新知