#个人博客作业week2——结对编程伙伴代码复审
General
1.程序能够顺利地运行。程序通过命令行输入,能够向对应的文件中输出符合要求的题目和答案。程序能够根据用户的不同选择,进行题目的生产或答案的校验,生成出的题目符合参数要求和项目的查重等各种要求,答案校验准确迅速。
2.代码逻辑清晰,没有令人难以理解的部分。
3.他的编码风格与我相似,大括号的使用让我能很清楚地划分模块。变量名很函数名的命名做到了”望文生义“。
4.阅读过程中没有发现冗余重复多余的代码,项目中没有任何一个部分注释掉代码。
5.代码模块化十分清晰,主要分为了表达式,分数和计算模块,定义在头文件中,整个项目看上去结构十分清晰。
6.循环的退出条件合理,没有发现数组越界的情况。
7.一些重要的逻辑部分缺少必要的注释,自己需要仔细阅读才看能把握,希望能在一些重要的逻辑部分加上一些帮助理解的注释。
Security
1.对于命令行输入的格式检查完整。测试-n的参数小于等于0,或者-r的参数小于等于0的特殊情况时输出”command is not correct!“;测试cmd数据不合法的特殊情况时输出”command is not correct!“。
2.函数普遍没有检查是否为合法输入。不过在函数调用的部分都输入了合法的输入,所以没有出现异常。
3.无效的输出值会输出”command is not correct!“。
Documentation
1.缺少对程序的整体说明和解释,是伙伴口头解释给我听。
2.部分代码有注释但整体不完整,我认为的一些逻辑较为复杂的部分需要添加利于让人读懂和维护的注释。
3.数据结构的命名”望文生义“,但是建议最好还是需要添加一些解释注释,部分重要的变量缺少注释会让人难以理解。
4.没有检查出不完整的代码。
Testing
- 没有使用unit test进行正确性测试。
- 但作者记录了如下的人工测试日志:
1.测试速度,是否能生成超过10000的题,表示形式是否正确,是否出现超过3个运算符的算式
(1)输入:Myapp.exe -n 10000 -r 10
测试:看Exercises.txt, Answers.txt是否有10000项;看Exercise.txt中算式是否符合要求;看Answers.txt是否正确形式的答案
(2)输入:Myapp.exe -e Exercises.txt -a Answers.txt
测试:看Grade.txt的Correct项是否包含所有的序号,Wrong项包含的0个序号
2.测试-n的参数小于等于0,或者-r的参数小于等于0的特殊情况
(1)输入:Myapp.exe -n 0 -r 10
输出:“command is not correct!”
(2)输入:Myapp.exe -n -5 -r 10
输出:“command is not correct!”
(3)输入:Myapp.exe -n 10 -r 0
输出:“command is not correct!”
(4)输入:Myapp.exe -n 10 -r -5
输出:“command is not correct!”
3.测试是否产生相同的题目,是否有运算式中间产生负数,测试-n,-r调换顺序的情况
(1)输入:Myapp.exe -n 100 -r 10
测试:看这100个运算式是否存在相同的题目,当然也要看中间是否产生了负数的算式
(2)输入:Myapp.exe -r 10 -n 100
测试:首先看这是否能生成符合形式的算式和答案,再看这100个运算式是否存在相同的题目,当然也要看中间是否产生了负数的算式
4.测试是否能够正确地判断答案是否正确。
(1)对于评测的输入问题,我们要求的是输入的题目和答案都是从1开始顺序编号的,不能缺也不能多;否则,请提示输入有错误。
(2)由于我们的题目都是按规范生成的,为简单起见,可以认为输入的题目都是按照顺序编号的符合规范的题目。
(3)(但是答案缺少的话请报错并给出提示。)我把这一条忽略,如果缺少的话就算它是错的。
(4)所有题号必须是按照顺序递增的,而且题数一致。
为了比较这个,我把有10算式的正确答案中的部分改错,删掉其中一个答案(题号不删除),最后得到的答案符合要求。
5.为了符合题目要求,我需要测试cmd数据不对的情况。
(1)输入:Myapp.exe -n 10
输出:“command is not correct!”
(2)输入:Myapp.exe -n 10 -e Exercises.txt
输出:“command is not correct!”
#个人博客作业week2——结对编程伙伴代码复审的更多相关文章
- #个人作业Week2——结对编程对象代码复审
General 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果. 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时 ...
- 个人博客作业Week2(代码规范,代码复审)
Q:是否需要有代码规范 首先我们来搞清楚什么是“代码规范”,它和“代码风格”又有什么关系.依据个人的审美角度,我可能更喜欢在函数与函数之间空出一行,可能在命名习惯和代码注释上更加的internatio ...
- 个人博客作业week2——代码复审
1.代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范并不是从官僚制度下产生,它是为了提高项目团队开发效率而产生的一种工具,能够极大的增强代码可读 ...
- 个人博客作业-Week2 (代码规范, 代码复审)
代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释. ...
- 个人博客作业Week2
一.是否需要有代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我反驳这个观点,这些规范是成千上万的程序员在开发程序中总结出来的代码规范,他有助于我们的开 ...
- 软工个人作业-博客作业-WEEK2
1.是否需要代码规范: (1)这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 首先来说,从短期上和个体上来看,一个团队的代码风格必然会在一定程 ...
- 个人博客作业Week2(9月30日)
一.是否需要有代码规范 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这些规范并不是一开始就有的,也不是由某个人规定的,代码规范是程序员们在不断地编程实践过 ...
- 个人博客作业Week2 是否需要有代码规范
问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有 ...
- #个人博客作业week2——关于代码规范的个人观点
对于这一讨论的前提我们首先要知道什么是代码规范. 在这个问题上我同意一篇参考文章的观点——代码规范不仅只编码风格.编码风格仅是代码规范的一个方面,除了编码风格,代码规范还包括函数返回值等其他方面.在我 ...
随机推荐
- 数据可视化:CSV格式,JSON格式
下载CSV格式数据,进行可视化 csv.reader()创建一个与文件有关联的阅读器(reader)对象,reader处理文件中的第一行数据,并将每一项数据都存储在列表中 head_row = nex ...
- Mysql基础之 基础知识解释
Mysql基础知识 RDBMS:关系型数据库管理系统.是将数据组织成相关的行和列的系统 存储过程:是存储在数据库中的一段声明性语句.触发器.java.php等都可以调用其存储过程.早期的mysql版本 ...
- 遇到电脑IP地址冲突了怎么解决
由于路由器是自动分配IP地址的,如果多个设备设置的是IP地址自动获取,就会出现IP地址冲突的情况当局域网内有相同IP,并且该机器启动了防火墙,那就没办法自动更新到下一个IP的地址了,所以此时发生了冲突 ...
- oracle使用with as提高查询效率
经常在开发过程中会用到视图或组合查询的情况,但由于涉及表数据经常达到千万级别的笛卡尔积,而且一段查询时会反复调用,但结果输出往往不需要那么多,可以使用with将过滤或处理后的结果先缓存到临时表(此处原 ...
- MongoDB修改与聚合二
1.修改方法 一 语法 里面有三个大的语句:一个是查询条件:一个是修改字段:一个是其他参数(目前就有两个) db.table.update( 条件, 修改字段, 其他参数 ) update db1.t ...
- Linter pylint is not installed
问题 Linter 'pylint' is not installed. Please install it or select another linter". Error: Module ...
- $Matrix-Tree$定理-理论
$Matrix-Tree$ 矩阵的行列式 这个东西看了好久才明白 _ (:з」∠)_ 时间不够可以直接跳到第六段. 看到这种新定义,第一反应还是去翻百度百科: 但是这个讲解真的让人很迷惑...关键就是 ...
- Hibernate validator使用和自定义validator及整合Spring MVC
http://blog.csdn.net/lwphk/article/details/43983669 Hibernate validator使用 导入validation-api-xxx.jar 以 ...
- Qt+QGis二次开发:加载栅格图层和矢量图层
一.加载栅格图像 加载栅格图像的详细步骤在下面代码里: //添加栅格数据按钮槽函数 void MainWindow::addRasterlayers() { //步骤1:打开文件选择对话框 QStri ...
- PAT A1096 Consecutive Factors (20 分)——数字遍历
Among all the factors of a positive integer N, there may exist several consecutive numbers. For exam ...