一、需求分析
针对教师的需求对学生的出题(四则运算)数量、范围、类型等进行选择出题,并可以生成txt外部文件,方便教师进行打印。
二、功能设计
•基本功能
1、自动生成10道100以内的2个操作数的四则运算算式(+ - * /);
2、生成的运算题存储到外部文件result.txt中;
3、剔除重复算式;
4、题目数量可定制;
5、相关参数可控制。
•拓展功能
1、如果随机生成的数为负数,将为该数加上括号,使式子看上去更加规范;
1 if(o=='-'&&q!='-'){ 2 printf("(%c%d) %c %c%d = \n",o,a[i],p,q,c[i]); 3 fprintf(fp,"(%c%d) %c %c%d =\n",o,a[i],p,q,c[i]);}
2、如果随机生成的式子为除法,并且被除数为0,系统将会把被除数换成数组中的下一个数
1 if(p=='/'&&c[i]==0) 2 c[i]=c[i]+1;
三、设计实现
1、使用主函数实现一些语句基本功能;
2、使用rand()%number生成随机数
1 a[i]=rand()%s; 2 c[i]=rand()%s;//将随机生成的数放入这两个数组
3、使用printf以及scanf语句实现提示用户输入相关信息的功能
1 printf("请输入出题数量:"); 2 scanf("%d",&num);
四、测试运行
程序运行截图(基本功能):
(拓展功能):
五、满意的代码片段
1 char o=hao[rand()%m]; 2 char p=array[rand()%n]; 3 char q=hao[rand()%m];//将随机生成的符号赋到变量 4 if(m==1){ 5 printf("%c%d %c %c%d = \n",o,a[i],p,q,c[i]); 6 fprintf(fp,"%c%d %c %c%d =\n",o,a[i],p,q,c[i]);}//变量随机生成不同的式子
六、总结
通过本次作业了解了需求设计需要考虑很多方面,不仅需要满足客户的需求,有时候还需要在基本需求的基础上对程序进行使使用程序的人更方便的功能。在实际设计过程中也遇到了很多困难,有细节方面的同时也有没有学习到的方面,但是本次作业也使我学习到了很多以前没有学习过甚至没有接触过的方面,在以后的程序设计时会更加注意细节方面的问题。
七、psp
PSP2.1 | 任务内容 | 计划共完成需要的时间(h) | 实际完成需要的时间(h) |
Planning | 计划 | 1 | 2 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 1 | 2 |
Development | 开发 | 13.5 | 26 |
·· Analysis | 需求分析 (包括学习新技术) | 0.5 | 0.5 |
· Design Spec | · 生成设计文档 | 1 | 1 |
· Design Review | · 设计复审 (和同事审核设计文档) | 1 | 0.5 |
· Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
· Design | 具体设计 | 1 | 1 |
· Coding | 具体编码 | 4 | 8 |
· Code Review | · 代码复审 | 1 | 5 |
· Test | · 测试(自我测试,修改代码,提交修改) | 4 | 9 |
Reporting | 报告 | 1.5 | 2 |
·· Test Report | · 测试报告 | 0.5 | 1 |
· Size Measurement | 计算工作量 | 0.5 | 0.5 |
· Postmortem & Process Improvement Plan | · 事后总结 ,并提出过程改进计划 | 0.5 | 0.5 |