小学四则运算练习软件项目报告
1. 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
2. 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运 算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
3. 练习题生成好后,将自己的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。
//将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中 File writename = new File("result.txt"); writename.createNewFile(); BufferedWriter out = new BufferedWriter(new FileWriter(writename)); out.write("*************************** "); out.write("201571030334 ");
//产生四个0~100的随机数 int num1=(int)(Math.random()*100); int num2=(int)(Math.random()*100); int num3=(int)(Math.random()*100); int num4=(int)(Math.random()*100);
//生成表达式,运算符是固定的,不是随机产生 case 4: while(true) { num2 = (int) (Math.random()*100 + 1);//保证分母不为零 num4 = (int) (Math.random()*100 + 1); if(num1%num2==0) { if(num3%num4==0) System.out.println(num1 + "/" + num2 +"+"+ num3+"/"+num4+" = " ); out.write(num1 + "/" + num2 +"+"+ num3+"/"+num4+" = " +(num1/num2+num3/num4)+" "); break; } } case 5: if(num1*num2>num3*num4)//保证差不为负数 System.out.println(num1+"*"+num2+"-"+num3+"*"+num4+"="); out.write(num1+"*"+num2+"-"+num3+"*"+num4+"="+(num1*num2-num3*num4)+" "); break; case 6: while(true){ num2 = (int) (Math.random()*100 + 1); if(num1%num2==0) System.out.println(num1 + "/" + num2 +"+"+ num3+"*"+num4+" = " ); out.write(num1 + "/" + num2 +"+"+ num3+"*"+num4+" = " +(num1/num2+num3*num4)+" "); break; }
PSP2.1 |
任务内容 |
计划完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
10 |
12 |
· Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
12 |
Development |
开发 |
380 |
632 |
·· Analysis |
需求分析 (包括学习新技术) |
10 |
20 |
· Design Spec |
生成设计文档 |
5 |
10 |
· Design Review |
设计复审 (和同事审核设计文档) |
5 |
3 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
10 |
14 |
· Design |
具体设计 |
20 |
15 |
· Coding |
具体编码 |
300 |
500 |
· Code Review |
代码复审 |
10 |
10 |
· Test |
测试(自我测试,修改代码,提交修改) |
20 |
60 |
Reporting |
报告 |
12 |
40 |
·· Test Report |
测试报告 |
5 |
30 |
· Size Measurement |
计算工作量 |
2 |
5 |
· Postmortem & Process Improvement Plan |
事后总结 ,并提出过程改进计划 |
5 |
5 |