作业

一、预估与实际

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作业的更多相关文章

  1. MathExam第二次作业

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

  2. MathExam第二次作业(升级版)

    MathExamLv2——林华伟 211506319 陈珍 211406263   一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实 ...

  3. 作业MathExam

    MathExam233 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 600 650 • ...

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

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

  5. python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)

    类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...

  6. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  7. 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , ...

  8. T-SQL检查停止的复制作业代理,并启动

        有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...

  9. Python09作业思路及源码:高级FTP服务器开发(仅供参考)

    高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...

随机推荐

  1. HDU 1171 (01背包问题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1171 分析: 例如数据 3 10    2 20    1 30    1 获得这样一个降序的数组: ...

  2. CentOS7.6离线安装MySql5.7

    准备好mysql的离线安装文件: MySql官网下载mysql-5.7.25-1.el7.x86_64.rpm-bundle,并复制到/usr/mysql文件夹中. 删除CentOS自带的MariaD ...

  3. windbg调试虚拟机win7系统

    调试机:win10 1809 虚拟机: win7 windbg属性设置,在目标后面加上紫色字体参数:  "D:\Program Files\Debugging Tools for Windo ...

  4. Redis--位图BitMap

    一.BitMap是什么 通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身,value对应0或1,我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存 ...

  5. Noip前的大抱佛脚----考场配置

    (global-linum-mode t) (global-set-key (kbd "RET") 'newline-and-indent) (setq default-tab-w ...

  6. easybcd删除win10启动项如何恢复?

    制作windows启动盘: u盘启动 开始安装,选择左下角的"修复计算机": 运行命令 bcdboot c:\windows /l zh-cn 从系统盘C:\Windows目录中复 ...

  7. 2-8 字典dict

    1.如何在一个变量里存储公司每个员工的个人信息? 2.字典的定义与特性 字典是Python语言中唯一的映射类型. 定义:{key1:value1,key2:value2} 1.键与值用冒号“:”分开: ...

  8. SSIS 数据流的执行树和数据管道

    数据流组件的设计愿景是快速处理海量的数据,为了实现该目标,SSIS数据源引擎需要创建执行树和数据管道这两个数据结构,而用户为了快速处理数据流,必须知道各个转换组件的阻塞性,充分利用流式处理流程,利用更 ...

  9. 动态权限<三>华为小米特殊机制

    动态权限对于谷歌来说从android6.0引入,对于国内的rom来说,这个题目不是好的选择题.因为大多数时候由于使用群众的层次不同,有些人在乎隐私的泄露,而更多的人却并不关心,使用了动态权限,增加了用 ...

  10. c++引用与指针的关系

    目录 1.引用的概念及用法 2.引用做参数 3.引用做返回值 4.汇编层看引用的特性 5.引用和指针的区别和联系: 更多内容请移步专栏:https://blog.csdn.net/column/det ...