当前位置:首页>> >>


桌面日历系统的设计与实现.rar

收藏

资源目录
    文档预览:
    编号:20180914220237694    类型:共享资源    大小:678.51KB    格式:RAR    上传时间:2018-09-15
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    45
    金币
    关 键 词:
    桌面 日历 系统 设计 实现
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸桌面日历系统的设计与实现摘要自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使得越来越多的人依赖于电脑办公。而传统的日程记事本逐渐显现出在当今时代的不足和局限性。比如:不便携带,不便查阅,不能自动提醒等等,电脑桌面日历由此孕育而生。很快,桌面日历就以其方便的日期查询,个性化的日程安排,精确地闹钟提醒和人性化的日志系统,美观的界面设计受到广大办公人士的追捧。本设计就是针对当前网络上众多的桌面日历,综合国内外日历系统以及各项基本功能来开发的属于用户私人的个性桌面日历系统。本设计主要采用 C#语言+sqlite 的设计模式,将日历和日志集成到一款软件上,来实现用的添加日志,设置私密日志,闹钟提醒以及个性的铃声设置等功能,既在最大程度上保护了用户的隐私,又给用户提供了方便快捷的体验,使得用户准确掌握每日的日程安排。本设计按照功能模块分为查看日志,添加日志,闹钟提醒和设置四个模块。本文详细介绍了该日历系统的功能需求,系统设置和具体实现。并且简要介绍了该系统开发采用的过程及方法。关键词 :桌面日历;日程;多用户;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸Design and Development of Desktop Calendar SystemAbstractAs PC becomes more and more popular since last century, people’s work and lifebecome more and more convenient, and people rely increasingly on computers.However, the conventional notepad has revealed its deficiencies and limitations, suchas inconvenience. And conventional notepad can not alarm automatically also. So, the desktop calendar appears. Because of its convenient date inquiry, individualized schedule management system, accurate schedule alarm system and friendly user interface, desktop calendar is highly estimated among computer workers.Combining the functions of a number of today’s desktop calendars, this design aims to develop an individual desktop calendar and schedule system. It is developed by C# and SQL, based on C/S. Its functions include “multi-user login”, “schedule management”, “schedule alarm”, “date inquiry”, “holiday management”and so on.The calendar is convenient for users to check the schedule everyday, and also canprotect each user's private information.The calendar includes “user login”module, “user registry and edition” module, “date and time” module, “holiday manage” module, “schedule manage” module, “schedule alarm”module and “database‖”module. This article describes the functional requirement, system design and detail implementation. It also describes the methods and development process of this system in brief.Key words: Desktop Calendar;Schedule;Multiple User太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸目录摘要 ....................................................................................................................................IAbstract..............................................................................................................................ii1 绪论 ..............................................................................................................................11.1 课题研究的目的及意义 ...................................................................................11.2 桌面日历的发展状况 .......................................................................................12 相关理论基础 ..............................................................................................................22.1 C#......................................................................................................................22.1.1 C#简介 ...................................................................................................22.1.2 C#的优点 ...............................................................................................32.1.3 C#的缺点 ...............................................................................................42.1.4 C#的与语言结构 ...................................................................................52.1.5 C#的程序执行 .......................................................................................82.1.6 C#的历史发展 .......................................................................................82.2 SQLite 介绍 ......................................................................................................92.2.1 SQLite 简介 ...........................................................................................92.2.2 SQLite 的特点 .......................................................................................92.2.3 使用.net 操作 SQLite ..........................................................................102.2.4 使用 SQLite 的注意事项 ....................................................................112.2.5 SQLite 的语言绑定 .............................................................................122.2.6 SQLite 的客户端管理 .........................................................................132.2.7 SQLite 的类型 .....................................................................................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外文文献 ..........................................................................................................................37太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸11 绪论1.1 课题研究的目的及意义随着信息时代的到来,手机,电脑等新生代的通信设备成了通信领域的主力军。并且随着手机和电脑的普及,最终成为通信的主导工具。根据国家统计局的统计,至2010 年 7 月,中国的网名数量超过 4.2 亿,手机网民数量达到 2.77 亿。这将意味着我国有超过 4.2 亿的人民正在享受电子时代所带来的方便和快捷。对于大多数网民而言,手机,电脑已经成为他们生活中不可或缺的一部分,让他们花更多的时间和金钱去购买和使用非电子版的日历,这显然是不实际的。桌面日历系统的诞生也是必然的。本软件所要设计的是一款集传统日历功能和日志功能于一身的个性化的桌面日历系统。同时增加提醒,记事,备忘,存储,密码设置等常用功能,真正意义上实现便捷,有效,实时的查找信息,了解信息。1.2 桌面日历的发展状况 日历软件真正的诞生源于 WINDOWS 系统的开发。日历软件是 WINDOWS 系统的自带软件,主要是方便用户了解时间而附加上去的。但是,作为 WINDOWS 系统开发者的主要力量——西方人,以他们的对事物的了解方式所做出来的软件并非被所有中国的网民所认同。对深受中国文化深深影响的中国网民来说,使用这种日历软件并没有带来什么方便,因为在中国人的日常生活中还有一部日历——农历。一些有预见的软件公司找到了商机,开发了诸多的只面向中国网民的桌面日历备忘管理软件。伴随着科学技术的日新月异,桌面日历备忘管理软件得到了长足的发展,并正在不断地更新、完善,同时,出现的问题也愈加明显。由于软件公司在利益的趋势与业内强大的竞争的压迫下,软件公司为所开发的软件能够获得更多的用户使用,在所开发的桌面日历备忘管理软件中捆绑了大量的其他功能软件,例如股市信息、网络电视、游戏等,使得一个本该短小简单的软件变成了一个捆绑了大量功能的“变形金刚” 。就我熟悉的八戒桌面工具,其中包含了各种硬件的监测信息、计算器、证券信息、基金信息、网络广播、网络电视、电子字典、各种版本的天气预报等 49 个功能部件,其功能之强大与齐全让人望尘莫及。实际上,大多数的网民根本就不需要这么多的功能软件。即使有部分网民需要使用这些软件,也必然会选择使用更加专业的软件,而不会用这些看似强大,但又不专业的功能软件。当网民们只想使用一个纯粹的桌面日历备忘录软件时,确又不得不使用那些“变形金刚” ,这是多么苦恼的事情。所以开发一款纯粹的桌面日历备忘管理软件存在其开发的价值的。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸12 相关理论基础2.1 C#2.1.1 C#简介C#读作 C Sharp。最初它有个更酷的名字,叫做 COOL。微软从 1998 年 12 月开始了 COOL 项目,直到 2000 年 2 月,COOL 被正式更名为 C#。在 1998 年,Delphi 语言的设计者 Hejlsberg 带领着 Microsoft 公司的开发团队,开始了第一个版本 C#语言的设计。在 2000 年 9 月,国际信息和通信系统标准化组织为 C#语言定义了一个 Microsoft公司建议的标准。最终 C#语言在 2001 年得以正式发布。在过去的二十年里,C 和 C++已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。许多程序员都试图寻找一种新的语言。希望能在功能与效率之间找到一个更为理想的通过权衡点。对于 C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。C#是由微软开发的一种全新的、面向对象的编程语言。作为 Visual Studio 中的一部分推出。既保持了 C++中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。C#使得 C++程序员可以高效的开发程序,而绝不损失 C/C++原有的强大的功能。因为这种继承关系,C#与 C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向 C#。C#语言将在保持 C/C++灵活性的基础上为程序员带来更高效的 RAD 开发方 GUI 界面。它不仅能用于 WEB 服务程序的开发,并且还能开发强大的系统级程序。微软称 C#是由 C 和 C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言￿C# 意在综合 Visual Basic 的高效率和 C++的强大功能。事实上,C#将是完全依靠 Windows 的最完美产物。那些困绕 Java SDK, 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.2 C#的优点C#在带来对应用程序的快速开发能力的同时,并没有牺牲 C 与 C++程序员所关心的各种特性。它忠实地继承了 C 和 C++的优点。如果你对 C 或 C++有所了解,你会发现它是那样的熟悉。即使你是一位新手,C#也不会给你带来任何其它的麻烦,快速应用程序开发(Rapid Application Development,RAD)的思想与简洁的语法将会使你迅速成为一名熟练的开发人员。C#是专门为.NET 应用而开发出的语言。这从根本上保证了 C#与.NET 框架的完美结合。在.NET 运行库的支持下,.NET 框架的各种优点在 C#中表现得淋漓尽致。概括来讲,C#的优点有:第一,简洁的语法。在缺省的情况下,C#的代码在.NET框架提供的“可操纵”环境下运行,不允许直接地内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在 C++中被疯狂使用的操作符(例如:“::” 、“->”和“.,” )已经不再出现。C#只支持一个“.” ,对于我们来说,现在需要理解的一切仅仅是名字的嵌套而已。C#用真正的关键字换掉了那些把活动模板库(Active Template Library,ALT)和 COM 搞得乱糟糟的伪关键字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX 等等。每种 C#操作符在.NET 类库中都有了新名字。第二,精心的面向对象设计。C#具有面向对象的语言所应有的一切特性:封装、继承与多态性,这并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#建造广泛组件的绝对选择。在 C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱(boxing)与拆箱(unboxing)的机制来完成这种操作,而不给使用者带来麻烦。C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。在后面的学习中你很快会发现,C#中没有了全局函数,没有了全局变量,也没有了全局常数。一切的一切,都必须封装在一个类之中。你的代码将具有更好的可读性,并且减少了发生命名冲突的可能。整个 C#的类模型是建立在.NET 虚拟对象系统(Visual Object System,VOS)的基础之上,其对象模型是.NET 基础架构的一部分,而不再是其本身的组成部分。C#具备了良好的开发环境。结合自身强大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软件开发周期的缩短将能使它们更好应付网络经济的竞争。在功能与效率的杠杆上人们终于找到了支点。第三,完整的安全性和错误处理。语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改,......。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸3第四,灵活性和安全性。在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比如:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等,但是,在学习过程中你将发现,它仍然是那样的灵巧。如果需要,C#允许你将某些类或者类的某些方法声明为非安全的。这样一来,你将能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其它的问题。此外,它还提供了一个另外的东西(这样的称呼多少有些不敬)来模拟指针的功能--delegates,代表。再举一个例子:C#不支持类的多继承,但是通过对接口的继承,你将获得这一功能。正是由于其灵活性,C#允许与 C 风格的需要传递指针型参数的 API 进行交互操作,DLL 的任何入口点都可以在程序中进行访问。C#遵守.NET 公用语言规范(Common Language Specification,CLS),从而保证了 C#组件与其它语言组件间的互操作性。元数据(Metadata)概念的引入既保证了兼容性,又实现了类型安全。2.1.3 C#的缺点首先,在大量的现有 Windows 平台上,C# 的程序还不能运行,因为 C# 程序需要 .NET 运行库为基础,而 .NET 运行库将作为新一代的 Windows(Whistler )的一部分发行,或以 Service Pack 的形式提交给 Windows Me 和 Windows 2000 用户。所以在近期,C# 会主要在服务器上得到应用。其次,C# 能够使用的组件和库还只有 .NET 运行库等很少的选择,没有丰富的第三方软件库可用,这需要有一个过程￿ 同时各软件开发商的支持也很重要。第三,JAVA 的成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口号,但毕竟已经是一种成熟的技术。而 C# 的鼓吹者目前只有名声不佳的微软,且只能运行在 Windows 上。实际上这两种语言都不是不可替代的,理智的说,对软件开发商而言,什么工具用的最熟,那就是最好的工具。尤其对 C++的使用者￿C# 没有带来任何新东西,因为.NET 运行库在 C++中也可以使用,没有要换的绝对的理由。 作为微软的产品,它不能帮助竞争者----其它操作系统。作为微软的产品,它必须追求稳定、严谨,而不要出现任何错误。C#团队实力确实非常强大,导致 C#不会出现任何一个低级错误,就连 if(a = false) 这样的代码都会出现一个警告。C#的语法、底层库也无时不刻在印证一个理念:我们做的是产品,我们必须保证产品根据我们所期望的工作,而不允许出现任何错误。这是一个优点,也是一个缺点。当我们的需求和产品设计者所期望的一致时,事情会变的非常轻松。但如果需求和期望不同时,麻烦事情会接踵而至。 举个例子,当我们希望 switch 能够贯穿 case时,就会出现麻烦----产品设计者不允许用户直接这么做----虽然他有合适的理由,也提供了实现这个功能的替代方法,但用户必须按他说的做。如果这种情况发生在其它产品设计者未考虑到的需求时,那么这个麻烦将会更大。比如当我们想要重载>>来模拟 C++代码时,就会发现这是一个不可能的任务。很多人都有这种感受,直接使用 IDE 自带的功能开发,做起来非常轻松。但一旦有一种自主的想法时,就很难实现----比如修改软件主题。在 C#中,文档注释需求书写 xml,但是文档注释却是不能继承的----用户必须手动为每个函数和重载添加注释。C#的很多常用的工具类因为其使用的局限性(如菜鸟用了就会出错)而不被公开。典型的例子如下:太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸4public string GetValue(int index) {if(index this.Count) throw new ArgumentOutOfromRangeException();return GetValueInternal(index);}internal string GetValueInternal(int index) {//...}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.4 C#的与语言结构类:在 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 字节码。如果前面的 Hello World 程序被保存成一个 c#与 asp.net 权威指南教程文本文件并被命名为 Hello.cs,它将被编译成命名 Hello.exe 的可执行程序。C#程序不能直接编译成标准的二进制可执行形式,与 Java 类似,它被编译成为中间代码(Microsoft Intermediate Language) ,然后通过 .NET Framework 的虚拟机——被称之为通用语言执行层(Common Language Runtime, CLR)——执行。一个 C#的结构体与 C++的结构体是相似的,因为它能够包含数据声明和方法.但是,不象 C++,C#结构体与类是不同的而且不支持继承.但是,与 Java 相同的是,一个结构体可以实现接口。预编译:C# 中存在预编译指令支持条件编译,警告,错误报告和编译行控制.可用的预编译指令有:#define,#undef ,#if,#elif ,#else,#endif,#warning,#error,#line 。没有了#include 伪指令,无法再用#define 语句对符号赋值,所以就不存在源代码替换的概念--这些符号只能用在#if 和#elif 伪指令里. 在#line 伪指令里的数字(和可选的名字)能够修改行号还有#warning 和#error 输出结果的文件名。操作符重载:一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载.能够被重载的单目操作符是:+ - ! ~ ++ -- true false 能够被重载的二元运算符是:+、 - 、 *、 /、 %、 生成的类也能被作为一个 COM 组件使用,然后又能使用,比方说,JScript 语言子类化它从而得到第三个 COM 组件。这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用任何.NET 语言子类化。索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样)以外是相似的。代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方法指针就行了。代理对象可以被移动到另一个地方,然后可以
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:桌面日历系统的设计与实现.rar
    链接地址:http://www.gold-doc.com/p-158426.html

    当前资源信息

    4.0
     
    (2人评价)
    浏览:40次
    bysj上传于2018-09-15
    1
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开