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("\n总共答对%d道题\n",g);
printf("最后得分为%d分\n",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