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


    源码在Github的仓库主页链接地址:https://github.com/mazhongshan/Demo

    1.需求分析:

      (1),产生的题目数量要手动输入;

      (2),数字大小在0-100之间;

      (3),运算符至少3个;

      (4),算式中不能出现分数和负数;

      (5),题生成后,学号,练习题及答案输出到result.txt;

    2.功能设计:

      (1),产生随机数(调用random()函数);

      (2),产生随机符号(“+”,“-”,“*”,“/”);

      (3),分数的处理;

      (4),负数的处理;

      (5),等式的输出(调用FileOutputStream()函数和PrintStream()函数,将生成的等式输出到result.txt文件中);

    3.设计实现:

      (1),调用Math包中的random()函数产生随机数,但随机数在0-1之间,故Math.random()*100+1;加1是为了让产生的随机数中没有零,更好的处理;

      (2),调用FileOutputStream()函数和PrintStream()函数将生成的等式放在result.txt文件中。

           (3),

    4.测试运行(截图):

       

         

    5.核心代码:

    package cn.mzs.longteng.test;
    
    /*
     * 在本次程序设计过程中遇到了很多问题。比如0-100的随机数如何产生;
     * 如何处理负数的问题;
     * 还有处理除数为零及算式结果不能为小数的问题;
     * 还有符号之间的选择;
     * 为了处理算式运算过程中不能产生小数。又因本人能力有限,设计的程序大大降低了出题的随机性。
     */
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintStream;
    import java.util.Scanner;
    
    public class Main {
        int a, b, c, d, e, f, m;
        static int n;
        int[] s = new int[n];
        String[] st = new String[n];
        String[] ts = new String[n];
    
    
        public Main() {
    
        }
    
        // 产生随机数和运算:
        public void Num() throws FileNotFoundException {
    
            FileOutputStream os = new FileOutputStream(new File("src/cn/mzs/longteng/test/result.txt"));
            PrintStream p = new PrintStream(os);
            p.println("201571030322");
            p.println("----------------------------");
    
            for (int k = 0; k < n; k++) {
                a = (int) (Math.random() * 100 + 1);
                b = (int) (Math.random() * 100 + 1);
                c = (int) (Math.random() * 100 + 1);
                e = (int) (Math.random() * 10 + 1);
                m = (int) (Math.random() * 6);
                d = m * e;
                f = (int) (Math.random() * 3);
                if (f == 0) {
                    s[k] = a * b - d / e + c;
                    // 处理负数;
                    if (a * b - d / e >= 0) {
                        ts[k] = a + "*" + b + "-" + d + "/" + e + "+" + c + "=";
                        st[k] = a + "*" + b + "-" + d + "/" + e + "+" + c + "=" + s[k];
                        System.out.println(ts[k] + "
    ");
                    } else {
                        s[k] = d / e - a * b + c;
                        ts[k] = d + "/" + e + "-" + a + "*" + b + "+" + c + "=";
                        st[k] = d + "/" + e + "-" + a + "*" + b + "+" + c + "=" + s[k];
                        System.out.println(ts[k] + "
    ");
                    }
                } else if (f == 1) {
                    s[k] = a + b * d / e - c;
                    // 处理负数;
                    if (b * d / e - c >= 0) {
                        ts[k] = a + "+" + b + "*" + d + "/" + e + "-" + c + "=";
                        st[k] = a + "+" + b + "*" + d + "/" + e + "-" + c + "=" + s[k];
                        System.out.println(ts[k] + "
    ");
                    } else {
                        s[k] = c - b * d / e + a;
                        ts[k] = c + "-" + b + "*" + d + "/" + e + "+" + a + "=";
                        st[k] = c + "-" + b + "*" + d + "/" + e + "+" + a + "=" + s[k];
                        System.out.println(ts[k] + "
    ");
                    }
                } else if (f == 2) {
                    s[k] = d / e - a * c + b;
                    // 处理负数;
                    if (d / e - a * c >= 0) {
                        ts[k] = d + "/" + e + "-" + a + "*" + c + "+" + b + "=";
                        st[k] = d + "/" + e + "-" + a + "*" + c + "+" + b + "=" + s[k];
                        System.out.println(ts[k] + "
    ");
                    } else {
                        s[k] = a * c - d / e + b;
                        ts[k] = a + "*" + c + "-" + d + "/" + e + "+" + b + "=";
                        st[k] = a + "*" + c + "-" + d + "/" + e + "+" + b + "=" + s[k];
                        System.out.println(ts[k] + "
    ");
                    }
                }
    
                p.println(st[k] + "
    ");
            }
            p.println("-----------------------------");
            p.close();
        }
    
        public static void main(String[] args) throws FileNotFoundException {
            // TODO Auto-generated method stub
            Scanner input = new Scanner(System.in);
            System.out.println("请输入要输入多少道题");
            n = input.nextInt();
            System.out.println("
    ");
            System.out.println("201571030322");
            System.out.println("====================");
            Main a = new Main();
            a.Num();
            System.out.println("====================");
        }
    
    }


    6.总结:

      本次实验中,我学到了很多,收获很大,以前我觉得四则运算这种题目应该比较简单,但是经过动手实践,发现了很多问题;而这些问题以前是我没有发现的;以前写代码就是简单的写代码,但是这次不同,边写代码边想问题,边画流程图;让我受益很多。最让我在这次实验中的收获就是:不管是简单的项目还是复杂的项目都应该动手去实践,而不是凭空去想象。有一种“实践是检验真理的唯一标准”的感觉。

    7.psp:

    PSP2.1 任务内容 计划完成需要的时间(min) 实际完成的时间(min)
    planning 计划 20 40
    Estimate 估计这个任务需要多少时间 30 45
    Development 开发 100 105
    Analysis 需求分析 8 10
    Design Spec 生成设计文档 8 19
    Design Review 设计审查 5 5
    Coding Standard 代码规范 14 9
    Design 具体设计 20 31
    Coding 具体编码 60 89
    Code Review 代码复审 38 15
    Test 测试(自我测试,修改代码,提交修改) 8 10
    Reporting 报告 16 14
    Test Report 测试报告 10 13
    Size Measurement 计算工作量 4 6

    Postmortem & Process

    Improvement

    事后总结 10 12

      源码在Github的仓库主页链接地址:https://github.com/mazhongshan/Demo

  • 相关阅读:
    2015/8/3 接着跌
    2015/7/31 由于昨天上升缺乏量的支持,今天横盘;在箱体下边缘稍微买了一点---错误!;复文《揭秘主力坐庄流程 内幕超乎想象》,
    打包jar类库与使用jar类库
    java eclipse 监视选择指定变量
    2015/7/29 (高开,V形反转,各种指标背离——可惜没买进,填补空缺图形的心理分析)
    XP、win7下Excel 2007多窗口打开Excel的解决方法
    2015/7/28(总结昨天抄底操作失败-割肉自保)
    六首失传股诗教你如何抄底和逃顶
    2015/7/27 (主力流出-1200亿,上周五回踩,今天到底是震荡下行,还是红魔呢?——在周五成功逃顶,结果今天回调的时候被套!——教训!)
    java中byte数组与int,long,short间的转换
  • 原文地址:https://www.cnblogs.com/luo-cheng-blog-123/p/8641325.html
Copyright © 2020-2023  润新知