小学三年级四则混合运算

脑壳疼的二次作业

211606319-林志强 211606321-刘杰

一、预估与实际

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

二、需求分析

我通过网上查找的方式了解到,小学三年级数学有如下的几个特点:

  • 特点1:会笔算一位数除多位数的除法、两位数乘两位数的乘法,会进行相应的乘、除法估算和验算。
  • 特点2:会口算一位数除商是整十、整百、整千的数,整十、整百数乘整十数,两位数乘整十、整百数(每位乘积不满十)。
  • 特点3:初步认识简单的小数(小数部分不超过两位),初步知道小数的含义,会读、写小数,初步认识小数的大小,会计算一位小数的加减法。
  • 特点4:学会混合运算,学会使用小括号。

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

  • 使用的数字小于100。
  • 不能出现俩位小数。
  • 可以出现小括号

三、设计

1. 设计思路

  • 这次作业要求为三年级学生设计一个出题器,首先数字要求小于100,有加减乘除和小括号多种运算符
  • 由于添加了小括号,所以需要考虑运算优先级的问题,需要用到逆波兰算法
  • 逆波兰算法的核心步骤就2个:1,将中缀表达式转换为后缀表达式,例如输入的原始表达式是 3 X(5+7) ,转换得到 3 5 7 + X 2、根据后缀表达式,按照特定的计算规则得到最终结算结果
    1472396-20180919120047634-735525841.gif
    1472396-20180919120116219-1870183300.gif
  • 流程图
    1472396-20180919110854654-1522205620.png

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地
  • 先实现判断用户的年级,在获取需要生成的题目的数量
  • 实现四则运算,尤其注意运算符的优先级
  • 将题目和答案输出

1. 调试日志

  • 无法出现括号。未解决。
  • 出现负数。未解决。
  • 小数。未解决。

2. 关键代码

public class Operation {
    private static int ADDITION=1;
    private static int SUBTRACTION=1;
    private static int MULTIPLICATION=2;
    private static int DIVISION=2;
    public static int getValue(String operation){
        int result;
        switch (operation){
            case "+":
                result=ADDITION;
                break;
            case "-":
                result=SUBTRACTION;
                break;
            case "*":
                result=MULTIPLICATION;
                break;
            case "/":
                result=DIVISION;
                break;
            default:
                result=0;
        }
        return result;
    }
}

实现符号的优先级运算。

3. 代码规范

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

  • 第一条:方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
  • 第二条:类名使用UpperCamelCase风格。
  • 第三条:避免变量的定义与上一层作用域的变量同名。

五、测试

测试序号输入参数grade n测试结果
11 10符合预期结果
22 20符合预期结果
33 20符合预期结果
43 30符合预期结果

六、总结

  • 结对作业需要俩人分配好工作,在实验中才能事半功倍。
  • 随着作业难度的增加,在前期的准备工作就要做足。在需求分析,具体审计,思路上就要清晰明确。
  • 俩个人在编程过程中尽量要保证一致节奏,否则会使双方在测试上出现分歧。
  • 1472396-20180919115825043-452552823.jpg

转载于:https://www.cnblogs.com/lzq3721/p/9672186.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值