【vc++精品源码栏目提醒】:网学会员vc++精品源码为您提供基于VC开发的加减乘除计算器系统设计(含全套源代码)--毕业设计 - 毕业设计参考,解决您在基于VC开发的加减乘除计算器系统设计(含全套源代码)--毕业设计 - 毕业设计学习中工作中的难题,参考学习。
目录1. 概述 1.1 设计题目 1.2 设计目的-----------------------------------------------------02 1.3 设计内容-----------------------------------------------------02 1.4 设计时间-----------------------------------------------------022. 设计环境与工具---------------------------------------------023. 设计原则 3.1 递归下降法的描述 3.1.1 实现思想-------------------------------------------------02 3.1.2 算法的特点--------------------------------------------------03 3.1.3 构造递归下降语法分析程序-----------------------------03 3.2 逆波兰式的描述 3.2.1 逆波兰式的定义--------------------------------------------03 3.2.2 产生逆波兰式的前提:中缀算术表达式-------------044. 设计概要 4.1 数据结构的说明-----------------------------------------------04 4.2 变量的说明-----------------------------------------------------04 4.3 函数的说明-----------------------------------------------------05 4.4 详细的算法描述及程序框图 4.4.1 主函数的说明和框图------------------------------------05 4.4.2 子函数的说明及框图-----------------------------------075. 源程序------------------------------------------------------------096. 运行结果--------------------------------------------------------157. 设计评价及体会 7.1
设计心得--------------------------------------------------------18 7.2 经验教训--------------------------------------------------------198. 参考文献--------------------------------------------------------19能直接运行,并能显示正确的结果,本文最 后有运行截图。
如有需要,加我 qq: 1985639755 算术表达式的语法分析及 语义分析程序设计1 概述1.1 设计题目 用递归下降法实现算术表达式的语法分析及语义分析程序设计,中间代码选用逆波兰式。
1.2 设计目的 通过设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。
1.3 设计内容 (1)选择递归下降法完成算术表达式的语法分析及语义分析程序设计,中间代码选用逆波兰式。
(2)写出符合分析方法要求的文法,给出分析方法的思想。
(3)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序1.4 设计时间 20 周一周2.设计环境与工具 Microsoft Visual C 6.03.设计原则3.1 递归下降法的描述3.1.1 实现思想 它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,其中终极符产生匹配命令,而非终极符则产生过程调用命令。
因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。
其中子
程序的结构与产生式结构几乎是一致的。
文法中每个非终结符对应一个递归过程子程序,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按 LL1形式可唯一地确定选择某个候选式进行推导。
3.1.2 算法的特点 递归下降法是语法分析中最易懂的一种方法。
递归下降法要满足的条件:假设 A 的全部产生式为 Aα1α2……αn ,则必须满足如下条件才能保证可以唯一的选择合适的产生式 predictAαi∩predictAαjΦ当 i≠j.3.1.3 构造递归下降语法分析程序 采用了递归子程序方法进行语法分析对文法中的每个非终极符号按其产生式结构产生相应的语法分析子程序完成相应的识别任务。
其中终结符产生匹配命令,非终结符则产生调用命令。
每次进入子程序之前都预先读入一个单词。
因为使用了递归下降方法所以程序结构和层次清晰明了易于手工实现且时空效率较高。
实际的语法分析
工作从调用总程序的分析子程序开始,根据产生式进行递归调用各个分析子程序。
3.2 逆波兰式的描述3.2.1 逆波兰式的定义 将运算对象写在前面,而把运算符号写在后面。
用这种表示法表示的表 达式也称做后缀式。
逆波兰式的特点在于运算对象顺序不变,运算符号位置 反映运算顺序。
采用逆波兰式可以很好的表示简单算术表达式,其优点在于 易于
计算机处理表达式。
3.2.2 产生逆波兰式的前提:中缀算术表达式4.设计概要4.1 数据结构的说明static char exprEXP_LEN //算术表达式输入字符缓冲区4.2 变量的说明define EXP_LEN 100 //定义输入字符缓冲区的长度/------------出错代码的宏定义--------------/defi