需求
实现一个命令行程序,要求:
1.自动生成小学四则运算题目(加、减、乘、除)
2.支持整数
3.支持多运算符(比如生成包含100个运算符的题目)
4.支持真分数
5.统计正确率
思路
首先我和结对同学构思了四则运算代码的模块,大致分为以下几个模块:
1.[四则运算](https://git.oschina.net/pdds2017/20162302-20162319/blob/master/src/四则运算.java?dir=0&filepath=src%2F四则运算.java&oid=85852cd7532d1cc3c918831e38334a333afd7cab&sha=2a99d5725ff323a8b3409d3b5201c4641ed40ca3]
Junit测试
写代码中遇到的困难
难题1:在编写四则运算的代码中,我和我的结对伙伴在最开始遇到的难题是分数类代码的编写。在运算中如何让程序区分分数与除法。
难题1解决方法:首先我们先编写了分数类的代码然后加上除法,发现程序不能正确识别两者区别。于是我们从字符串长度下手。写了一个这样的代码:(图片),于是难题1迎刃而解。
难题2:中缀式转后缀式的表达式
难题2解决方法:毫无头绪,最后只能借鉴了一下前辈的经验(http://www.cnblogs.com/sxdcgaq8080/p/6270341.html)
难题3:代码中分数与整数不兼容
难题3解决方法:实在是找不到能让两者兼容的办法,于是我们折中了一下,将一个代码分为两个,一个代码支持分数(
)
UML类图
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 0.5 | 0.5 |
· Estimate | · 估计这个任务需要多少时间 | 0.5 | 0.5 |
Development | 开发 | 15 | 20 |
· Analysis | · 需求分析 (包括学习新技术) | 2 | 2 |
· Design Spec | · 生成设计文档 | 0.5 | 0.5 |
· Design Review | · 设计复审 (和同事审核设计文档) | 0.5 | 0.5 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
· Design | · 具体设计 | 3 | 3 |
· Coding | · 具体编码 | 3 | 4 |
· Code Review | · 代码复审 | 2 | 2 |
· Test | · 测试(自我测试,修改代码,提交修改) | 3 | 5 |
Reporting | 报告 | 2.5 | 3 |
· Test Report | · 测试报告 | 2 | 1 |
· Size Measurement | · 计算工作量 | 0.5 | 0.5 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 1 | 1 |
总计 | 37 | 44.5 |
代码最终效果
合作伙伴
[20162302杨京典](http://www.cnblogs.com/yangjingdian/p/6852380.html)