20194593自动生成四则运算题第一版报告

#一、需求分析

      为了方便小学生算数练习,为了方便家长们出题,利用程序出题可以很快速,很准确。

#二、功能设计

1、基本功能

    (1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内

    (2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式

    (3)题目数量可定制

    (4)相关参数可控制

      是否包含乘法和除法

      操作数数值范围可控(如操作数 在100以内 还是1000以内)

      操作数是否含负数

    (5)生成的运算题存储到外部文件result.txt中

2、拓展功能

    (1)可选择是否生成答案

#三、设计实现

+使用C语言及函数库
+用哈希表对操作数相同的算式去重
+用random()函数实现给定范围内的随机数取值,用2*random()-取值范围来表示可以为操作可为负数的情况

#四、测试运行



#五、代码片段

(1)判断算式是否重复,剔除重复式

1 for(j=0;j<i;j++) .
2  if(b1[i][0]==b1[j][0]&&b1[i][1]==b1[j][1]&&b1[i][2]==b1[j][2]){
3    flag=1;
4 break;
5 }
6 if(flag==1||(e==2&&c==0)){
7 i--;
8 continue;
9 }

(2)是否生成带答案的算式

1 if(t4==1)
2   fprintf(fp,"%5.0f%5.c%5.0f =%5.0f\n", a,b[e],c,sum);
3 else
4   fprintf(fp,"%5.0f%5.c%5.0f =\n", a,b[e],c);

(3)运算结果在100以内

1 if(result>100||result<-100)
2       { 
3         i--; 
4          continue;
5       } 

#六、总结

      改进思路:可把每段关键算法写成单独的函数,这样每次进行修改时可直接修改函数部分不需要到程序中进行修改,把可变的参数全部用变量代替,这样可实现更多功能,使程序更加人性化。

七、PSP

psp2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 60 60
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 60 60
Development 开发 120 120
Analysis 需求分析 (包括学习新技术) 30 30
Design Spec 生成设计文档 30 30
Design Review 设计复审 (和同事审核设计文档) 30 30
Coding Standard 代码规范 (为目前的开发制定合适的规范) 10 10
Design 具体设计 20 20
Coding 具体编码 120 120
Code Review 代码复审 10 10
Test 测试(自我测试,修改代码,提交修改) 10 10
Reporting 报告 30 30
Test Report 测试报告 10 10
Size Measurement 计算工作量 20 20
Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 10 10

猜你喜欢

转载自www.cnblogs.com/hfffq/p/11529737.html