结对编程项目-四则运算 挑战出题

20162325金立清 结对编程项目-四则运算 挑战出题

目录

一、需求分析

  • 通过命令行参数形式指定题目要求
  • 题目去重

返回目录

二、设计思路

本周任务是给题目去重,方法是每生成一个题目,判断结果,将结果放入list中,接下来的题目答案如果与列表中的元素有相同,就重新生成题目。

UML类图

返回目录

三、实现过程中的关键代码解释

  • 去重代码
 for (int i=0;i<count;i++) {
            expr = mq.getExper(level);
            result = calculator.evaluate(nts.conversion(expr));
            if(list.indexOf(result)>= 0) {
                i--;
            }else {
                list.add(result);
                iof.WriteQuestionsToFile(expr + "\r\n");
            }
}

ListindexOf方法,返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。如果返回值大于等于0,说明重复,那么i自减一,继续循环;如果返回值小于0,没有重复,那么把结果加入列表,再把题目写入文件。

返回目录

四、测试方法

前四个测试还能进行,到10000题就崩溃了。

  • 去重




  • 无去重






返回目录

五、运行过程截图

  1. 在IDEA中运行,先设置参数

  2. 然后运行程序

  3. 运行成功后,会生成相应的txt文件

  4. 打开后可以看到题目

  5. 在命令行下编译运行

javac -d bin src/*.java
cd bin
java ExpressionGenerator <number-of-expressions> <number-of-operator> <output-file-path>

返回目录

六、代码托管地址

返回目录

七、遇到的困难及解决方法

八、对结对的小伙伴的评价

一开始试着思考如何去重题目,但半天毫无头绪,最终还是由搭档完成编码,再把思路讲解给我听,我则负责把之前的代码复制过来进行修改,如把可执行的入口类改名为ExpressionGenerator等,还向搭档学习了页内Markdown格式。

  • 打分:70分
  • 依据:代码主要是搭档写的

返回目录

九、PSP

PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
Planning 计划
· Estimate · 估计这个任务需要多少时间 0.5 0.5
Development 开发
· Analysis · 需求分析 (包括学习新技术) 2 4
· Design Spec · 生成设计文档 1.5 1
· Design Review · 设计复审 (和同事审核设计文档) 1 1
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0.5 1
· Design · 具体设计 2 3
· Coding · 具体编码 2 4
· Code Review · 代码复审 1 2
· Test · 测试(自我测试,修改代码,提交修改) 1 1.5
Reporting 报告
· Test Report · 测试报告 1 1
· Size Measurement · 计算工作量 0.5 0.5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 0.5 0.5
合计 13.5 20

返回目录

posted @ 2017-06-04 21:42  20162325金立清  阅读(175)  评论(0编辑  收藏  举报