20162302 - 20162319 结对编程项目-四则运算(挑战出题)(第三周)

结对编程项目-四则运算(挑战出题)(第三周)

  • 需求分析

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结构图

  • 运行结果


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

posted @ 2017-06-04 21:24  20162302  阅读(200)  评论(4编辑  收藏  举报