基于图形的c程序模拟器的设计与实现——语法分析与运行功能设计与实现毕业论文(编辑修改稿)内容摘要:
.......................................................................19 运行菜单功能模块的设计 ........................................................................................................20 抽象语法树 [3] .............................................................................................................................20 错误报告 [3] .................................................................................................................................21 词法分析 ....................................................................................................................................21 图形化输出 ................................................................................................................................31第五章 系统测试及运行结果 ....................................................................................................33 系统主界面 ................................................................................................................................33 文件菜单功能模块 ....................................................................................................................34 编辑菜单功能模块 ....................................................................................................................34 运行菜单功能模块 ....................................................................................................................36总结 ..................................................................................................................................................38参考文献 ..........................................................................................................................................39致谢 ..................................................................................................................................................411基 于 图 形 的 C++程 序 模 拟 器 的 设 计 与 实 现——语 法 分 析 与 运 行 功 能 设 计 与 实 现工学院 20xx 级计算机与技术专业 黎帅师摘要本文主要介绍了一个基于图形化程序模拟器的语法分析及运行功能设计及实现过程,整个系统的优点是使程序运行过程图形化,能使使用者更加清楚C++程序的执行过程。 整个系统采用的平台基于 Windows 系统下的 GDI+库和 CCrystal 库,采用MVC 框架,使用 VC++ 进行开发,利用 spirit 框架生成抽象语法树,其中GDI+用来图形化演示,CCrystal 用来负责优化界面。 系统能够打开并编辑保存在磁盘上的文件,最后通过运行功能基于图形化的演示,用户可以对变量值及栈内容的变化情况有很好的了解。 关键字:程 序 模 拟 器 ; 语 法 分 析 ; GDI+2Abstract This paper mainly introduces parsing analysis, run functional design and realize process on the basis of the graphical program simulator, and the merit of the whole system is to make the program39。 s running procedure into a graphical procedure so That the users can take a better understanding of running process of the C++ program.The whole system bases on the store of the GDI+ and CCrystal of the Windows system, adopts the frame of the MVC, develops by the usage of VC++, and es to be abstract parsing tree after making use of the frame of Spirit, among which GDI is used for graphical demonstration and CCrystal for optimizing the interface. The system can open and save the documents of the disks and the users can make a good understanding of the changeable conditions of the variable value and the content of the stack by running the function which bases on the graphical demonstration.Keyword: program simulator。 parsing analysis。 GDI+3第一章 前 言 课题研究背景现有程序模拟器的发展方向主要是针对一般程序的运行,用户无法了解内部数据的处理过程及整个系统的组成,对整个程序的运行过程不能有一个很好交互过程,在现有程序模拟器的基础上来对新程序模拟器的研发,基于 C++程序模拟器是一种可以对数据透明化,并且可以使用户很好了解内部数据处理过程的一种程序模拟器。 现有程序模拟器的状况程序模拟器的功能主要是对程序进行模拟测试,现有的程序模拟器,诸如 java 程序模拟器,搜索引擎程序模拟器等主要功能不具备对程序的图形化模拟执行等功能,这些程序模拟器无法使程序的执行情况展现出来,包括程序中变量及栈的使用情况,只能通过其它的方法,诸如调试的方法来对变量进行查看和显示。 此外,栈的内容也不能对用户透明化,使用户不能栈中的内容进行初步的了解。 课题研究的主要价值 本程序模拟器的主要特点是数据对用户透明化,能够使用户实时了解程序内部变量的处理过程,主要体现在栈是怎么处理变量及函数的,在现代的教学过程当中,如果使用此程序模拟器进行教学将会直到意想不到的效果,它主要是以 C++语言编写的源程序来实现整个模拟过程,在程序的模拟过程当中,用户可以很好地了解到变量值的变化及进出栈的过程,如果加上编译器的话,该系统不仅仅可用于教学,而且可以当做现有的编辑程序工具使用。 本论文的主要目的及内容本论文的主要目的是:通过分析此次课题,在现有的 GDI+技术和常用的递归下降程序算法基础上,利用 Visual C++这个开发工具以面向对象的4开发模式设计出一个具有图形化显示功能的程序模拟器,最后在此形式上,可以使其它开发者进一步对系统进行完善。 本论文的主要内容:1. 对 GDI+技术进行相应的描述和解释,为图形化显示输出作基础。 2. 程序中所用到的递归下降算法的相应描述,程序在进行语法分析过程中对 TOKEN 串的识别,跳过空白字符的相应处理方法,在运行程序时,程序运用 STL 中的栈和向量处理数据,确定函数 main 的起始位置。 3. GDI+在项目中的应用 DrawString(),DrawLine(),DrawRectangle(),Graphics 类,Pen 类等。 4. MFC 的主要类介绍及 MVC 框架介绍。 5第二章 相关技术简介 系统使用到的相关技术整个系统中所用的技术主要有 C++中的 STL,VC++中的 MFC,以及GDI+和 CCrystal。 其中 C++中的 STL 主要用到了 stack 和 vector 等类及其相应的算法。 MFC 用到的主要是 CMAP 类、CRichEditCtrl 类、CControlBar 及多文档类的操作,GDI+中用到的主要是 DrawString 及DrawRectangle 等方法,CCrystal 用到了 CCrystalTextView 等类。 在实现语法分析的阶段用到了程序的递归下降方法,SPIRIT 框架,另外系统的外层框架用到了 MVC 框架,用户的接口可以很容易的改变,如果程序中的数据发生了变化,在右边的栈中可以实时的反应出来。 GDI+技术介绍 [1]GDI+是 Windows XP 中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过 C++类实现的应用程序编程接口。 顾名思义,GDI+是以前版本 GDI 的继承者,出于兼容性考虑,Windows XP 仍然支持以前版本的 GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用 GDI+,因为 GDI+对以前的 Windows 版本中 GDI进行了优化,并添加了许多新的功能。 作为图形设备接口的 GDI+使得应用程序开发人员在输出屏幕和打印机信息的时候无需考虑具体显示设备的细节,他们只需调用 GDI+库输出的类的一些方法即可完成图形操作,真正的绘图工作由这些方法交给特定的设备驱动程序来完成,GDI+设备无关的应用程序变得非常容易。 +新增功能:(Gradient Brushes) GDI+允许用户创建一个沿路径或直线渐变的画刷,来填充外形(shapes),路径(paths),区域(regions),渐变画刷同样也可以画直线、曲线、路径,当你用一个线形画刷填充一个外形(shapes) 时,颜色就能够沿外形逐渐变化。 (Cardinal Splines) 6 GDI+支持基数样条函数,而 GDI 不支持。 基数样条是一组单个曲线按照一定的顺序连接而成的一条较大曲线。 样条由一系列点指定,并通过每一个指定的点。 由于基数样条平滑地穿过组中的每一个点(不出现尖角) ,因而它比用直线连接创建的路径更精确。 下面是分别使用两种方法创建的图形,一个使用基数样条,一个使用直线。 (Persistent Path Objects ) 在 GDI 中,路径属于设备描述表(DC) ,画完后路径就会被破坏。 在GDI+中,绘图工作由 Graphics 对象来完成,你可以创建几个与 Graphics 分开的路径对象,绘图操作时路径对象不被破环,这样你就可以多次使用同一个路径对象画路径了。 (Transformations & Matrix Object) GDI+提供了矩阵对象,一个非常强大的工具,使得编写图形的旋转、平移、缩放代码变得非常容易。 一个矩阵对象总是和一个图形变换对相联系起来,比方说,路径对象(PATH)有一个 Transform 方法,它的一个参数能够接受矩阵对象的地址,每次路径绘制时,它能够根据变换矩阵绘制。 下面的图形是一个图形变换前后的例子,变换按照先缩放后旋转完成。 (Scalable Regions) GDI+ 在区域(regions)方面对 GDI 进行了改进,在 GDI 中,Regions存储在设备坐标中,对 Regions 唯一可进行图形变换的操作就是对区域进行平移。 而 GDI+用世界坐标存储区域 (Regions),允许对区域进行任何图形变换(譬如如图所示的缩放) ,图形变换以变换矩阵存储,下面例子是一个区域变换前后的例子(缩放、旋转、平移) Blending(混合)。基于图形的c程序模拟器的设计与实现——语法分析与运行功能设计与实现毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。