111

出题器

  • 211614387 叶宏奇
  • 211614354 陈泓宇

    一、预估与实际

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

二、需求分析

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

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

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

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

三、设计

1. 设计思路

  • 关键函数的流程图
    1472381-20180918222427833-1009555383.png

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

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
    1472381-20180918222643471-221721512.png

六、总结

  • 上学期代码编程不是很好,通过结对之后学到了很多东西。
  • 1472381-20180918223330643-366728687.png

转载于:https://www.cnblogs.com/chy0523/p/9672197.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值