小学一二年级数学计算题

一、预估与实际

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任务一的更多相关文章

  1. MathExam

    MathExam 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 575 605 • Est ...

  2. MathExam小学一二年级计算题生成器V1.0

    MathExam小学一二年级计算题生成器v1.0 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning ...

  3. MathExam第二次作业

    第二次作业:MathExam 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 30 • ...

  4. MySQL数据库实验:任务一 创建数据库和表

    目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...

  5. Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-任务一:自定义持久层框架

    目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 ...

  6. 【笔记】拉勾Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-任务一:自定义持久层框架

    以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通. 目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPe ...

  7. Spring 3整合Quartz 2实现定时任务一:常规整合 (基于maven构建)

    最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 首先,当然是添加依 ...

  8. Spring 3整合Quartz 1实现定时任务一:常规整合(基于maven构建)

    Spring配置Quartz例子(基于maven构建) 在Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类 ...

  9. 任务一:零基础HTML编码练习

    任务目的 了解HTML的定义.概念.发展简史 掌握常用HTML标签的含义.用法 能够基于设计稿来合理规划HTML文档结构 理解语义化,合理地使用HTML标签来构建页面 任务描述:完成一个HTML页面代 ...

随机推荐

  1. block本质探寻七之内存管理

    说明: <1>阅读本问,请参照block前述文章加以理解: <2>环境:ARC: <3>变量类型:基本数据类型或者对象类型的auto局部变量: 一.三种情形 //代 ...

  2. ORM增删改查(django)

    单表操作: 一.添加 (1)方式一 from  mysite.models  import * def  add(request): book= Book(name="python" ...

  3. 【PHP开发规范】老生常谈的编码开发规范你懂多少?

    [PHP开发规范]老生常谈的编码开发规范你懂多少? 这几天看了一下阿里技术发布的一套Java开发规范<阿里巴巴Java开发手册>,里面写了阿里内部的Java开发规范标准,写的很好.这套Ja ...

  4. SQLAlchemy Table(表)类方式 - Table类和Column类

    Table 构造方法 Table(name, metadata[, *column_list][, **kwargs]) 参数说明: name 表名 metadata 元数据对象 column_lis ...

  5. 托管代码编写mssql存储过程

    参考:http://wenku.it168.com/d_000642903.shtml 打开vs,创建数据库项目,添加新项,选择sql clr c#, 选择存储过程. 样例: [Microsoft.S ...

  6. 2015306 白皎 《网络攻防》Exp4 恶意代码分析

    2015306 白皎 <网络攻防>Exp4 恶意代码分析 netstat [Mac.Linux.Win] sysinteral [MS]:1 2 3 一.系统监控--Windows计划任务 ...

  7. 洛谷 P1762 偶数

    洛谷 P1762 偶数 题目描述 给定一个正整数n,请输出杨辉三角形前n行的偶数个数对1000003取模后的结果. 输入输出格式 输入格式: 一个数 输出格式: 结果 输入输出样例 输入样例#1:   ...

  8. 【HNOI2013】数列

    题面 题解 设\(\{a_n\}\)为差分数组,可以得到柿子: \[ \begin{aligned} ans &= \sum_{a_1 = 1} ^ m \sum_{a_2 = 1} ^ m ...

  9. caffe windows编译

    MicroSoft维护的caffe已经作为官方的caffe分支了,编译方式也改了,刚好最近重装了一次caffe windows, 记录一下里面的坑 https://github.com/BVLC/ca ...

  10. python爬虫之urllib库介绍

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...