个人开发流程----计应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、遇到问题,安静一会,出去走走可能就有了思路。

posted @ 2021-04-11 12:30  19A1  阅读(113)  评论(0)    收藏  举报