2016012094 + 小学四则运算练习软件项目报告
代码地址:https://git.coding.net/DLeo/week2-2.git
1.需求分析:使用JAVA编程语言,独立完成一个3到5个运算符的四则运算练习的命令行软件开发。程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
2.功能设计:基本功能:正常的四则运算,输入要出的题目的数量,随机产生3~5个运算符的四则运算题。
扩展功能:产生带括号的四则运算式,产生真分数四则运算式。
3.设计实现:代码中包含Random函数产生随机数和随机的操作符数量,将四则运算符存放在数组里,然后产生随机下标调用运算符。再将运算符和操作数一起存入数组中。
计算结果时判断优先级,将结果存在新数组中。
4.算法详解:
public static void product(int a) { Random random1=new Random(); String[] symbol= {"+","-","*","÷"}; int b=3+ random1.nextInt(3);//操作符数量 String[] operation=new String[13];//存操作数加操作符 for(a=0;a<2*b;a+=2) { operation[0]=String.valueOf(random1.nextInt(100)); String str = String.valueOf(random1.nextInt(100));//随机数转换成string型 operation[a+1]=symbol[random1.nextInt(4)]; operation[a+2]=str; if(operation[a+1]=="÷") { if(operation[a+2]=="0") { int c,d; do { c = 1 + random1.nextInt(100); d = 1 + random1.nextInt(100); operation[a] = String.valueOf(c); operation[a+2] = String.valueOf(d); } while(c%d!=0);
产生运算式 ,存储在数组中。将int型转换成string型。
5.测试运行:
6.代码片段:
operation[0]=String.valueOf(random1.nextInt(100)); String str = String.valueOf(random1.nextInt(100));//随机数转换成string型 operation[a+1]=symbol[random1.nextInt(4)]; operation[a+2]=str; if(operation[a+1]=="÷") { if(operation[a+2]=="0") { int c,d; do { c = 1 + random1.nextInt(100); d = 1 + random1.nextInt(100); operation[a] = String.valueOf(c); operation[a+2] = String.valueOf(d); } while(c%d!=0);
将int型转换成string型和操作符一块存在数组中,然后输出数组就得到了表达式。do while循环直到结果整除。
7.总结:因为自己对Java不是太懂,导致自己做的东西不是很正规,里边有很多错误的地方,导致结果算不出来。通过这次运用Java做软件,也发现了自己的很多不足,代码能力极差,对一些函数、类、方法的应用知之甚少。在做代码的时候,虽然想法很好但是自己不知道该如何去实现它,这和自己学习Java的时候不认真听有极大的关系。所以以后要重新学习语言。
8.
PSP2.1 |
任务内容 |
计划共完成需要的时间 |
实际完成需要的时间 |
Planning |
计划 |
1h |
2h |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
3days |
3days |
Development |
开发 |
3h |
|
· Analysis |
· 需求分析 (包括学习新技术) |
1h |
1h |
· Design Spec |
· 生成设计文档 |
20min |
20min |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30min |
30min |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
3h |
3h |
· Design |
· 具体设计 |
40min |
40min |
· Coding |
· 具体编码 |
2days |
3days |
· Code Review |
· 代码复审 |
1days |
1days |
· Test |
· 测试(自我测试,修改代码,提交修改) |
1h |
1h |
Reporting |
报告 |
3h |
3h |
· Test Report |
· 测试报告 |
2h |
2h |
· Size Measurement |
· 计算工作量 |
1h |
1h |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30min |
30min |