• 结对作业1


    小学出题器

    • 学号1:211606306 黄柏涛
    • 学号2:211606308 江东

    一、预估与实际

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

    二、需求分析

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

    • 特点1:小学三年级已经学习了九九乘法表。
    • 特点2:小学三年级开始学习混合运算了。
      经过分析我认为这个程序
    • 带括号的整数四则运算。

    三、设计

    1. 设计思路

    说明你如何设计这个程序

    比如:

    • 这个程序的混合运算需要用到逆波兰公式。
    • 调用函数实现 各个年级的输入和题目和答案的输出。
    • 把代码打印到output.txt文件里。
    • ...

    2. 实现方案

    写出具体实现的步骤

    比如:

    • 准备工作:先在Github上创建仓库,克隆到本地,完成后提交。
    • 技术关键点:要现在Eclipse先打出代码然后把代码输入到out.txt文件后,要在cmd上运行检测。在基础的代码上还要加入四则运算。

    四、编码

    请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程

    1. 调试日志

    • 运用逆波兰公式的时候忘记加入优先级,导致只能按顺序加减乘除,不会出现先乘除后加减的正确结果。

    2. 关键代码

    private static void Reverse Polish Notation(String[] strArr){
    String str = "+-/";
    Stack stack = new Stack();
    //遍历数组中的每一个元素
    for(String s : strArr){
    if(!str.contains(s)){
    //如果是数字,放入栈中
    stack.push(s);
    }else{
    int a = Integer.valueOf(stack.pop());
    int b = Integer.valueOf(stack.pop());
    switch(s){
    case "+" :
    stack.push(String.valueOf(a+b));
    break;
    case "-" :
    stack.push(String.valueOf(b-a));
    break ;
    case "
    " :
    stack.push(String.valueOf(a*b));
    break;
    case "/" :
    stack.push(String.valueOf(b/a));
    break ;
    }
    }
    }
    System.out.println(stack.pop());

    }
    注:这段逆波兰表达式是我百度的https://blog.csdn.net/Willard1314/article/details/71425553
    

    3. 代码规范

    • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
    • 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
    • 类型与中括号紧挨相连来定义数组。
    • 代码中命名只能用英文。

    五、测试

    六、总结

    这一次的实验是在第一次的基础上提升,原本以为会比上次简单点,但是实际操作却超乎想象,除法的被除数不能为0,四则运算的优先级问题都令我焦头烂耳,最后也只能是在同学的帮助下才勉勉强强完成了这一次的作业。

  • 相关阅读:
    F#新Bug,小心! module 里的泛型变量。
    F#: mutable 关键字不适宜用于结构中声明可变值
    简说F#的数组
    元组——秃瓢(Tuple)
    如何用Xmind编写测试用例
    如何提高评审的效率
    接口测试实例/20200622
    mysql数据库的基本增删改查操作总结
    面试技巧篇02:面试前必看!
    面试技巧篇01
  • 原文地址:https://www.cnblogs.com/Dollarss/p/9672246.html
Copyright © 2020-2023  润新知