正文
MathExam作业
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
作业一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 50 | 40 |
• Estimate | • 估计这个任务需要多少时间 | 600 | 650 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 30 | 20 |
• Design Spec | • 生成设计文档 | 25 | 30 |
• Design Review | • 设计复审 | 20 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 15 | 15 |
• Design | • 具体设计 | 20 | 20 |
• Coding | • 具体编码 | 300 | 240 |
• Code Review | • 代码复审 | 15 | 20 |
• Test | • 测试(自我测试,修改代码,提交修改) | 300 | 250 |
Reporting | 报告 | ||
• Test Repor | • 测试报告 | 30 | 20 |
• Size Measurement | • 计算工作量 | 25 | 10 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 40 |
合计 | 700 |
二、需求分析
我通过百度查找的方式了解到,小学一年级数学有如下的几个特点:
- 特点1
- 多数为100以内的加减法运算
经过分析,我认为,这个程序应当:
只出现100以内的加减法,且减法的结果不能出现负数
三、设计1. 设计思路
说明你如何设计这个程序
- 控制台负责传入输入的题目数量
- 生成对应的题目
- 要保证不能出现负数
- ...
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:Random,File.Scanner的使用
四、编码- 编码过程:
- Math方法:
- 传入数字n
- 定义一个str字符串接收n,并判断n是否是合法输入
- 定义两个随机数和一个运算符进行运算,并将过程结果添加到ArrayList集合中
- 写入out.txt文件中
- mian函数
- 调用Math方法,运行程序
1. 调试日志
- 输入非法字符时,程序会出现异常
- 只出现加法或减法的题目
2. 关键代码
- 传入数字n
- 定义一个str字符串接收n,并判断n是否是合法输入
- 定义两个随机数和一个运算符进行运算,并将过程结果添加到ArrayList集合中
- 写入out.txt文件中
- 调用Math方法,运行程序
ArrayList<String> info = new ArrayList<String>();
String answerinfo = "";
for (int m = 0; m < n; m++) {
int x = (int) (Math.random() * 2);
int y = (int) (Math.random() * 101);
int z = (int) (Math.random() * 101);
if ((y - z) < 0) {
x = 0;
}
if (x == 0) {
symbol = "+";
answerinfo = y + " " + "+" + " " + z + " " + "=" + " "
+ (y + z);
info.add("\n" + "(" + (m + 1) + ")" + " " + answerinfo);
} else {
symbol = "-";
answerinfo = y + " " + "-" + " " + z + " " + "=" + " "
+ (y - z);
info.add("\n" + "(" + (m + 1) + ")" + " " + answerinfo);
}System.out.println("(" + (m + 1) + ")" + " " + y + " "
+ symbol + " " + z + " " + "=");
input.close();
}
System.out.println("----------------------" + "标准答案 "
+ "-----------------------");
System.out.println(info);
3. 代码规范
请给出本次实验使用的代码规范:
第一条
左大括号前不换行
左大括号后换行
右大括号前换行
右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行第二条 出现异常时使用try-catch处理,不用throws抛出
五、测试
测试序号 | 具体输入 | 结果 |
---|---|---|
1 | java MathExam6347 0 | 未显示题目 |
2 | java MathExam6347 10 | 生成10道一年级题目 |
3 | java MathExam6347 -1 | 请输入正确的数字 |
4 | java MathExam6347 s | 请输入正确的数字 |
5 | java MathExam6347 # | 请输入正确的数字 |