VC++实现树形结构表达式计算器源代码

需积分: 9 6 下载量 137 浏览量 更新于2024-07-28 收藏 77KB DOC 举报
该VC++计算器源代码是由吉林大学计算机科学与技术学院的罗泗勇在2006年编写,于2008年1月进行更新。它是一款基于Microsoft Visual C++ 6.0环境下的程序,主要功能是处理并计算数学表达式的值。该程序采用了树形数据结构来解析表达式,按照运算符的优先级进行计算。 设计的核心在于表达式的解析,每个操作符(如加、减、乘、除)以及特定的数学函数(如sin、cos、tan、log、ln等)都被视为一个节点。程序中定义了不同的优先级规则,其中函数的优先级最高(4),括号次之(3),然后是乘除(2),最后是加减(1)。这有助于确保在遇到多个运算符时,按照正确的顺序执行计算。 Fun类负责处理数学函数,包括接收函数名、参数以及可能的左右值。它包含成员变量如函数类型、参数值以及静态成员变量FunNum用于存储内置函数的数量。字符串FUN数组列出了支持的函数名,如阶乘(!)、三角函数、对数函数、组合数(C)和排列数(A)。 代码中还引入了Windows.h、iostream、fstream、string以及math.h等库,以利用C++的基本输入输出和数学运算功能。例如,使用cmath库中的pi和e常量,以及函数如sin、cos和pow等。 整个程序设计旨在实现一个用户友好的计算器,能够处理复杂的数学表达式,并确保计算结果的准确性。通过解析器和优先级规则,它能够在遇到括号、函数调用等复杂情况时正确地进行计算,从而提供一个实用的数学工具。