本科毕业论文---基于图形的c++程序模拟器设计与实现语法分析与运行功能设计与实现

上传人:沈*** 文档编号:218375883 上传时间:2023-06-19 格式:DOC 页数:55 大小:1.77MB
收藏 版权申诉 举报 下载
本科毕业论文---基于图形的c++程序模拟器设计与实现语法分析与运行功能设计与实现_第1页
第1页 / 共55页
本科毕业论文---基于图形的c++程序模拟器设计与实现语法分析与运行功能设计与实现_第2页
第2页 / 共55页
本科毕业论文---基于图形的c++程序模拟器设计与实现语法分析与运行功能设计与实现_第3页
第3页 / 共55页
资源描述:

《本科毕业论文---基于图形的c++程序模拟器设计与实现语法分析与运行功能设计与实现》由会员分享,可在线阅读,更多相关《本科毕业论文---基于图形的c++程序模拟器设计与实现语法分析与运行功能设计与实现(55页珍藏版)》请在装配图网上搜索。

1、 学科分类号 0801 本 科 毕 业 设 计 题目(中文): 基于图形的C+程序模拟器的设计与实现 语法分析与运行功能设计与实现 (英文):A Graphic Procedure Simulator Based On C+ Devise Parser Analyze and Running Function Devise 姓 名 黎帅师 学 号 2004180213 院 (系) 工学院电子系 专业、年级 04计算机科学与技术 指导教师 钟坚成助教 二八年 六 月湖南师范大学本科毕业设计诚信声明本人郑重声明:所呈交的本科毕业设计,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存

2、在知识产权争议,除设计中已经注明引用的内容外,本设计不含任何其他个人或集体已经发表或撰写过的作品成果。对本设计的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 本科毕业设计作者签名: 二 八 年 六 月 十二 日湖南师范大学本科毕业设计任务书 毕业设计题目基于图形的C+程序模拟器的设计与实现语法分析与运行功能设计与实现作 者 姓 名黎帅师所属院、专业、年级 工学院 计算机科学与技术专业 2004 级指导教师姓名、职称钟坚成 助教预计字数12000开题日期2008311选题的目的和意义.程序模拟器的功能主要是对程序进行模拟测试,我们以前看到过程序

3、模拟器,如Masm等,可以看到这些程序模拟器的功能强大,此系统可以完成给定程序的调试等功能,促进新系统的开发。.与网络上的程序模拟器相比,本系统的功能可能完成不了编译等功能,主要原因是编译器这部分消耗时间太多,可能无法完成此部分功能,通过本系统,再在此系统上加上编译器的功能就可以算是一个完整的编程平台了。通过此系统的设计,掌握面向对象的基本设计和实现方法,掌握+的基本使用方法,掌握+中的菜单,工具栏,多文档等方面的知识,掌握软件工程中的基本测试方法。主要研究内容:本程序模拟器主要用来对指定的程序的一般执行过程进行模拟,和其它程序模拟器一样该程序模拟器主要包括几个基本的功能:单步执行,设置断点,

4、语法检查,运行等功能,模拟的过程中要出现图形化演示的效果,主要是分析堆栈中的内容,包括变量和函数的调用。整个系统包括以下六大部分功能:1.文件菜单功能文件菜单功能主要包括以下功能:打开,新建,保存,关闭,退出。2.编辑菜单功能编辑菜单主要包括以下功能:撤消,重复,复制,剪切,粘贴3.调试菜单功能 调试菜单主要包括如下功能:调试,停止执行,切换断点,下一步,单步进入4. 运行菜单功能运行菜单主要包括:语法检查和运行两大功能。5. 查看菜单功能查看菜单包括查看栈和变量两大功能。6. 帮助菜单功能帮助菜单主要有两大功能:关于本程序和模拟器的帮助应达到的技术指标或要求:整个模拟器在执行模拟过程中可以进

5、行图形化演示效果,所打开或新建的程序只能是C+类型的。主要设计方法或技术路线:()开发环境为+.,图形化显示需用+来实现。()负责开发文件,编辑,运行菜单功能的开发人员对+中的菜单,工具栏,多文档等方面的知识要有一定的了解,其次,在这个基础上还需有编译原理方面的知识,主要是语法分析和词法分析,语法分析采用递归下降的方法来处理。采用+中的封装技术使整个系统具有严格的保密性,此外还需考虑到系统的扩展性,这就属于采用接口时所要考虑的问题了。(3)查看菜单中的栈要用到MFC的标准模板库的栈容器(4)可能要在MFC中设置一二个全局变量, 可以定义在App类中,然后程序在任何地方都可以使用函数得到此App

6、类, 也可以声明和定义在一个.h和.cpp文件中,然后在要使用的地方包括此.h文件即可。当然也可以写一个类,然后定义static的成员变量,可能这样会更符合oop的风格。完成本课题应具备的环境(软件、硬件):硬件环境:CPU:Cerlon 2.5或以上内存:512MB或以上硬盘40GB或以上,显示器无要求软件环境:系统环境:WindowsXP程序编写工具:isual C+ 6.0 制图工具:Visio 2003各阶段任务安排:(1)3.3 3.8 完成需求文档(包括合成的需求文档)(2)3.9 3.20 完成概要设计和详细设计文档(3)3.214.21 完成所有的功能(4)4.225.2 对整

7、个系统进行测试(5)5.25.10 对整个系统合成,毕业论文撰写主要参考资料:1Raphael Pender 编著 标准C+编程宝典 M北京:电子工业出版社 2005.12王咏刚 王咏武 编著 道法自然:面向对象实践指南 M 北京:电子工业出版社2004.103David J. Kruglinski,Scot Wingo, George Shepherd VC+6.0技术内幕 M 北京:北京希望电子出版社 1999.5 4郑莉 张瑞丰 编著 VC+程序设计 M 北京:机械工业出版社2005.15候俊杰 编著 深入浅出 MFC M 湖北:华中科技大学出版社2001.16Compiler Desi

8、gn-Tiny PascalEB/OL 7 GDI+简介 EB/OL 8什么是MVC框架 EB/OL 9Stephen Prata 编著 C+ Primer Plus M 北京:人民邮电出版社 2002.710Windows GDI和GDI+编程实例剖析EB/OL 11张素琴 吕映芝 蒋维杜 戴桂兰 编著 编译原理(第二版)M 北京:清华大学出版社 2005.212Mahesh Chand 编著 GDI+图形程序设计 M 北京:电子工业出版社 2006.313 使用VC6.0实现窗口的任意分割EB/OL 14窗口切分后的视图通信EB/OL 15潘爱民 编著 Visual C+ 技术内幕 M 北

9、京:清华大学出版社 1999.116 在vc6.0中使用GDI+图形函数EB/OL 17 VC+从入门到精通开发详解视频教程EB/OL 18揣锦华. C+程序设计语言M. 西安:西安电子科技大学出版社 2003 19常家忠. C+语言程序设计精讲精练M. 成都:电子科技大学出版社 2005指导教师意见: 指导教师签名:开 题 报 告 会 纪 要时间 地点与会人员姓 名职务(职称)姓 名职务(职称)姓 名职务(职称)会议记录摘要:会议主持人签名:记录人签名:年 月 日指导小组意见负责人签名: 年 月 日学 院 意 见负责人签名: 年 月 日湖 南 师 范 大 学 工 学院指导教师指导毕业设计情况

10、登记表论文(设计)题目基于图形的C+程序模拟器的设计与实现语法分析与运行功能设计与实现学生姓名黎帅师所属专业、年级计算机科学与技术 专业 2004 级指导教师姓名钟坚成职 称助教学 历硕士指导时间指导地点指 导 内 容学生签名备 注 二、湖南师范大学本科毕业设计评审表 毕业设计题 目基于图形的C+程序模拟器的设计与实现语法分析与运行功能设计与实现作者姓名黎帅师所属院、专业、年级 工学 院 计算机科学与技术专业 2004 年级指导教师姓名、职称钟坚成 助教字 数12000定稿日期2008.5.25中文摘要本文主要介绍了一个基于图形化程序模拟器的语法分析及运行功能设计及实现过程,整个系统的优点是使

11、程序运行过程图形化,能使使用者更加清楚C+程序的执行过程。整个系统采用的平台基于Windows系统下的GDI+库和CCrystal库,采用MVC框架,使用VC+6.0进行开发,利用spirit框架生成抽象语法树,其中GDI+用来图形化演示,CCrystal用来负责优化界面。系统能够打开并编辑保存在磁盘上的文件,最后通过运行功能基于图形化的演示,用户可以对变量值及栈内容的变化情况有很好的了解。关键词(3-5个)程序模拟器;语法分析;GDI+英文摘要This paper mainly introduces parsing analysis, run functional design and re

12、alize process on the basis of the graphical program simulator, and the merit of the whole system is to make the programs 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+

13、 and CCrystal of the Windows system, adopts the frame of the MVC, develops by the usage of VC+6.0, and comes 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 sav

14、e 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.关键词(3-5个)program simulator; parsing analysis; GDI+毕业设计指导教师评定成绩 评审基元评审要素评审内涵满分实评分

15、选题质量30%目的明确符合要求选题符合专业培养目标,体现学科、专业特点和综合训练的基本要求10选题恰当题目规模适当5题目难易度适中5联系实际题目与生产、科研、实验室建设等实际相结合,具有一定的实际价值10能力水平35%综合运用知识能力能将所学专业知识和机能用与毕业设计中;设计内容有适当的深度、广度和难度 5应用文献资料能力能独立查阅相关文献资料,能对本设计所涉及的有关研究状况及成果归纳、总结和恰当运用5实验(设计)能力能运用本学科常用的研究方法,选择合理可行的方案,能对实际问题进行分析,进行实验(设计),具有较强的动手能力5计算能力原始数据搜集得当;能进行本专业要求的计算,理论依据正确,数据处

16、理方法和处理结果正确5外文应用能力能搜集、阅读、翻译、归纳、综述一定量的本专业外文资料与外文摘要,并能加以运用,体现一定的外语水平5计算机应用能力能根据设计题目要求编程上机或使用专业应用软件完成设计任务5分析能力能对设计项目进行技术经济分析或对实验结果进行综合分析5设计质量35%插图或图纸质量能用计算机绘图,且绘制图纸表格符合标准5说明书撰写水平设计说明书齐全;概念清楚,内容正确,条理分明,语言流畅,结构严谨;篇幅达到学校要求15规范化程度设计的格式、图纸、数据、用语、量和单位、各种资料引用和运用规范化,符合标准;设计栏目齐全合理5成果的实用性与科学性较好地完成设计选题的目的要求,成果富有一定

17、的理论深度和实际运用价值 5创见性具有创新意识,设计具有一定的创新性5正文部分成绩(上表):总成绩:评定等级:外文资料译文成绩:指导教师评审意见:指导教师签名: 说明:此表指标部分为正文部分计分表,正文部分成绩实评总分0.9,外文资料译文成绩满分为10分。总成绩正文部分成绩外文资料译文成绩。评定成绩分为优秀、良好、中等、及格、不及格五个等级,总成绩90100分记为优秀,8089分记为良好,7079分记为中等,6069分记为及格,60分以下记为不及格。若译文成绩为零,则不计总成绩,评定等级记为不及格。毕业设计评阅教师评定成绩 (本页由评阅教师手写)评审基元评审要素评审内涵满分实评分选题质量30%

18、目的明确符合要求选题符合专业培养目标,体现学科、专业特点和综合训练的基本要求10选题恰当题目规模适当5题目难易度适中5联系实际题目与生产、科研、实验室建设等实际相结合,具有一定的实际价值10能力水平35%综合运用知识能力能将所学专业知识和机能用与毕业设计中;设计内容有适当的深度、广度和难度 5应用文献资料能力能独立查阅相关文献资料,能对本设计所涉及的有关研究状况及成果归纳、总结和恰当运用5实验(设计)能力能运用本学科常用的研究方法,选择合理可行的方案,能对实际问题进行分析,进行实验(设计),具有较强的动手能力5计算能力原始数据搜集得当;能进行本专业要求的计算,理论依据正确,数据处理方法和处理结

19、果正确5外文应用能力能搜集、阅读、翻译、归纳、综述一定量的本专业外文资料与外文摘要,并能加以运用,体现一定的外语水平5计算机应用能力能根据设计题目要求编程上机或使用专业应用软件完成设计任务5分析能力能对设计项目进行技术经济分析或对实验结果进行综合分析5设计质量35%插图或图纸质量能用计算机绘图,且绘制图纸表格符合标准5说明书撰写水平设计说明书齐全;概念清楚,内容正确,条理分明,语言流畅,结构严谨;篇幅达到学校要求15规范化程度设计的格式、图纸、数据、用语、量和单位、各种资料引用和运用规范化,符合标准;设计栏目齐全合理5成果的实用性与科学性较好地完成设计选题的目的要求,成果富有一定的理论深度和实

20、际运用价值 5创见性具有创新意识,设计具有一定的创新性5正文部分成绩(上表):总成绩:评定等级:外文资料译文成绩:评阅教师评审意见: 评阅教师签名: 说明:此表指标部分为正文部分计分表,正文部分成绩实评总分0.9,外文资料译文成绩满分为10分。总成绩正文部分成绩外文资料译文成绩。评定成绩分为优秀、良好、中等、及格、不及格五个等级,总成绩90100分记为优秀,8089分记为良好,7079分记为中等,6069分记为及格,60分以下记为不及格。若译文成绩为零,则不计总成绩,评定等级记为不及格。三、湖南师范大学本科毕业设计答辩记录表毕业设计题 目基于图形的C+程序模拟器的设计与实现语法分析与运行功能设

21、计与实现作者姓名黎帅师所属院、专业、年级工学院 计算机科学与技术 专业 2004 年级指导教师姓名、职称钟坚成 助教答 辩 会 纪 要时间地点答辩小组成员姓 名职务(职称)姓 名职务(职称)姓 名职务(职称)答辩中提出的主要问题及回答的简要情况记录:会议主持人签名:记录人签名:年 月 日 答辩小组意见评语:评定等级: 负责人(签名): 年 月 日学院意见评语:毕业设计学院最终评定等级: 负责人(签名): 学院(公章) 年 月 日学校意见评语:评定等级: 负责人(签名): 年 月 日目录第一章 前 言31.1课题研究背景31.2现有程序模拟器的状况31.3课题研究的主要价值31.4本论文的主要目

22、的及内容3第二章 相关技术简介52.1系统使用到的相关技术52.2 GDI+技术介绍152.3 MVC技术介绍28第三章 需求分析与系统设计93.1需求分析93.2系统总体处理流程123.3子系统处理流程143.4系统开发使用环境介绍153.4.1软件开发平台153.4.2硬件平台153.4.3软件运行平台153.5系统设计153.5.1程序模拟器中类包的设计163.5.2程序模拟器设计当中使用的数据结构17第四章系统详细设计184.1系统结构设计184.2文件菜单功能模块的设计184.3编辑菜单功能模块的设计194.4运行菜单功能模块的设计204.4.1抽象语法树3204.4.2错误报告32

23、14.4.3词法分析214.4.6图形化输出31第五章 系统测试及运行结果335.1系统主界面335.2文件菜单功能模块345.2编辑菜单功能模块345.4运行菜单功能模块36总结38参考文献39致谢41基于图形的C+程序模拟器的设计与实现语法分析与运行功能设计与实现工学院2004级计算机与技术专业 黎帅师摘要本文主要介绍了一个基于图形化程序模拟器的语法分析及运行功能设计及实现过程,整个系统的优点是使程序运行过程图形化,能使使用者更加清楚C+程序的执行过程。整个系统采用的平台基于Windows系统下的GDI+库和CCrystal库,采用MVC框架,使用VC+6.0进行开发,利用spirit框架

24、生成抽象语法树,其中GDI+用来图形化演示,CCrystal用来负责优化界面。系统能够打开并编辑保存在磁盘上的文件,最后通过运行功能基于图形化的演示,用户可以对变量值及栈内容的变化情况有很好的了解。关键字:程序模拟器;语法分析;GDI+Abstract 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 i

25、s to make the programs 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+6.0,

26、 and comes 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 conditi

27、ons 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+第一章 前 言1.1课题研究背景现有程序模拟器的发展方向主要是针对一般程序的运行,用户无法了解内部数据的处理过程及整个系统的组成,对整个程序的运行过程不能有一个很好交互过程,在现有程序模拟器的基础上来对新程序模拟器的研发,基于C+程序模拟器是一种可以对数据

28、透明化,并且可以使用户很好了解内部数据处理过程的一种程序模拟器。1.2现有程序模拟器的状况程序模拟器的功能主要是对程序进行模拟测试,现有的程序模拟器,诸如java程序模拟器,搜索引擎程序模拟器等主要功能不具备对程序的图形化模拟执行等功能,这些程序模拟器无法使程序的执行情况展现出来,包括程序中变量及栈的使用情况,只能通过其它的方法,诸如调试的方法来对变量进行查看和显示。此外,栈的内容也不能对用户透明化,使用户不能栈中的内容进行初步的了解。1.3课题研究的主要价值 本程序模拟器的主要特点是数据对用户透明化,能够使用户实时了解程序内部变量的处理过程,主要体现在栈是怎么处理变量及函数的,在现代的教学过

29、程当中,如果使用此程序模拟器进行教学将会直到意想不到的效果,它主要是以C+语言编写的源程序来实现整个模拟过程,在程序的模拟过程当中,用户可以很好地了解到变量值的变化及进出栈的过程,如果加上编译器的话,该系统不仅仅可用于教学,而且可以当做现有的编辑程序工具使用。1.4本论文的主要目的及内容本论文的主要目的是:通过分析此次课题,在现有的GDI+技术和常用的递归下降程序算法基础上,利用Visual C+这个开发工具以面向对象的开发模式设计出一个具有图形化显示功能的程序模拟器,最后在此形式上,可以使其它开发者进一步对系统进行完善。本论文的主要内容:1. 对GDI+技术进行相应的描述和解释,为图形化显示

30、输出作基础。2. 程序中所用到的递归下降算法的相应描述,程序在进行语法分析过程中对TOKEN串的识别,跳过空白字符的相应处理方法,在运行程序时,程序运用STL中的栈和向量处理数据,确定函数main的起始位置。3. GDI+在项目中的应用DrawString(),DrawLine(),DrawRectangle(),Graphics类,Pen类等。4. MFC的主要类介绍及MVC框架介绍。第二章 相关技术简介2.1系统使用到的相关技术整个系统中所用的技术主要有C+中的STL,VC+中的MFC,以及GDI+和CCrystal。其中C+中的STL主要用到了stack和vector等类及其相应的算法。

31、MFC用到的主要是CMAP类、CRichEditCtrl类、CControlBar及多文档类的操作,GDI+中用到的主要是DrawString及DrawRectangle等方法,CCrystal用到了CCrystalTextView等类。 在实现语法分析的阶段用到了程序的递归下降方法,SPIRIT框架,另外系统的外层框架用到了MVC框架,用户的接口可以很容易的改变,如果程序中的数据发生了变化,在右边的栈中可以实时的反应出来。2.2 GDI+技术介绍1GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C+类实现的应用程序编程接口。顾名思义,GD

32、I+是以前版本GDI的继承者,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。 作为图形设备接口的GDI+使得应用程序开发人员在输出屏幕和打印机信息的时候无需考虑具体显示设备的细节,他们只需调用GDI+库输出的类的一些方法即可完成图形操作,真正的绘图工作由这些方法交给特定的设备驱动程序来完成,GDI+使得图形硬件和应用程序相互隔离.从而使开发人员编写设备无关的应用程序变得非常容易。2.2.1.GDI+新增功能:1.渐变的画刷(G

33、radient Brushes) GDI+允许用户创建一个沿路径或直线渐变的画刷,来填充外形(shapes),路径(paths),区域(regions),渐变画刷同样也可以画直线、曲线、路径,当你用一个线形画刷填充一个外形(shapes)时,颜色就能够沿外形逐渐变化。2.基数样条函数(Cardinal Splines) GDI支持基数样条函数,而GDI不支持。基数样条是一组单个曲线按照一定的顺序连接而成的一条较大曲线。样条由一系列点指定,并通过每一个指定的点。由于基数样条平滑地穿过组中的每一个点(不出现尖角),因而它比用直线连接创建的路径更精确。下面是分别使用两种方法创建的图形,一个使用基数样

34、条,一个使用直线。 3.持久路径对象(Persistent Path Objects) 在GDI中,路径属于设备描述表(DC),画完后路径就会被破坏。在GDI+中,绘图工作由Graphics对象来完成,你可以创建几个与Graphics分开的路径对象,绘图操作时路径对象不被破环,这样你就可以多次使用同一个路径对象画路径了。 4.变形和矩阵对象(Transformations Matrix Object) GDI+提供了矩阵对象,一个非常强大的工具,使得编写图形的旋转、平移、缩放代码变得非常容易。一个矩阵对象总是和一个图形变换对相联系起来,比方说,路径对象(PATH)有一个Transform方法,

35、它的一个参数能够接受矩阵对象的地址,每次路径绘制时,它能够根据变换矩阵绘制。下面的图形是一个图形变换前后的例子,变换按照先缩放后旋转完成。 5.可伸缩区域(Scalable Regions) GDI+ 在区域(regions)方面对GDI进行了改进,在GDI中,Regions存储在设备坐标中,对Regions 唯一可进行图形变换的操作就是对区域进行平移。而GDI+用世界坐标存储区域(Regions),允许对区域进行任何图形变换(譬如如图所示的缩放),图形变换以变换矩阵存储,下面例子是一个区域变换前后的例子(缩放、旋转、平移) 6.Alpha Blending(混合) 你可能会注意到上面显示的图

36、形,红色未平移区域与变换后区域有一部分交叉区域,这一部分形成的梦幻效果就是由GDI+支持的Alpha Blending(混合)实现的,利用alpha融合,你可以指定填充颜色的透明度,透明颜色与背景色相互融合,填充色越透明,背景色显示越清晰,下图所示的四个椭圆被填充了同样的颜色,但由于拥有不同的透明度而呈现不同的显示效果。 7.多种图像格式支持. 图像在图形界面程序中占有举足轻重的地位,GDI除了支持BMP等GDI支持的图形格式外,还支持JPEG(Joint Photographic Experts Group)、GIF(Graphics Interchange Format)、PNG(Exch

37、angeable Image File)、TIFF(Tag Image File Format)等图像格式,你可以直接在程序中使用这些图片文件,而无需考虑它们所用压缩算法。 8.其它。 GDI+还将支持其它技术,譬如重新着色、颜色校正、元数据、图形容器,也许这些功能我们会在将来的WindowsXP或者Microsoft VisualStudio.Net中看到. 2.2.2.编程模式的改变 Device Contexts(设备描述表), Handles(句柄), 和 Graphics Objects(图形对象) 如果你曾经使用过GDI编写过应用程序,你肯定对设备描述表(DC)的概念非常熟悉,设备

38、描述表是Windows使用的一个数据结构,用于存储具体设备能力和与如何在设备上重绘一些项目的有关属性信息。而且视频设备的设备描述表还与特定的窗口有关。首先你必须获得一个设备描述表句柄,然后在图形绘制时,你把这个句柄作为一个参数传递给GDI图形绘制函数。当然你也可以把它传递给获得或设置设备描述表有关属性的函数。 利用GDI+函数,你不必使用句柄或者设备描述表。相反,你可以简单地创建一个图形对象(Graphics),然后以你熟悉的面向对象的编程方式调用它的方法即可,譬如myGraphicsObject.DrawLine(parameters)。Graphics对象是GDI+的核心,正如设备描述表是

39、GDI的核心一样,设备描述表(DC)和图形对象(Graphics)在不同的环境下扮演着同样的角色,发挥着类似的作用,但是两者也存在着这质的不同。前者使用基于句柄的编程方法而后者使用面向对象的编程方法。 图形对象和设备对象一样,与屏幕的显示窗口有关,它包含着与项目重绘有关的属性信息(譬如平滑度),然而图形对象并没有像GDI那样与Pen(画笔)、Path(路径)、Image(图像)、Font(字体)等搅在一起。在GDI中,所有与绘图有关的绘图对象必须选入指定设备描述表中(使用SelectObject函数),才能被指定的设备描述表所使用。而在GDI+中,你只需把这些绘图对象作为一个参数传递给图形对象

40、Graphics方法调用即可,每一个图形对象所使用的绘图工具至于它调用方法使用的参数有关,它可以通过参数使用多种Pen和Brush绘图,而不是与特定的笔和画刷联系在一起。2.3 MVC技术介绍2MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。本系统用到的MVC框架图如图2.3.1:图2.3.1 程序模拟器的MVC框架图第三章 需求分析与系统设计3.1需求分析基于图形

41、的C+程序模拟器简介:基于图形的C+程序模拟器是适用教学、编程方面的良好学习工具,本系统的调试和运行两大部分功能具有图形化显示的技术,从而方便用户理解和了解整个程序的工作过程。利用图形化的C+程序模拟器来进行程序的编写,不仅可以随时检查程序中各变量的变化情况,更为重要的是能够使用户对程序起到透明化的过程,而且在教学方面中也能使学生便于理解。图3.1.1即该模拟器的系统架构图:图3.1.1程序模拟器的系统架构图 经过整体分析得出本系统应完成的任务有:主要利用现有的平台,用C+来实现对程序的模拟效果,包括调试,停止执行,切换断点,下一步,单步进入,语法检查,运行等程序的基本功能,另外在这些基础上还

42、要有图形化的显示功能,由所有这些功能构成一个扩展性好的系统。 整个系统主要完成的功能包括:1.文件菜单功能文件菜单功能主要包括以下功能:打开,新建,保存,关闭,退出。2.编辑菜单功能编辑菜单主要包括以下功能:撤消,重复,复制,剪切,粘贴3.调试菜单功能 调试菜单主要包括如下功能:调试,停止执行,切换断点,下一步,单步进入4. 运行菜单功能 运行菜单主要包括:语法检查和运行两大功能。5. 查看菜单功能 查看菜单包括查看栈和变量两大功能。6. 帮助菜单功能 帮助菜单主要有两大功能:关于本程序和模拟器的帮助图3.1.2为该程序模拟器的系统功能图:图3.1.2程序模拟器的系统功能图经过整体分析得出了系

43、统的整个功能,本人负责开发的属于运行功能部分,负责语法检查和运行功能的实现,整个系统的边界以软、硬件为边界,用户作为参与者,绘制用例模型。整个系统的用例模型如图3.1.1:图3.1.1程序模拟器用例分析模型图本人负责的运行功能部分涉及到的类有CCminusDos, CCminusApp, CScaner, CGraphic, CAnalyzer等,根据分析绘制类序列图。 主要思想如下: CCminusDos通过调用CAnalyzer的tracetype函数可以先进行语法检查,语法检查通过后,由CAnalyzer调用CParser的BulideSynaxTree()建立语法树,与此同时,CAna

44、lyzer还调用CSymbolTable的Traverse()函数建立符号表,所有工作结束后,由CScaner的NextToken()函数分析函数的入口处Main()函数,分析完后,找到Main()所在行数,即可进行下一步的运行,将图形显示出来,即通过CCminusDos调用CGraphic的DrawStack()函数来实现。运行功能类序列图(图3.1.2):图3.1.2 程序模拟器运行功能类序列图 3.2系统总体处理流程 由于整个系统的合成由本人负责,因此,先将整个系统的总体处理流程进行介绍,整个系统的处理流程大概思想如下:整个系统的分为六大功能部分,前面已经作以介绍,那么系统进入以后的流程

45、是如何的呢?用户进入系统后可以就在编辑区编辑文件,也可以打开文件进行调试和运行,在运行和调试时,会先对程序进行语法检查,看是否能通过检查,如果能通过,则可以进行调试和运行,具体流程可以用图来表示。3.2.1总体流程图(图3.2.1)图3.2.1 程序模拟器总体流程图3.3子系统处理流程3.3.1文件菜单处理流程图(图3.3.1)图3.3.1 文件菜单处理流程图3.3.2编辑菜单处理流程图(图3.3.2)图3.3.2 程序模拟器编辑菜单处理流程图3.3.3运行菜单处理流程图(图3.3.3)图3.3.3 程序模拟器运行菜单处理流程图3.4系统开发使用环境介绍3.4.1软件开发平台 (1)操作系统:

46、WinXp(2)开发工具:VC+6.0 Visio2003(3)图形化工具:GDI+ CCrystal3.4.2硬件平台CPU:Cerlon 2.5或以上内存:512MB或以上硬盘40GB或以上,显示器无要求3.4.3软件运行平台 操作系统:Win 2000及以上版本 支持库:CJ60StaticLib.lib GDIPLus.lib GDIPlus.dll3.5系统设计本系统是一套基于C+的程序模拟系统,通过该系统,用户可以方便地进行程序的各种模拟执行过程,包括对程序的录入,调试,运行等功能,该系统具有可扩展性,可以在现有系统的基础上进行研发出比此系统功能更为强大的程序模拟器,该系统最大的特点是可以图形化模拟程序的执行,即程序的执行过程对用户透明化,用户可以随时看到栈的变化情况,包括函数是怎么返回的,变量是如何进栈及出栈,并且栈里的数据是如何变化的,都能清楚的看到。该系统的主要结构图如图3.5.1:图3.5.1 系统总体结构图3.5.1程序模拟器中类包的设计整个程序模拟器在

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!