题目描述:
从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
运算符为 +, −, ×, ÷
并且要求能处理用户的输入,并判断对错,打分统计正确率。
要求能处理用户输入的真分数, 如 1/2, 5/12 等
使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10
需求分析
- 1、支持整数、真分数的四则运算;
- 2、判断用户的回答是否正确,并在最后显示正确率;
- 3、能够使用参数控制生成题目的个数。
代码说明
提供判断该分数的可约分性质,并找出其最大公约数并进行约分。
if (k==0){
m1=m1/n1;
n1=1;
}
else {while(m1%k!=0||n1%k!=0){
o=k;
k=l%k;
l=o;
}//求出最大公约数
m1=m1/k;
n1=n1/k;
}
判断输入答案的正确与错误并对其计数。分数进行字符串比较而整数则用==来比较其正确性。
if(str.equals(sum))
{System.out.println("回答正确");
c++;
a++;
}
else
{System.out.println("回答错误");
System.out.println("正确答案是:"+sum);
c++;
b++;
}
执行结果
PSP展示
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student(/hour) | Time (%)(/hour) |
Planning | 计划 | 2h | 1.5h |
Estimate | 估计这个任务需要多少时间 | 35h | 35h |
Analysis | 需求分析 (包括学习新技术) | 1h | 1.5h |
Coding Standard |
代码规范 | 1.5h | 1h |
Design | 具体设计 | 3h | 3.5h |
Coding | 具体编码 | 20h | 20h |
Test | 测试(自我测试,修改代码,提交修改) | 2h | 2h |
Reporting |
报告 |
2h | 2h |
代码链接:https://git.coding.net/li111222zxc/shiyan1.git
设计总结
本次编程的过程先是由了解获取提取数并进行判断开始,最先完成的是整数的四则运算,开始时只是固定数目的题目,接着设置可控的出题数,再来就是将题目设成case以便随机生成题型(本来是按照加减乘除顺序出题),然后完成分数的加减乘除并对其进行约分算法的设计与判断。