第二次作业

随机生成--小学计算题

一、预估与实际

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

二、需求分析

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

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

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

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

三、设计

1. 设计思路

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

    流程图:

    1472336-20180918233916537-743405600.png

2. 实现方案

具体实现的步骤:

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

四、编码

1. 调试日志

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

2. 关键代码

1472336-20180919002047570-995153955.png

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

六、总结

1472336-20180919002118937-289358875.jpg

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

转载于:https://www.cnblogs.com/Shuangyi/p/9671039.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值