zoukankan      html  css  js  c++  java
  • 《个人软件开发流程》——梁光姣

    需求分析:随机生成由用户输入个数的四则运算方法

    代码:

    char[] operator=new char[]{'+','-','*','/'};

    Random random=new Random();

    ArrayList<String> expression=new ArrayList<String>();

        for(int i=0;i<num;i++){

        int n=random.nextInt(3)+3;//3-5个运算符

        int[] number=new int[n+1];

        String ex=new String(); for(int j=0;j<=n;j++){

           number[j]=random.nextInt(100)+1;;

    //4-5个数字

        } for(int j=0;

        j<n;

          j++){ int s=random.nextInt(4);//随机选择某个运算符

          ex+=String.valueOf(number[j])+String.valueOf(operator[s]);

          ///5+4+6+9 if(s==3){number[j+1]=decide(number[j],number[j+1]);

        }

        }

          ex+=String.valueOf(number[n]); expression.add(ex);  

      }

        private static int decide(int x,int y){

        //通过递归实现整除

          Random random=new Random();

         if(x%y!=0){ y=random.nextInt(100)+1;

         return decide(x,y); } else{ return y;

        }

       }

        static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");

           private static ArrayList<String> calculate(ArrayList<String> arrayList){ ArrayList<String> ArithExpress=new ArrayList<String>();

            for(String ax:arrayList){ try { ax=ax+"="+jse.eval(ax); System.out.println(ax); ArithExpress.add(ax);

           } catch (ScriptException e)

            {

     // TODO Auto-generated catch block

    e.printStackTrace();

        }

          }

          return ArithExpress;

        }

    测试代码:

     static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");

           private static ArrayList<String> calculate(ArrayList<String> arrayList){ ArrayList<String> ArithExpress=new ArrayList<String>();

            for(String ax:arrayList){ try { ax=ax+"="+jse.eval(ax); System.out.println(ax); ArithExpress.add(ax);

           } catch (ScriptException e)

            {

     // TODO Auto-generated catch block

    e.printStackTrace();

        }

          }

          return ArithExpress;

        }

    测试结果

     

                                psp

    psp 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
      计划 10 12
    Estimate 需求分析,函数实现 10 10
    Analysis 需求分析 5 10
    Design Spec 设计 5 5
    Design Review 设计复审 2 2
    Design 具体设计 5 5
    Coding 具体编码 20 20
    Code Review 代码复审,查找语法错误 2 2
    Test 测试 5 5
      报告 10 10
    Test Report 经测试,程序编译正确,运行结果正确,完全符合要求 2 2
    Size Measurement 由于程序功能较为简单,需求分析的工作量很小,故本次实验的主要工作主要在于编程 2 2
    Postmortem 对于此程序,计算部分还有大的改进空间,可以采用将中缀表达式转换为后缀表达式,通过正则判断运算符优先级来实现算式的结果,而不是另辟他法调用Javascript函数 2 2
      开发 30 30

    总结:

    本程序的主要难点在于运算式的随机生成和运算式的计算,后者借助于Javascript的eval函数通

    过求解字符串内的运算式得到解决,编程重点解决随机生成运算式部分

  • 相关阅读:
    centos 下源码安装postgresql 9.4
    sql server访问excel文件
    什么是脏读、不可重复读、幻读
    对象名 master.dbo.spt_values' 无效
    数据库恢复和日志文件阐述
    查看数据大小和日志文件大小
    CPU性能瓶颈
    数据库打补丁,服务升级失败
    Docker安装WordPress并添加https访问
    svn插件安装
  • 原文地址:https://www.cnblogs.com/shuliqiu0320/p/14644181.html
Copyright © 2011-2022 走看看