• 小学四则运算练习软件项目报告


    GitHub项目地址:https://github.com/sanjinzi/test

    一、需求分析

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

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

           

    二、功能设计

      当提示输入练习题个数后输入题目计算个数n,之后随机产生n道练习题并且将n道练习题及其对应的正确答案输出到文件“result.txt中。

    三、设计实现

      由主函数读入练习题数目;

      产生随机数和运算符并将其组合放入数组中;

      将数组中的随机数和运算符组合后放入动态数组中;

      调用JavaScript中的eval函数计算练习题答案;

      将结果输入到文件“result.txt中。

    四、测试运行

    在eclipse中测试运行:

    在cmd中测试运行:

    五、核心代码

    将数组中的随机数和运算符组合后放入动态数组中:

    ArrayList<String> expression = new ArrayList<String>();
            for(int i = 0; i < num; i++){
                int n = random.nextInt(3) + 2;
                int[] number = new int[n + 1];
                String nexpression = new String();
                for (int j = 0; j <= n; j++) {
                    number[j] = random.nextInt(100) + 1;
                }
                for (int j = 0; j < n; j++) {
                    int fuhao = random.nextInt(4);
                    nexpression += String.valueOf(number[j]) + String.valueOf(operator[fuhao]);
                    if (fuhao == 3) {
                        number[j + 1] = division(number[j], number[j + 1]);
                    }
                }
                nexpression += String.valueOf(number[n]);
                expression.add(nexpression);
            }

    调用JavaScript中的eval函数计算练习题:

    static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
    
        private static ArrayList<String> calculate(ArrayList<String> arrayList) {
            ArrayList<String> suanshi = new ArrayList<String>();
            for (String ax : arrayList) {
                try {
                    ax = ax + "=" + jse.eval(ax);
                    System.out.println(ax);
                    suanshi.add(ax);
                } 
                catch (ScriptException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

    六、总结

      由于java是在大二学的,后面也没有对其进行适量的联系,所以现在对于java还不够熟悉,请教和参考了身边许多同学才勉强完成作业。在作业完成方面,还有一些不尽如人意的地方,希望以后能够改进自己的不足,多向身边的大神同学学习,争取下次作业能够完成的更好。

    七、展示PSP

    PSP任务内容计划完成需要的时间(min)实际完成需要的时间(min)
      计划 20 30
    Estimate g估计任务时间 30 30
    Analysis 需求分析 10 10
    Design Spec 设计 20 30
    Design Review 设计复审 10 10
    Design 具体设计 30 60
    Coding 具体编码 40 90
    Code Review 代码复审,查找语法错误 10 20
    Test 测试报告 10 20
    Test Report 测试,程序编译正确,运行结果正确 5 5
    Size Measurement 计算工作量 5 10
    Postmortem

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

    5 5
  • 相关阅读:
    网络编程之即时通信程序(聊天室)(一)通信流程简介及通信协议定制
    C#常用加密方法解析
    ASP.NET常用数据绑定控件优劣总结
    使用XPO开发时可以参考使用的架构
    渠道会上的体会
    如何利用第三方SDK开发MSN机器人以及实现语音视频?
    对 XPO 的一些问题的解答
    c++ 参数传递 之引用形参 GIS
    指针与引用的区别 GIS
    c++ const 修饰数组 GIS
  • 原文地址:https://www.cnblogs.com/niuruixin/p/8613323.html
Copyright © 2020-2023  润新知