作业

一、预估与实际

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. 大数加减法 - java实现

    计算机处理的各种数据类型都有个范围,超出范围的就处理不了. 如果做超大数运算加减乘除,普通方法肯定是不行的,那么我们遇到大数的运算怎么处理呢?今天介绍一种大数加减乘除运算的方法 思路: 1. 将两个特 ...

  2. USB协议规范文档简介

    USB协议规范文档简介       USB驱动开发必须对USB相关的协议规范有一定程度的了解,理解得越深,遇到的问题就会越少,解决问题的速度也就越快. 工欲善其行,必先利其器.USB协议规范就是USB ...

  3. C++中的随机函数

    一.random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过. 可改用C++下的rand函数来实现.      1.C++标准函数库提供一随机数生成器rand,返回0-RAND_MA ...

  4. RAC配置笔记

    Iscsi常用命令(我通过openfiler实现iscsi存储) # iscsiadm -m discovery -t st -p IP:port     //发现iSCSI存储 # iscsiadm ...

  5. PHP+MySQL实现海量数据导入导出的总结:is_numbric函数的坑

    前段时间有个需求:将生产环境的部分数据转移到测试服务器进行测试.由于只需要导入特定账号的数据,我就想着将写个脚本,将数据组装成sql语句导出为sql文件,然后转移到测试服务器,导入到MySQL中.想象 ...

  6. 多进程共享内存的MemoryStream

    文章转载于http://www.raysoftware.cn/?p=506 具体用处呢,有很多,比如多进程浏览器共享Cookie啦,多个进程传送点数据啦. 共享内存封装. 封装成了MemoryStre ...

  7. day 88 Vue学习之八geetest滑动验证

      本节目录 一 geetest前端web中使用 二 xxx 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 geetest前端web中使用 下载gt文件,官网地址,下面我 ...

  8. Oracletop10物理段

    Oracletop10物理段 select owner, name, type, mega, tbs from (select owner, case when segment_type = 'LOB ...

  9. 20155318 2016-2017-2 《Java程序设计》第七学习总结

    20155318 2016-2017-2 <Java程序设计>第七学习总结 教材学习内容总结 学习目标 了解Lambda语法 了解方法引用 了解Fucntional与Stream API ...

  10. 20155325 2017-2018 1 课上测试、课下作业、实验——码云&博客链接汇总 《信息安全系统设计基础》

    第二周-课上 码云 https://gitee.com/bestiisjava2017/XinXiAnQuanXiTongSheJiJiChu20155325thl/tree/master/0927 ...