基于vc的图的遍历算法的动态演示系统的设计与实现-毕业论文

上传人:仙*** 文档编号:205199287 上传时间:2023-04-28 格式:DOC 页数:41 大小:770.50KB
收藏 版权申诉 举报 下载
基于vc的图的遍历算法的动态演示系统的设计与实现-毕业论文_第1页
第1页 / 共41页
基于vc的图的遍历算法的动态演示系统的设计与实现-毕业论文_第2页
第2页 / 共41页
基于vc的图的遍历算法的动态演示系统的设计与实现-毕业论文_第3页
第3页 / 共41页
资源描述:

《基于vc的图的遍历算法的动态演示系统的设计与实现-毕业论文》由会员分享,可在线阅读,更多相关《基于vc的图的遍历算法的动态演示系统的设计与实现-毕业论文(41页珍藏版)》请在装配图网上搜索。

1、摘要数据结构作为信息类专业的一门核心专业课,对编译原理等后续课程的学习极其重要。传统的数据结构算法是基于以Turbo C为代表的DOS开发坏境,可视化效果很差。而这种坏境给学习者的理解和深入探讨带来很大的问题。本设计从对数据结构图的算法的深入研究开始,在Visual C+的编程坏境下,致力于开发一套专门帮助学习者理解数据结构算法的动态演示系统。该系统将可视性,交互性和可扩展性紧紧的结合在一起,能大大改善传统教学的弊端,使复杂的难以理解的数据结构算法通过教师的课堂演示和学习者的不断自我交互式操作试验变得通俗明朗,有效地提高教学的质量和效果。关键字:动态演示系统;Visual C+Abstract

2、The data structure as a core of information specialty courses, learning to follow-up such as the compiling principles of course extremely important. Traditional algorithm is based on the data structure to DOS development represented TurboC borders, very poor visual effects. And this bad border to th

3、e learners understanding and in-depth discussions cause great problems. The design starts from the in-depth study on data structure algorithm, programming in Visual C+ under bad border, is committed to developing a set of specialized help learners understand data structure algorithm of dynamic demo

4、system. The system of Visual, interactive combination of scalability and tightly together, can greatly improve the shortcomings of traditional teaching, so that complex, difficult to understand the data structure algorithms through teachers classroom presentations and continuous interactive operatio

5、n test of learners becoming popular is clear, effectively improve the quality and effectiveness of teaching.Keywords: dynamic demo system; Visual C+ 38第1章 系统开发平台与环境1.1 选题背景1.1.1 课题来源数据结构作为信息类专业的一门核心专业课,对编译原理等后续课程的学习极其重要。但该课程涉及大量的概念、定义、模型和算法,尤其是图的算法显得很抽象和深奥。用传统的“粉笔+黑板”形式很难将算法的执行过程动态地演示出来,影响了教学效果。传统的数

6、据结构算法是基于以TurboC为代表的DOS开发坏境,可视化效果很差。而这种坏境给学习者的理解和深入探讨带来很大的问题。后来,随着多媒体技术的发展,数据结构的教学开始运用教学幻灯片的形式来讲授,这些教学幻灯片大多数都是静态的图片或者是一些基本的算法。这种教学模式弥补了传统的黑板板书的不足,较大地提高了教学质量。不过这种教学模式在可视性和交互性方面都存在较大的不足。目前,还有一种教学模式是采用flash动画演示并配加一定的文字说明的方式,这种方式可以在很大程度上揭示算法原理,唯一的遗憾就是这种动画演示的内容不是很全面,而且在与学习者的交互性方面存在不足,不能让学习者自己输入相关的参数。因此有必要

7、对图的算法的动态演示进行研究,设计数据结构算法演示系统,帮助学生更快地掌握算法的精髓与实质。1.1.2 本课题的研究意义本设计从对数据结构图的算法的深入研究开始,在Visual C+的编程坏境下,致力于开发一套专门帮助学习者理解数据结构算法的动态演示系统。该系统将可视性,交互性和可扩展性紧紧的结合在一起,能大大改善传统教学的弊端,使复杂的难以理解的数据结构算法通过教师的课堂演示和学习者的不断自我交互式操作试验变得通俗明朗,有效地提高教学的质量和效果。1.1.3 课题的关键技术 本系统的核心技术为深度优先搜索遍历算法与图的广度优先搜索遍历算法的动态演示技术研究及其实现。1.2 系统开发平台Mic

8、rosoftVisual Studio 2008 微软发布了.NET开发平台,这是自1993年7月随着Windows NT3.0出现的Win32 API后微软软件开发平台的第一次大升级。比起Win16来,Win32提供了更多功能强大的API,但没有对工具和技术进行引人注目的改变。与之不同的是,.NET开发平台在开发者用以创造应用程序的工具和技术上做了根本的改变。 .NET开发平台使得开发者创建运行在Internet Information Server (IIS)(互联网信息服务器)Web服务器上的Web应用程序更为容易,它也使创建稳定、可靠而又安全的Windows桌面应用程序更为容易。 .N

9、ET开发平台包括以下内容: .NET Framework(架构),包括:Common Language Runtime(CLR)(通用语言运行环境),这是用于运行和加载应用程序的软件组件;新的类库,分级组织了开发者可以在他们的应用程序中用来显示图形用户界面、访问数据库和文件以及在Web上通信的代码集。 .NET开发者工具,包括:Visual Studio .NET Integrated Development Environment (IDE)(Visual Studio .NET集成开发环境),用来开发和测试应用程序;.NET编程语言(例如Visual Basic .NET和新的Visual

10、 C#),用来创建运行在CLR下并且使用类库的应用程序。 ASP .NET,一个取代以前的Active Server Pages (ASP)的特殊类库,用来创建动态的Web内容和Web服务器应用程序,这些都将采用诸如HTML、XML和Simple Object Access Protocol(SOAP)(简单对象访问协议)等Internet协议和数据格式。 .NET开发平台是一组用于建立Web服务器应用程序和Windows桌面应用程序的软件组件,用该平台创建的应用程序在Common Language Runtime(CLR)(通用语言运行环境)(底层)的控制下运行。CLR是一个软件引擎,用来加

11、载应用程序,确认它们可以没有错误地执行,进行相应的安全许可验证,执行应用程序,然后在运行完成后将它们清除。类库集提供了使应用程序可以读写XML数据、在Internet上通信、访问数据库等的代码。所有的类库都建立在一个基础的类库之上,它提供管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文件输入/输出等底层功能1。Visual Studio .NET提供了一个用于在该平台上创建应用程序的图形Integrated Development Environment(IDE)(集成开发环境)。程序员可以使用一种或多种.NET编程语言,来编写他们的代码,例如微软自己的Visual Bas

12、ic .NET(VB.NET),Visual C+, Visual C#和JScrjpt .NET等。大量其它的.NET编程语言可以从第三方厂商获得。Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到 9.0 版本,也就是 Visual Studio 2008。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Visual Studio 97 是最早的 Visual Studio 版本。包含有面向 Wi

13、ndows 开发使用的 Visual Basic 5.0、Visual C+ 5.0,面向 Java 开发的 Visual J+ 和面向数据库开发的 Visual FoxPro,还包含有创建 DHTML (Dynamic HTML) 所需要的 Visual InterDev。其中,Visual Basic 和 Visual FoxPro 使用单独的开发环境,其他的开发语言使用统一的开发环境。Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。Visual Studio 2008 在三个方面为开发人员提供了关键改

14、进:快速的应用程序开发、高效的团队协作、突破性的用户体验。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP.NET

15、 应用程序服务和 Microsoft 平台。快速的应用程序开发:为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,例如语言集成的查询 (LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework 版本的应用程序。开发人员能够构建面向 .NET Framework 2.0、3.0 或 3.5 的应用程序,意味他们可以在同一环境中支持各种各样的项目。 突破性的用户体验:Visual Studio 2008 为开发人员

16、提供了在最新平台上加速创建紧密联系的应用程序的新工具,这些平台包括 Web、Windows Vista、Office 2007、SQL Server 2008 和 Windows Server 2008。对于 Web,ASP.NET AJAX 及其他新技术使开发人员能够迅速创建更高效、交互式更强和更个性化的新一代 Web 体验。高效的团队协作:Visual Studio 2008 提供了帮助开发团队改进协作的扩展的和改进的服务项目,包括帮助将数据库专业人员和图形设计人员加入到开发流程的工具。使用Microsoft .NET Framework 3.5:.NET Framework 提供了用于解

17、决常见编程任务的构建基块(预制的软件),从而能够快速构造具有出色的最终用户体验的紧密联系的应用程序。在 .NET Framework 模型业务流程上有效构建的紧密联系的应用程序有利于在异类环境中实现系统集成。Visual Studio 和 .NET Framework 的结合使用减少了对公用管道代码的需要,从而缩短了开发时间并使开发人员能够集中精力解决业务问题。.NET Framework 3.5 是在 .NET Framework 3.0 的基础上构建的更高版本。得到增强的功能领域包括基类库、Windows workflow foundation、Windows Communication

18、Foundation、Windows Presentation Foundation 和 Windows CardSpace。因此本动态演示系统选择Microsoft Visual Studio作为开发平台是一个不错的选择。1.3 MSDN MSDN 的全称是 Microsoft Developer Network。这是微软公司面向软件开发者的一种信息服务。MSDN 实际上是一个以 Visual Studio 和 Windows 平台为核心整合的开发虚拟社区,包括技术文档、在线电子教程、网络虚拟实验室、微软产品下载(几乎全部的操作系统、服务器程序、应用程序和开发程序的正式版和测试版,还包括各种

19、驱动程序开发包和软件开发包)、Blog、BBS、MSDN WebCast、与 CMP 合作的 MSDN 杂志等等一系列服务。一般情况下,很多人误认为 MSDN 为联机帮助文件和技术文献的集合。但事实上,这两者只占 MSDN 庞大计划的一小部分。 其中产品下载、在线电子教程、MSDN 杂志和技术紧急电话支援是要付费的,其余基本免费。当然, MSDN 杂志可以通过微软公司的网站免费观看或者下载。MSDN 涵盖了所有的可以被开发扩充的平台和应用程序,因此如微软公司的百科全书 Encarta,或者是各种游戏,是不包括在 MSDN 之内的,因为这些产品直接面向最终用户,没有进行程序开发的必要。 用户接触

20、到的最多关于 MSDN 的信息可能是来自于 MSDN Library。MSDN Library 就是通常人们眼中的 MSDN,涵盖了微软全套可开发产品线的技术开发文档和科技文献(部分包括源代码),也包括过刊的 MSDN 杂志节选和部分经典书籍的节选章节。MSDN Library 有 1.8 GB 左右,可以通过在线或者 MSDN 订阅(需付费)以脱机方式浏览。 每个时期,随着不同版本 Visual Studio 发布的时候,都会有对应的 MSDN Library 发布,而从最新版的 Visual Studio 发布之后,对应旧版本 Visual Studio 的 MSDN Library 会慢

21、慢停止发布, 仅随该 Visual Studio 发布的 MSDN Library 以及后续的 MSDN Library 更新才可以被整合到最新版本的 Visual Studio 中。1.4 MSDN访问MSDN订购版带有一个可安装的界面,并且Professional和Universal订购版还带有一批Microsoft产品软件,比如Windows平台版本和BackOfice应用程序。没有必要再向用户阐述如何使用Microsoft产品软件,但是还是要提供一些快速且有用的指导,以弄明白界面的含义,并在MSDN订购版所提供的似乎无穷无尽的参考资料中遨游。对于使用过M S D N的用户来说,图3 -

22、 2所示的界面是很熟悉的:它是MSDN参考资料的导航前台界面。图3-2 MSDN界面虽然界面很熟悉,并已经是相当直观,但是如果还没有掌握其特性和浏览工具,可能还是会在信息的汪洋大海中迷失方向的。通过掌握关于高效浏览的一些说明和提示,即可迅速提高其使用效率。1.4.1浏览MSDN MSN最主要的特性之一(也许地是最主要的缺点)是资料太完整,包含的信息总量超过1.1GB,并且还在不断增长。但是MSDN的创建者可能意识到了这一点,已经采取步骤缓解这一问题。这些步骤之一就是允许开发人员有选择地在MSDN的目录中进行跳转。MSDN的基本浏览很简单,与在Windows资源管理器及其文件夹结构中的浏览非常相

23、似。MSDN没有使用文件夹,它将“书本”按照专题进行组织。点击书本左边的+号,可以将书本展开,显示出目录和嵌套的书本或者参考页面,如图3 - 3所示。如果在MSD N浏览器中没有看到左边的面板,请到View菜单再选择Navigation Tabs菜单项,面板就会出现。图3-3 MSDN浏览界面MSDN左边面板中的四个选项卡是在MSDN目录中跳转的主要方式。这四个选项卡,与其上方的Active Subset下拉菜单框协同工作,是用以在MSDN目录中进行搜索的工具。在熟练掌握它们之后,这些浏览辅助工具将极大地丰富MSDN的使用经验。Active Subset下拉菜单框提供的是一种过滤器机制。从下拉

24、框中选择所感兴趣的MSDN信息子集,四个导航选项卡(包括Contents选项卡)都将显示的信息限制为所选子集中包含的信息。这就意味着在Searh选项卡中所做的任何搜索,以及在Index选项卡中的索引,都被其定义的结果值过滤,并且或者与用户所定义的子集相匹配,从而极大地限制了给定查询所得结果的数量,让用户可以得到真正需要的信息。在Index选项卡中,符合查询条件而不在所选子集内,将被显示为浅色(但仍然可以选择),在Search选项卡中,它们将根本不会被显示。MSDN中有下列预定义的子集:Entire Collection Platform SDK,Tools and LanguagesMSDN,

25、Books and Periodicals Platform SDK,User Interface ServicesMSDN,Content on Disk 2 only Platform SDK,Web ServicesMSDN,Content on Disk 3 only Platform SDK,Whats New?MSDN,Knowledge Base Platform SDK,Win32 APIMSDN , O ffice Development Repository 2.0 DocumentationMSDN , Technical Articles and Backgrounde

26、rs Visual Basic DocumentationPlatform SDK,BackOffice Visual C+ DocumentationPlatform SDK, Base Services Visual C+,Platform SDK and EnterpriseDocsPlatform SDK,Component Services Visual C+,Platform SDK,and WinCEDocsPlatform SDK,Data Access Services Visual FoxPro DocumentationPlatform SDK,Graphics and

27、Multimedia Services Visual InterDev DocumentationPlatform SDK,Management Services Visual J+ DocumentationPlatform SDK,Messaging and Collaboration Services Visual SourceSafe DocumentationPlatform SDK,Networking Services Platform Visual Studio Product 读者可以看到,过滤选项本质上是M S D N使用的信息结构的一个镜像。但是,如果用户希望看到这些子集

28、的部分信息,又该怎么办呢?例如,用户对Platform SDKs Security、NetworkingServices和Management Services子集的某个关键字搜索以及Base Services子集的部分章节感兴趣,该如何去做呢?其实相当简单仅需定义自己的子集即可。选择View菜单,然后选择Define Subset菜单项,即可定义子集。用户面对的是如图3 - 4所示的窗口。 图3-4 Define Subset窗口定义子集是很简单的,仅需按照如下步骤进行:1) 选择希望放置到新子集的信息;可以选择整个子集,或者在可用子集中选取“书本” /“目录”。2) 点击Add按钮,将选取

29、的信息放入新创建的子集。3) 在Save New Subset As文本框中键入名称,为新创建的子集命名。注意所定义的子集(包括用户自己创建的)将以字母表顺序排列。如果希望的话,也可以从MSDN安装中删除整个子集。仅需在Select Subset To Display下拉框中选择希望删除的子集,然后点击旁边的Delete按钮即可。一旦定义了一个子集,它将和预定义的子集一样在MSDN中可用。并且在四个导航选项卡中也会过滤可用信息,和预定义子集表现相同。1.4.2 快速提示现在读者知道如何浏览MSDN了,还有一些提示和诀窍,可以利用它们来尽可能高效地使用MSDN。 使用Locate按钮定位也许是人

30、的天性,需要知道现在身处何方。但遗憾的是,如果在右边面板显示参考页面(也许是从搜索结果中跳转过来的),而对于左边面板的Contents选项卡,没有在信息树中同步地显示参考页面的位置,会很让人头疼。即使用户知道参考页面所在的技术目录,但最好还是能够找出在目录结构中的位置。问题的解决很容易:仅需点击导航工具条中的Locate按钮,所有的参考将会同步。像浏览器那样使用Back按钮导航工具条中Back按钮的功能和浏览器Back按钮的一样。如果需要先前浏览过的某个参考页面信息,就可以使用Bac k按钮返回该页,而不用再重新经历一次搜索过程。定义用户子集并且使用它们如本章开始时所述,当前可用的信息量太多,

31、有时让人的工作无法进行。定义MSDN的子集,可以筛选出和工作相关的内容,使得工作起来效率更高。在命名子集的开始使用下划线在ActiveSubset下拉框里的子集是按照字母表进行排列的,而下拉框每次只能够显示少量子集(使得选中可用子集比较困难)。下划线在字母表中位于字母之前,因此如果在所有自定义子集的名称都以下划线开始的话,它们就会在Active Subset下拉框中处在可用子集的前面。另外,使用下划线,用户可以一眼就看出哪些子集是自定义的,而哪些自己是MSDN附带的这至少可以节约几秒钟,而这些几秒钟是可以累加的。1.5 系统开发语言Microsoft Visual C+Microsoft Vi

32、sual C+是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时

33、间花费,在大型软件计划上尤其显著。1.5.1历史版本1、Visual C+ 1.0集成了MFC 2.0,是Visual C+第一代版本,1992年推出,可同时支援16位处理器与32位处理器版,可算是Microsoft C/C+ 7.0的更新版本。 2、Visual C+ 1.5集成了MFC 2.5,增加了“目标文件链接嵌入 (OLE)2.0 和支持MFC的开放式数据库链接(ODBC)。这个版本只有16位的,也是第一个以CD-ROM为软件载体的版本。这个版本也没有所谓“标准版”。它是最后一个支持16位软件编程的软件,也是第一个支持基于x86机器的32位编程软件。 3、Visual C+ 2.0集

34、成了MFC 3.0,第一个只发行32位的版本。这个版本提前发行了,几乎成了一个“丢失的版本”。这是因为那个时候 Windows 95(开发代码为Chicago)还没有发行,而Windows NT又只占有很小的市场份额。该版本用户可以通过微软公司的订阅服务(MicrosoftSubscription Service)升级至2.1和2.2版本。微软公司在这个版本中集成并升级了Visual C+1.5,作为2.0版本(Visual C+ 1.5升级后版本号:1.51)以及2.1版本(Visual C+1.5升级后版本号:1.52)的一部分。Visual C+ 2.x附带了16位和32位版本的CDK,

35、同时支持Win32s的开发。Visual C+ 2.2及其后续版本不再升级Visual C+ 1.5(尽管它一直被集成至Visual C+ 4.x)。尽管出生的比Windows 95早,这个版本的发行日期还是非常接近Windows 95,可是当Windows 95发行时, Visual C+ 4.0也已经发行了。因此很多程序开发者直接从1.x过渡到4.0,把2.x跳过去了。 4、Visual C+ 4.0集成了MFC 4.0,这个版本是专门为Windows 95以及Windows NT设计的。用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至4

36、.1和4.2版本(此版本不再支持Win32s开发)。 5、Visual C+ 5.0集成了MFC 4.21,是4.2版以来比较大的一次升级。 6、Visual C+ 6.0集成了MFC6.0,于1998发行。发行至今一直被广泛地用于大大小小的项目开发。但是,这个版本在WindowsXP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。 这个调试问题可以通过打一个叫“Visual C+ 6.0Processor Pack”的补丁来解决。奇怪的是,这个网页强调用户也必须运行Windows 98、Windows NT4.0、或Windows 2000。 7、Visual C

37、+ .NET 2002也即Visual C+ 7.0,于2002年发行,集成了 MFC 7.0,支持链接时代码生成和调试执行时检查。这个版本还集成了Managed Extension for C+,以及一个全新的用户界面(与Visual Basic和Visual C#共用)。这也是为什么Visual C+ 6.0仍然被广泛使用的一个主要原因。 8、Visual C+ .NET 2003也即 Visual C+ 7.1,集成了MFC 7.1,于2003年发行,是对Visual C+ .NET 2002的一次重大升级。 9、eMbedded Visual C+用于Windows CE操作系统。Vi

38、sual C+作为一个独立的开发环境被Microsoft Visual Studio 2005所替代。 10、Visual C+ 2005也即Visual C+ 8.0,集成了MFC 8.0,于2005年11月发布。这个版本引进了对C+/CLI语言和OpenMP的支持。 11、Visual C+ 2008也即Visual C+ 9.0,于2007年11月发布。这个版本支持.NET 3.5。 12、Visual C+ 2010Visual C+ 10.0,2009年发布,此版本更加稳定。VC+2010是目前最新的版本。Visual C+ 2008 ExpressVisual C+ 2008 St

39、andard 标准版Visual C+ 2008 Professional 专业版Visual C+ 2008 Team System 团队系统版其中Microsoft Visual C+ 2008 Express 可从MSDN的网站免费下载使用,并且不限制商业使用1.5.2最新版本Visual Studio 2010 Professional 是供开发人员执行基本开发任务的重要工具。可简化在各种平台 (包 括 SharePoint 和云)上创建、调试和开发应用程序的过程。Visual Studio 2010 Premium 是一个功能全面的工具集,可为个人或团队简化应用程序开发过程,支持交付

40、可扩展的高质量应用程序。Visual Studio 2010 Ultimate 是一个综合性的应用程序生命周期管理工具套件,可供团队用于确保从设计到部署的整个过程都能取得较高质量的结果。Visual Studio Test Professional 2010是质量保障团队的专用工具集,可简化测试规划和手动测试执行过程。Test Professional 与开发人员的 Visual Studio 软件配合运行,可在整个应用程序开发生命周期内实现开发人员和测试人员之间的高效协作。 第2章 基于VC的图的遍历算法的动态演示系统的设计过程2.1 系统的可行性对于一个软件开发项目来说,首先进行可行性分析

41、是值得的。可行性分析实质是大大压缩和简化了设计过程,主要在较高层次上以较抽象的方式进行,其目的是在尽可能短的时间内以最小的代价确定该项目是否能够开发,是否值得开发。可行性分析首先要对问题进行定义,初步确定问题的规模和目标;然后在高层次上分析现有系统,确定现有系统的物理模型和逻辑模型;再根据有关问题,在高层次上设计银决有关问题的新系统的若干种可能的解决方案;最后,对每一种方案研究它的可能性7。可行性研究主要从经济、技术、操作等诸方面来研究新系统每种解决方案的可行性,并作出明确的结论供用户参考。2.1.1 技术可行性在动态演示系统中,用到的开发平台是.NET。用到的编程语言是Microsoft V

42、isual C+。Microsoft Visual C+是一种现代的面向对象的程序开发语言,它使得程序员能够在新的微软的.NET平台上快速开发种类丰富的应用程序。.NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算和通信能力。在动态演示系统中,涉及到很多的对象实体。2.1.2 基础可行性本人在大学四年期间,接受了比较系统的关于数据结构算法、visualC+的相关专业知识方面的教育,具有了很好的理论基础。并且通过指导老师的认真指导,本人脑海中以初步有了本系统的映像。本人此次设计的指导老师认真负责,使得我能够较早的开始准备工作,所以本人有教宽裕的时间来完成此次设计。同时本人能很好的应用

43、我系现有资源,系里为我们能够顺利完成毕业设计做了充分准备,保证了我们能够方便的使用系电脑机房进行相关的实验测验,使得我们有了很好的硬件保障。2.1.3 操作可行性鉴于本系统的特点,Windows友好的用户界面和本系统良好的安全性设置,可以使系统操作员很好的掌握使用方法。在开发过程中,还尽量给操作员以方便,考虑到操作员的实际情况大大提高工作效率。而且该系统简单易操作,易维护,减少了不必要的麻烦。2.2 系统需求分析软件的需求分析是从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出我们的软件产品。这个步骤是对用户业务需求的一个升华,是一个把用户业务优化,转化为

44、软件产品,从而提升管理并产生质的飞跃。这一步是否成功,直接关系到开发出来的软件产品能否得到用户的认可,顺利交付给客户,客户能否真正运用我们的产品来帮助他(她)解决业务或管理问题。按照软件工程对软件开发过程的描述,需求阶段我们可以细分为需求调研和需求分析两个阶段。需求调研需要充分细致地了解客户目标,用户业务内容、流程等。这是一个对需求的采集过程,是进行需求分析的基础准备8。需求是开发者和用户交互的一个过程,任何一方的不投入都会导致项目的失败。当然,由于用户不是专业人士,开发者有权利告诉用户应该采用何种态度来对待项目的需求。2.2.1 用户需求分析数据结构作为信息类专业的一门核心专业课,对编译原理

45、等后续课程的学习极其重要。但该课程涉及大量的概念、定义、模型和算法,尤其是图的算法显得很抽象和深奥。用传统的“粉笔+黑板”形式很难将算法的执行过程动态地演示出来,影响了教学效果。因此有必要对图的算法的动态演示进行研究,设计数据结构算法演示系统,帮助学生更快地掌握算法的精髓与实质。传统的数据结构算法是基于以TurboC为代表的DOS开发坏境,可视化效果很差。而这种坏境给学习者的理解和深入探讨带来很大的问题。后来,随着多媒体技术的发展,数据结构的教学开始运用教学幻灯片的形式来讲授,这些教学幻灯片大多数都是静态的图片或者是一些基本的算法。这种教学模式弥补了传统的黑板板书的不足,较大地提高了教学质量。

46、不过这种教学模式在可视性和交互性方面都存在较大的不足。目前,还有一种教学模式是采用flash动画演示并配加一定的文字说明的方式,这种方式可以在很大程度上揭示算法原理,唯一的遗憾就是这种动画演示的内容不是很全面,而且在与学习者的交互性方面存在不足,不能让学习者自己输入相关的参数。因此,急需一款可视性,交互性极强的动态演示系统,使得老师能过形象生动的向学生演示,大大改善传统教学的弊端,使复杂的难以理解的数据结构算法通过教师的课堂演示和学习者的不断自我交互式操作试验变得通俗明朗,有效地提高教学的质量和效果。2.3 开发工具及类库的选择根据系统需求确定开发平台为Windows XP(SP2)、Visu

47、al Studio 2010。主要开发工具为 Microsoft Visual C+。Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。2.4 系统总

48、体方案设计本系统共分为两个对话框:初始化对话框、演示对话框。初始化对话框:用于对数据的初始化,创建结点、创建弧,然后显示图,重新排列结点位置,使之具有简洁美观。最后创建完成。初始化对话框也可以有退出,保证程序设计的合理性。和思维的严密性。演示对话框:该对话框有五部分,分别是:图的搜索顺序演示、程序调用的堆栈模拟、示例源程序代码显示、当前变量值显示、其它按钮(用于控制对话框显示)。按结构化程序设计思想和实际的分析,分析得出图2.1系统功能模块图:退 出退 出深度优先搜索初始化对话框演示对话框创建弧显示图完成创建结点自动演示单步演示终止演示图2.1 系统功能模块图第三章 系统实现3.1 DFSea

49、rch.cpp和DFSearch.h的实现 / DFSearch.cpp : Defines the class behaviors for the application./#include stdafx.h#include DFSearch.h#include DFSearchDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_; #endif CDFSearchAppBEGIN_MESSAGE_MAP(CDFSearchApp, CWinApp)/AFX_MSG_MAP(

50、CDFSearchApp)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see in these blocks of generated code!/AFX_MSGON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CDFSearchApp constructionCDFSearchApp:CDFSearchApp()/ TODO: add construction code here,/ Place all

51、significant initialization in InitInstance/ The one and only CDFSearchApp objectCDFSearchApp theApp;/ CDFSearchApp initializationBOOL CDFSearchApp:InitInstance()/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove fro

52、m the following/ the specific initialization routines you do not need.CDFSearchDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK) / TODO: Place code here to handle when the dialog is/ dismissed with OKelse if (nResponse = IDCANCEL)/ TODO: Place code here to handle when the

53、 dialog is/ dismissed with Cancel/ Since the dialog has been closed, return FALSE so that we exit the/ application, rather than start the applications message pump.return FALSE;3.2 CreatGraphDlg.cpp和CreatGraphDlg.h的实现 / CreatGraphDlg.cpp : implementation file#include stdafx.h/标准AFX头文件#include DFSear

54、ch.h#include CreatGraphDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif /这是表示,如果生成调试版本,要指示当前文件的名称。_FILE_是一个宏,在编译器编译过程中给它赋值为当前正在编译的文件名称/ CCreatGraphDlg dialogCCreatGraphDlg:CCreatGraphDlg(CWnd* pParent /*=NULL*/): CDialog(CCreatGraphDlg:IDD, pParent)/AFX_DA

55、TA_INIT(CCreatGraphDlg) / NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITCCreatGraphDlg:CCreatGraphDlg() delete m_pCreatWnd;void CCreatGraphDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CCreatGraphDlg)/ NOTE: the ClassWizard will add DDX and

56、DDV calls here/AFX_DATA_MAP/通过宏定义为类添加一个消息,处理函数对组成的数组BEGIN_MESSAGE_MAP(CCreatGraphDlg, CDialog)/AFX_MSG_MAP(CCreatGraphDlg)ON_BN_CLICKED(ID_EDIT_POINT, OnEditPoint)ON_BN_CLICKED(ID_EDIT_EDGE, OnEditEdge)ON_BN_CLICKED(ID_SHOW_GRAPH, OnShowGraph)ON_BN_CLICKED(ID_OK, OnOk)/AFX_MSG_MAPEND_MESSAGE_MAP()/

57、CCreatGraphDlg message handlersBOOL CCreatGraphDlg:OnInitDialog() /调用这个成员函数是对WM_INITDIALOG消息作出的反应。/这条消息是在对话框即将显示之前,在Create,CreateIndirect或DoModal调用期间发出的。 CDialog:OnInitDialog();/ TODO: Add extra initialization here RECT rect;m_pCreatWnd= new CMoveWnd(IDC_GRAPH_CREAT, m_G);m_pCreatWnd-Create(NULL,NUL

58、L,WS_CHILD|WS_VISIBLE,rect,this,0,NULL);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CCreatGraphDlg:OnEditPoint() /编辑点函数,用于在鼠标在图上单机,就自动创捷结点/ TODO: Add your control notification handler code hereif(m_pCreatWnd-m_Status != V)m

59、_pCreatWnd-m_Status = V;m_pCreatWnd-Invalidate();void CCreatGraphDlg:OnEditEdge() /编辑弧度函数/ TODO: Add your control notification handler code hereif(m_pCreatWnd-m_Status != E)m_pCreatWnd-m_Status = E;m_pCreatWnd-m_From = TRUE;m_pCreatWnd-Invalidate();void CCreatGraphDlg:OnShowGraph() /该函数用于显示一个图表/ TOD

60、O: Add your control notification handler code here if(m_pCreatWnd-m_Status != D) m_pCreatWnd-m_Status = D;m_pCreatWnd-ChangeDWnd();m_pCreatWnd-m_From = TRUE;m_pCreatWnd-Invalidate();void CCreatGraphDlg:OnOk() /OnOk是当用户按OK按钮(ID是IDOK)时调用。覆盖该函数执行OK按钮动作。 / TODO: Add your control notification handler cod

61、e hereCDialog:OnOK();void CCreatGraphDlg:OnCancel() /当用户在模态对话框或非模态对话框内单击Cancel按钮或按ESC键时,窗体调用这个成员函数/ TODO: Add extra cleanup hereCDialog:OnCancel();3.2 stdafx.cpp和stdafx.h的实现/ stdafx.cpp : source file that includes just the standard includes/DFSearch.pch will be the pre-compiled header/stdafx.obj wil

62、l contain the pre-compiled type information#include stdafx.h/ stdafx.h : include file for standard system include files,/ or project specific include files that are used frequently, but#if !defined(AFX_STDAFX_H_B9C8068F_6175_4F03_B600_59C5D13E7899_INCLUDED_)#define AFX_STDAFX_H_B9C8068F_6175_4F03_B600_59C5D13E7899_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#define VC_EXTRALEAN / Exclude rarely-used stuff from Windows headers#include a

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