a.需求分析
从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
- 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
- 运算符为 +, −, ×, ÷
- 并且要求能处理用户的输入,并判断对错,打分统计正确率。
- 要求能处理用户输入的真分数, 如 1/2, 5/12 等
- 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10
b.功能设计
1.支持整数的四则运算(除法运算是浮点型)
2.可以自主选择答题的数目,即随时可以终止答题
3.答题结束后会统计正确率
c.设计实现
用c语言进行编程,用Visual c++进行编译生成两个随机数分别进行加减乘除的各个操作,定义right和wrong两个变量来统计正确和错误的题目个数,用正确的个数除于总题目数得到正确率,除法用浮点型是为了让结果更准确。
d.代码说明
这是主函数:
int main()
{
void add();
void subtract();
void multiply();
void divide();
int choise;
int on=0;
srand(time(0));//设置时间种子,否则每次运行生成的随机数都是一样的
printf("
简易四则运算
");
while(1)
{
printf(" 结束答题(请输入3)
");
if(on==0)
{
choise=rand()%4;
switch(choise)
{
case 0:
add();
break;
case 1:
subtract();
break;
case 2:
multiply();
break;
case 3:
divide();
break;
}
}
printf("
继续运算(请输入1)
");
printf("
查看正确率(请输入2)
");
// printf("
结束(请输入3)
");
scanf("%d",&on);
if(on==1)
{
on=0;
}
else if (on==2)
{
accuracy=right/(right+wrong);
printf("正确率为%.2f
",accuracy);
}
else if(on==3)
{
break;
}
}
}
e.测试运行
评估时间
源代码:
https://git.coding.net/iloveoatmeal/one-sizeyunsuan.git
实验总结:
这次的实验我是计划用周末两天完成的,然而所花的时间完全超过了我的预期,而且完成度也大多没达到,然而就这么一个low的程序都花了我整整一个周末的时间去图书馆做,还是在同学的帮助下,说实话,我对编程真的提不起兴趣(这应该就是我几乎编程课都挂科的原因吧),但有时候又不得不做,请原谅我的坦诚!但每一次的实验我都会自己去做,至于遇到的问题,如每次随机得到的数字都是相同的,加一个#include<time.h>的头文件就解决了,都是一些小问题就不多说了。