zoukankan      html  css  js  c++  java
  • 201571030114随机四则运算

    一:需求分析

             

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

    二:功能设计

           整个程序可分为三大部分

                2. 1:随机生成一个算式

                            这个部分做的还不是很完善,利用两个for循环来随机生成算式,利用StringBuilder动态字符串来接收随机生成的算式,并加入到ArrayList数组中

                2.2:计算这个算式

                           计算部分,有两种方法,第一种是利用 javascript脚本引擎,另一种是利用逆波兰式中和栈来解决,相比较而言第一种较为简单

                2. 3:输出到文本文件

    三:设计实现

            1:设计程序流程图、

             2:接收随机生成算式的个数来进行循环

             3:随机产生运算符,当产生'-'或者'/'时加以判断并产生合适的数字,并将随机产生的算式加入数组

             4:遍历数组进行计算和输出         

    四:测试运行

             

                

    五:核心代码

            

     //使用增强for循环的方法遍历
            try {  
                FileWriter fw = new FileWriter("lilei.txt");//输出  
                BufferedWriter bw = new BufferedWriter(fw);  
                bw.append("201571030114"); 
                bw.newLine();
                for(String e:equations) {
                    e=e+"="+se.eval(e.toString());//计算
                    System.out.println(e);
                    bw.write(e.toString()); 
                    bw.newLine();
                 }
                 bw.close();  
                    fw.close(); 
            } catch (Exception ee) {  
                ee.printStackTrace();  
            }  

    六:总结

               对于这次的作业因为一开始对于运算符的优先级考虑不完善,导致后面出现了很多问题,所以代码功能也不是很完善,很长时间没有写过java了,要花很多的时间来复习和熟悉java,能力有限,时间也有限,以后有时间会进行改进。

    PSP:           github地址:https://github.com/Lei-surely/Calculate

    PSP任务内容计划完成需要的时间(min)实际完成需要的时间(min)
      计划准备 60 150
    Estimate 需求分析,函数实现 30 40
      开发 30 30
    Analysis 需求分析 10 20
    Design Spec 设计 30 30
    Design Review 设计复审 5 10
    Design 具体设计 5 10
    Coding 具体编码 60 150
    Code Review 代码复审,查找语法错误 2 2
    Test 测试 30 150
      报告 10 30
    Test Report 经测试,程序编译正确,运行结果正确,完全符合要求 2 2
    Size Measurement 因为很久没有用过java所以重点要花很多时间来复习java语言,找回思路 2 2
    Postmortem 这个程序还存在问题,主要在减法和除法部分有时会出现小数的情况,会继续改进 5 5
  • 相关阅读:
    HashMap
    Java内部类应用——静态内部类
    transient关键字和@Transient 注解
    java基本数据类型传递与引用传递区别
    抽象类
    java collection-list详解
    Arrays,ArrayList,以及ArrayList源码分析
    【转载】【剑指offer】面试题40:最小的 k 个数中的优先级队列
    java stack总结
    java Queue
  • 原文地址:https://www.cnblogs.com/Lei-surely/p/8613070.html
Copyright © 2011-2022 走看看