标签:analysis public range gen html commons generator 计划 命令行
要求:使用C或Java语言完成一个自动生成四则运算试题的程序
软件基本功能如下。
某幼儿园,老师要每天出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: 能不能使用其他语言开发...
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 |
标签:analysis public range gen html commons generator 计划 命令行
原文地址:https://www.cnblogs.com/jinma/p/11483298.html