第二次作业

随机生成--小学计算题

一、预估与实际

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

二、需求分析

我通过百度小学1-3年级数学题大全的方式了解到,小学三年级数学有如下的几个特点:

  • 运算符在2~4个
  • 可以加括号
  • 减法运算的结果不能有负数
  • 除法运算除数不能为0,不能有余数

经过分析,我认为,这个程序应当:

  • 使用的数字小于100的数
  • 减数须比被减数小
  • 运算结果均保证为正
  • 除数与被除数必须是倍数关系
  • 混合运算结果必须是整数
  • 括号必须是一对的

三、设计

1. 设计思路

  • 创建文件,用文件io流
  • 把一二年级的功能保留
  • 随机生成运算符(最少有两个不同的运算符)
  • 生成随机算式,括号的配对
  • 记录写入文本

流程图:

2. 实现方案

具体实现的步骤:

  • 准备工作:先在Github上创建仓库,克隆到本地...,Git的使用,仓库的创建,文件的上传.....
  • 技术关键点:
  • 想直接将四则运算直接写作一个类,然后当grade=3的时候在一二年级的基础上直接调用这个类。
  • 调度场算法和逆波兰表达式。

四、编码

1. 调试日志

  • 余数设置不合理,当运算三年级的时候,也会有余数输出;通过加一个if语句判断,当为三年级时,除数与被除数必须模除为0

2. 关键代码

3. 代码规范

请给出本次实验使用的代码规范:

  • 第一条,类型与中括号紧挨相连来定义数组
  • 第二条,杜绝完全不规范的缩写,避免忘文不知义
  • 第三条,不允许任何魔法值(即未经预先定义的常量)直接出现在代码中
  • 第四条,final可以声明类、成员变量、方法、以及本地变量
  • 第五条, 注释的双斜线与注释内容之间有且仅有一个空格。
  • 第六条,if/for/while/switch/do等保留字与括号之间都必须加空格。
  • 第七条,采用4个空格缩进,禁止使用tab字符。
  • 第八条,单行字符数限制不超过120个,超出需要换行。

五、测试

  • 输入:0 输出:请输入参数(1为起始)!
  • 输入:5 输出:题目已经生成,详情请见out.txt
  • 输入:1 1 输出:至多输入1个参数!
  • 输入:99......999 输出: 输入的第一个参数数值太大!
  • 输入:a 输出:请输入正整数!
  • 输入:10 2 输出:题目已经生成,详情请见out.txt

六、总结

  • 上次看到题目期初懵懵懂懂,到最后挣扎可以写出来。跟队友合作也不是头一次,也算是老伙伴了,但是我们两在这次的合作中从头到尾都是头脑空白的状态,调度场算法和逆波兰表达式还不太懂,又有点急躁,一个想法不行,就换另一种想法,没有坚守到底,在这次结对中,我们发现了各自的不足,后期也会一起继续研究,弥补欠缺的。
原文地址:https://www.cnblogs.com/Shuangyi/p/9671039.html