作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
github仓库地址:https://github.com/tianshizhao/tianshizhao/commits?author=tianshizhao
一、题目要求:
像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:
23 - 3 * 4 = 11
扩展要求:
1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。
2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。
二.设计
1.用了C语言来设计这个程序
2.主要设计了六个函数,分别是加、减、乘、除、运算符和操作这四个函数
3.答案精确到0.1,主要用了两个if来加以判断
4.用了五个随机,从何实现自动生成随机数和随机符号
a=rand()%100;
b=rand()%100;
c=rand()%100;
j=rand()%4;
k=rand()%4;
5.累计所有答对的题目,最后算出最后得分,这里用了一个全局函数g作介质实现
f=100/n*g;
printf("
总共答对%d道题
",g);
printf("最后得分为%d分
",f);
三.问题及构建思想
刚开始做的时候,以为只有一个运算符,导致前面设计的构建思维全部白费,然后想了很久也没有找到连接两个式子的混合运算模式,
最后在百度上查了相关资料,才渐渐明白连接两个运算符号。这个运算式子主要由五大部分组成,(数子、运算符、数、运算符、数)
我把他们全部拆除了,全部随机,然后一个一个组出来,最后就实现了一个式子。
p1=fuhao(j);
p2=fuhao(k);
printf("%d %c %d %c %d = ",a,p1,b,p2,c);
scanf("%f",&answer);
四。实验截图
.个人软件过程耗时估计与统计表:
PSP2.1 | Personal Software Process Stages | Time Senior Student(h) | Time(h) |
Planning | 计划 | 1 | 1 |
· Estimate | 估计这个任务需要多少时间 | 20 | 30 |
Development | 开发 | 1 | 1 |
· Analysis | 需求分析 (包括学习新技术) | 1 | 1 |
· Design Spec | 生成设计文档 | 1 | 1 |
· Design Review | 设计复审 | 2 | 2 |
· Coding Standard | 代码规范 | 5 | 5 |
· Design | 具体设计 | 1 | 1 |
· Coding | 具体编码 | 5 | 8 |
· Code Review | 代码复审 | 3 | 3 |
· Test | 测试(自我测试,修改代码,提交修改) | 4 | 6 |
Reporting | 报告 | 2 | 2 |
· | 测试报告 | 0.5 | 0.5 |
· | 计算工作量 | 1 | 1 |
· | 并提出过程改进计划 | 0.5 | 0.5 |