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. 关键代码
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 # | 请输入正确的数字 |
六、总结
- 第一次看到作业题目的时候自己就和无头苍蝇一样无从下手,上网查阅了一些资料之后有了一些头绪,在写代码的过程中不停地在碰壁,经常出现bug,异常,死循环,或者没有出现想要的运算结果,还好没有放弃,最后勉强完成了作业,虽然中间还有很多瑕疵,但这次作业对自己来说是一次真正的历练,对自己以后的编程学习有非常大的帮助,希望自己以后更加努力,写出更好的代码
MathExam作业的更多相关文章
- MathExam第二次作业
第二次作业:MathExam 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 30 • ...
- MathExam第二次作业(升级版)
MathExamLv2——林华伟 211506319 陈珍 211406263 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实 ...
- 作业MathExam
MathExam233 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 600 650 • ...
- MathExam小学一二年级计算题生成器V1.0
MathExam小学一二年级计算题生成器v1.0 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- SQLServer2005创建定时作业任务
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...
- 使用T-SQL找出执行时间过长的作业
有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下: SELECT sj.name , ...
- T-SQL检查停止的复制作业代理,并启动
有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...
- Python09作业思路及源码:高级FTP服务器开发(仅供参考)
高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...
随机推荐
- Appium移动自动化测试(一)--Mac安装Appium
一.Appium安装 1. 直接安装:Appium官网下载:https://bitbucket.org/appium/appium.app/downloads/ 这里mac系统升级到 Sierra后, ...
- 四、Delphi10.3读取JSON数据
一.我们有一段JSON数据如下: { "五班": [ { "姓名": "张三", "成绩": 75.5 }, { &qu ...
- SSM整合思路
引自网友: https://zhuanlan.zhihu.com/p/23917781
- struts2第二天——数据操作
先介绍一下大致内容: 大致内容: 结果页面配置 action获取表单提交数据 提供获取表单数据的方式(封装数据) 表单数据封装到集合中 表达式封装和模型驱动封装比较 一.结果页面配置: result标 ...
- JavaWeb基础—监听器Listener
javaWeb三大组件: servlet listener(用的不多) filter 什么叫监听器: 初次相见:AWT 二次相见:SAX(XML解析时)Bundle 绑定 监听器是一个接口,内容由我们 ...
- 20155332 补交ch12课下作业
20155332 补交ch12课下作业 课下测试提交晚了,我课后补做了一遍,答对13题,答错3题. 试题内容如下所示: 课本内容 1.并发(Concurrency) 访问慢I/O设备:就像当应用程序等 ...
- WebUploader在IE9中文件选择按钮点击没反应
一.问题: 最近做的公司项目里,用户环境一直用的火狐,但是实际的用户群体都是银行人员 政府部门怎么也要用 IE,而且还有一些用的IE版本是古董版本IE9 IE9 相比 IE8 多了图像渲染等,无法兼容 ...
- RMAN 与control文件和spfile文件的备份
以10.2为例,官方文档如此说: http://docs.oracle.com/cd/B19306_01/backup.102/b14191/rcmconc1.htm The RMAN behavio ...
- Gitlab+Jenkins学习之路(四)之gitlab备份和恢复
gitlab的备份和恢复 (1)创建备份目录,并授权 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# ...
- Form,tagName和nodeName的区别
首先介绍DOM里常见的三种节点类型(总共有12种,如docment):元素节点,属性节点以及文本节点,例如<h2 class="title">head</h2&g ...