结对编程分析
作者:互联网
结对编程相互分析
一、简介
本博客为对刘同学中小学自动出题个人项目的代码评价,该项目主要为用户登录生成可小学、初中、高中对应要求的题目并以.txt形式保存
二、代码分析
项目功能主要依靠定义的login类和create_questions类来实现,user类用以存储用户基本信息。
在login类中,通过对各函数的使用有效实现了与用户交互的功能(如所需的登录、切换类型等等),判断是否切换状态时,对输入的字符串进行分割处理来判断是否符合要求。
create_questions中主要实现的是对小学、初中、高中试题生成的功能,在试题生成时,利用随机数产生随机的操作数数量以及随机操作数、操作符,生成括号时同样也采用了随机生成的方法,加上一些括号生成的标志符使得括号的生成相对合理。
int k = random.nextInt(100) + 1;//随机1-100的数 int t = random.nextInt(4);//随机符号 boolean braketj = random.nextBoolean(); if (j == 0) { braketj = false; } if (j == count - 1) { if (braket == 1) { question = question + k + ")"; break;//如果最后还差个),在末尾添加 } question = question + k; break; } if (braketj == true) { if (braket == 0) { question = question + "(" + k + Tga[t]; braket = 1; continue; } if (braket == 1) { question = question + k + ")" + Tga[t]; braket = 0; continue; } } question = question + k + Tga[t];//无括号生成时才进行
在查重方面上采用了将已生成的题目存入同一个.txt文件中,在再次生成题目时与其中已生成题目进行对比来进行查重。
三、优缺点分析
(优点
- 代码命名规范,使用大小驼峰命名,很容易看出变量及函数用途
- 函数分类清晰,利于后续功能改动与补充,目录划分细致、接口对接明确,可拓展性强
- 将用户整合成一个类,清晰易懂,增加了可读性
- 利用随机函数实现了题目的随机性,符号随机,数字随机以及括号随机
(缺点
1.login类中一些功能未使用函数实现,而是全部功能实现包含在main()函数中,代码阅读起来相对复杂
2.导入库使用了通配符,不符合Google规范
3.利用arrayList<User>存储用户数据,对用户信息维护及新增用户不便
四、功能测试
功能基本实现(但一些特殊情况未考虑到)
生成题目
五、总结
功能相对完善,细节考虑周到,但是任有部分不足之处。总体看来,值得我学习之处颇多。
标签:分析,braket,结对,题目,编程,question,生成,括号,随机 来源: https://www.cnblogs.com/ldsismyson/p/16690490.html