结对编程——队友代码分析

Posted linhejiang

tags:

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

队友代码优点:

1.试卷生成方面:很好的实现了避免题目重复的功能,代码将题目生成之后不先输出到txt里,而是保存到一个总题集里,最后再将总题集输出。这样每次生成题目后都可以与总题集里的所有题目进行比对,不重复才能加到总题集中,重复便重新生成此题再次比对。

 1 String str_there = sBuffer.toString();
 2                                 
 3                                 int flag_there = 0;
 4                                 
 5                                 InputStreamReader reader = new InputStreamReader(new FileInputStream(f_all)); // 建立一个输入流对象reader
 6                                 BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
 7                                 String line = "";
 8                                 line = br.readLine();
 9                                 while (line != null) 
10                                 {
11                                     line = br.readLine(); // 一次读入一行数据
12                                     if(str_there.equals(line))
13                                     {
14                                         flag_there = 1;
15                                         break;
16                                     }
17                                 }
18                                 
19                                 if(flag_there == 0)
20                                 {
21                                     writer.append("(" + i + ")");
22                                     writer.append(str_there);
23                                     writer.append("
");
24                                     writer_all.append(str_there);
25                                     writer_all.append("
");
26                                 }
27                                 else
28                                 {
29                                     i--;
30                                 }

 

队友代码缺点:

1.账户的保存方面:账户信息没有保存于代码之外,且代码内也未用任何数据结构储存,而是在用户输入用户名和密码之后在循环内一一比对,这样做使得账户的保存功能扩展性很差,比如无法实现用户注册和断电保存功能。

 1 while(flag1 == 0)//账户登陆
 2         {
 3             if(("张三1".equals(user_name)) && ("123".equals(user_key))) 
 4             {
 5                 flag1 = 1;
 6                 user = 0;
 7                 level = 0;
 8             }
 9             if(("张三2".equals(user_name)) && ("123".equals(user_key))) 
10             {
11                 flag1 = 1;
12                 user = 1;
13                 level = 0;
14             }
15             if(("张三3".equals(user_name)) && ("123".equals(user_key))) 
16             {
17                 flag1 = 1;
18                 user = 2;
19                 level = 0;
20             }
21             if(("李四1".equals(user_name)) && ("123".equals(user_key))) 
22             {
23                 flag1 = 1;
24                 user = 3;
25                 level = 1;
26             }
27             if(("李四2".equals(user_name)) && ("123".equals(user_key))) 
28             {
29                 flag1 = 1;
30                 user = 4;
31                 level = 1;
32             }
33             if(("李四3".equals(user_name)) && ("123".equals(user_key))) 
34             {
35                 flag1 = 1;
36                 user = 5;
37                 level = 1;
38             }
39             if(("王五1".equals(user_name)) && ("123".equals(user_key))) 
40             {
41                 flag1 = 1;
42                 user = 6;
43                 level = 2;
44             }
45             if(("王五2".equals(user_name)) && ("123".equals(user_key))) 
46             {
47                 flag1 = 1;
48                 user = 7;
49                 level = 2;
50             }
51             if(("王五3".equals(user_name)) && ("123".equals(user_key))) 
52             {
53                 flag1 = 1;
54                 user = 8;
55                 level = 2;
56             }
57             if(flag1 == 0)
58             {
59                 System.out.println("请输入正确的用户名、密码");
60                 user_name = scan.next();
61                 user_key = scan.next();
62             }
63         }

2.代码的规范性:整个项目的代码没有实现模块化,即分模块实现各功能,且部分代码效率低,代码注释少,这样做使得代码可读性很差,也没有做到高内聚低耦合,假如我要修改代码的一个功能,可能花很长时间才找到代码的位置,而且修改一个部分很可能大程度上影响其他的部分。

  1                                 for(int j = 0; j < num_num; j++)
  2                                 {
  3                                     switch(random.nextInt(18))
  4                                     {
  5                                         case 0:
  6                                         {
  7                                             break;
  8                                         }
  9                                         case 1:
 10                                         {
 11                                             break;
 12                                         }
 13                                         case 2:
 14                                         {
 15                                             
 16                                             break;
 17                                         }
 18                                         case 3:
 19                                         {
 20                                             break;
 21                                         }
 22                                         case 4:
 23                                         {
 24                                             break;
 25                                         }
 26                                         case 5:
 27                                         {
 28                                             break;
 29                                         }
 30                                         case 6:
 31                                         {
 32                                             break;
 33                                         }
 34                                         case 7:
 35                                         {
 36                                             break;
 37                                         }
 38                                         case 8:
 39                                         {
 40                                             
 41                                             break;
 42                                         }
 43                                         case 9:
 44                                         {
 45                                             break;
 46                                         }
 47                                         case 10:
 48                                         {
 49                                             sBuffer.append("(");
 50                                             kuohao_qian++;
 51                                             flag_kuohao++;
 52                                             break;
 53                                         }
 54                                         case 11:
 55                                         {
 56                                             sBuffer.append("sin(");
 57                                             kuohao_qian++;
 58                                             flag_kuohao++;
 59                                             break;
 60                                         }
 61                                         case 12:
 62                                         {
 63                                             sBuffer.append("cos(");
 64                                             kuohao_qian++;
 65                                             flag_kuohao++;
 66                                             break;
 67                                         }
 68                                         case 13:
 69                                         {
 70                                             sBuffer.append("tan(");
 71                                             kuohao_qian++;
 72                                             flag_kuohao++;
 73                                             break;
 74                                         }
 75                                         case 14:
 76                                         {
 77                                             sBuffer.append("cot(");
 78                                             kuohao_qian++;
 79                                             flag_kuohao++;
 80                                             break;
 81                                         }
 82                                         case 15:
 83                                         {
 84                                             sBuffer.append("√(");
 85                                             kuohao_qian++;
 86                                             flag_kuohao++;
 87                                             break;
 88                                         }
 89                                         case 16:
 90                                         {
 91                                             break;
 92                                         }
 93                                         case 17:
 94                                         {
 95                                             break;
 96                                         }
 97                                     }
 98                                     sBuffer.append(random.nextInt(100) + 1);
 99                                     switch(random.nextInt(6))
100                                     {
101                                         case 0:
102                                         {
103                                             break;
104                                         }
105                                         case 1:
106                                         {
107                                             break;
108                                         }
109                                         case 2:
110                                         {
111                                             break;
112                                         }
113                                         case 3:
114                                         {
115                                             break;
116                                         }
117                                         case 4:
118                                         {
119                                             sBuffer.append(")");
120                                             kuohao_hou++;
121                                             break;
122                                         }
123                                         case 5:
124                                         {
125                                             sBuffer.append(")^2");
126                                             kuohao_hou++;
127                                             break;
128                                         }
129                                     }
130                                     if(j != (num_num-1))
131                                     {
132                                         switch(random.nextInt(4))
133                                         {
134                                             case 0:
135                                             {
136                                                 sBuffer.append("+");
137                                                 break;
138                                             }
139                                             case 1:
140                                             {
141                                                 sBuffer.append("-");
142                                                 break;
143                                             }
144                                             case 2:
145                                             {
146                                                 sBuffer.append("x");
147                                                 break;
148                                             }
149                                             case 3:
150                                             {
151                                                 sBuffer.append("÷");
152                                                 break;
153                                             }
154                                         }
155                                     }
156                                 }

3.高中题目括号功能:代码只能保证左括号和右括号数量相等,不能保证左括号与右括号匹配,即可能出现一对应匹配的括号右括号在左而左括号在右的情况。

互相学习:

看了润钊的代码我也意识到了自己代码的一些问题:没有实现括号和避免题目重复的功能,而且题目输出的方式也没有像润钊这样先保存后输出,导致扩展性很差。以后我会慢慢改正,和大家共同进步。

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

结对编程-队友代码分析

结对编程队友代码分析

结对编程----分析队友代码

结对编程-队友代码分析

结对编程队友代码分析

结对编程之队友代码分析