一、需求分析
通过该程序的设计,减轻老师和家长的出题负担。
二、功能设计
1.自动生成可定制10道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("
");
}
break;
case 1:sum=a*b;f='*';
if(cc==1){
if(a*b<=100){
printf("%d*%d=",a,b);
printf("
"); //cc=1时包含乘法
}
}else if(cc==0){
i--;
continue;
}break; //cc=0时不包含乘法,for处重新执行
case 2:sum=a-b;f='-';
printf("%d-%d=",a,b);
printf("
");
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("
");
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|