zoukankan      html  css  js  c++  java
  • 201571030109 小学四则运算练习软件项目报告

    项目github地址:https://github.com/narutofk/Test2

    一、需求分析

    使用JAVA编程语言,独立完成一个包含3到5个数字的四则运算练习的命令行软件开发

    软件的基本功能是:

    • 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
    • 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
    • 练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt中,不要输出额外信息文件目录与程序目录一致。
    • 当程序接收的参数为4时,以下为输出文件示例。

                                    

    二、功能设计

    首先要生成随机数,还要生成随机符号,然后自由组合,最后计算出答案即可。能力有限,我的程序中没有判断负数与非整数的部分,我会在后面的时间和同学交流,加以改进。

    三、设计实现

    程序中只有一个主类,Main.java,四个主要函数,分别是产生随机数的getNumber(),产生随机符号的getOperator(),产生运算式的creatOperation(),以及产生结果的filewriter。

     先用Random函数申城随机数,然后把符号,+-*/放进一个swith函数中,然后随机取出随机个,然后使用ScriptEngine 解析脚本,产生运算式,关于这部分的方法,可参考http://blog.csdn.net/u014792352/article/details/74644791 这篇博文,里面详细解释了,我这就不加以赘述。至于生成运算式之后的计算问题,就很简单了。调用ScriptEngine脚本引擎中的eval方法即可。
    四、测试运行

                   

    五、核心代码部分

    1.产生随机运算符以及存储

    public static char getOperator(){  
            char operator = 0;  
            Random op = new Random();  
            int i = op.nextInt(4);  
            switch(i){  
                case 0:  
                    operator = '+';  
                    break;  
                case 1:  
                    operator = '-';  
                    break;  
                case 2:  
                    operator = '*';  
                    break;  
                case 3:  
                    operator = '/';  
                    break;  
            }  
            return operator;  
         } 
        
    for(int j=0;j<arr_str.length;j++) {
                    if(arr_str[j]=='+'||arr_str[j]=='-'||arr_str[j]=='*'||arr_str[j]=='/') {    
                        arrString=String.valueOf(arr_str[j]);
                        arr_str[j]=',';
                        arrslist1.add(arrString);
                    }
                }

    2.调用ScriptEngine脚本

    static ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
    
    for(String arr: Operation){
                try {
                    System.out.println(arr+"="+engine.eval(arr));
                } catch (ScriptException e) {
                    e.printStackTrace();
                }     
            }

    六、总结

    设计程序思路清晰,为了得出四则运算式,肯定要随机数字,随机运算符,然后加以组合,并且计算出来,在写代码时,按照这个思路,一块一块写下去即可。计算的部分,一开始想用逆波兰式,但是实在是能力有限,有心而力不足,没能写出来,最后在同学的帮助下,了解并学习了ScriptEngine脚本引擎,完成了本次任务。
    七、展示PSP

    PSP2.1

    任务内容

    计划完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    5

    3

    ·       Estimate

    ·  估计这个任务需要多少时间,并规划大致工作步骤

    5

    3

    Development

    开发

    100

    180

    ··       Analysis

      需求分析 (包括学习新技术)

    2

    0

    ·       Design Spec

    ·  生成设计文档

    2

    3

    ·       Design Review

    ·  设计复审 (和同事审核设计文档)

    2

    3

    ·       Coding Standard

      代码规范 (为目前的开发制定合适的规范)

    4

    4

    ·       Design

      具体设计

    10

    20

    ·       Coding

      具体编码

    60

    120

    ·       Code Review

    ·  代码复审

    5

    10

    ·       Test

    ·  测试(自我测试,修改代码,提交修改)

    15

    20

    Reporting

    报告

    20

    30

    ··       Test Report

    ·  测试报告

    2

    5

    ·       Size Measurement

      计算工作量

    2

    5

    ·       Postmortem & Process Improvement Plan

    ·  事后总结 ,并提出过程改进计划

    16

    20

  • 相关阅读:
    jar-下载站点
    java-原生爬虫机制源码
    eclipse-插件安装的三种方式
    ivy,ivyde插件-eclipse
    cygwin-介绍-安装
    cygwin-使用介绍
    linux-命令全集
    jquery-遍历each
    SSD固态硬盘的闪存芯片颗粒介绍
    java-测试synchronized使用xxx.class和this使用的区别
  • 原文地址:https://www.cnblogs.com/fukang/p/8613654.html
Copyright © 2011-2022 走看看