20194725 自动生成四则运算题第一版报告
一·需求分析
通过此代码自动生成四则运算,给运算带来方便,节省老师和家长的出题时间。
二·功能设计
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
三·设计实现
此程序使用C语言来实现,其中包括do-while()循环和switch()语句,
并用RANDOM()函数实现区间的随机数
四·测试运行
五·代码片段
完成取运算符和随机数
#define RANDOM(a,b)(rand()%((b+1)-(a))+(a)) //宏定义参数,产生[a,b]区间的随机数 int main() { int a,b,i,result; int sum=1; char op,ops[]= {'+','-','*','/'}; srand(time(NULL)); //初始化随机数 do { a=rand()%201-100; b=rand()%201-100; //随机生成-100到100之间的数 op=ops[RANDOM(0,3)]; //取运算符
完成运算过程并控制结果在100之内
switch(op) { case '+': result=a+b; break; case '-': result=a-b; break; case '*': result=a*b; break; case '/': result=a/b; break; } if(result<100&&result>-100) //令结果小于100 { sum++; printf("%d%c%d=%d\n",a,op,b,result); } else continue; }while(sum<=10); }
存储到外部文件
FILE *fp; fp=fopen("D:\\result.txt","w");
六·总结
利用函数完成模块设计,自身不足是不断调整了许多次才成功,以后要多加学习。
七·PSP
PSP2.1 | 任务内容 |
计划共完成需要的 时间(min) |
实际完成需要的 时间(min) |
Planning | 计划 | 30 | 50 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 50 |
Development | 开发 | 80 | 100 |
Analysis | 需求分析 (包括学习新技术) | 8 | 10 |
Design Spec | 生成设计文档 | 6 | 8 |
Design Review | 设计复审 (和同事审核设计文档) | 5 | 6 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 3 | 3 |
Design | 具体设计 | 10 | 15 |
Coding | 具体编码 | 35 | 45 |
Code Review | 代码复审 | 5 | 6 |
Test | 测试(自我测试,修改代码,提交修改) | 3 | 5 |
Reporting | 报告 | 10 | 11 |
Test Report | 测试报告 | 2 | 5 |
Size Measurement | 计算工作量 | 5 | 6 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 5 | 7 |