




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
桌面日历系统的设计与实现摘要自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使得越来越多的人依赖于电脑办公。而传统的日程记事本逐渐显现出在当今时代的不足和局限性。比如:不便携带,不便查阅,不能自动提醒等等,电脑桌面日历由此孕育而生。很快,桌面日历就以其方便的日期查询,个性化的日程安排,精确地闹钟提醒和人性化的日志系统,美观的界面设计受到广大办公人士的追捧。本设计就是针对当前网络上众多的桌面日历,综合国内外日历系统以及各项基本功能来开发的属于用户私人的个性桌面日历系统。本设计主要采用C#语言+sqlite的设计模式,将日历和日志集成到一款软件上,来实现用的添加日志,设置私密日志,闹钟提醒以及个性的铃声设置等功能,既在最大程度上保护了用户的隐私,又给用户提供了方便快捷的体验,使得用户准确掌握每日的日程安排。本设计按照功能模块分为查看日志,添加日志,闹钟提醒和设置四个模块。本文详细介绍了该日历系统的功能需求,系统设置和具体实现。并且简要介绍了该系统开发采用的过程及方法。关键词:桌面日历;日程;多用户;DesignandDevelopmentofDesktopCalendarSystemAbstractAsPCbecomesmoreandmorepopularsincelastcentury,peoplesworkandlifebecomemoreandmoreconvenient,andpeoplerelyincreasinglyoncomputers.However,theconventionalnotepadhasrevealeditsdeficienciesandlimitations,suchasinconvenience.Andconventionalnotepadcannotalarmautomaticallyalso.So,thedesktopcalendarappears.Becauseofitsconvenientdateinquiry,individualizedschedulemanagementsystem,accurateschedulealarmsystemandfriendlyuserinterface,desktopcalendarishighlyestimatedamongcomputerworkers.Combiningthefunctionsofanumberoftodaysdesktopcalendars,thisdesignaimstodevelopanindividualdesktopcalendarandschedulesystem.ItisdevelopedbyC#andSQL,basedonC/S.Itsfunctionsinclude“multi-userlogin”,“schedulemanagement”,“schedulealarm”,“dateinquiry”,“holidaymanagement”andsoon.Thecalendarisconvenientforuserstocheckthescheduleeveryday,andalsocanprotecteachusersprivateinformation.Thecalendarincludes“userlogin”module,“userregistryandedition”module,“dateandtime”module,“holidaymanage”module,“schedulemanage”module,“schedulealarm”moduleand“database”module.Thisarticledescribesthefunctionalrequirement,systemdesignanddetailimplementation.Italsodescribesthemethodsanddevelopmentprocessofthissysteminbrief.Keywords:DesktopCalendar;Schedule;MultipleUser目录摘要.IAbstract.ii1绪论.11.1课题研究的目的及意义.11.2桌面日历的发展状况.12相关理论基础.22.1C#.22.1.1C#简介.22.1.2C#的优点.32.1.3C#的缺点.42.1.4C#的与语言结构.52.1.5C#的程序执行.82.1.6C#的历史发展.82.2SQLite介绍.92.2.1SQLite简介.92.2.2SQLite的特点.92.2.3使用.net操作SQLite.102.2.4使用SQLite的注意事项.112.2.5SQLite的语言绑定.122.2.6SQLite的客户端管理.132.2.7SQLite的类型.143系统需求分析.153.1用户需求.153.2功能需求.153.3性能需求.164桌面日历的系统功能实现.174.1查看日记模块.174.2添加日志模块.184.3.闹钟提醒模块.245系统测试.275.1主要功能的验证.275.2密码的安全性检验.325.3日志信息的安全性检验.325.4数据库的安全性.336结论.34参考文献.35致谢.36外文文献.3711绪论1.1课题研究的目的及意义随着信息时代的到来,手机,电脑等新生代的通信设备成了通信领域的主力军。并且随着手机和电脑的普及,最终成为通信的主导工具。根据国家统计局的统计,至2010年7月,中国的网名数量超过4.2亿,手机网民数量达到2.77亿。这将意味着我国有超过4.2亿的人民正在享受电子时代所带来的方便和快捷。对于大多数网民而言,手机,电脑已经成为他们生活中不可或缺的一部分,让他们花更多的时间和金钱去购买和使用非电子版的日历,这显然是不实际的。桌面日历系统的诞生也是必然的。本软件所要设计的是一款集传统日历功能和日志功能于一身的个性化的桌面日历系统。同时增加提醒,记事,备忘,存储,密码设置等常用功能,真正意义上实现便捷,有效,实时的查找信息,了解信息。1.2桌面日历的发展状况日历软件真正的诞生源于WINDOWS系统的开发。日历软件是WINDOWS系统的自带软件,主要是方便用户了解时间而附加上去的。但是,作为WINDOWS系统开发者的主要力量西方人,以他们的对事物的了解方式所做出来的软件并非被所有中国的网民所认同。对深受中国文化深深影响的中国网民来说,使用这种日历软件并没有带来什么方便,因为在中国人的日常生活中还有一部日历农历。一些有预见的软件公司找到了商机,开发了诸多的只面向中国网民的桌面日历备忘管理软件。伴随着科学技术的日新月异,桌面日历备忘管理软件得到了长足的发展,并正在不断地更新、完善,同时,出现的问题也愈加明显。由于软件公司在利益的趋势与业内强大的竞争的压迫下,软件公司为所开发的软件能够获得更多的用户使用,在所开发的桌面日历备忘管理软件中捆绑了大量的其他功能软件,例如股市信息、网络电视、游戏等,使得一个本该短小简单的软件变成了一个捆绑了大量功能的“变形金刚”。就我熟悉的八戒桌面工具,其中包含了各种硬件的监测信息、计算器、证券信息、基金信息、网络广播、网络电视、电子字典、各种版本的天气预报等49个功能部件,其功能之强大与齐全让人望尘莫及。实际上,大多数的网民根本就不需要这么多的功能软件。即使有部分网民需要使用这些软件,也必然会选择使用更加专业的软件,而不会用这些看似强大,但又不专业的功能软件。当网民们只想使用一个纯粹的桌面日历备忘录软件时,确又不得不使用那些“变形金刚”,这是多么苦恼的事情。所以开发一款纯粹的桌面日历备忘管理软件存在其开发的价值的。12相关理论基础2.1C#2.1.1C#简介C#读作CSharp。最初它有个更酷的名字,叫做COOL。微软从1998年12月开始了COOL项目,直到2000年2月,COOL被正式更名为C#。在1998年,Delphi语言的设计者Hejlsberg带领着Microsoft公司的开发团队,开始了第一个版本C#语言的设计。在2000年9月,国际信息和通信系统标准化组织为C#语言定义了一个Microsoft公司建议的标准。最终C#语言在2001年得以正式发布。在过去的二十年里,C和C+已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。许多程序员都试图寻找一种新的语言。希望能在功能与效率之间找到一个更为理想的通过权衡点。对于C/C+用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。C#是由微软开发的一种全新的、面向对象的编程语言。作为VisualStudio中的一部分推出。既保持了C+中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。C#语言将在保持C/C+灵活性的基础上为程序员带来更高效的RAD开发方GUI界面。它不仅能用于WEB服务程序的开发,并且还能开发强大的系统级程序。微软称C#是由C和C+派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言C#意在综合VisualBasic的高效率和C+的强大功能。事实上,C#将是完全依靠Windows的最完美产物。那些困绕JavaSDK,MFC和SET的数据库已成为过去。你想放入C#的任何东西,(无论何种语言)只要在Windows的.NET子系统下建立和包装后都可以使用Windows的运行库。C#是一种安全的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。2C#使得C+程序员可以高效的开发程序,且因可调用由C/C+编写的本机原生函数,因此绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。2.1.2C#的优点C#在带来对应用程序的快速开发能力的同时,并没有牺牲C与C+程序员所关心的各种特性。它忠实地继承了C和C+的优点。如果你对C或C+有所了解,你会发现它是那样的熟悉。即使你是一位新手,C#也不会给你带来任何其它的麻烦,快速应用程序开发(RapidApplicationDevelopment,RAD)的思想与简洁的语法将会使你迅速成为一名熟练的开发人员。C#是专门为.NET应用而开发出的语言。这从根本上保证了C#与.NET框架的完美结合。在.NET运行库的支持下,.NET框架的各种优点在C#中表现得淋漓尽致。概括来讲,C#的优点有:第一,简洁的语法。在缺省的情况下,C#的代码在.NET框架提供的“可操纵”环境下运行,不允许直接地内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在C+中被疯狂使用的操作符(例如:“:”、“-”和“.,”)已经不再出现。C#只支持一个“.”,对于我们来说,现在需要理解的一切仅仅是名字的嵌套而已。C#用真正的关键字换掉了那些把活动模板库(ActiveTemplateLibrary,ALT)和COM搞得乱糟糟的伪关键字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX等等。每种C#操作符在.NET类库中都有了新名字。第二,精心的面向对象设计。C#具有面向对象的语言所应有的一切特性:封装、继承与多态性,这并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#建造广泛组件的绝对选择。在C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱(boxing)与拆箱(unboxing)的机制来完成这种操作,而不给使用者带来麻烦。C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。在后面的学习中你很快会发现,C#中没有了全局函数,没有了全局变量,也没有了全局常数。一切的一切,都必须封装在一个类之中。你的代码将具有更好的可读性,并且减少了发生命名冲突的可能。整个C#的类模型是建立在.NET虚拟对象系统(VisualObjectSystem,VOS)的基础之上,其对象模型是.NET基础架构的一部分,而不再是其本身的组成部分。C#具备了良好的开发环境。结合自身强大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软件开发周期的缩短将能使它们更好应付网络经济的竞争。在功能与效率的杠杆上人们终于找到了支点。第三,完整的安全性和错误处理。语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改,.。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。3第四,灵活性和安全性。在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比如:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等,但是,在学习过程中你将发现,它仍然是那样的灵巧。如果需要,C#允许你将某些类或者类的某些方法声明为非安全的。这样一来,你将能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其它的问题。此外,它还提供了一个另外的东西(这样的称呼多少有些不敬)来模拟指针的功能-delegates,代表。再举一个例子:C#不支持类的多继承,但是通过对接口的继承,你将获得这一功能。正是由于其灵活性,C#允许与C风格的需要传递指针型参数的API进行交互操作,DLL的任何入口点都可以在程序中进行访问。C#遵守.NET公用语言规范(CommonLanguageSpecification,CLS),从而保证了C#组件与其它语言组件间的互操作性。元数据(Metadata)概念的引入既保证了兼容性,又实现了类型安全。2.1.3C#的缺点首先,在大量的现有Windows平台上,C#的程序还不能运行,因为C#程序需要.NET运行库为基础,而.NET运行库将作为新一代的Windows(Whistler)的一部分发行,或以ServicePack的形式提交给WindowsMe和Windows2000用户。所以在近期,C#会主要在服务器上得到应用。其次,C#能够使用的组件和库还只有.NET运行库等很少的选择,没有丰富的第三方软件库可用,这需要有一个过程同时各软件开发商的支持也很重要。第三,JAVA的成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口号,但毕竟已经是一种成熟的技术。而C#的鼓吹者目前只有名声不佳的微软,且只能运行在Windows上。实际上这两种语言都不是不可替代的,理智的说,对软件开发商而言,什么工具用的最熟,那就是最好的工具。尤其对C+的使用者C#没有带来任何新东西,因为.NET运行库在C+中也可以使用,没有要换的绝对的理由。作为微软的产品,它不能帮助竞争者-其它操作系统。作为微软的产品,它必须追求稳定、严谨,而不要出现任何错误。C#团队实力确实非常强大,导致C#不会出现任何一个低级错误,就连if(a=false)这样的代码都会出现一个警告。C#的语法、底层库也无时不刻在印证一个理念:我们做的是产品,我们必须保证产品根据我们所期望的工作,而不允许出现任何错误。这是一个优点,也是一个缺点。当我们的需求和产品设计者所期望的一致时,事情会变的非常轻松。但如果需求和期望不同时,麻烦事情会接踵而至。举个例子,当我们希望switch能够贯穿case时,就会出现麻烦-产品设计者不允许用户直接这么做-虽然他有合适的理由,也提供了实现这个功能的替代方法,但用户必须按他说的做。如果这种情况发生在其它产品设计者未考虑到的需求时,那么这个麻烦将会更大。比如当我们想要重载来模拟C+代码时,就会发现这是一个不可能的任务。很多人都有这种感受,直接使用IDE自带的功能开发,做起来非常轻松。但一旦有一种自主的想法时,就很难实现-比如修改软件主题。在C#中,文档注释需求书写xml,但是文档注释却是不能继承的-用户必须手动为每个函数和重载添加注释。C#的很多常用的工具类因为其使用的局限性(如菜鸟用了就会出错)而不被公开。典型的例子如下:4publicstringGetValue(intindex)if(indexthis.Count)thrownewArgumentOutOfromRangeException();returnGetValueInternal(index);internalstringGetValueInternal(intindex)/.C#把用户当成傻子-GetValue会传递一个非法的index,然后自己则使用更高效的GetValueInternal。C#系统库的设计通过对index检测,来确保抛出的是一个符合意义的异常。那用户怎么办?如果在项目中,不检测index是否合法,则显得不严谨,代码质量低(不检查index,会导致index错误时将出现IndexOfRangeException,而不是ArgumentOutOfRangeException,这会让第三方用户迷惑:到底应该捕获哪个异常)。而检测则是在浪费代码量,一个函数尚且如此,一个项目可见一斑。此外,用户经常需要使用一个类来实现功能,但其实这个类在系统库中是存在的,但由于它只是一个内部使用的功能模块所以不是public。这时用户只好另起炉灶。这也不难解释为了明明有Buffer.Copy这个方法,系统内部却只会调用Buffer.CopyInternal(不是public的)而不是Buffer.Copy,而Buffer.CopyInternal却是用户真正所需要的函数。总体看,C#不适合做项目。它是一个很大的坑,因为它会通过各种方式消耗用户的时间。特别是追求完美的人,想要紧跟微软的节奏创造完美,那简直是在拿时间开玩笑。而对于仅仅想做完项目的人,也会越做越烦:明明简单的事情要搞这么复杂。即使如此,C#终究也只是一个语言,一个工具。客观评价一个工具的好坏没有实际意义,关键看用户能否熟练使用,并且扬长避短。没有最好的语言,但有最适合自己的语言。2.1.4C#的与语言结构类:在C#中类的声明与C+和Java很相似。但是,不象C+,C#结构体与类是不支持继承。但是,与Java相同的是,一个结构体可以实现接口(interface)。Java的关键字import已经被替换成using,它起到了同样的作用。类可以是抽象的和不可继承的:一个被申明成abstract的类不能被实例化,它只能被用做一个基类,C#关键字lock就像Java关键字final,它申明一个类不是抽象的,但是它也不能被用做另一个类的基类界面:就象在Java中一样,一个界面是一组方法集合的抽象定义。当一个类或结构体实现一个界面的时候,它必须实现这个界面中定义的所有方法。一个单一的类可以实现几个界面,也许以后会出现一些微妙的差别,但是这个特点看起来与Java相比没有变化。在Java中,一个接口是一组方法集合的抽象定义.当一个类或结构体实现一个接口的时候,它必须实现这个接口中定义的所有方法.一个单一的类可以实现几个接口.也许5以后会出现一些微妙的差别,但是这个特点看起来与Java相比没有变化。布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有直接的转换过程.布尔常量true和false是C#中的关键字.错误处理:如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:由底层.NET框架进行自动内存垃圾回收。布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型,从布尔类型到其他类型没有直接的转换过程,布尔常量true和false是C#中的关键字。错误处理:如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程。内存管理:由底层.NET框架进行自动内存垃圾回收。一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。接口:是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没有实际的表示形式,其他类型必须转换为接口类型。一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为成员。强类型:C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,int可以转换成long、float、double、decimal,反之必须显式的转换。编译:程序直接编译成标准的二进制可执行形式.但C#的源程序并不是被编译成二进制可执行形式,而是一种中间语言(IL),类似于JAVA字节码。如果前面的HelloWorld程序被保存成一个c#与权威指南教程文本文件并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序。C#程序不能直接编译成标准的二进制可执行形式,与Java类似,它被编译成为中间代码(MicrosoftIntermediateLanguage),然后通过.NETFramework的虚拟机被称之为通用语言执行层(CommonLanguageRuntime,CLR)执行。一个C#的结构体与C+的结构体是相似的,因为它能够包含数据声明和方法.但是,不象C+,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现接口。预编译:C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制.可用的预编译指令有:#define,#undef,#if,#elif,#else,#endif,#warning,#error,#line。没有了#include伪指令,无法再用#define语句对符号赋值,所以就不存在源代码替换的概念-这些符号只能用在#if和#elif伪指令里.在#line伪指令里的数字(和可选的名字)能够修改行号还有#warning和#error输出结果的文件名。操作符重载:一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载.能够被重载的单目操作符是:+-!+-truefalse能够被重载的二元运算符是:+、-、*、/、%、&、|、=、!=、=、/此类为一个静态类,主要完成md5加密功能/publicclassMd5Helper/根据一个明文字符串得到32位加密的密文/明文23/密文publicstaticstringMd5Encript(stringplainText)MD5md5=MD5.Create();byteplainBytes=System.Text.Encoding.UTF8.GetBytes(plainText);byteencriptBytes=md5.ComputeHash(plainBytes);StringBuildersb=newStringBuilder();for(inti=0;i3同时7同时=!=!=:C#独有的特点C#最引人入胜的地方是它和Java的不同,而不是相似的地方.这一节(和这个系列第二部分的大部分地方)讲述了C#实现的和Java不同的地方或者Java根本没有的特点.中间代码:微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地.微软公司很小心的声称MSIL不是解释性的,而是被编译成了机器码.它也明白许多-如果不是大多数的话-程序员认为Java程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决定了基于MSIL的程序(指的是用C#,VisualBasic,ManagedC+-C+的一个符合CLS的版本-等语言编写的程序)将在性能上超过解释性的Java代码.当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布.但是JavaJIT编译器的普遍存在使得Java和C#在性能上相对相同.象C#是编译语言而Java是解释性的,之类的声明只是商业技巧.Java的中间代码和MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码.命名空间中的申明:当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体.必须使用using关键字来引用其他命名空间的内容.基本的数据类型:C#拥有比C,C+或者Java更广泛的数据类型.这些类型是bool,byte,ubyte,short,ushort,int,uint,long,ulong,float,double,和decimal.象Java一样,所有这些类型都有一个固定的大小.又象C和C+一样,每个数据类型都有有符号和无符号两种类型.与Java相同的是,一个字符变量包含的是一个16位的Unicode字符.C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10进制数字.两个基本类:一个名叫object的类是所有其他类的基类.而一个名叫string的类也象object一样是这个语言的一部分.作为语言的一部分存在意味着编译器有可能使用它-无论何时你在程序中写入一句带引号的字符串,编译器会创建一个string对象来保存它.参数传递:方法可以被声明接受可变数目的参数.缺省的参数传递方法是对基本数据类型进行值传递.ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值.out关键字也能声明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值.与COM的集成:C#对Windows程序最大的卖点可能就是它与COM的无缝集成了,COM就是微软的Win32组件技术.实际上,最终有可能在任何.NET语言里编写COM客户和服务器端.C#编写的类可以子类化一个以存在的COM组件;生成的类也能被作为一个COM组件使用,然后又能使用,比方说,JScript语言子类化它从而得到第三个COM组件.这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用用任何.NET语言子类化.索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样)以外是相似的.publicclassListBox:Control55privatestringitems;publicstringthisintindexgetreturnitemsindex;setitemsindex=value;Repaint();可以用一个循环器来匿名引用字符串内部数组成员,就象下面这样:ListBoxlistBox=.;listBox0=hello;Console.WriteLine(listBox0);代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方法指针就行了.代理对象可以被移动到另一个地方,然后可以通过访问它来对已存在的方法进行类型安全的调用.一个反馈方法是代理的特例.event关键字用在将在事件发生的时候被当成代理调用的方法声明中.三结束语这次的基于人事管理系统的设计与实现就是利用C#技术来实现的,本文就是对这次设计所应用到的C#技术的实现、主要应用做了简要的介绍,从简单性易用性等几方面对C#技术相对于其他开发软件的优势进行了阐述。利用C#技术可以轻松开发一个简单的并且具有可扩展、操作性强及可用性强的管理系统,完全符合本次人事管理系统设计的需求。56数据库管理系统的介绍RaghuRamakrishnan数据库(database,有时拼作database)又称为电子数据库,是专门组织起来的一组数据或信息,其目的是为了便于计算机快速查询及检索。数据库的结构是专门设计的,在各种数据处理操作命令的支持下,可以简化数据的存储,检索,修改和删除。数据库可以存储在磁盘,磁带,光盘或其他辅助存储设备上。数据库由一个或一套文件组成,其中的信息可以分解为记录,每一记录又包含一个或多个字段(或称为域)。字段是数据存取的基本单位。数据库用于描述实体,其中的一个字段通常表示与实体的某一属性相关的信息。通过关键字以及各种分类(排序)命令,用户可以对多条记录的字段进行查询,重新整理,分组或选择,以实体对某一类数据的检索,也可以生成报表。所有数据库(最简单的除外)中都有复杂的数据关系及其链接。处理与创建,访问以及维护数据库记录有关的复杂任务的系统软件包叫做数据库管理系统(DBMS)。DBMS软件包中的程序在数据库与其用户间建立接口。(这些用户可以是应用程序员,管理员及其他需要信息的人员和各种操作系统程序)。DBMS可组织,处理和表示从数据库中选出的数据元。该功能使决策者能搜索,探查和查询数据库的内容,从而对在正规报告中没有的,不再出现的且无法预料的问题做出回答。这些问题最初可能是模糊的并且(或者)是定义不恰当的,但是人们可以浏览数据库直到获得所需的信息。简言之,DBMS将“管理”存储的数据项,并从公共数据库中汇集所需的数据项以回答非程序员的询问。DBMS由3个主要部分组成:(1)存储子系统,用来存储和检索文件中的数据;(2)建模和操作子系统,提供组织数据以及添加,删除,维护,更新数据的方法;(3)用户和DBMS之间的接口。在提高数据库管理系统的价值和有效性方面正在展现以下一些重要发展趋势;1.管理人员需要最新的信息以做出有效的决策。2.客户需要越来越复杂的信息服务以及更多的有关其订单,发票和账号的当前信息。3.用户发现他们可以使用传统的程序设计语言,在很短的一段时间内用数据库系统开发客户应用程序。4.商业公司发现了信息的战略价值,他们利用数据库系统领先于竞争对手。数据库中数据的性质1.数据整体性:数据库是一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。2.数据共享性:数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。57数据管理的诞生数据库的历史可以追溯到五十年前,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。然而,1951年雷明顿兰德公司(RemingtonRandInc.)的一种叫做UnivacI的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。1956年IBM生产出第一个磁盘驱动器theModel305RAMAC。此驱动器有50个盘片,每个盘片直径是2英尺,可以储存5MB的数据。使用磁盘最大的好处是可以随机地存取数据,而穿孔卡片和磁带只能顺序存取数据。1951:Univac系统使用磁带和穿孔卡片作为数据存储。数据库系统的萌芽出现于60年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。数据模型是数据库系统的核心和基础,各种DBMS软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。最早出现的是网状DBMS,是美国通用电气公司Bachman等人在1961年开发成功的IDS(IntegratedDataStore)。1961年通用电气公司(GeneralElectricCo.)的CharlesBachman成功地开发出世界上第一个网状DBMS也是第一个数据库管理系统集成数据存储(IntegratedDataStoreIDS),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。IDS具有数据模式和日志的特征。但它只能在GE主机上运行,并且数据库只有一个文件,数据库所有的表必须通过手工编码来生成。之后,通用电气公司一个客户BFGoodrichChemical公司最终不得不重写了整个系统。并将重写后的系统命名为集成数据管理系统(IDMS)。网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,在关系数据库出现之前网状DBMS要比层次DBMS用得普遍。在数据库发展史上,网状数据库占有重要地位。层次型DBMS是紧随网络型数据库而出现的。最著名最典型的层次数据库系统是IBM公司在1968年开发的IMS(InformationManagementSystem),一种适合其主机的层次数据库。这是IBM公司研制的最早的大型数据库系统程序产品。从60年代末产生起,如今已经发展到IMSV6,提供群集、N路数据共享、消息队列共享等先进特性的支持。这个具有30年历史的数据库产品在如今的WWW应用连接、商务智能应用中扮演着新的角色。1973年Cullinane公司(也就是后来的Cullinet软件公司),开始出售Goodrich公司的IDMS改进版本,并且逐渐成为当时世界上最大的软件公司。关系数据库的由来网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园清明课件
- 涉外法治面试题及答案
- 外出进修培训
- 物理乙卷试题及答案
- 会计实物考试题库及答案
- 胃癌微创治疗围手术期护理
- 2025年元宇宙社交平台虚拟社交空间设计与用户体验研究报告
- 数字化营销视角下运动品牌用户体验提升与市场拓展研究报告
- 2025年现场演艺市场复苏趋势与创新演出形式前瞻研究报告
- 2025年能源行业智能电网在数字化转型中的能源调度与管理优化报告
- 检验检测机构质量手册程序文件质量记录合集(依据2023年版评审准则)
- 2025-2030工程监理行业市场深度分析及竞争格局与投资价值研究报告
- 2024-2025学年度高中物理期中考试卷
- 福州一号线盾构法地铁工程整体施工组织设计
- GB 10770-2025食品安全国家标准婴幼儿罐装辅助食品
- 临时锅炉工用工合同标准文本
- 单病种质量管理实施方案
- 旅游保险产品讲解
- 装修业务居间推广合同
- 卵巢交界性肿瘤诊治进展
- 持续葡萄糖监测临床应用专家共识2024解读
评论
0/150
提交评论