上次作业的升级版

好好好

211606375 牛振乾
211606351 曾茜

一、预估与实际

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

二、需求分析

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

  • 有混合运算
  • 可以有括号的出现

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

  • 减法运算的结果不能有负数
  • 除法运算除数不能为0,不能有余数
  • 运算符在2~4个
  • 可以有括号

三、设计

1.设计思路

  • 关键流程图
    1472369-20180919000928358-1237476527.png

2.实验方案

中缀表达式转换为后缀表达式
你需要设定一个栈SOP,和一个线性表 L 。SOP用于临时存储运算符和分界符( ,L用于存储后缀表达式。
遍历原始表达式中的每一个表达式元素
(1)如果是操作数,则直接追加到 L中。只有 运算符 或者 分界符( 才可以存放到 栈SOP中
(2)如果是分界符
Ⅰ 如果是左括号 ( , 则 直接压入SOP,等待下一个最近的 右括号 与之配对。
Ⅱ 如果是右括号),则说明有一对括号已经配对(在表达式输入无误的情况下)。不将它压栈,丢弃它,然后从SOP中出栈,得到元素e,将e依次追加到L里。一直循环,直到出栈元素e 是 左括号 ( ,同样丢弃他。
(3)如果是运算符(用op1表示)
Ⅰ如果SOP栈顶元素(用op2表示) 不是运算符,则二者没有可比性,则直接将此运算符op1压栈。 例如栈顶是左括号 ( ,或者栈为空。
Ⅱ 如果SOP栈顶元素(用op2表示) 是运算符 ,则比较op1和 op2的优先级。如果op1 > op2 ,则直接将此运算符op1压栈。
如果不满足op1 > op2,则将op2出栈,并追加到L,重复步骤3。
也就是说,如果在SOP栈中,有2个相邻的元素都是运算符,则他们必须满足:下层运算符的优先级一定小于上层元素的优先级,才能相邻。

最后,如果SOP中还有元素,则依次弹出追加到L后,就得到了后缀表达式。

摘抄自【算法】表达式求值--逆波兰算法介绍

四、编码

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

1.调试日志

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

  • 将代码全部设为静态私有变量,方便使用
  • 在逆波兰犯法中要设立优先级

    2.关键代码

    private static String ReversePolish (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(a-b));
    break ;
    case "
    " :
    stack.push(String.valueOf(a*b));
    break;
    case "/" :
    stack.push(String.valueOf(a/b));
    break ;
    }
    }
    }

    3.代码规范

  • 减少代码嵌套次数
  • 尽量不要用参数来带回方法运算结果
  • 避免使用类似名字,或仅仅是大小写不同的名字
  • 循环计数器 通常采用i,j,k或者counter都可以接受

    五、测试

    1472369-20180919000314759-1264974028.png

六、总结

结对对我们还是有好处的,有时候可以一个人不会的知识点林一个人就可以马上上手进行讲解,但是也有一些坏处,就是在一些问题上有分歧,或者两个人都不会的知识点,因为我们遵循男女搭配干活不累的原则——所以导致我们有时候只能进行语音,一些问题不能很好的解决。所以在下次作业上总店解决这些问题。这次就先附上语音的截图啦~~~~~~~
1472369-20180919000803134-1908129277.png

转载于:https://www.cnblogs.com/112233niu/p/9672263.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习vim的正确姿势!

有很多种方法可以去学习Vim:vimtutor就是一个很棒的教程,另外还有help拥有您所想的所有参考信息。链接:https://github.com/wsdjeg/Learn-Vim_zh_cn但是在日常使用中,对于绝大部分用户的需求而言,vimtutor讲得太浅不能满足需要&am…

什么是自由软件?

来源 | www.gnu.org编排 | strongerHuang可能你认为免费软件,就是自由软件,那么你肯定错了,下面来听听专家怎么描述自由软件的。strongerHuang1自由软件定义开源(Open source)是另外一回事:它有基于不同价值…

输入框设置只能输入数字

HTML5 可以用&#xff1a;<input type"number">html4 的话只能用js实现了&#xff1a;<input type"text" οnkeyup"this.valuethis.value.replace(/\D/g, )">上面的只能输入整数。如果需要小数正则需要改成&#xff1a;/[^\d\.]/g再…

毕业设计| STM32F103全彩FFT音乐频谱+LED年历闹钟显示

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;今天在后台看到有人想找毕业设计的点子。然后我今天刚好看到一个不错的点子&#xff0c;给大家分享看今天分享的毕设是来自点-凡自制的FTF音乐频谱制作&#xff0c;先来看展示效果&#xff1a;——视频出处&#xff1a;B站点…

VScode 开发stm32无法识别uint32_t,uint16_t,uint8_t问题

1、添加头文件#include “stdint.h”。 2、在c_cpp_properties.json文件中添加__CC_ARM即可。如下图&#xff1a;

动画讲解C语言的指针,从未如此简单

推荐阅读&#xff1a;专辑|Linux文章汇总专辑|程序人生专辑|C语言我的知识小密圈关注公众号&#xff0c;后台回复「1024」获取学习资料网盘链接。欢迎点赞&#xff0c;关注&#xff0c;转发&#xff0c;在看&#xff0c;您的每一次鼓励&#xff0c;我都将铭记于心~

SQL Activity Monitor

从实质上说, Actvity Monitor不过是SQL Server中系统View sys.sysprocesses的一种展现. SP_Who2应该也是从这里查询到的数据。下面是view sysprocesses的SELECT内容&#xff1a; SELECT spid, kpid, blocked, waittype, waittime, lastwaittype, waitresource, dbid, …

毕业这几年的嵌入式开发之路

大家好&#xff0c;我是写代码的篮球球痴今天分享一篇文章&#xff0c;这篇文章的主人公总结了他这些年来的嵌入式之路&#xff0c;希望对大家的职业规划有所帮助。在毕业即失业的年代&#xff0c;来看一位朋友是如何玩转嵌入式开发的&#xff0c;献给迷惘的你。出师不利本科毕…

修改Win10 alt+F4默认选项为关机

1、winr打开路径计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced&#xff0c;当前目录下新建DWORD(32位)文件&#xff0c;命名为“Start_PowerButtonAction”。设置值为2&#xff08;16进制&#xff09;。 2、重启电脑。altF4默认为“关…

p1968

我觉得这个评测机和我有仇,写了readgetchar都会超时这么多,最后好像是ios::sync_with_stdio(false);惹的祸... 昨天想找一些水题来写,就看到了这个模拟"水题",想了一下午都不知道怎么搞. 已知一些牛的颜色和位置,求连续相同颜色或连续两种颜色数量相同的区间右端点位…

免费!200块全志XR806开源鸿蒙开发板试用

一板难求的当下&#xff0c;如果上天突然降临一次开发板免费用的活动&#xff0c;我只想说三个字&#xff1a;手慢无&#xff01;为了让开发者小哥哥小姐姐们体验搭载安谋科技STAR-MC1处理器&#xff0c;面向IoT领域的全志XR806开发板&#xff0c;极术社区特推出2022年新年活动…

你们还留恋windows什么呢?

为什么80%的码农都做不了架构师&#xff1f;>>> 我最近看到一个报道&#xff0c;节录如下&#xff1a; --------------------------------------------- ARM全球总裁Tudor Brown 5月3日表示&#xff0c;预期2015年全球移动PC总量就会达到7.5亿台以上&#xff0c; …

MDK调试:设置断点处,代码运行的次数

https://www.cnblogs.com/ramlife/articles/14024516.html

卓老师的这些动图对电子理解真的很有用

01 串行通信在头条电子森林博客中看到一些显示电子系统中信号波形的动图&#xff0c;有助于帮助我们理解传输的机理。特转载如下。1、SPI传输▲ 图1 SPI 数据传输▲ 图1.2 SPI数据传输&#xff08;2&#xff09;▲ 图1.3 SPI时序信号2、I2C传输▲ 图1.2.1 I2C总线以及寻址方…

国内网络安全公司、社区简介

国内网络安全公司简介<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1&#xff0e;http://www.symantec.com/region/cn赛门铁克中国一家从事网络安全服务的公司&#xff0c;挺供网络安全产品下载、整体网络安全解决方案。2&…

一句话输出没有结束符的字符串

编程时往往存在这种情况&#xff1a; 函数接口传给你一个没有“\0”结尾的字符串str和他的长度str_len&#xff0c;调试的时候你需要将其打印出来。 一般人都会这么做&#xff1a; void print_str(const char* str, unsigned int str_len) { unsigned int i0; for (; i < …

动态规划:树形DP-景点中心(树的带权重心)

话说宁波市的中小学生在镇海中学参加计算机程序设计比赛&#xff0c;比赛之余&#xff0c;他们在镇海中学的各个景点参观。镇海中学共有n个景点&#xff0c;每个景点均有若干学生正在参 观。这n个景点以自然数1至n编号&#xff0c;每两个景点的编号均不同。每两个景点之间有且只…

bootscripttable前端排序无效_前端你应该知道的八条bug分享给你们

1: 为什么列表的数据不要让后端同学返回对象&#xff0c; 而应该返回数组&#xff1f;返回对象我们前端直接遍历有没问题啊&#xff0c; 可以正常显示&#xff0c;那是因为你没有遇到下面描述的情况bug现象1:「我明明把3这个key定义在了第二个位置&#xff0c; 但是每次打印出来…

干货|手把手教你自制六足仿生机器人

摘要&#xff1a;经过大一那次失败之后&#xff0c;我决定暂时停止该项目的开发&#xff0c;转而先去学习那些有关嵌入式开发的基础知识&#xff0c;等以后有能力的时候再去独立完成这个六足机器人。很幸运的是在我大学本科即将结束的时候&#xff0c;我已掌握了足够的知识来完…

STM32F4 HAL 库开发报错:Hal_StatusTypeDef is undefined的解决办法

1、直接在头文件出添加#include "stm32f4xx_hal.h"即可。