20194731 自动生成四则运算题第一版报告
一、需求分析
现在的小学生算数能力需要经常锻炼,但是出题成了家长们的一大难题,因为人工出题需要自己计算,但是利用程序出题可以很快速,准确的出题。
二、功能设计
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语言编写的程序,没有用到类,我也没有写函数。
四、测试运行


五、代码片段
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);
六、总结
改进思路:可把每段关键算法写成单独的函数,这样每次进行修改时可直接修改函数部分不需要到程序中进行修改,把可变的参数全部用变量代替,这样可实现更多功能,使程序更加人性化。
七、PSP
| 
 PSP2.1  | 
 任务内容  | 
 计划共完成需要的时间(min)  | 
 实际完成需要的时间(min)  | 
| 
 Planning  | 
 计划  | 
 60  | 
 120  | 
| 
 · Estimate  | 
 · 估计这个任务需要多少时间,并规划大致工作步骤  | 
 60  | 
 120  | 
| 
 Development  | 
 开发  | 
 30  | 
 60  | 
| 
 ·· Analysis  | 
 需求分析 (包括学习新技术)  | 
 3  | 
 5  | 
| 
 · Design Spec  | 
 · 生成设计文档  | 
 2  | 
 5  | 
| 
 · Design Review  | 
 · 设计复审 (和同事审核设计文档)  | 
 2  | 
 5  | 
| 
 · Coding Standard  | 
 代码规范 (为目前的开发制定合适的规范)  | 
 1  | 
 1  | 
| 
 · Design  | 
 具体设计  | 
 5  | 
 5  | 
| 
 · Coding  | 
 具体编码  | 
 20  | 
 15  | 
| 
 · Code Review  | 
 · 代码复审  | 
 5  | 
 20  | 
| 
 · Test  | 
 · 测试(自我测试,修改代码,提交修改)  | 
 1  | 
 4  | 
| 
 Reporting  | 
 报告  | 
 30  | 
 60  | 
| 
 ·· Test Report  | 
 · 测试报告  | 
 10  | 
 20  | 
| 
 · Size Measurement  | 
 计算工作量  | 
 10  | 
 20  | 
| 
 · Postmortem & Process Improvement Plan  | 
 · 事后总结 ,并提出过程改进计划  | 
 10  | 
 20  | 
 

                
            
        
浙公网安备 33010602011771号