20194684 + 自动生成四则运算题第一版报告

前提需求

要求:使用C或Java语言完成一个自动生成四则运算试题的程序

软件基本功能如下。

  1. 自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
  2. 剔除重复算式。2+3 和 2+3 是重复算式,2+3 和 3+2 不属于重复算式
  3. 题目数量可定制
  4. 相关参数可控制
    1. 是否包含乘法和除法
    2. 操作数数值范围可控
    3. 操作数是否含负数
  5. 生成的运算题存储到外部文件result.txt中

需求分析

某幼儿园,老师要每天出30道加减乘除法题目给孩子做。于是,想写一个脚本完成这件事。

功能设计

  • 基本功能

    • 可配置题目数量
    • 支持加减乘除
    • 可配置操作数范围
    • 支持操作数正负性质
  • 扩展功能
    • 可输出答案
    • 可控制题目中数字数量
    • 自动保存到文件

设计实现

项目已开源, 开源地址: https://github.com/Tomotoes/arithmetic-generator

点击此处下载应用

项目中所用到的库如下:

项目的入口函数:

package com.tomotoes;

import lombok.val;

public class Main {
    public static void main(String[] args) {
        Option option = Args.parse(args);
        Generator generator = new Generator(option);
        val arithmetics = generator.getArithmetics();
        Log log = new Log("./result.txt");
        arithmetics.forEach(log::toFile);
        log.close();
    }
}

其中Args 类用来解析命令行参数, 并配置成 Option 对象

Option 类,是项目的统一配置信息

Generator 类负责生成四则运算方程式

public void generate() {
  StringBuilder formula = new StringBuilder();

  IntStream.range(0, quantity).forEach(i -> {
    String num = number.getRandom();

    val isDiv = formula.toString().trim().endsWith("/");
    if(isDiv){
      while ("0".equals(num)) {
        num = number.getRandom();
      }
    }
    formula.append(number.getRandom());

    if (i != this.quantity - 1) {
      formula.append(' ').append(operator.getRandom()).append(' ');
    }
  });

  if (!arithmetics.contains(formula.toString())) {
    this.arithmetics.add(formula + " = " + Script.resolve(formula.toString()));
    return;
  }
  generate();
}

Log 类负责打印结果,和保存结果

测试运行

后记

呃.. java 的轮子真圆~

PS: 能不能使用其他语言开发...

PSP

PSP2.1 任务内容 计划完成需要时间(min) 实际完成需要时间(min)
Planning 计划 5 10
Estimate 估计时间,规划步骤 5 10
Development 开发 30 145
Analysis 需求分析 5 20
Coding 具体编码 20 120
Test 测试 5 5
Reporting 报告 20 40
Postmortem&Process Improvement Plan 总结改进 20 40

原文地址:https://www.cnblogs.com/jinma/p/11483298.html

时间: 2024-11-06 07:36:01

20194684 + 自动生成四则运算题第一版报告的相关文章

20194582自动生成四则运算题第一版报告

一 需求分析 利用C语言或者JAVA来编写代码 通过此代码自动生成四则运算,利用自动生成四则运算题程序可以进一步培养小学生计算能力,提高运算能力,并且减少老师和家长出题工作量. 二功能设计 (1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 (2)剔除重复算式.  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 (3)题目数量可定制 (4)相关参数可控制

20194653 自动生成四则运算题第一版报告

一.需求分析 需要能自动生成四则运算的程序并能控制其中的一些参数,显示在txt文件中 二.功能设计 基本功能 自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 扩展功能 (1)剔除重复算式.  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 (2)题目数量可定制 (3)以下相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内   还是

20194615自动生成四则运算题第一版报告

1.需求分析 使用C语言完成一个自动生成四则运算试题的程序. 2.功能设计 基本功能:随机生成10道100以内的2个操作数的四则运算算式,要求运算结果也在100以内. 扩展功能:(1)剔除重复算式 (2)定制题目数量 (3)是否选择包含乘法和除法 (4)操作数数值范围是否可控 (5)操作数是否含负数 (6)是否选择生成答案 (7)生成的运算题存储到result.txt文件中 3.设计实现 使用sign函数实现含有负数的随机算式.sum函数选择受否生成带有答案的算式,其他功能由主函数完成. 4.测

20194714自动生成四则运算题第一版报告

一.需求分析 需要自动生成四则运算试题的程序,取值范围在100以内,操作数是否含负数,剔除重复算式,显示在txt文件中 二.功能设计 基本功能:自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 扩展功能:1. 剔除重复算式.2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 2. 题目数量可定制 3. 相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作

20194725 自动生成四则运算题第一版报告

一·需求分析 通过此代码自动生成四则运算,给运算带来方便,节省老师和家长的出题时间. 二·功能设计 (1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 (2)剔除重复算式.  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 (3)题目数量可定制 (4)相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内   还是1000以内) 操

20194630+自动生成四则运算题第一版报告

1.需求分析:自动生成四则运算,运算结果也在100之内   剔除重复算式,生成的运算题存储到外部文件result.txt中 2.功能设计: 基本功能:自动生成10道100以内的2个操作数的四则运算算式(+ - *  /) 题目数量可定制 相关参数可控制           是否包含乘法和除法           操作数数值范围可控(如操作数 在100以内   还是1000以内)           操作数是否含负数 生成的运算题存储到外部文件result.txt中 3.设计实现 设计功能全部实现

20194667+自动生成四则运算题第一版报告

一.需求分析 (1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 (2)剔除重复算式.  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 (3)题目数量可定制 (4)相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内   还是1000以内)   操作数是否含负数 (5)生成的运算题存储到外部文件result.txt中 二.功能设

20194632+自动生成四则运算题第一版报告

一.基本功能 使用C或Java语言完成一个自动生成四则运算试题的程序. 1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内 2)剔除重复算式. 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式 3)题目数量可定制 4)相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内 还是1000以内) 操作数是否含负数 5)生成的运算题存储到外部文件result.txt中 二.需求分

20194628自动生成四则运算题第一版报告

1.需求分析 使用C或Java语言完成一个自动生成四则运算试题的程序. 2.功能设计 基本功能: (1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 (2)剔除重复算式.  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 (3)题目数量可定制 (4)相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内   还是1000以内) 操作