如何做一个 C++ 下逻辑公式计算器--尾声
摘要:这个例子由于是算法题。所以注释我也没法加得太多。关于代码的清晰度,我得道歉。因为原始项目里对计算后则表达式的类的命名有误。而我也没时间更改。所以只是在把代码发上来时临时改了一下。有的地方显得不太谐调。还请大家凑合着看一下。主要是这个 Demo 能告诉大家写表达式计算相关的题的方法。那就是后则表达式为核心,定义好运算符和优先级表。不管是用面向对象的方法(如职责链)还是面向对过程的方法(如本题),这都...
阅读全文
如何做一个 C++ 下逻辑公式计算器--Computer
摘要:还剩下最后一个计算后则表达式的类。如果前面的类看明白了。那这个类的实现就是水到渠成了。它每次计算时根据对变量不同的真值指派而计算结果。下面给出接口: // omputer.h: interface for the Computer class.////////////////////////////////////////////////////////////////////////#if !d...
阅读全文
如何做一个 C++ 下逻辑公式计算器--BacExpGenerator
摘要:现在讲后则表达式生成器。后则表达式能将普通表达式转换成顺序执行的表达式。例如 a*(b+c) 转换成后则表达式就是 bc+a*。意思为先做 b, c 相加,再把结果和 a 相乘。这个项目中后则表达式所用的操作符从操作符表里取出。原表达式中不是操作符的字符即为算子(变量)。此类的接口为: #if !defined(AFX_BECEXPPARSER_H__EE496CA5_120F_4478_AFE0...
阅读全文
如何做一个 C++ 下逻辑公式计算器--TrueValTableGenerator
摘要:TrueValTableGenerator 意思就是真值表生成器。它的功能表示如下:由 InputParser 知道,有三个变量,分别为 a, b, c。那么对应的直值表为 a b ...
阅读全文
如何做一个 C++ 下逻辑公式计算器--InputParser
摘要:就像前面说过的,InputParser 就是用来分析原始用户输入的公式字符串,检查出哪些是变量。下面列出它的头文件接口。(InputParser.h) #if !defined(AFX_INPUTPARSER_H__EB32D411_1F82_4EB3_A482_12E90D8F02F5__INCLUDED_)#define AFX_INPUTPARSER_H__EB32D411_1F82_4EB...
阅读全文
如何做一个 C++ 下逻辑公式计算器--总介
摘要:离散数学下有逻辑公式的计算。比如 a 与 b 或 c。表示为:a&b|c此程序的操作符定义如下: & -- 与 | -- 或 # -- 如果,则 $ -- 当且仅当 ! -- 非 ( -- 左括号 ) -- 右括号这个程序只定义了上面的这些操作符。但是你可以在理解了这个程序后自己非常简单地添加新的运算符。并且把程序改写成依靠配置文件的运算器。程序从命令行读入一个原始公式字符串。由 InputP...
阅读全文