一、题目要求
1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
二、需求分析
1.符合当下市场需要,方便小学数学题目演算与自动生成习题,便于随堂测验或考试需求,简便提供所需要的题目与答案,可重复使用
2.适合在校学生对自己综合能力的检测,对java编程能力进行巩固强化,培养独立思考能力与编码逻辑思维
3.属于面向对象编程的课程范围,利于教师收集学生个人素质能力与编程能力,在不抄袭与复制他人代码的前提下,极大程度地加强教师对学生综合水平的认识
4.温故知新,适用于在校学习有一定时间段的学生独立完成
三、设计实现
包括while(),for()循环和switch() if else等语句实现包含加减,含正负,两个操作数的,选择乘除,操作数范围和题目数量并去掉重复的功能。数字的随机性利用的是rand()函数。
四、测试运行
运算
五、关键代码
1.加减乘除
if(fu==4) {//四个字符的‘+’‘-’‘*’‘/’ int k=(int)(Math.random()*4+1); switch(k) {//随机选择运算符 case 1:System.out.print("+");break; case 2:System.out.print("-");break; case 3:System.out.print("*");break; case 4:System.out.print("/");break; }
2.生成随机负数
if(fu==2) {//选择两个字符‘+’‘-’ int k=(int)(Math.random()*2); switch(k) {//随机选择运算符 case 0:System.out.print("+"); break; case 1:System.out.print("-"); break; }
六、作业小结
基于生疏的操作,本次作业并不令人满意,没有给出更多运算符,没有发现最简分数的代码在哪里出错导致未完成该功能。生成题目比较简单,java代码编辑不熟练,在以后的作业中应当加强这方面的学习,尽量把以前学过的东西都给补回来。
七、PSP
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
120 |
200 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
20 |
30 |
Development |
开发 |
85 |
90 |
·· Analysis |
需求分析 (包括学习新技术) |
6 |
10 |
· Design Spec |
· 生成设计文档 |
3 |
10 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
40 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
3 |
3 |
· Design |
具体设计 |
10 |
30 |
· Coding |
具体编码 |
40 |
60 |
· Code Review |
· 代码复审 |
5 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
10 |
21 |
Reporting |
报告 |
9 |
6 |
·· Test Report |
· 测试报告 |
3 |
2 |
· Size Measurement |
计算工作量 |
2 |
1 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
3 |
3 |