首页 > 编程语言 >C++/MFC 算术表达式求值

C++/MFC 算术表达式求值

时间:2022-12-06 00:55:14浏览次数:59  
标签:MFC 算术 C++ 运算符 求值 表达式

C++/MFC 算术表达式求值

综合实验 1 算术表达式求值
课程名称:
《数据结构与算法(C++描述)》

实验名称:
综合实验 1 算术表达式求值

实验环境:
Visual C++ / Dev-C++等支持C++的集成开发环境。

问题描述和基本要求:

1、 从键盘上输入中缀算术表达式,包括括号,计算出表达式的值;
2、 程序能对所输入的表达式作简单的判断,如表达式有错,能给出适当的提示;
3、 能处理单目运算符:+、-;
4、 撰写实验报告。

分析与提示:
1、各种运算符优先级
运算符
优先级
1 ´=´
2 ´(´、´) ´
3 ´+´、´-´
4 ´*´、´/´、´%´
5 ´^´

2、对于中缀表达式,一般运算规则如下:
(1)先乘方,再乘除,最后加减;
(2)同级运算从左算到右;
(3)先括号内,再括号外。

3、上面讨论的+、-为双目运算符,如为单目运算符,编程实现时,可在前面加上0而转化为双目运算符。
4、测试时,应注意尽量覆盖算法的各种情况

输入表达式:

-2*(3+5)+2^3/4=
-14
是否继续(y,n)? y 
 
输入表达式:
2^4/8-(+2+8)%3=
1
是否继续(y,n)?
输入表达式:
2 3 5+6=
提示:表达式出错

5、结语:表达式求值是编译系统中要解决的基本问题,是栈的典型应用,各位通过上机具体
实现,才能提高对软件甚至系统软件的领悟;按同样的思路,在学编译原理时,最好自己开
发一个简单的编译器,在学操作系统原理时,实现一个简化版的操作系统。

源码传送门

传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111

标签:MFC,算术,C++,运算符,求值,表达式
From: https://www.cnblogs.com/codewriter/p/16954037.html

相关文章

  • C++学习---cstdbool和cstddef源码学习分析
    引言cstdbool是C++对stdbool.h头文件的封装,里面定义了与bool变量相关的宏;cstddef是C++对stddef.h头文件的封装,里面定义一些特殊类型(如size_t),有用的宏函数(offsetof)。平时我们......
  • C++
    通讯录管理系统1、系统需求通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人:向通讯录中......
  • c++中类型转换
    1.c的类型转换inta=1;floatb=float(a);2.静态类型转换static_cast<目标类型>(标识符)int*p;void*q;p=static_cast<int*>(q)3.reinterpret_cast<目标类型>......
  • JNI__贯穿java层与c++层的返回值
    返回值类型的写法和位置不太一样,模仿文件中其他位置的写法即可,如:frameworks/base/services/core/java/com/android/server/pm/Installer.java/**@hide*/publicbooleanc......
  • Vim 配置 C/C++使用组合快捷键格式化文件
    安装vim插件管理工具#vim插件管理-插件https://github.com/VundleVim/Vundle.vimgitclonehttps://github.com/VundleVim/Vundle.vim.git~/.vim/bundle/Vundle.vim......
  • [C++11与并发编程]7、本地变量线程安全
    本地变量线程安全layout:posttitle:本地变量线程安全categories:cpp_concurrencydescription:C++并发编程简介keywords:c++,并发编程,本地变量线程安全​本地变量......
  • [C++11与并发编程]5、使用条件变量和互斥锁实现信号量
    使用条件变量和互斥锁实现信号量layout:posttitle:使用条件变量和互斥锁实现信号量categories:cpp_concurrencydescription:C++并发编程简介keywords:c++,并发编......
  • [C++11与并发编程]条件变量在生产者-消费者模型中的使用
    条件变量在生产者-消费者模型中的使用layout:posttitle:条件变量在生产者-消费者模型中的陷阱categories:cpp_concurrencydescription:C++并发编程简介keywords:c+......
  • C++读写二进制文件
    方法一:#include<stdio.h>#include<stdlib.h>#include<fstream>#include<string>//size_treadBinaryFile(constchar*filename,unsignedchar*&data){......
  • C++接口工程实践
    https://zhuanlan.zhihu.com/p/213902091还没有学习完简介:程序开发的时候经常会使用到接口。众所周知,C++语言层面并没有接口的概念,但并不意味着C++不能实现接口的功能。......