• 111


    出题器

    • 211614387 叶宏奇
    • 211614354 陈泓宇

    一、预估与实际

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

    二、需求分析

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

    • 特点1:三年级开始学习混合运算。
    • 特点2:三年级的算法应该是比较偏向口算,如880/2。

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

    • 乘法除法尽量取整数
    • 优先级时候考虑的除法的一些问题

    三、设计

    1. 设计思路

    • 关键函数的流程图

    • 在于逆波兰公式对于混合运算的成功有很大作用

    2. 实现方案

    • 准备工作:先在Github上创建仓库,克隆到本地。
    • 运用逆波兰公式,将中缀表达式转化后缀表达式。
    • 先读取栈中的优先级最高的符号。在依次将数字出栈进行运算

    四、编码

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

    1. 调试日志

    记录编码调试的日志,请记录下开发过程中的 debug 历程

    • 将代码全部设为静态私有变量,方便使用。
    • 逆波兰的栈输入输出的顺序改变导致混合运算出现错误。

    2. 关键代码

    private static String ReversePolish (String[] strArr){
    //逆波兰表达式 后缀运算 用于混合运算
        String str = "+-*/";
        Stack<String> stack = new Stack<String>();
        //遍历数组中的每一个元素
        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 ;
                }
            }
        }
        return stack.pop();
    }
    

    3. 代码规范

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

    • 第一条:代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
    • 第二条:类名使用UpperCamelCase风格。
    • 第三条:方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
    • 第四条:类型与中括号紧挨相连来定义数组。
    • 第五条:抽象类命名使用 Abstract 或 Base 开头。

    五、测试

    • 输入 10 3

    六、总结

    • 上学期代码编程不是很好,通过结对之后学到了很多东西。
  • 相关阅读:
    Android端 配置极光推送
    udev的使用-minicom没有权限打开串口,更改 ttyUSB0 的权限
    【Oracle】RAC删除节点
    Linux学习(二) wget命令的使用
    Struts2拦截器
    SpringMVC实战(三种映射处理器)
    rbd_rados命令拷屏
    网络威胁防护,Azure 靠的是它?
    一块钱使用开发测试环境,助你快速打造万圣节促销应用
    想要快速搭建开发测试环境?这么做就可以!
  • 原文地址:https://www.cnblogs.com/chy0523/p/9672197.html
Copyright © 2020-2023  润新知