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


     Coding.net原码仓库地址:https://git.coding.net/gemyty/personal.git

    1.需求分析

    1)、程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

    2)、每个练习题至少要包含2种运算符,并且练习题在运算过程中不得出现负数与非整数。

    2.功能设计

    1)、基本功能:

        ①程序接收参数n,并对n的合法性作出判断,若出现错误则提示。

        ②程序能自动生成n个四则运算式,并计算出结果。

        ③运算式会展现在txt中。

    3.设计实现

    (1)、calculation()实现构造一个运算式,实现3至6个运算符的要求

    (2)、 exact()实现整除,防止小数生成

    (3)、positive()实现正数运算,防止负数生成

    (4)、main()负责接收参数num,判断参数num的合法性,调用函数产生合格的四则运算式,计算运算式结果并将式子+结果通过打印输出流输出到文件中的功能。

    4.算法详解

    用calculation()方法生成算式;

    用exact实现整除,并防止负数生成。

    /* 实现整除 */
    public static int decide(int a, int b) {
    if (a % b != 0) {
    b = new Random().nextInt(100) + 1;
    return decide(a, b);
    }
    return b;
    }
    
    /* 使减号前面的数大于后面的,不出现负数 */
    public static int decide2(int a, int b) {
    if (a - b < 0) {
    b = new Random().nextInt(100) + 1;
    return decide2(a, b);
    }
    return b;
    }

    5.测试运行

    你的程序必须是可运行的,请展示程序的运行截图,包括题目要求实现功能对应的运行截图。这些截图说明你的程序确实完成了项目需求,如果程序实现了扩展需求,也请大方秀出来。

     

     

    6.粘贴自己觉得比较独特的或满意的代码片段

        得到结果

    /* 生成结果 */
    int result = 0;
    for (int i = 1; i < str.length; i++) {
    if (str[i] == "*" || str[i] == "÷") {
    if (str[i] == "*") {
    result = Integer.parseInt(str[i - 1]) * Integer.parseInt(str[i + 1]);
    str[i - 1] = String.valueOf(result);
    str[i + 1] = String.valueOf(result);
    } else {
    result = Integer.parseInt(str[i - 1]) / Integer.parseInt(str[i + 1]);
    str[i - 1] = String.valueOf(result);
    str[i + 1] = String.valueOf(result);
    }
    }
    }
    
    for (int i = 1; i < str.length; i++) {
    if (str[i] == "+" || str[i] == "-") {
    if (str[i] == "+") {
    result = Integer.parseInt(str[i - 1]) + Integer.parseInt(str[i + 1]);
    str[i - 1] = String.valueOf(result);
    str[i + 1] = String.valueOf(result);
    } else {
    result = Integer.parseInt(str[i - 1]) - Integer.parseInt(str[i + 1]);
    str[i - 1] = String.valueOf(result);
    str[i + 1] = String.valueOf(result);
    }
    }
    }
    if (result > 100 || result < 0) {
    return null;
    } else {
    for (int i = 0; i < str2.length - 1; i++) {
    }
    str2[str.length - 1] = String.valueOf(result);
    String str3 = str2[0];
    for (int i = 1; i < str2.length; i++) {
    str3 += str2[i];
    }
    return str3;
    }
    
    }

      /* 使减号前面的数大于后面的,不出现负数 */

    	public static int positive(int a, int b) {
    		if (a - b < 0) {
    			b = new Random().nextInt(100) + 1;
    			return positive(a, b);
    		}
    		return b;
    	}
    

      

          7.总结

    因为自己的能力不足,所以做这个项目的时候有非常多的困难,在这个过程中也收获了许多,做的时候开始非常迷茫不知从哪里开始,后来看了些资料例子博客什么的,有了一点思绪,然后清理了思路,开始写,写的时候有很多错误,一直在修修改改,有时候觉得写对了,但还是有报错,有时候查了些资料解决了,有的还是不知怎么弄得只有重新写过。经过这次,实际感受到了做计划的重要性,一定要有清晰思路后再着手,然后java必须要自己私下加速努力了,有想法但是写不出来更是恼火。

    8.展示PSP

                代码编写用了许多时间,修改更是用了许多许多时间, 只有反思自己的代码能力,非常有待加强。然后计划也应清晰。

    ---恢复内容结束---

  • 相关阅读:
    mybatis:"configuration" must match "(properties?,settings?,typeAliase.....
    Mybatis插件原理和PageHelper结合实战分页插件(七)
    mybatis结合redis实战二级缓存(六)
    Mybatis源码分析之Cache二级缓存原理 (五)
    Mybatis源码分析之Cache一级缓存原理(四)
    Mybatis源码分析之Mapper执行SQL过程(三)
    Mybatis源码分析之SqlSession和Excutor(二)
    Mybatis源码分析之SqlSessionFactory(一)
    spring结合mybatis实现数据库读写分离
    通过项目逐步深入了解Mybatis<四>
  • 原文地址:https://www.cnblogs.com/benmatt/p/8646826.html
Copyright © 2020-2023  润新知