结对编程项目-四则运算(挑战出题)(第三周)
-
需求分析
1、指定生成规定数量的题目
2、指定生成规定长度的题目
3、去除重复题目
4、支持命令行参数
-
遇到的问题
死循环问题
- 在运行检测程序的过程中,会出现死循环,在idea和虚拟机里面也会出现相同的情况
后来经过排查,是在生成算式的时候,长度变量的定义不同,原来是以数字个数,老师的测试软件是符号个数,所以在生成一个符号的算式的时候出现了死循环
题目长短不一问题
- 在生成题目的时候,为了避免类似于
1+1+(1)
的问题,在生成括号的时候会多生成一组符号和数字
解决方法是增加一个判断生成符号的长度的模块
if (operator.length()!=1)
i ++;
如果是生成括号,长度不为一,在计数的时候加上一就可以解决
当然,这样如果是一个符号的算式会强制生成为两个符号的算式,所以这个也要在生成算式的时候分类讨论,因为一个符号根本用不上括号
if (length==1){
for(int i=0; i<length; i++){
operator = creativeOpe1();
formula = formula.concat(operator +" ");
number = generateNum();
formula = formula.concat(fmt.format(number)+" ");
}
}
else {
for (int i = 0; i < length; i++) {
operator = generateOpe();
if (operator.length() != 1)
i++;
formula = formula.concat(operator + " ");
number = generateNum();
formula = formula.concat(fmt.format(number) + " ");
}
formula = check(formula);
}
-
UML结构图
-
运行结果
-
代码链接
-
PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
· Estimate | · 估计这个任务需要多少时间 | 1000 | 500 |
Development | 开发 | ||
· Analysis | · 需求分析 (包括学习新技术) | 50 | 50 |
· Design Spec | · 生成设计文档 | 30 | 40 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 50 | 60 |
· Design | · 具体设计 | 100 | 200 |
· Coding | · 具体编码 | 100 | 200 |
· Code Review | · 代码复审 | 100 | 200 |
· Test | · 测试(自我测试,修改代码,提交修改) | 200 | 200 |
Reporting | 报告 | ||
· Test Report | · 测试报告 | 20 | 20 |
· Size Measurement | · 计算工作量 | 20 | 20 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | 20 |
结对伙伴
20162319 莫礼钟
评分:20