zoukankan      html  css  js  c++  java
  • 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

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

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

  • 相关阅读:
    通用人工智能离我们还有多远?
    自动化机器上的物联网网关的目的是什么?
    提效降本,您不可不知道的云架构秘诀
    “影子物联网”:日益增长的企业安全盲区
    查找练习 hash——出现过的数字
    查找练习 hash——出现过的数字
    数据结构上机实验之二分查找
    数据结构上机实验之二分查找
    简单字符串比较
    简单字符串比较
  • 原文地址:https://www.cnblogs.com/benmatt/p/8646826.html
Copyright © 2011-2022 走看看