个人作业1

#小学一二年级数学题随机生成

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 600 720
• Estimate • 估计这个任务需要多少时间 600 720
Development 开发 600 720
• Analysis • 需求分析 (包括学习新技术) 30 40
• Design Spec • 生成设计文档 30 40
• Design Review • 设计复审 30 40
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 30
• Design • 具体设计 60 60
• Coding • 具体编码 300 370
• Code Review • 代码复审 20 30
• Test • 测试(自我测试,修改代码,提交修改) 10 20
Reporting 报告 30 30
• Test Repor • 测试报告 20 20
• Size Measurement • 计算工作量 10 10
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 30 30
合计 720

二、需求分析

我通过百度的方式了解到,小学一年级数学有如下的几个特点:

  • 特点一:在规定范围。
  • 特点二:学生要有进行整数四则计算的能力。
    经过分析,我认为,这个程序应当:
  • 一年级所有数字不超过20;二年级所有数字不超过100。
  • 所有数字为非负整数。

    三、设计

    1. 设计思路

  • 在命令行输入
  • 确保输入的参数不能过大,必须是正整数
  • 根据输入的参数随机生成式子
  • 运用随机数
  • 将题目和答案存入out.txt文件

2. 实现方案

  • 准备
    1.下载Git管理仓库,并在GitHub上fork亓老师主页的MathExam2018仓库,并clone到本地。
    2.创建源文件MathExam6371.java

  • 技术关键点
    1.random函数的运用。
    2.输出题目与答案到指定文件。
    3.年级的选择及题库的选择。

四、编码

1.调试日志

  • 在编程时遇到很多问题,比如
    1.没有考虑到用户输入时会输入非数字的情况,编译出现异常。再请教同学与网上查询的方式了解到运用catch (NumberFormatException e)的方式解决。
    2.不会将结果写入文件,在查找上学期作业时找到了解决办法。

2. 关键代码

3. 代码规范

1.不变的值,尽量写个常量类
2.尽量使用if{}else,不要一直if去判断
3.是否给单个的循环、条件语句也加了{ }
4.对象初始化为null的对象被调用前必须被重新赋值,如果赋值语句在try块中,调用操作必须在try块中

五、测试

测试输入:java MathExam 3 测试结果:生成3道一年级题目和答案 预期结果:符合
测试输入:java MathExam 5 2 测试结果:输入有误,请重新输入 预期结果:符合
测试输入:java MathExam abc 测试结果:输入有误,请重新输入 预期结果:符合
测试输入:java MathExam -1 测试结果:输入有误,请重新输入 预期结果:符合

六、总结

请总结过程中的教训和经验,思考

  • 是否使用了“软件开发的基本策略:分而治之”,是否需要重构
    是,需要。
  • “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构
    是,需要。

猜你喜欢

转载自www.cnblogs.com/lzj7990/p/9630282.html
今日推荐