Github源码地址连接:https://github.com/ijinping/SIZEYUNSUANgit
一.项目要求:github
尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个包含3到5个数字的四则运算练习的命令行软件开发。编程
二.需求分析dom
201571030107编程语言
(78*23)-(6*91) = 1248学习
(3+36)*(34-21) = 507测试
(15*81)*(14+87) = 122715编码
(95-4)+(37-30) = 98spa
支持有括号的运算式,包括出题与求解正确答案。注意,算式中存在的括号必须大于2个,且不得超过运算符的个数。命令行
三.功能设计
四.设计实现
五.测试运行
六.核心代码
public static void main(String[] args) { // TODO Auto-generated method stub int x = 0,y,i; String m="201571030308"; String a1; int d1=0; String d = null; System.out.println("输入学号开始"); Scanner scan1=new Scanner(System.in); a1=scan1.next(); if(a1.equals(m)){ System.out.println("请输入题目的数量"); Scanner scan2=new Scanner(System.in); x=scan2.nextInt(); int daan[]=new int [x]; System.out.println("请输入数值的范围"); y=scan2.nextInt(); for(i=0;i<x;i++){ int a=(int)(Math.random()*y);//随机生成一个1-10的整数 int b=(int)(Math.random()*y);//随机生成一个1-10的整数 int n=(int)(Math.random()*30)*2;//随机生成一个1-60的偶数 int c=(int)(Math.random()*4);
System.out.println("是否显示答案(显示请输入1)"); if(scan2.nextInt()==1){ for(i=0;i<x;i++){ System.out.print(daan[i]+" "); } } } System.out.println("是否显示答案(显示请输入1)"); if(scan1.nextInt()==1){ for(i=0;i<x;i++){ System.out.print(args[i]+" "); } } }
七.总结
在设计较这个程序的时候,我采用了自顶向下的方法,将这个问题划分为几三个部分,第一部分是程序随机生成的题数,第二部分是具体生成的题的“样式”,第三部分是设计计算生成随机题的答案。每一部分又再细化分解,直到分解为较好解决问题为止。
第一次如此认真的查找信息,寻找资料的来完成这个程序,虽然很辛苦,但收获颇多
八.展现PSP
PSP2.1 |
任务内容 |
计划完成须要的时间(min) |
实际完成须要的时间(min) |
Planning |
计划 |
20 |
30 |
· Estimate |
· 估计这个任务须要多少时间,并规划大体工做步骤 |
20 |
30 |
Development |
开发 |
240 |
270 |
·· Analysis |
需求分析 (包括学习新技术) |
30 |
40 |
· Design Spec |
· 生成设计文档 |
20 |
20 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
15 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
30 |
40 |
· Design |
具体设计 |
10 |
12 |
· Coding |
具体编码 |
36 |
90 |
· Code Review |
· 代码复审 |
7 |
9 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
13 |
21 |
Reporting |
报告 |
55 |
50 |
·· Test Report |
· 测试报告 |
15 |
10 |
· Size Measurement |
计算工做量 |
15 |
20 |
· Postmortem & Process Improvement Plan |
· 过后总结 ,并提出过程改进计划 |
15 |
|
---恢复内容结束---