HNU个人项目互评
结对编程-对zjs的代码评价
功能实现
优点
功能基本符合个人编程要求
缺点
但有一点不足,输入用户名和密码之后再输入-2进入切换账户界面,但是在该界面只能输入正确的单词才能进入下一界面,可以设置一个返回键。
以及在登录界面以及出题完成之后的退出界面,我都没有找到如何退出程序,结束进程
代码部分
优点
代码逻辑结构清晰,分成的类很多,有比较好的可扩展性,感觉在题目生成方面写得比我更加简洁,用到的用来度量的变量更少
StringBuffer q = new StringBuffer();
Random rand = new Random();
int totalnum;
totalnum = rand.nextInt(4) + 2;
int leftnum;
leftnum = rand.nextInt(totalnum);
int left = 0;
int gap = 0;
int ifleft;
int ifright;
for (int i = 0; i < totalnum; i++) {
if (i != 0) {
//随机一个符号
int signal;
signal = rand.nextInt(4);
switch (signal) {
case 0:
q.append("+");
break;
case 1:
q.append("-");
break;
case 2:
q.append("*");
break;
case 3:
q.append("/");
break;
}
}
if (leftnum != 0 && i < (totalnum - 1) && totalnum != 2 && i != 0) {
//随机产生左括号
ifleft = rand.nextInt(2);
if (ifleft == 1) {
q.append("(");
left++;
leftnum--;
gap = 0;
}
}
//随机产生一个数字
int num = rand.nextInt(100) + 1;
q.append(num);
gap++;
if (gap >= 2 && left != 0) {
//随机产生一个右括号
ifright = rand.nextInt(2);
if (ifright == 1) {
q.append(")");
gap = 0;
left--;
}
}
}
for (int j = 0; j < left; j++) {
//在尾部补全右括号
q.append(")");
}
String pquestion;
pquestion = q.toString();
return pquestion;
并没有像我很在意左右括号的即时匹配,而是直接选择在尾部将括号全部补全,而且一开始就随机生成了操作数的个数也不用再最后加很多判断语句来限制最后题目的长度。
缺点
首先是有些变量和函数遵循了驼峰命名,有些又没有,导致读起来有些累...
比如这一段
for(int i=0;i<3;i++){
pteacher[i]=new teacher();
pteacher[i].setName("张三"+(i+1));
pteacher[i].setCode("123");
mteacher[i]=new teacher();
mteacher[i].setName("李四"+(i+1));
mteacher[i].setCode("123");
steacher[i]=new teacher();
steacher[i].setName("王五"+(i+1));
steacher[i].setCode("123");
}
还有就是,有些函数实现的功能太多了,到时侯改起来可能会比较麻烦。
比如在primary_test类里面的一个叫primary的函数,创建文件夹,出题界面,切换提示界面都写在里面了。感觉有点臃肿。
以及并没有用到题目要求的抽象类或者接口,这也是比较可惜的一点。
代码部分总结
相比于我自己的,他的代码结构上更加简洁,有些方法实现得更加简单,效果也更好,但是细节方面还有待改进。总之还是一段比较流畅的代码,没有一些缠绕不清的地方,还是比较清晰的。
总结
没有大的不足,但是有小的缺点,不过大家都是头一次参与这种创新型的课程作业,希望共勉,争取最后能写出一个比较优秀的结对编程项目吧。

浙公网安备 33010602011771号