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


    coding.net源码地址
    https://git.coding.net/wowomilkycandy/week2--Operation.git

    1.需求分析

    这次作业要求的是一个小学四则运算练习软件,需要随机生成n道四则运算。首先要求能获取随机数n,其次要求能生成3-5个运算符,运算符为+-*÷,生成相应的0-100之 间的整数。题目要求不能出现负数和非整数。

    2.功能设计

    基本功能   获取用户输入的题目数量,生成符合要求的四则运算式并得出答案,同时判断正误

    扩展功能   无

    3. 设计实现

            

    涉及的函数

     1.获取习题数量的函数

        getNum()

        设置输入函数,获取输入的题目数量0-1000

    2.main函数

        主要是实现调用函数,得出结果并写入的需求的

    3.随机生成习题

     RandCreate()函数
    主要是用来随机生成算式并写出的

     4、算法详解

     1.生成题目的算法

       先生成3-5个运算符,并且在其中进行控制,再生成运算数,运算数比运算符多一

       并且使用count来记录运算符的数量

         int count = 0, count_h = 0;// 记录运算符数量
         int[] arr = new int[6];// 记录运算数
         int[] arr_h = new int[6];
         char[] ch = { '+', '-', '*', '÷' };
         int[] chno = new int[5];// 记录运算符
         int[] chno_h = new int[5]        
    

      2.计算题目

      我用了file方法,是java.io中的方法,能够得出结果并写入result.txt

            

     1             if (arr[0] >= 0)    // 结果大于0
     2             {
     3                 n--;
     4 
     5                 for (int i = 0; i < count_h; i++) {
     6                     fw.write(String.valueOf(arr_h[i]));
     7                     fw.write(String.valueOf(ch[chno_h[i]]));
     8                 }
     9                 fw.write(String.valueOf(arr_h[count_h]));
    10                 fw.write("=");
    11                 fw.write(String.valueOf(arr[0]));
    12                 fw.write("
    ");
    13                 fw.flush();
    14             }

    5.测试运行

            

        

             测试是有弊端的,目前我还没有解决,本来会生成有三个除号连起来得出答案为零的情况,我直接设置了不能有两个出号出现在一个式子内

            


    觉得较为优秀的代码

     1 for (int i = 0; i < count; i++) {
     2                 if (chno[i] == 2)         // *
     3                 {
     4                     int a = arr[i] * arr[i + 1];
     5                     arr[i] = a;
     6                     count--;
     7                     for (int j = i; j < count; j++) {
     8                         chno[j] = chno[j + 1];
     9                         arr[j + 1] = arr[j + 2];
    10                     }
    11                     i--;
    12                 } else if (chno[i] == 3)   //
    13                 {
    14                     int a = arr[i] / arr[i + 1];
    15                     arr[i] = a;
    16                     count--;
    17                     for (int j = i; j < count; j++) {
    18                         chno[j] = chno[j + 1];
    19                         arr[j + 1] = arr[j + 2];
    20                     }
    21                     i--;
    22                 }
    23             }

    乘除法的判断问题


    6.总结

     

    相比于其他同学来说,我可能会写,但是对于那些专业名词一窍不通,才会出现各种问题,比如静态函数中使用了非静态方法。还是要好好再学习一下java

    7.PSP

    PSP

    任务内容

    计划时间(min)

    完成时间(min)

    Planning

    计划

    20

    20

     Estimate

     估计这个任务需要多少时间,并规划大致工作步骤

    30

    20

    Development

    开发

    600

    1800

    Analysis

    需求分析

    20

    25

    Design Spec

    生成文档

    0

    0

     Design Review

    设计复审

    0

    0

    Coding Standard

    代码规范

    5

    5

    Design

    具体设计

    60

    180

    Coding

    具体编码

    300

    900

    Code Review

    代码复审

    30

    600

    Test

    测试

    5

    80

    Reporting

    报告

    160

    400

    Test Report

    测试报告

    120

    360

    Size Measurement

    计算工作量

    10

    10

    Postmortem & Process Improvement Plan

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

    30

    30

    2018.04.13  经过修改,能使用命令行参数进行测试了,截图当时忘了截

  • 相关阅读:
    boost源码剖析----boost::any
    win10下用Anaconda安装TensorFlow | 后附JetBrains测试
    Could not find conda environment: tensorflow | anaconda激活环境
    Java界面程序实现图片的放大缩小
    JAVA多线程程序ProgressBar2
    JAVA多线程程序ProgressBar
    JAVA记事本的图形用户界面应用程序含过滤
    JAVA记事本的图形用户界面应用程序含加密
    JAVA记事本的图形用户界面应用程序
    Java计算器的图形界面应用程序
  • 原文地址:https://www.cnblogs.com/wowocandy-milk/p/8617916.html
Copyright © 2020-2023  润新知