小学三年级四则混合运算

脑壳疼的二次作业

211606319-林志强 211606321-刘杰

一、预估与实际

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

二、需求分析

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

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

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

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

三、设计

1. 设计思路

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

  • 流程图

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 测试结果
1 1 10 符合预期结果
2 2 20 符合预期结果
3 3 20 符合预期结果
4 3 30 符合预期结果

六、总结

  • 结对作业需要俩人分配好工作,在实验中才能事半功倍。
  • 随着作业难度的增加,在前期的准备工作就要做足。在需求分析,具体审计,思路上就要清晰明确。
  • 俩个人在编程过程中尽量要保证一致节奏,否则会使双方在测试上出现分歧。
posted @ 2018-09-19 11:19  撒=旦  阅读(1952)  评论(1编辑  收藏  举报