上次作业的升级版

好好好

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)是另外一回事:它有基于不同价值…

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

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

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

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

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

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

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

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

p1968

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

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

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

你们还留恋windows什么呢?

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

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

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

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

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

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

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

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

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

Comet:基于 HTTP 长连接的“服务器推”技术

http://www.ibm.com/developerworks/cn/web/wa-lo-comet/ “服务器推”技术的应用 请访问 Ajax 技术资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。 传统模式的 We…

lol最克制诺手的英雄_LOL:哪些英雄之间非常克制,不管怎么打,遇到就输了?...

大家好,我是你们的老朋友小黑君。在英雄联盟里,英雄们总有克制或者被克制的英雄,就比如“剑魔克制阿卡丽”,尤其是接下来我们要说的这几对,在对局中遇到基本上就输了!冰霜女巫克制妖姬冰霜女巫的出场率一直…

聊聊内卷之下,直博和读完硕士再读博该怎么选择?

大家好,我是写代码的篮球球痴,转发一篇考研读博的文章,希望对大家求学生涯有所帮助。大家好,我是千与千寻,在上一篇推送之中,我们讨论了,五年之内博士是否会出现内卷,阅读量相当的高…

Android 位置服务——BaiduLocation的使用

Android 位置服务——BaiduLocation的使用 原文:Android 位置服务——BaiduLocation的使用版权声明:本文为博主原创文章,欢迎转载,转载请在文章显眼处说明文章出处并给出连接。 https://blog.csdn.net/To_be_Designer/article/details/486854…

asp.net通过登录后修改个人信息_微信号终于可以修改了!快来改一个

上周,微信在安卓端开启了“修改微信号”功能的灰度测试,这也预示着这项新功能很快就能和我们见面了。果不其然,就在刚才微信正式上线了修改微信号的功能,大家期盼多年的功能终于上线了!!!安卓用…

会唱歌的路

文 | 贰沐编辑 | 贰沐 子鱼会唱歌的路?!是什么意思?是说路会自己唱歌吗?开车行驶在普通的道路上,我们能够听到“嗡嗡”的各种杂乱无章的声音,而在有些特殊的路上,我们可以听到路面在发出有节奏的…

那些年,我和发哥在恒大的日子

在广州上班那会,我们在恒大中心旁边的利通大厦上班,我和薛总每天一起上下班,那时候宿舍还有盼盼,有时候玩开心的时候,我就会跟他们说,等过了很多年后,我们要写一本说,书的名字就叫做…