MathExam任务一
小学一二年级数学计算题
一、预估与实际
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 35 |
| • Estimate | • 估计这个任务需要多少时间 | 600 | 660 |
| Development | 开发 | 540 | 600 |
| • Analysis | • 需求分析 (包括学习新技术) | 40 | 200 |
| • Design Spec | • 生成设计文档 | 20 | 20 |
| • Design Review | • 设计复审 | 10 | 30 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 5 |
| • Design | • 具体设计 | 60 | 60 |
| • Coding | • 具体编码 | 240 | 300 |
| • Code Review | • 代码复审 | 10 | 15 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 30 | 25 |
| Reporting | 报告 | 10 | 20 |
| • Test Repor | • 测试报告 | 30 | 36 |
| • Size Measurement | • 计算工作量 | 20 | 10 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 30 |
| 合计 | 660 |
二、需求分析
我通过网上查询、询问同学的方式了解到,小学一年级数学有如下的几个特点:
- 特点1 小学加减法一般在0-20之间,其结果可以超过20
- 特点2 不存在答案为负数的结果
经过分析,我认为,这个程序应当:
- 使用的数字小于20
- 如果是减法的情况下,被减数不能小于减数
三、设计
1. 设计思路
- 这个程序只有一个类,在main方法中直接通过构造函数调用
- 需要用到args数组来从命令行中接收参数
- 随机数的生成和将结果输出到文件中去
- 最后处理错误输入的情况
2. 实现方案
写出具体实现的步骤
- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:Random,File,BufferedWriter的使用
四、编码
- 用到args数组来实现从命令行中接收参数
- 用Random没有种子的构造函数来生成随机数
- 用BufferedWriter来将结果输出到文件中去
1. 调试日志
- 第一个BUG,是无法用命令行输入参数,随后我用args数组解决
- 第二个BUG,是数组越界问题
- 第三个BUG,是遇到错误输入数据,程序无法继续运行
2. 关键代码


加减法的具体实现
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条大括号的使用约定。如果是大括号内为空,则简介地写成{}即可,不需要换行;如果是非空代码块则:
左大括号前不换行
左大括号后换行
右大括号前换行
右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行 - 第二条 异常进行手动处理,不抛出
五、测试
测试输入:java MathExam 5 测试结果:生成5道一年级题目和答案 预期结果:符合
测试输入:java MathExam 5 2 测试结果:输入有误,请重新输入 预期结果:符合
测试输入:java MathExam a 测试结果:输入有误,请重新输入 预期结果:符合
测试输入:java MathExam -5 测试结果:输入有误,请重新输入 预期结果:符合
六、总结
这次编码感触颇多,深深感觉到自己的能力的不足,绝大部分时间都花费在查资料身上了,基本上是一边编码一边上百度去查资料。
还有虽然看了软件工程教学视屏,但还是感觉不知道怎样把“分而治之”等软件工程的思想运用进去。老是再写代码的时候记不住代码规
范。还需要好好努力呀!
MathExam任务一的更多相关文章
- MathExam
MathExam 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 575 605 • Est ...
- MathExam小学一二年级计算题生成器V1.0
MathExam小学一二年级计算题生成器v1.0 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning ...
- MathExam第二次作业
第二次作业:MathExam 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 30 • ...
- MySQL数据库实验:任务一 创建数据库和表
目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...
- Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-任务一:自定义持久层框架
目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 ...
- 【笔记】拉勾Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-任务一:自定义持久层框架
以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通. 目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPe ...
- Spring 3整合Quartz 2实现定时任务一:常规整合 (基于maven构建)
最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 首先,当然是添加依 ...
- Spring 3整合Quartz 1实现定时任务一:常规整合(基于maven构建)
Spring配置Quartz例子(基于maven构建) 在Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类 ...
- 任务一:零基础HTML编码练习
任务目的 了解HTML的定义.概念.发展简史 掌握常用HTML标签的含义.用法 能够基于设计稿来合理规划HTML文档结构 理解语义化,合理地使用HTML标签来构建页面 任务描述:完成一个HTML页面代 ...
随机推荐
- ra寄存器定位core
$ra寄存器中存入的是pc的值(程序运行处的地址),调用函数时,在跳转前,必须保存当前地址(pc的值),以便后来返回.jal $ra 保存后跳转,jr $ra,返回到跳转前,通过$ra保存进入上层栈地 ...
- C#中的结构体与类的区别 (转载)
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
- 内存管理与正则(re)模块
内存管理 垃圾回收机制 不能被程序访问到的数据,就称之为垃圾 也就是失去了一个能够访问到值数据的名称空间,导致在内存中无作为 引用计数:是内存管理的原理 引用计数是用来记录值的内存地址被记录的次数 每 ...
- rdlc报表随笔心得 ,基本结构和一些表达式。
Dataset Form RDLC 主要放数据集的文件夹 存放窗体的文件夹 存放各种报表的文件夹 第一部,创建报表结构 首先添加数据集项 添加完成之后我们会看到这个页面 之后我们在上面添加一些数据集 ...
- delphi黑色背景模式
uses Vcl.Styles, vcl.Themes; procedure TForm1.FormCreate(Sender: TObject); begin TStyleManager.LoadF ...
- c#操作注册表的意外
因为要在C/S程序中使用WebBrowser控件,因为默认的IE版本很低,无法使用Html5功能,故需通过把程序名写入注册表的方法指定IE版本. 但操作的过程中出现一个问题: 1.使用代码找到相关项, ...
- 20155236范晨歌_EXP3免杀原理与实践
20155236范晨歌_免杀原理与实践 免杀 概述 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字 ...
- 20155338《网络对抗》Exp2 后门原理与实践
20155338<网络对抗>Exp2 后门原理与实践 一. 基础问题 (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:游览网站中附带的广告或弹出的不正规软件. (2)例举你知道 ...
- JavaWeb总结(十四)
无脚本JSP表达式语言EL JSP页面中显示结果 jsp:useBean和jsp:getProperty两个元素冗长而笨拙 jsp:getProperty只支持对简单Bean属性的访问 public ...
- [UOJ266]Alice和Bob又在玩游戏
[UOJ266]Alice和Bob又在玩游戏 Tags:题解 作业部落 评论地址 TAG:博弈 题意 不同于树的删边游戏,删掉一个点删去的是到根的路径 题解 这题只和计算\(SG\)有关,博弈的有关内 ...