课堂限时训练-简易计算器·mini dc



实验题目

采用后缀表达式法,设计一个建议计算器,实现+、-、*、/四种运算。

代码实现

实验分析

  • 首先,分析一下后缀表达式的算法原理:后缀表达式的运算符位于与其相关的操作数之后;中缀和前缀同理。
  • 举例说明:
(3 + 4) × 5 - 6 就是中缀表达式
— × + 3 4 5 6 前缀表达式
3 4 + 5 × 6 - 后缀表达式
  • 本实验中采用栈实现这一取数顺序——先进后出、后进先出。

    • 具体为:从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 op 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。
    • 例如后缀表达式“3 4 + 5 × 6 -”:
(1) 从左至右扫描,将3和4压入堆栈;
(2) 遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素,注意与前缀表达式做比较),计算出3+4的值,得7,再将7入栈;
(3) 将5入栈;
(4) 接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈;
(5) 将6入栈;
(6) 最后是-运算符,计算出35-6的值,即29,由此得出最终结果。

学到了什么

首先,学会了前缀、中缀、后缀表达式的原理;然后通过栈操作,实现后缀表达式法的四则运算。

感悟与体会

这次实验涉及到栈,因为是“先进后出、后进先出”,完美的符合了后缀表达式法。因此通过操作数进栈、出栈的原理,实现后缀表达式中的取数顺序。

另外,这次实践接触到一些以前不曾知道的知识,比如前、后缀表达式的原理。也从中看出自己的不足,知识面浅,基础知识不扎实等。

因此,在今后的学习中,一定要更加努力,争取逐渐上手,并慢慢熟练。

课堂限时训练-简易计算器·mini dc的更多相关文章

  1. 《Java 程序设计》课堂实践项目-简易计算器

    <Java 程序设计>课堂实践项目简易计算器 课后学习总结 目录 改变 简易计算器实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有 ...

  2. C语言实现简易计算器(可作加减乘除)

    C语言实现简易计算器(加减乘除) 计算器作为课设项目,已完成答辩,先将代码和思路(注释中)上传一篇博客 已增添.修改.整理至无错且可正常运行 虽使用了栈,但初学者可在初步了解栈和结构语法后理解代码 # ...

  3. mini dc与简易计算器 20165235

    mini dc 任务内容 本次mini dc任务就是通过补充代码来实现整型数据的后缀表达式计算 相关知识 通过利用堆栈这一先进后出的数据结构来实现后缀表达式的计算.通过Stack<Integer ...

  4. 《Java 程序设计》课堂实践项目-mini dc

    <Java 程序设计>课堂实践项目-后缀表达式 课后学习总结 目录 改变 mini dc实验要求 后缀表达式介绍 课堂实践成果 课后思考 改变 修改了博客整体布局,改变了之前贴个截图粘个代 ...

  5. 20155226 mini DC 课堂测试补交

    由于电脑突然出了点问题,我没有完成mini DC这个测试,现将测试内容及结果补交 题目如下 提交测试截图和码云练习项目链接,实现Linux下dc的功能,计算后缀表达式的值 代码如下 MyDC.clas ...

  6. 自制c#简易计算器

    这是一个课堂作业,我觉得作为一个简易的计算器不需要态度复杂的东西,可能还有一些bug,有空再慢慢加强. using System;using System.Collections.Generic;us ...

  7. 剖析简易计算器带你入门微信小程序开发

    写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...

  8. PHP学习笔记02——简易计算器

    <!DOCTYPE html> <html> <head> <title>PHP简易计算器</title> </head> &l ...

  9. JavaScript之简易计算器

    <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...

随机推荐

  1. 洛谷2148(SDOI2009) E&D

    题目:https://www.luogu.org/problemnew/show/P2148 SG函数+找规律. 普通地用SG函数做. 每两堆是一个独立问题.因为虽然有可能一个人在同一组里连续操作2次 ...

  2. JProfiler 8(一个很好的java性能监控工具) 下载和注册码

    windows x64 zip下载地址:http://download-aws.ej-technologies.com/jprofiler/jprofiler_windows-x64_8_0_1.zi ...

  3. inline修饰虚函数的问题

    虚函数是否可以内联? 一般来说,inline是编译时的行为,虚函数是在程序执行时的行为,因此编译器一般会拒绝对虚函数进行内联!

  4. Qemu创建KVM虚拟机内存初始化流程

    转载请注明:[转载自博客xelatex KVM],并附本文链接.谢谢. [注]文章中采用的版本: Linux-3.11,https://www.kernel.org/pub/linux/kernel/ ...

  5. mysql错误:Can’t create TCP/IP socket (10106) 解决方法

    错误描述 “mysql错误:Can’t create TCP/IP socket (10106)”,目测是socket端口被占用的原因,然后在打开tomcat,报的错误中也包含了“socket”,再一 ...

  6. Centos编译Redis4.0.9源码过程记录

    mkdir /home/redis cd /home/redis 下载源码 wget https://codeload.github.com/antirez/redis/tar/4.0.9 解压源码包 ...

  7. Solr聚合查询

    1  分组查询 概述:Solr常用的分组查询有两种,Facet分组和Group分组,分别以下列出这两种查询:   1.1     Facet分组 solr种以导航为目的的查询结果成为facet,在用户 ...

  8. Solr分组聚合查询之Group

    摘要: Solr对结果的分组处理除了facet还可以使用group.Solr的group是根据某一字段对结果分组,将每一组内满足查询的结果按顺序返回. Group对比Facet Group和Facet ...

  9. oracle9i-11.2安装包及补丁包下载链接

    ORACLE 9i Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XPhtt ...

  10. POI 3.17

    发现与之前使用的有些不同 参考:https://www.cnblogs.com/h--d/p/6735110.html