代码地址: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 |