个人开发流程----计应191第一小组邱爽
1.需求分析
随机生成含有2~4个数字和相应的加减乘除符号题目,按照先乘除后加减的规则计算出结果。返回给客户题目以及答案。
2.具体设计
1、声明两个List集合的全局变量:shuList用于保存随机生成的数;symbolList用于保存随机生成的符号。
2、addShuAndSymbol类:随机生成并添加数字和运算符号。
3、声明一个List集合的全局变量:chengChu用于保存乘号和除号的下标。
4、booleanChengChu类:判断symbolList集合中的乘法和除法,得到下标,保存在chengChu集合中。
5、JiSuan类:计算,遍历集合得到题目,先乘除后加减得到答案。
3.核心代码
shuList集合和symbolList集合:
1 //用于保存添加的数字,全局变量 2 static List<Integer> shuList = new ArrayList<Integer>(); 3 //用于保存+,-,*,/符号,全局变量 4 static List<String> symbolList = new ArrayList<String>();
addShuAndSymbol类:
/* * 随机生成并添加数字和运算符号 */ public static void addShuAndSymbol() { int number = (int) (Math.random()*3+2);//随机生成计算数的个数,2~4个 int num = 0;//计数器 String zifuString[] = {"+","-","*","/"}; while (number > num) { shuList.add((int)(Math.random()*99+1));//添加数字 num++; if(num == number) {//运算符号比数字少一个,add完数字跳出循环 break; } symbolList.add(zifuString[(int) (Math.random()*3)]);//添加运算符号 } }
chengChu集合:
//乘号和除号的下标 static List<Integer> chengChu = new ArrayList<Integer>();
booleanChengChu类:
/* * 判断symbolList集合中的乘法和除法,得到下标 */ public static void booleanChengChu() { for (int i = 0; i < symbolList.size(); i++) { //判断乘号和除号 if (symbolList.get(i).equals("*") || symbolList.get(i).equals("/")) { chengChu.add(i); } } }
JiSuan类:
/* * 计算 */ public static void JiSuan() { String m = ""+shuList.get(0); //得到运算题目 for (int i = 0; i+1 < shuList.size(); i++) { m = m+symbolList.get(i)+shuList.get(i+1); } //先运算乘除法 for (int i = 0; i < chengChu.size(); i++) { //乘法运算 if (symbolList.get(chengChu.get(i)).equals("*")) { //得到乘号前后的值并计算 int i1 = shuList.get(chengChu.get(i))*shuList.get(chengChu.get(i)+1); shuList.set(chengChu.get(i), 0);//计算结果换掉乘号前的值 shuList.set(chengChu.get(i)+1,i1);//计算结果换掉乘号前的值 }else {//除法运算 int i2 = shuList.get(chengChu.get(i))/shuList.get(chengChu.get(i)+1); shuList.set(chengChu.get(i), 0);//计算结果换掉除号前的值 shuList.set(chengChu.get(i)+1,i2);//计算结果换掉除号后的值 } //判断乘号或除号位置 if (chengChu.get(i) == 0) { symbolList.set(chengChu.get(i),"+");//下标为0时,改为加号 }else { //下标不为0时,变成前一个符号 symbolList.set(chengChu.get(i),symbolList.get(chengChu.get(i)-1)); } } int j = shuList.get(0); //运算加减法 for (int i = 0; i+1 < shuList.size(); i++) { if (symbolList.get(i).equals("-")) { j = j-shuList.get(i+1); }else { j = j+shuList.get(i+1); } } System.out.println(m); System.out.println(m+"="+j); }
main主方法:
public static void main(String[] args) { 2 addShuAndSymbol(); 3 booleanChengChu(); 4 JiSuan(); 5 }
测试结果:



4.项目运行结果:

5. PSP(个人软件开发流程)

6.总结
1、感到自己代码有些繁琐,应当有更好的编写过程,能力尚有限,学得太浅。
2、想到的代码编写却在实际中出错,编写能力尚有不足。
3、遇到问题,安静一会,出去走走可能就有了思路。
浙公网安备 33010602011771号