一 需求分析

从键盘输入一个简单的表达式,如“ S=4+6*9-1+8/5”,按回车键结束输入,则屏幕显示S=58.6,小数点保留1位。假设输入的表达式中只含个位十进制数和 “+”、“-”、“*”、“/”运算符,且同一运算符最多出现2次。

二 程序设计

2.1 设计思想

这个程序应该能正确处理数字和数学表达式的输入。我的设想是使其进一步处理最多12位十进制小数的输入,以及带有括号、四则运算算式的正确处理,并给出可以精确到小数点后五位的正确结果。

该程序应完成工作:

  • 公式的输入,包括处理数字输入、符号输入,以及正确处理输入公式的句法

  • 公式的计算。其中包括正确处理各种符号运算的优先级和结合性、中间数的临时保存、小数的正确处理等

  • 结果的正确显示

主程序的大致框图如下:

2.2 PARSEEXP

逐字符进行读取,并根据读取到的字符判断算式中出现的token属于什么类型。若是数字,则调用INPUTDECIMAL将其处理成双精度浮点数;若是运算符,则对应处理(见下)。

对于算式的处理和运算,采用了调度场算法(Shunting yard algorithm)。采用两个堆栈,一个放数字,一个放运算符。当算法执行到将运算符放置到数字上的步骤时,立即进行运算。这样,分析完算式后,数字栈顶便是结果。

点击此处下载文档和源码

基于汇编语言实现的带小数的四则运算相关推荐

  1. 利用栈实现四则运算,带负数,带括号,带小数

    这利用栈实现四则运算,带负数,带括号,带小数,自己写的有问题大家纠正. #include <stdio.h> #include <stdlib.h> #include < ...

  2. [汇编语言计算机原理] 带开机音乐,速度、进度和行驶方向显示的出租出计费系统设计

    写在前面的话: 这是计算机原理实验的大作业. 详细报告在资源"(汇编语言程序设计)带开机音乐,速度.进度和行驶方向显示的出租出计费系统设计"中,可自己下载. 资源中的源代码,我把音 ...

  3. python 把带小数的浮点型字符串转换为整数的解决方案

    python 把带小数的浮点型字符串转换为整数的解决方案 参考文章: (1)python 把带小数的浮点型字符串转换为整数的解决方案 (2)https://www.cnblogs.com/mlgjb/ ...

  4. Java除法结果带小数、进一法的实现 Java问题通用解决代码

    http://blog.csdn.net/windone0109/article/details/5355379进一法: 即省略的位上只要大于零都要进一位 :  四舍五入法: 即省略的位上小于五都要舍 ...

  5. python怎么创建列表_用Python将一个列表分割成小列表的实例讲解 Python 如何创建一个带小数的列表...

    python里有一个列表,列表里有几个小列表,小列表#冒泡排序:scoreList = [['a',98],['c',45],['b',70],['d',85],['h',85],['f',92],[ ...

  6. C语言算小数加减,C语言带小数加减乘除.doc

    C语言带小数加减乘除 /*Desgined by doBell-ConG*/ /*Function:simply add, subtract, multiply and divide*/ #inclu ...

  7. Java除法结果带小数、进一法的实现(java)

    Java除法结果带小数.进一法的实现(java) Java除法结果带小数.进一法的实现(java) 进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍去,但省略的位 ...

  8. Java除法结果带小数、进一法的实现

    进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍去,但省略的位上满五都要进一位 : 还有一种 去尾法: 即省略的位上不管是否满五都要舍去 : 1.除法带小数 例如 ...

  9. 基于Matlab实现微波带低通高通带通滤波器设计

    基于Matlab实现微波带低通高通带通滤波器设计 在微波通信系统中,滤波器作为一个重要的模块被广泛使用.本文将介绍如何使用Matlab进行微波带通滤波器设计,并提供相应的源代码. 理论基础 微波滤波器 ...

最新文章

  1. 索尼大法要专门开始搞AI了,成立Sony AI,发力游戏、影像和美食
  2. C/C++结构体字节对齐详解
  3. C++知识点33——使用C++标准库(无序关联容器unordered_(multi)map,unordered_(multi)set)
  4. Numpy自定义dtype的一个使用误区
  5. 拖动改变Table的列宽度
  6. GNOME Menu File Browser-快速导航用户目次
  7. 【Tools】git操作总结
  8. OpenCV中6种访问Mat元素的方法
  9. Spring如何处理线程并发
  10. 线上问题随笔记录数据库连接池问题
  11. python空列表添加_Python列表的简单操作
  12. 【学习笔记】福州大学网络课程 网络空间安全概论(1,4)
  13. 相机内存卡照片删除怎么恢复
  14. png图片损坏打不开如何修复?
  15. windows 根据端口杀进程 部署jar包 批处理脚本
  16. 相机畸变矫正原理及代码实现
  17. 如何直接修改exe文件
  18. C# .NET CORE在linux下读取图片加载到文档方法 Gdip libgdiplus
  19. 在VS2017中使用Xlslib对Excel进行操作
  20. Ubuntu 16.04 下载、编译 友善之臂NanoPC-T2的Android5.1.1源码

热门文章

  1. 计算机科学论文收录,历年论文收录总数在学科(计算机科学及硬件)中专业排名.PDF...
  2. win7电脑连不上网怎么办
  3. 我的Tensorflow学习之路
  4. 云豹源码php mysql_如何进行直播搭建,云豹直播源码搭建
  5. 【老王的脑科学谬论】从“遗忘”这件事聊一聊大分子编码说和老王谬论
  6. Linux more 命令使用介绍
  7. 读书笔记 - 说话之道 (蔡康永) - 3(完)
  8. 基于RHEL8的Linux基础入门学习总结笔记(附示例代码)
  9. G - Game Night (前缀和 K-Kingpin Escape (给树加边变成边双连通图
  10. 5v继电器模块实物接线_高手教你玩传感器系列之继电器的使用