----------一、需求分析
通过该程序的设计,减轻老师和家长的出题负担。
----------二、功能设计
1.自动生成可定制道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内 2.题目数量可自定义 3.操作数数值范围可自定义(100以内) 4.其他:
###(1).是否包含乘法和除法
###(2).操作数是否含负数 ###(3).生成的运算题存储到外部文件result.txt中
----------三、设计实现
使用c语言设计实现。
----------四、测试运行
----------五、代码片段
1.判断是否包含正负号。
printf("请输入是否带负号:"); //1带0不带 scanf("%d",&g); for(i=0;i<n;i++){ if(g==0){ a=rand()%z; b=rand()%z; //随机生成两个正数 }else if(g==1){ a=rand()%z*(rand()%100>0.5?1:-1); b=rand()%z*(rand()%100>0.5?1:-1); //随机生成两个正或负数 }
2.随机生成符号,输出。
c=rand()%4; //生成0-3随机数 switch(c) { case 0:sum=a+b;f='+'; if(a+b<=100){ printf("%d+%d=",a,b); printf("\n"); } break; case 1:sum=a*b;f='*'; if(cc==1){ if(a*b<=100){ printf("%d*%d=",a,b); printf("\n"); //cc=1时包含乘法 } }else if(cc==0){ i--; continue; }break; //cc=0时不包含乘法,for处重新执行 case 2:sum=a-b;f='-'; printf("%d-%d=",a,b); printf("\n"); break; case 3:sum=a/b;f='/'; if(cc==1){ printf("%d/%d=",a,b); //cc=1时包含乘法 } else if(cc==0){ i--; continue; //cc=0时不包含除法,for处重新执行 } printf("\n"); break; }
----------六、总结
有的地方可能不太完美,但也是千辛万苦写出来的...希望在今后的学习中能继续提升自己的专业技能,并有所改进。
----------七、PSP
psp2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
Planning | 计划 | 15 | 20 |
· Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 10 |
Development | 开发 | 150 | 185 |
·· Analysis | 需求分析 (包括学习新技术) | 10 | 20 |
· Design Spec | · 生成设计文档 | 15 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | 25 |
·Coding | · 具体编码 | 150 | 220 |
·Code Review | · 代码复审 | 10 | 25 |
·Test | · · 测试(自我测试,修改代码,提交修改) | 15 | 18 |
·Reporting | · · 报告 | 10 | 40 |
· Test Report | · · 测试报告 | 10 | 15 |
· Size Measurement | · · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · · 事后总结 ,并提出过程改进计划 | 15 | 15 |