《毕业设计论文基于C的图片浏览器设计》由会员分享,可在线阅读,更多相关《毕业设计论文基于C的图片浏览器设计(23页珍藏版)》请在金锄头文库上搜索。
1、摘 要图片浏览器是日常应用中必可少的应用软件之一,本次毕业设计中,运用C#来设计图片浏览器。文中详细叙述了浏览器的详细制作过程。采用C#提供的控件数组来实现,并对可视区内的图形进行局部更新方法进行了详述。系统功能主要有图片的浏览、预览、图片拷贝、删除、粘贴等功能。并增加了各种键盘控制功能。实现了对多种格式图形的浏览,包括gif、JPG、BMP、ICO等图片格式。本图片浏览程序具有实用性、稳定性、易用性,和可维护性的特点,系统留了扩展接口,用户可以根据实际需要对其功能进行扩充、完善与修改,使其符合自己的要求。总之,本系统是一个逐步完善的系统。关键词:图片浏览器;控件数组;局部更新目 录摘 要II
2、I目 录IV第一章 开发环境的介绍11.1 C#的由来11.2 C#的特点11.3 .NET开发平台3第二章 问题的定义及可行性研究52.1问题的定义52.2可行性研究5第三章 需求分析63.1需求分析阶段的任务63.2系统功能的详细分析6第四章 总体设计74.1总体设计阶段的任务74.2图片浏览软件功能的具体分析8第五章 详细设计95.1系统功能的详细设计与实现95.1.1 MainForm窗体:95.1.2 FrmCreateFolder窗体105.1.3 FrmLoadPic窗体105.1.4 PicInfo.cs窗体115.1.5 Folder.cs窗体115.1.6 FrmCreat
3、eFolder.cs窗体125.1.7 FrmLoadPic.cs窗体135.1.8 MainForm.cs窗体145.2关键技术介绍15第6章 测 试176.1软件测试的目的和方法176.2 软件测试的步骤17第7章 总结与展望18致 谢19附录120第一章 开发环境的介绍1.1 C#的由来在过去的一段时间中,C和C+一直是商业软件的开发领域中最具生命力的语言。虽然他们为程序员提供了丰富的功能。高度的灵活性和强大的底层控制力,但是利用C、C+语言开发的Windows应用程序显然复杂了很多,同时也牺牲了一定的效率与VB相比,同等级的C、C+完成一个程序往往需要更多的时间来完成开发,因此各层人士
4、都试图寻找一种新的语言,希望能在功能和功率之间找到一种更为理想的平衡点。针对这一问题,微软公司与2000年6月26日正式发布C#。C#是一种最新的、面向对象的编程语言,C#使得程序员可以在Miscrsoft开发的最新的.NET平台上快速的编写应用程序。C#是一种简单、现代、面向对象且类型安全的编程语言,C#语言从C和C+语言演化而来,同时C#具备了应用程序快速开发(Rapid Application Development,RAD)语言的高效率和C+固有的强大能力,并吸收了Java和Delphi等语言的特点和精华,是.NET开发的首选语言。1.2 C#的特点1 .简洁易用的语法C#主要从C和C
5、+继承而来,同时吸收Java和Delphi的优点,摒弃了C和C+中一些比较复杂而且不常用的语法元素比如父类继承。使用C和C+时最令程序员生畏的语法是什么?大多数程序员会说:指针!C和C+中的指针虽然功能强大,但极不安全,稍不小心就会导致程序出错,甚至导致系统奔溃。C#取消了指针,不允许直接对内存进行操作,让代码运行在安全的环境中。此外,C#语法的很多变化无不体现了C#的简洁之美。2 .自动的资源回收机制C#与.NET的完美集成,使得C#完全拥有.NET的自动回收机制。在windows中,提供给程序使用的一切软、硬件统称为资源。比如程序中需要在窗口上画图的笔就是一种资源,在早期的windows版
6、本中,程序使用完资源后应该及时解放,否则会导致系统资源不足而运行变慢。在.NET框架中,由于资源使用完后由系统自动清理,所以,编写C#程序,不必小心翼翼地保证及时释放资源,从而可以把更多的精力放在程序编写的逻辑上。3 .与WEB的紧密结合网上办公和电子商务在各行各业中的到越来越广泛的的应用,B/S模式程序的市场需求越来越多。在微软的.NET开发套件中,C#与ASP.NET是相互融合的。ASP.NET的应用程序可以使用VB.NET语法,也可以使用C#语法。使用C#语法编写的ASP.NET结构更严谨,运行更高效。由于有了WEB服务框架的帮助,对程序员来说,网络服务看起来就像是C#的本地对象。程序员
7、们能够利用他们已有的面对对象的只是和技巧开发WEB服务。仅需要使用简单的C#语言结构,C#组件就能够方便地为WEB服务,并允许它们通过Internet被运行在任何操作系统上的任何语言所调用。4 .完整的安全性与错误处理语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错,即使是最熟练的程序员也不例外,如忘记变量的初始化,对不属于自己管理范围内存的空间进行修改等。这些错误常常产生难以预计的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价是让人无法估计的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为减少开发中的
8、错误,C#帮助开发者通过更少的代码完成相同的功能,这部大减轻了编程人员的工作量同时更有效的避免了从错误的产生。5 .版本处理技术升级软件系统中的组件(模块)是一件容易产生错误的工作,在代码的修改中可能对现存的软件产生影响,很有可能导致程序的奔溃。为了帮助开发人员处理这些问题C#在语言中内置了版本控制功能。C#提供内置的版本支持来开发费用,使用C#将会使开发人员更轻易地开发和维护各种商业软件。6 .灵活性和兼容性在简化语法的同时,C#并没有失去灵活性。尽管C#不是一种无限制语言,比如:他不能用来开发硬件驱动程序,在默认的状态下没有指针等,但是学习过程中你将发现,它仍然是那样的灵巧。7. 快速应用
9、开发(RAD)功能 支持快速开发(Rapid application development)可以说是目前开发语言最为重要的一大功能,也正是C/C+的致命伤。网络时代应用系统的开发必须按照网络时代的速度来进行,支持快速开发可以使得开发人员的开发效率倍增,从而使得他们可以从繁重的重复性劳动中解放出来。c#的RAD功能主要表现在例如垃圾收集、指代等众多特性上。垃圾收集机制将减轻开发人员对内存的管理负担,而指代功能更是可以让开发者不经过内部类就调用函数。利用c#的这些功能,可以使开发者通过较少的代码来实现更强大的应用程序,并且能够更好地避免错误发生,从而缩短了应用系统的开发周期。8. 语言的自由性用
10、C#编写的程序能最大程度地和任何支持.NET的语言互相交换信息。能够继承和使用任何语言所编写的程序可以称得上是知识的继承,这样做的好处是节省了大量的工作,你不必把COBOL等语言强行改成另一种语言,.NET让各种语言真正地互相交流了。9. 强大的Web服务端组件在c#的Web编程中,最让人兴奋的是Web服务端的组件,它们不仅包括传统组件,还包括那些能够自动连接五花八门服务的可编程组件,你可以用c#编写自己的服务器端组件,服务器端组件和标准的HTML提供的服务自然是不一样的,使用它们可以更自由、更容易地进行数据绑定。不久,那些视频服务器组件也很快会出现,有了这些强大的组件,我们可以设计出功能更加
11、强劲的企业级分布式应用系统。10. 支持跨平台随着互联网应用程序的应用越来越广,人们逐渐意识到由于网络系统错综复杂,使用的硬件设备和软件系统各不相同,开发人员所设计的应用程序必须具有强大的跨平台性。C#编写的应用程序就具有强大的跨平台性,这种跨平台性也包括了c#程序的客户端可以运行在不同类型的客户端上,比如PDA、手机等非PC装置。11. 与XML的融合由于XML技术真正融入到了.NET和c#之中,c#的编程变成了真正意义的网络编程,甚至可以说.NET和c#是专为XML而设计,使用C#的程序员可以轻松用c#内含的类来使用XML技术。就这方面而言,目前c#提供给了程序员更多的自由和更好的性能来使
12、用XML。12. 对C+的继承C#继承并保留了C+强大的功能,例如, c#保留了类型安全的检测和重载功能,c#还提供了一些新功能取代了一些原来的ANSI C预处理程序的功能,提高了语言的类型安全等安全性1.3 .NET开发平台.NET是一个用于建立应用程序的平台,它在内部封装了大量的功能强大的应用程序接口函数(API),利用这些函数可以开发各类Windows应用软件。.NET还是一个开发平台,它向广大的程序员提供了功能强大的集成开发环境(IDE)Visual Studio .NET。在未来,.NET还是一个运行、发布应用程序的平台,它可以将应用程序作为一种服务,通过Internet提供给分布在
13、世界各个角落的网络用户。.NET平台对早期的开发平台作了重大改进。.NET提供了一种新的软件开发模型,它允许用不同程序设计语言创建的应用程序能相互通信。这个平台也允许开发者创建基于Web的应用程序,这些应用程序能够发布到多种不同的设备(甚至是无线电话)和台式机上。Microsoft的.NET 计划为利用Internet和Web进行软件的开发、设计和使用开辟了广阔的新前景。.NET策略的一个主要方面是它与具体的语言或平台无关。它不需求程序员使用惟一的一种程序设计语言。程序员可以将多种与.NET兼容的语言(图1-1)结合起来开发.NET应用程序。多个程序员可以共同参与同一个软件项目,每个人可以使用
14、自己最精通的.NET语言(如Visual C+ .NET、C#、Visual Basic和其他许多语言)来编写代码。第二章 问题的定义及可行性研究2.1问题的定义开发的图片浏览器要具备良好的人机交互界面、对图片实现分目录管理用户可以自行创建并删除存放图片的目录、对目录下的图片以缩略图的方式进行浏览、以实际大小或适合窗体大小浏览、对同目录下的图片以自动播放形式进行浏览并可以调整播放时间。图片浏览器难点在于缩略图的显示,如果一个目录中有很多图片,而每张图片的尺寸都比较大,把每张图片都缩小并显示出来需要花费很长的时间,这样会导致应用程序的假死现象(在没有完成某项工作之前,应用程序无法进行其他操作)。
15、2.2可行性研究处理这个问题可以采取多线程的方法,把显示缩略图的过程放在一个线程内,这样在显示缩略图的过程中可以进行其他操作。另外一种解决方法是给每张图片生成一张缩略图,并存放于数据库中,在浏览缩略图时,直接从数据库中读取缩略图并显示。由于缩略图非常小,并且是未经压缩的格式,读取速度非常快,这样就能以很快的速度显示完所有图片的缩略图。本次设计另辟蹊径,以达到类似效果。在导入图片的同时,为图片生成100*100像素的bmp格式的缩略图(如果原图的长和宽都小于100像素,则按原图尺寸生成缩略图),把原图和缩略图分别存放于两个目录内,并一一对应。通过原图的文件名可以找到相对应的缩略图,如果缩略图不存在,则即时生成相应的缩略图。实践证明这样做的效果令人满意,能比较顺畅的现实多张图片的缩略图。第三章 需求分析3.1需求分析阶段的任务 1.分析该设计要实现哪些功能(1)可以对目录下的图片以缩略的方式进行浏览,并在浏览过程中可以删除一张或多张图片。(2)可以以实际大小或适合窗体尺寸的方式对单张图片进行浏览,并可以切换到同目录下的上一张图片或下一张图片浏览。也可以对同目录下的