02 2015 档案
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 概述 表达式计算器的类基本已经设计完成了,由于在程序运行的时候总会有这样那样的异常,例如:a +2, a没有初始化,对于异常的管理一般而言是需要自定义异常类。这个自定义异常类也是在继承了系统已经定义好的exception类,然后再重新定义内容。 异常的种类 语法异常---->Synt...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 概述 把符号表和变量表中的内容保存到一个文件中,通过IO文件流,来把符号表和变量表存储到文件中。在这之前需要弄明白什么是序列化和反序列化 对象的序列化 序列化:把对象转换为字节序列的过程 反序列化:把字节序列恢复为对象的过程 我们要把SymbolTable类的对象(符号表)和Sto...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 概述 有了构建语法的类,存储符号的类,现在就可以对表达式进行扫描,解析了。扫描可以抽象出一个Scanner类来完成这一个功能,而解析可以抽象出一个Parser类来完成这一个功能。这两个类存在一定的关系,扫描与解析的互动是这样子的:扫描到一个标识符,然后解析它是什么标识符。由于该表达式计算器...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 符号表,函数表,变量存储表 表达式计算器,需要支持变量和函数,而变量和函数都是些符号,因此设置一个SymbolTable类来存储这些符号。符号有两种,一种是变量,一种是函数,故在设置一个Storage类存储变量中的值,设置一个FunctionTable类来存储函数。由于这三中类存在着联系,...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator我们的最终目的是计算出表达式中的值,因此就需要定义一个抽象类用于计算表达式的值,该抽象类定义为:Node下面所有的类图不使用UML建模语言画的,是通过visual studio自动生成的类关系...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 基于对象编程与面向对象编程 我们的最终目的是用C++设计一个面向对象的表达式计算器,所以非常有必要弄清楚,什么是基于对象编程和面向对象的编程。而要弄清楚这一点,又要先弄明白什么是值语言,什么是对象语义 值语义:对象的拷贝与原对象无关,拷贝后与原对象脱离关系,互不影响。这种拷贝叫深拷...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 巴科斯范式(BNF) 1.在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。 2.在双引号外的字(有可能有下划线)代表着语法部分。 3.尖括号( )内包含的为必选项。 4.方括号( [ ] )内包含的为可选项。 5.大括号( { } )内包含的为...
阅读全文
摘要:计算器的github下载地址:https://github.com/ljian1992/calculator 面向对象的表达式计算器的功能 1.能够计算普通表达式 2.支持变量 3.支持函数 4.支持保存变量和函数
阅读全文
浙公网安备 33010602011771号