小学生四则运算算术题

结对编程成员:

  蔡佳泉 1711216

  刘子义 1759132 

一、前言:

  以下是本次结对编程的要求:

  我们决定用c语言写一个在命令行窗口的四则运算练习的软件。刘子义(1759132)负责写代码,蔡佳泉(1711216)负责审查与测试代码。

  我们预计第一版用时2小时开发出来,说干就干。

二、第一版

  第一版的速度比我们的预期还要快只花了1小时的时间就写了出来。

  以下是第一版的代码以及运行结果:

  1 #include<stdio.h>
  2 #include<time.h>
  3 #include<stdlib.h>
  4 
  5 
  6 int main(){
  7     
  8     //设置变量 
  9     int count = 0,rand1 = 0,rand2 = 0,end = 0;//计算题数量,参数1,参数2,计算结果 
 10     int sign = 0;                 //四则运算符 
 11     int get = 0;                  //得分 
 12     
 13     
 14     //主体架构 
 15     do{ 
 16         srand((int)time(0));
 17         rand1 = rand()%100+1;//第一个随机数 
 18         rand2 = rand()%100+1;//第二个随机数 
 19         sign = rand()%4+1;   //四则运算符随机
 20         
 21         //根据四则运算符分类 
 22         //加法 
 23         if(sign==1){
 24             end = rand1+rand2;
 25             if(0<end && end<101){
 26                 count++;
 27                 printf("(%d)%d + %d = ",count,rand1,rand2);
 28                 int end1;
 29                 scanf("%d",&end1);
 30                 //printf("%d",end1);
 31                 if(end1==end){
 32                     printf("Good Work!");
 33                     get++;
 34                 }
 35                 else printf("Wrong! 正确答案:%d",end);
 36                 printf("\n");
 37                 
 38             }
 39             else count = count;
 40             //printf("%d + %d = %d",rand1,rand2,end);
 41         }
 42         
 43         
 44         //减法 
 45         if(sign==2){
 46             end = rand1-rand2;
 47             if(0<end && end<101){
 48                 count++;
 49                 printf("(%d)%d - %d = ",count,rand1,rand2);
 50                 int end1;
 51                 scanf("%d",&end1);
 52                 //printf("%d",end1);
 53                 if(end1==end){
 54                     printf("Good Work!");
 55                     get++;
 56                 }
 57                 else printf("Wrong! 正确答案:%d",end);
 58                 printf("\n");
 59                 //count++;
 60             }
 61             else count = count;
 62             //printf("%d - %d = %d",rand1,rand2,end);
 63         }
 64         
 65         
 66         //乘法 
 67         if(sign==3){
 68             end = rand1*rand2;
 69             if(0<end && end<101){
 70                 count++;
 71                 printf("(%d)%d * %d = ",count,rand1,rand2);
 72                 int end1;
 73                 scanf("%d",&end1);
 74                 //printf("%d",end1);
 75                 if(end1==end){
 76                     printf("Good Work!");
 77                     get++;
 78                 }
 79                 else printf("Wrong! 正确答案:%d",end);
 80                 printf("\n");
 81                 //count++;
 82             }
 83             else count = count;
 84             //printf("%d * %d=%d",rand1,rand2,end);
 85         }
 86         
 87         
 88         //除法 
 89         if(sign==4){
 90             end = rand1/rand2;
 91             if(0<end && end<101 && rand1%rand2==0){
 92                 count++;
 93                 printf("(%d)%d ÷%d = ",count,rand1,rand2);
 94                 int end1;
 95                 scanf("%d",&end1);
 96                 if(end1==end){
 97                     printf("Good Work!");
 98                     get++;
 99                 }
100                 else printf("Wrong! 正确答案:%d",end);
101                 printf("\n");
102              }
103             else count = count;
104             //printf("%d ÷%d=%d",rand1,rand2,end);
105         }
106     }while(count!=300);//达到三百时结束
107      
108     printf("总得分为%d",get/3.0);
109     return 0;
110 } 
第一版

   

  一审查,咦????好像不太对啊,出现了以下严重的问题:

  1.要求是两个运算符,这里只有一个运算符呀。原来是我们前期没有进行合适的沟通,要求没整明白就咵咵的打了代码。

  2.生成计算公式的速度非常的慢。

  3.我们错误的理解了结对编程,结对编程应该是两人用一台电脑同时进行写代码以及审查,而不是分别进行的。这样才能即使发现问题并解决问题,并且能及时沟通和学习。

  接下来我们就运用结对编程的方法准备写第二版,预计时间1小时

三、第二版

  通过你写一行我审查一行的同时编写,我们花的时间和预计时间差不多。

  以下是第二版的代码以及运行结果:

  1 #include<stdio.h>
  2 #include<time.h>
  3 #include<stdlib.h>
  4 
  5 int main(){
  6     
  7     //设置变量 
  8     int count = 0,rand1 = 0,rand2 = 0,rand3 = 0,end = 0;//计算题数量,参数1,参数2,计算结果 
  9     int sign1 = 0,sign2 = 0;                 //四则运算符 
 10     int get = 0;                  //得分 
 11     
 12     
 13     //主体架构 
 14     do{ 
 15         srand((int)time(0));
 16         rand1 = rand()%100+1;//第一个随机数 
 17         rand2 = rand()%100+1;//第二个随机数 
 18         rand3 = rand()%100+1;//第三个随机数
 19         sign1 = rand()%4+1;   //第一个四则运算符随机
 20         sign2 = rand()%4+1;   //第二个四则运算符随机
 21         
 22         /********************* 
 23         根据四则运算符分类
 24         1.加法        2.减法
 25         3.乘法        4.除法 
 26         ********************/ 
 27         //加法 
 28         if(sign1==1){
 29             if(sign2==1) {
 30             end = rand1+rand2+rand3;
 31             if(0<end && end<101){
 32                 count++;
 33                 printf("(%d)%d + %d + %d= ",count,rand1,rand2,rand3);
 34                 int end1;
 35                 scanf("%d",&end1);
 36                 //printf("%d",end1);
 37                 if(end1==end){
 38                     printf("Good Work!");
 39                     get++;
 40                 }
 41                 else printf("Wrong! 正确答案:%d",end);
 42                 printf("\n");
 43               }
 44             }
 45             else if(sign2==2) {
 46             end = rand1+rand2-rand3;
 47             if(0<end && end<101){
 48                 count++;
 49                 printf("(%d)%d + %d - %d= ",count,rand1,rand2,rand3);
 50                 int end1;
 51                 scanf("%d",&end1);
 52                 //printf("%d",end1);
 53                 if(end1==end){
 54                     printf("Good Work!");
 55                     get++;
 56                 }
 57                 else printf("Wrong! 正确答案:%d",end);
 58                 printf("\n");
 59               }
 60             }
 61             else if(sign2==3) {
 62             end = (rand1+rand2)*rand3;
 63             if(0<end && end<101){
 64                 count++;
 65                 printf("(%d)(%d + %d) * %d= ",count,rand1,rand2,rand3);
 66                 int end1;
 67                 scanf("%d",&end1);
 68                 //printf("%d",end1);
 69                 if(end1==end){
 70                     printf("Good Work!");
 71                     get++;
 72                 }
 73                 else printf("Wrong! 正确答案:%d",end);
 74                 printf("\n");
 75               }
 76             }
 77             else {
 78             end = (rand1+rand2)/rand3;
 79             if(0<end && end<101 && (rand1+rand2)%rand3==0){
 80                 count++;
 81                 printf("(%d)(%d + %d) ÷%d= ",count,rand1,rand2,rand3);
 82                 int end1;
 83                 scanf("%d",&end1);
 84                 //printf("%d",end1);
 85                 if(end1==end){
 86                     printf("Good Work!");
 87                     get++;
 88                 }
 89                 else printf("Wrong! 正确答案:%d",end);
 90                 printf("\n");
 91               }
 92             }
 93             //else count = count;
 94             //printf("%d + %d = %d",rand1,rand2,end);
 95         }
 96         
 97         
 98         //减法 
 99         else if(sign1==2){
100             if(sign2==1) {
101             end = rand1-rand2+rand3;
102             if(0<end && end<101){
103                 count++;
104                 printf("(%d)%d - %d + %d= ",count,rand1,rand2,rand3);
105                 int end1;
106                 scanf("%d",&end1);
107                 //printf("%d",end1);
108                 if(end1==end){
109                     printf("Good Work!");
110                     get++;
111                 }
112                 else printf("Wrong! 正确答案:%d",end);
113                 printf("\n");
114               }
115             }
116             else if(sign2==2) {
117             end = rand1-rand2-rand3;
118             if(0<end && end<101){
119                 count++;
120                 printf("(%d)%d - %d - %d= ",count,rand1,rand2,rand3);
121                 int end1;
122                 scanf("%d",&end1);
123                 //printf("%d",end1);
124                 if(end1==end){
125                     printf("Good Work!");
126                     get++;
127                 }
128                 else printf("Wrong! 正确答案:%d",end);
129                 printf("\n");
130               }
131             }
132             else if(sign2==3) {
133             end = (rand1-rand2)*rand3;
134             if(0<end && end<101){
135                 count++;
136                 printf("(%d)(%d - %d) * %d= ",count,rand1,rand2,rand3);
137                 int end1;
138                 scanf("%d",&end1);
139                 //printf("%d",end1);
140                 if(end1==end){
141                     printf("Good Work!");
142                     get++;
143                 }
144                 else printf("Wrong! 正确答案:%d",end);
145                 printf("\n");
146               }
147             }
148             else {
149             end = (rand1-rand2)/rand3;
150             if(0<end && end<101 && (rand1+rand2)%rand3==0){
151                 count++;
152                 printf("(%d)(%d - %d) ÷%d= ",count,rand1,rand2,rand3);
153                 int end1;
154                 scanf("%d",&end1);
155                 //printf("%d",end1);
156                 if(end1==end){
157                     printf("Good Work!");
158                     get++;
159                 }
160                 else printf("Wrong! 正确答案:%d",end);
161                 printf("\n");
162               }
163             }
164             //else count = count;
165             //printf("%d + %d = %d",rand1,rand2,end);
166         }
167         
168         
169         //乘法 
170         else if(sign1==3){
171             if(sign2==1) {
172             end = rand1*rand2+rand3;
173             if(0<end && end<101){
174                 count++;
175                 printf("(%d)%d * %d + %d= ",count,rand1,rand2,rand3);
176                 int end1;
177                 scanf("%d",&end1);
178                 //printf("%d",end1);
179                 if(end1==end){
180                     printf("Good Work!");
181                     get++;
182                 }
183                 else printf("Wrong! 正确答案:%d",end);
184                 printf("\n");
185               }
186             }
187             else if(sign2==2) {
188             end = rand1*rand2-rand3;
189             if(0<end && end<101){
190                 count++;
191                 printf("(%d)%d * %d - %d= ",count,rand1,rand2,rand3);
192                 int end1;
193                 scanf("%d",&end1);
194                 //printf("%d",end1);
195                 if(end1==end){
196                     printf("Good Work!");
197                     get++;
198                 }
199                 else printf("Wrong! 正确答案:%d",end);
200                 printf("\n");
201               }
202             }
203             else if(sign2==3) {
204             end = rand1*rand2*rand3;
205             if(0<end && end<101){
206                 count++;
207                 printf("(%d)%d * %d * %d= ",count,rand1,rand2,rand3);
208                 int end1;
209                 scanf("%d",&end1);
210                 //printf("%d",end1);
211                 if(end1==end){
212                     printf("Good Work!");
213                     get++;
214                 }
215                 else printf("Wrong! 正确答案:%d",end);
216                 printf("\n");
217               }
218             }
219             else {
220             end = (rand1*rand2)/rand3;
221             if(0<end && end<101 && (rand1+rand2)%rand3==0){
222                 count++;
223                 printf("(%d)(%d * %d) ÷%d= ",count,rand1,rand2,rand3);
224                 int end1;
225                 scanf("%d",&end1);
226                 //printf("%d",end1);
227                 if(end1==end){
228                     printf("Good Work!");
229                     get++;
230                 }
231                 else printf("Wrong! 正确答案:%d",end);
232                 printf("\n");
233               }
234             }
235             //else count = count;
236             //printf("%d + %d = %d",rand1,rand2,end);
237         }
238         
239         
240         //除法 
241         else {
242             if(sign2==1) {
243             end = rand1/rand2+rand3;
244             if(0<end && end<101){
245                 count++;
246                 printf("(%d)%d / %d + %d= ",count,rand1,rand2,rand3);
247                 int end1;
248                 scanf("%d",&end1);
249                 //printf("%d",end1);
250                 if(end1==end){
251                     printf("Good Work!");
252                     get++;
253                 }
254                 else printf("Wrong! 正确答案:%d",end);
255                 printf("\n");
256               }
257             }
258             else if(sign2==2) {
259             end = rand1/rand2-rand3;
260             if(0<end && end<101){
261                 count++;
262                 printf("(%d)%d / %d - %d= ",count,rand1,rand2,rand3);
263                 int end1;
264                 scanf("%d",&end1);
265                 //printf("%d",end1);
266                 if(end1==end){
267                     printf("Good Work!");
268                     get++;
269                 }
270                 else printf("Wrong! 正确答案:%d",end);
271                 printf("\n");
272               }
273             }
274             else if(sign2==3) {
275             end = (rand1/rand2)*rand3;
276             if(0<end && end<101){
277                 count++;
278                 printf("(%d)(%d ÷%d)* %d= ",count,rand1,rand2,rand3);
279                 int end1;
280                 scanf("%d",&end1);
281                 //printf("%d",end1);
282                 if(end1==end){
283                     printf("Good Work!");
284                     get++;
285                 }
286                 else printf("Wrong! 正确答案:%d",end);
287                 printf("\n");
288               }
289             }
290             else {
291             end = rand1/rand2/rand3;
292             if(0<end && end<101 && (rand1+rand2)%rand3==0){
293                 count++;
294                 printf("(%d)%d / %d ÷%d= ",count,rand1,rand2,rand3);
295                 int end1;
296                 scanf("%d",&end1);
297                 //printf("%d",end1);
298                 if(end1==end){
299                     printf("Good Work!");
300                     get++;
301                 }
302                 else printf("Wrong! 正确答案:%d",end);
303                 printf("\n");
304               }
305             }
306             //else count = count;
307             //printf("%d + %d = %d",rand1,rand2,end);
308         }
309     }while(count!=300);//达到三百时结束
310      
311     printf("总得分为%d",get/3.0);
312     return 0;
313 } 
第二版

   

  虽然通过你写一行我看一行的方式写出了第二版,并且没有语法错误,编译通过。

  但是经过审查员的后续测试发现还是问题多多:

  1.数字都是用int类型储存,电脑算出来的结果都是直接省略掉小数点后后面的数字。

  2.如果我输入的答案不是数字,而是字母或特殊符号会出现下面直接跳出相同的300道题目的bug:

  

  3.出题的速度还是特别的慢。

接着我们就只能继续改进......

三、第三版

  以下是第三版的代码以及运行结果:

  1 #include<stdio.h>
  2 #include<time.h>
  3 #include<stdlib.h>
  4 
  5 
  6 int main(){
  7     
  8     //设置变量 
  9     int count = 0,rand1 = 0,rand2 = 0,rand3 = 0,end = 0;//计算题数量,参数1,参数2,计算结果 
 10     int sign1 = 0,sign2 = 0;                 //四则运算符 
 11     int get = 0;                  //得分 
 12     
 13     
 14     //主体架构 
 15     do{ 
 16         srand((int)time(0));
 17         rand1 = rand()%100+1;//第一个随机数 
 18         rand2 = rand()%100+1;//第二个随机数 
 19         rand3 = rand()%100+1;//第三个随机数
 20         sign1 = rand()%4+1;   //第一个四则运算符随机
 21         sign2 = rand()%4+1;   //第二个四则运算符随机
 22         
 23         /********************* 
 24         根据四则运算符分类
 25         1.加法        2.减法
 26         3.乘法        4.除法 
 27         ********************/ 
 28         //加法 
 29         if(sign1==1){
 30             if(sign2==1) {
 31             end = rand1+rand2+rand3;
 32             if(0<end && end<101){
 33                 count++;
 34                 printf("(%d)%d + %d + %d= ",count,rand1,rand2,rand3);
 35                 int end1;
 36                 scanf("%d",&end1);
 37                 //printf("%d",end1);
 38                 if(end1==end){
 39                     printf("Good Work!");
 40                     get++;
 41                 }
 42                 else printf("Wrong! 正确答案:%d",end);
 43                 printf("\n");
 44               }
 45             }
 46             else if(sign2==2) {
 47             end = rand1+rand2-rand3;
 48             if(0<end && end<101){
 49                 count++;
 50                 printf("(%d)%d + %d - %d= ",count,rand1,rand2,rand3);
 51                 int end1;
 52                 scanf("%d",&end1);
 53                 //printf("%d",end1);
 54                 if(end1==end){
 55                     printf("Good Work!");
 56                     get++;
 57                 }
 58                 else printf("Wrong! 正确答案:%d",end);
 59                 printf("\n");
 60               }
 61             }
 62             else if(sign2==3) {
 63             end = (rand1+rand2)*rand3;
 64             if(0<end && end<101){
 65                 count++;
 66                 printf("(%d)(%d + %d) * %d= ",count,rand1,rand2,rand3);
 67                 int end1;
 68                 scanf("%d",&end1);
 69                 //printf("%d",end1);
 70                 if(end1==end){
 71                     printf("Good Work!");
 72                     get++;
 73                 }
 74                 else printf("Wrong! 正确答案:%d",end);
 75                 printf("\n");
 76               }
 77             }
 78             else {
 79             end = (rand1+rand2)/rand3;
 80             if(0<end && end<101 && (rand1+rand2)%rand3==0){
 81                 count++;
 82                 printf("(%d)(%d + %d) ÷%d= ",count,rand1,rand2,rand3);
 83                 int end1;
 84                 scanf("%d",&end1);
 85                 //printf("%d",end1);
 86                 if(end1==end){
 87                     printf("Good Work!");
 88                     get++;
 89                 }
 90                 else printf("Wrong! 正确答案:%d",end);
 91                 printf("\n");
 92               }
 93             }
 94             //else count = count;
 95             //printf("%d + %d = %d",rand1,rand2,end);
 96         }
 97         
 98         
 99         //减法 
100         else if(sign1==2){
101             if(sign2==1) {
102             end = rand1-rand2+rand3;
103             if(0<end && end<101){
104                 count++;
105                 printf("(%d)%d - %d + %d= ",count,rand1,rand2,rand3);
106                 int end1;
107                 scanf("%d",&end1);
108                 //printf("%d",end1);
109                 if(end1==end){
110                     printf("Good Work!");
111                     get++;
112                 }
113                 else printf("Wrong! 正确答案:%d",end);
114                 printf("\n");
115               }
116             }
117             else if(sign2==2) {
118             end = rand1-rand2-rand3;
119             if(0<end && end<101){
120                 count++;
121                 printf("(%d)%d - %d - %d= ",count,rand1,rand2,rand3);
122                 int end1;
123                 scanf("%d",&end1);
124                 //printf("%d",end1);
125                 if(end1==end){
126                     printf("Good Work!");
127                     get++;
128                 }
129                 else printf("Wrong! 正确答案:%d",end);
130                 printf("\n");
131               }
132             }
133             else if(sign2==3) {
134             end = (rand1-rand2)*rand3;
135             if(0<end && end<101){
136                 count++;
137                 printf("(%d)(%d - %d) * %d= ",count,rand1,rand2,rand3);
138                 int end1;
139                 scanf("%d",&end1);
140                 //printf("%d",end1);
141                 if(end1==end){
142                     printf("Good Work!");
143                     get++;
144                 }
145                 else printf("Wrong! 正确答案:%d",end);
146                 printf("\n");
147               }
148             }
149             else {
150             end = (rand1-rand2)/rand3;
151             if(0<end && end<101 && (rand1+rand2)%rand3==0){
152                 count++;
153                 printf("(%d)(%d - %d) ÷%d= ",count,rand1,rand2,rand3);
154                 int end1;
155                 scanf("%d",&end1);
156                 //printf("%d",end1);
157                 if(end1==end){
158                     printf("Good Work!");
159                     get++;
160                 }
161                 else printf("Wrong! 正确答案:%d",end);
162                 printf("\n");
163               }
164             }
165             //else count = count;
166             //printf("%d + %d = %d",rand1,rand2,end);
167         }
168         
169         
170         //乘法 
171         else if(sign1==3){
172             if(sign2==1) {
173             end = rand1*rand2+rand3;
174             if(0<end && end<101){
175                 count++;
176                 printf("(%d)%d * %d + %d= ",count,rand1,rand2,rand3);
177                 int end1;
178                 scanf("%d",&end1);
179                 //printf("%d",end1);
180                 if(end1==end){
181                     printf("Good Work!");
182                     get++;
183                 }
184                 else printf("Wrong! 正确答案:%d",end);
185                 printf("\n");
186               }
187             }
188             else if(sign2==2) {
189             end = rand1*rand2-rand3;
190             if(0<end && end<101){
191                 count++;
192                 printf("(%d)%d * %d - %d= ",count,rand1,rand2,rand3);
193                 int end1;
194                 scanf("%d",&end1);
195                 //printf("%d",end1);
196                 if(end1==end){
197                     printf("Good Work!");
198                     get++;
199                 }
200                 else printf("Wrong! 正确答案:%d",end);
201                 printf("\n");
202               }
203             }
204             else if(sign2==3) {
205             end = rand1*rand2*rand3;
206             if(0<end && end<101){
207                 count++;
208                 printf("(%d)%d * %d * %d= ",count,rand1,rand2,rand3);
209                 int end1;
210                 scanf("%d",&end1);
211                 //printf("%d",end1);
212                 if(end1==end){
213                     printf("Good Work!");
214                     get++;
215                 }
216                 else printf("Wrong! 正确答案:%d",end);
217                 printf("\n");
218               }
219             }
220             else {
221             end = (rand1*rand2)/rand3;
222             if(0<end && end<101 && (rand1+rand2)%rand3==0){
223                 count++;
224                 printf("(%d)(%d * %d) ÷%d= ",count,rand1,rand2,rand3);
225                 int end1;
226                 scanf("%d",&end1);
227                 //printf("%d",end1);
228                 if(end1==end){
229                     printf("Good Work!");
230                     get++;
231                 }
232                 else printf("Wrong! 正确答案:%d",end);
233                 printf("\n");
234               }
235             }
236             //else count = count;
237             //printf("%d + %d = %d",rand1,rand2,end);
238         }
239         
240         
241         //除法 
242         else {
243             if(sign2==1) {
244             end = rand1/rand2+rand3;
245             if(0<end && end<101){
246                 count++;
247                 printf("(%d)%d / %d + %d= ",count,rand1,rand2,rand3);
248                 int end1;
249                 scanf("%d",&end1);
250                 //printf("%d",end1);
251                 if(end1==end){
252                     printf("Good Work!");
253                     get++;
254                 }
255                 else printf("Wrong! 正确答案:%d",end);
256                 printf("\n");
257               }
258             }
259             else if(sign2==2) {
260             end = rand1/rand2-rand3;
261             if(0<end && end<101){
262                 count++;
263                 printf("(%d)%d / %d - %d= ",count,rand1,rand2,rand3);
264                 int end1;
265                 scanf("%d",&end1);
266                 //printf("%d",end1);
267                 if(end1==end){
268                     printf("Good Work!");
269                     get++;
270                 }
271                 else printf("Wrong! 正确答案:%d",end);
272                 printf("\n");
273               }
274             }
275             else if(sign2==3) {
276             end = (rand1/rand2)*rand3;
277             if(0<end && end<101){
278                 count++;
279                 printf("(%d)(%d ÷%d)* %d= ",count,rand1,rand2,rand3);
280                 int end1;
281                 scanf("%d",&end1);
282                 //printf("%d",end1);
283                 if(end1==end){
284                     printf("Good Work!");
285                     get++;
286                 }
287                 else printf("Wrong! 正确答案:%d",end);
288                 printf("\n");
289               }
290             }
291             else {
292             end = rand1/rand2/rand3;
293             if(0<end && end<101 && (rand1+rand2)%rand3==0){
294                 count++;
295                 printf("(%d)%d / %d ÷%d= ",count,rand1,rand2,rand3);
296                 int end1;
297                 scanf("%d",&end1);
298                 //printf("%d",end1);
299                 if(end1==end){
300                     printf("Good Work!");
301                     get++;
302                 }
303                 else printf("Wrong! 正确答案:%d",end);
304                 printf("\n");
305               }
306             }
307             //else count = count;
308             //printf("%d + %d = %d",rand1,rand2,end);
309         }
310     }while(count!=300);//达到三百时结束
311      
312     printf("总得分为%d",get/3.0);
313     return 0;
314 } 
第三版

  

通过刚刚的第三版的改bug,我们终于达到了预期的效果,但是运行效率较低。

四、总结

  1.结对编程中出现的问题:

    1)开始没有理解结对编程的含义,错误的进行了编程流程。

    2)编程前没有做好适当的沟通、需求规划以及程序整体架构算法规划,导致后续要花更多的时间去debug,甚至整体代码框架不如推翻重新来过更好。

    3)代码选择的是从c语言,是面向过程的编程语言,有局限性,没法运用面向对象的思想去写这个程序,导致代码复用率低下,很难进行功能上的拓展,后期也不好维护。

    4)很多地方出现了大段的重复代码,一开始应该把有些功能用函数封装起来,这样有利于代码的复用率。

  2.通过此次对结对编程的理解:

    结对编程是两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。

  3.此次结对编程的心得:

    1)耐心和尊重很重要,在这个过程中一定要互相尊重,每个人都有自己的强弱项。作为领航员,当驾驶员不明白的地方要耐心解释,不要一把把控制权抢过来自己来写,一定要给伙伴足够的时间去消化和练习。还有不需要评价伙伴写代码的风格,这不是审查的重点。

    2)编程前一定要做好需求分析,不然做出来的东西很大概率会不符合要求,看似需求分析很麻烦很费时间,但是做好规划后续出现的问题少了才更节省时间。

    3)通过结对编程中的讨论,可以相互学习对方的思路,发现自己在编程上的不足与缺点。看似在短期非常消耗时间,两个人同时做一件事情。但是就长期来讲,是对效率有提升的,因为代码质量提高了,并且通过知识分享团队成员能够互相为对方做 Backup。

  4.对结对编程的评价:

    我觉得并不是所有的项目都适合结对编程,也不是为了结对而结对,要做有价值的结对编程。我理解的有价值的结对编程就是在一些需求稍微高于自己能力的项目中进行,因为这样两个人可以做知识分享、相互提升。并且学习他人之长,去自己之短。

转载于:https://www.cnblogs.com/Kissverter/p/10554426.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值