课程设计报告 课程: 编译原理 学号: 姓名: 班级: 11 级嵌入式应用技术班 教师: 时间: 2014 年6 月 计算机科学与技术系 1 设计名称: 简单计算器的实现 设计内容、目的与要求: 设计内容: 计算器的功能要求如下:可以支持加(+)、减(-)、乘(*)、除(/)运算,如3+4-5*2/2;支持括号运算,如(4+5)*5/8。用户输入表达式后,转化为逆波兰式并执行计算,最后输出该表达式的结果。 设计目的: 1、对单词的构词规则有明确的定义; 2、编写的分析程序能够正确识别源程序中的语法符号; 3、计算器源程序的以.c 格式输出; 4、对于源程序中的语法错误,能够做出简单的错误处理,给出简单的错误提示, 保证顺利完成整个源程序的分析; 5、计算器能够实现加,减,乘,除,混合运算,多项式运算 设计要求: 1、将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。 2、掌握利用算符优先分析法完成中缀表达式到逆波兰式的转化。 计划与进度安排: 5 月20 日—5 月21 日:确定本次课程设计研究课题:实现简单计算器。 5 月22 日—5 月30 日:进行需求分析,分析该计算器具有哪些功能,并明确该课题的一些要求。 5 月31 日—6 月 3 日:查找相关资料和书籍,了解本课题涉及有关知识,如:编译原理的一些基本概念,逆波兰式的基本概念,以及逆波兰式的转化问题等。 6 月 4 日—6 月 8 日:概要设计,将程序的几大模块分开来设计,画出程序的流程图 6 月 8 日—6 月10 日:详 细 设计,写出代 码 并进行调 试 6 月10 日—6 月12 日:运行程序,如果能够实现本次课程设计则进行优化,如果不 能满 足 要求则继 续 改 进。 6 月13 日—6 月15 日:对本次课程设计进行分析总 结。 2 设计过程、步骤(可加页): 一、需求分析 1.1 总述 在日常的学习与工作过程中, 经常遇到计算表达式数值的问题, 诸如 34-(8+5*10)。如果人为地分步计算, 难免因疏漏了括号或字符而导致结果出错。表达式计算器具有计算表达式结果的功能,大大方便了学习与工作。本次开发的表达式计算器能帮我们对数据进行有效的运算,如通过四则运算能实现对输入数据的加减乘除。本课程设计结合了编译原理中的利用算符优先分析法完成中缀表达式到逆波兰式的转化,并计算输入表达式的结果。 1.2 编写表达式计算器的意义 我们每...