题目描述:
从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
运算符为 +, −, ×, ÷
并且要求能处理用户的输入,并判断对错,打分统计正确率。
要求能处理用户输入的真分数, 如 1/2, 5/12 等
使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10
需求分析
- 1、支持整数、真分数的四则运算;
- 2、判断用户的回答是否正确,并在最后显示正确率;
- 3、能够使用参数控制生成题目的个数。
代码说明
public static void main(String[] args)
{
switch (args[0]) {
case "-n":
// 随机生成题目使用的随机数以及输入使用Scanner
Random random=new Random();
Scanner scanner=new Scanner(System.in);
// 总题目个数
Integer num=new Integer(args[1]);
// 计算使用的两个题目分数以及结果数
Fractions fractions1=new Fractions();
Fractions fractions2=new Fractions();
Fractions result=new Fractions();
// 计算分数类
Caculate caculate;
// 用户输入的答案
String answer;
String answer_[];
// 标记当前题目数
int i=0;
// 标记正确题目数
int right=0;
public void setValue(int numerator,int denominator)
{
int temp=maxCommonDivisor(denominator, numerator); //temp为最大公约数
this.numerator=numerator/temp;
this.denominator=denominator/temp;
}
// 求最大公约数
测试运行
随机生成的题目数
运算结果
PSP展示
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student(/hour) | Time (%)(/hour) |
Planning | 计划 | 1h | 1.5h |
Estimate | 估计这个任务需要多少时间 | 20h | 16h |
Analysis | 需求分析 (包括学习新技术) | 1h | 1.5h |
Coding Standard |
代码规范 | 2h | 1.5h |
Design | 具体设计 | 4h | 4.5h |
Coding | 具体编码 | 5h | 4h |
Test | 测试(自我测试,修改代码,提交修改) | 1h | 1h |
Reporting |
报告 |
1.5h | 2h |
代码地址:https://git.coding.net/w201421123115/test1.git
小结
对于java还不够熟悉,一开始在真分数方面迷茫了很久,请教了身边许多同学才勉强完成作业。在作业完成方面,还有一些不尽如人意的地方,希望以后能够改进自己的不足,多向身边的大神同学学习,争取下次作业能够完成的更好。