20194647 自动生成四则运算第一版报告
一、 需求分析
能自动生成四则运算,并且能控制参数,题量
二、功能设计
基本功能:自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
扩展功能:剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
题目数量可定制
相关参数可控制
包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
生成的运算题存储到外部文件result.txt中
三、设计实现
主函数控制并循环生成随机数运算 具体参数由以下变量控制
num a:第一个操作数
num b:第二个操作数
symbol:随机生成数控制“+”、“-”、“*”、“/“符号
tg: 题目数量
ctrl:控制是否为2则或4则运算
Max:控制操作数范围
fuhao:控制是否含负数
利用调用函数控制重复式
四、运行测试
输入相应的参数
显示结果
五 代码片段
1、控制符号正负
1 for(;i<tg;i++) 2 { 3 if(fuhao == 2) //判断是否为负数 4 { 5 numa = rand() % Max+1; 6 numb = rand() % Max+1; 7 } 8 else{ 9 numa = rand()%(2*Max+1)-Max; 10 numb = rand()%(2*Max+1)-Max; 11 } 12 symbol = rand() % ctrl+1;
2、随机生成数控制“+”、“-”、符号 并输出
switch(symbol) { case 1: if(fun(numa,'+',numb)==1) fprintf(fp,"%d + %d=%d\n",numa,numb,numa+numb); else { i--; continue; } break; case 2: if(fun(numa,'-',numb)==1) fprintf(fp,"%d - %d=%d\n",numa,numb,numa-numb); else { i--; continue; } break;
3、生成的运算题存储到外部文件result.txt中
1 FILE *fp; 2 fp=fopen("C:result.txt","w");
六、总结
先把整体框架搭建出来,把最基本的变量等都设置出来并赋值,再根据需求划分功能,将每个模块的功能依次实现,并最后进行整合测试,保证程序能够顺利运行。
七、PSP
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
90 |
180 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
90 |
200 |
Development |
开发 |
350 |
788 |
·· Analysis |
需求分析 (包括学习新技术) |
10 |
20 |
· Design Spec |
· 生成设计文档 |
30 |
30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
0 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
· Design |
具体设计 |
60 |
90 |
· Coding |
具体编码 |
300 |
340 |
· Code Review |
· 代码复审 |
20 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
10 |
15 |
Reporting |
报告 |
30 |
40 |
·· Test Report |
· 测试报告 |
20 |
25 |
· Size Measurement |
计算工作量 |
0 |
0 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
10 |
15 |