版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕毕 业业 设设 计计( 论论 文文)桌面日历系统的设计与实现桌面日历系统的设计与实现论文作者姓名:论文作者姓名:申请学位专业:申请学位专业:申请学位类别:申请学位类别:指指导导教教师师姓姓名名(职职称称):论文提交日期:论文提交日期:桌面日历系统的设计与实现桌面日历系统的设计与实现摘摘 要要自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使越来越多的人依赖于电脑办公。而传统的日程记事本逐渐显现出在当今时代的不足和局限性,比如不便携带、不便查阅、不能自动提醒等等,电脑桌面日历由此孕育而生。很快,桌面日历就以其方便的日期查询、个性化的日程安排、精确的闹钟提醒与配套的日志系
2、统、美观的界面设计,受到广大电脑办公者的喜爱。本设计就是针对当前网络上众多的桌面日历,综合其各项基本功能来开发一套属于自己的个性化日历日志系统。本设计主要采用 C#+SQL 的 C/S 设计模式,来实现不同用户的登录、日程编辑、日程提醒、日期查询、节假日管理等工作。方便了使用者对每日行程的掌握,也保护了各使用者之间的私人信息。本设计按照功能模块分为用户登录模块、用户注册、日历和时间模块、节假日模块、日程行程模块、自动提醒模块、数据库模块。本文详细地介绍了该日历日程系统的功能需求、系统设计和具体实现。并简要介绍了系统开发采用的过程及方法。关键词:关键词:桌面日历;日程;多用户Design and
3、 Development of Desktop Calendar SystemAbstractAs PC becomes more and more popular since last century, peoples work and life become more and more convenient, and people rely increasingly on computers. However, the conventional notepad has revealed its deficiencies and limitations, such as inconvenie
4、nce. 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
5、.Combining the functions of a number of todays 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 m
6、anagement” and so on. The calendar is convenient for users to check the schedule everyday, and also can protect each users private information.The calendar includes “user login” module, “user registry and edition” module, “date and time” module, “holiday manage” module, “schedule manage” module, “sc
7、hedule 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 Users目目 录录论文总页数:23 页1 引言.12 相关理论基础 .12.1
8、 C/S 模式.22.2 Visual Studio 2005 C#.22.2.1 C#的介绍.22.2.2 C#的弱点.32.3 SQL Server 200 SQL 介绍.32.3.2 Microsoft SQL Server 2000 简介.43 系统需求分析 .43.1 用户需求.43.2 功能需求.43.2.1 未登录用户.43.2.2 普通登录用户.53.2.3 管理员.53.3 性能需求.54 详细设计与实现.64.1 系统功能设计.64.2 数据库设计.64.3 各表之间的关系图.74.4 系统功能实现.84.4.1 用户登录模块.84.4.2 用户注册模块.9
9、4.4.3 日历主模块.114.4.4 日志记录模块.124.4.5 日志提醒模块.144.4.6 节假日设置模块.145 系统测试.155.1 测试环境.155.2 测试结果.165.3 系统的安全性测试.195.3.1 密码的安全性.195.3.2 日志信息的安全性.195.3.3 数据库的安全性.19结 论 .20参考文献 .20致 谢 .22声 明 .231 1 引言引言自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使越来越多的人依赖于电脑办公。而传统的日历和日程记事本逐渐显现出在当今时代的不足和局限性,比如传统日历或记事本一般为纸制品,加大了对森林资源的需求
10、,与当今提倡绿色环保的思想相背;传统记事本不方便携带、记录和修改;一般不带有日历,即使有也仅仅局限于某一年的日历,不方便使用者查询日期;使用日历和记事本当查询某天的日程信息的时候非常烦琐,而且对该天前后的日程信息也很不好把握;没有自动提醒功能,不能对使用者的行程进行很好的规划和安排。总之,传统的日历和记事本都不能对使用者的时间进行系统化的规划。针对以上的传统日历和记事本的局限性,电脑桌面日历孕育而生。本文所介绍的桌面日历系统,就是专门为那些常年习惯于电脑办公,喜欢对自己的行程进行系统化管理的人们所开发的一款桌面软件。该软件的优点如下:1,将日历和记事本集成到一款软件上,让用户在记录和查询日志的
11、时候也能方便得查阅日期情况。2,日志行程的自动提醒,该系统能根据用户自己设置的行程提醒时间来提醒用户,时差是以毫秒级计算,非常之精确。3,人性化的节假日设置,可以根据用户的喜好来记录节假日和一些重要的日子,并在日历主界面上显示当天的节假日信息。4,借助数据库可以方便得对用户资料和信息进行存取,也有效得保护了各个用户之间的信息。本文介绍了 C/S 模式下的桌面日历系统的设计以及开发过程,主要包括了以下几个方面的内容:1,简要介绍 C#和 SQL 知识。2,介绍该系统的前期设计过程。3,介绍该系统的具体代码实现过程。4,介绍开发过程中遇到的各种技术问题以及解决方案。计算机的发明应用,被视为人类的第
12、三次重大的科学技术革命,是一次飞跃。过去的革命最高成就就是“用机器制造机器”,是手的延长,而计算机的出现却能做到“用机器控制机器”,是脑的延伸,是提高生产效率的主要工具。通过以上分析不难得出结论,在计算机日益普及的今天,很多传统的东西必须与电脑相结合才能进一步发展。这样一套桌面日历系统,也是让传统日历和记事本继续生存并发展的重要一步。2 2 相关理论基础相关理论基础该系统采用的是 C/S 模式,设计平台为 Visual Studio 2005 C#,后台数据库系统为 SQL Server 2000。下面简单介绍下:2.12.1 C/S 模式模式C/S 全名为 Client/Server 应用体
13、系,又称客户端/服务器模式。Client 使用各项操作的用户界面接口来处理分析和数据输入/输出;Server 通常采用高性能的PC 机、工作站或小型机,并采用大型的数据库系统,如 Oracle、SQL Server 等,主要实现数据的存储功能,以及相关的后台业务逻辑流程处理。C/S 模式的优点在于:能充分发挥客户端 PC 机的处理能力,许多的工作可以交由客户端处理后再提交给服务器,所以客户端的响应速度非常快。但 C/S 模式也有一些缺点,比如:客户端需要安装专门的客户端软件;维护和升级的成本很高;对客户端的操作系统也有一定的限制。CLIENTSERVER GUI 界面数据处理数据处理数据存储图
14、 1-1 C/S 结构示意图2.22.2 Visual Studio 2005 C#.1 C#的介绍的介绍在过去的二十年里,C 和 C+已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的权衡点。对于 C/C+用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。C#是由微软开发的一种全新的、面向对象的编程语言,作为 Visual Studio中的一部分推出。既保持了 C+中熟悉的语法,并且还包含了大量的高效代码和面向对象特
15、性。C#使得 C+程序员可以高效的开发程序,而绝不损失 C/C+原有的强大的功能。因为这种继承关系,C#与 C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向 C#。C#语言将在保持 C/C+灵活性的基础上为程序员带来更高效的 RAD 开发方式。它不仅能用于 WEB 服务程序的开发,并且还能开发强大的系统级程序。C#是种非常类似于 JAVA 的语言,适用于各种操作系统,并且与 Windows紧密地结合在一起。微软称 C#是由 C 和 C+派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合 Visual Basic 的高效率和 C+的强大功能。事实上,C#将是
16、完全依靠 Windows 的最完美产物。那些困绕 Java SDK, MFC 和 SET 的数据库已成为过去。你想放入 C#的任何东西(无论何种语言) ,只要在 Windows 的.NET 子系统下建立和包装后都可以使用 Windows 的运行库。.2 C#的弱点的弱点首先,在大量的现有 Windows 平台上,C# 的程序还不能运行,因为 C# 程序需要 .NET 运行库为基础,而 .NET 运行库将作为新一代的Windows(Whistler)的一部分发行, 或以 Service Pack 的形式提交给 Windows Me 和 Windows 2000 用户。所以在近期,
17、C# 会主要在服务器上得到应用。其次,C# 能够使用的组件和库还只有 .NET 运行库等很少的选择,没有丰富的第三方软件库可用,这需要有一个过程,同时各软件开发商的支持也很重要。第三,JAVA 的成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口号,但毕竟已经是一种成熟的技术。而 C# 的鼓吹者目前只有名声不佳的微软,且只能运行在 Windows 上。实际上这两种语言都不是不可替代的,理智的说,对软件开发商而言,什么工具用的最熟,那就是最好的工具。尤其对 C+的使用者,C# 没有带来任何新东西,因为.NET 运行库在C+中也可以使用,没有要换的绝对的理由。2.32.3 S
18、QL Server 2000.1 SQL 介绍介绍SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL 通常使用于数据库的通讯。最早的是 IBM 的圣约瑟研究实验室为其关系数据库管理系统 System R 开发的一种查询语言,它的前身是 Square 语言,其后由 IBM 公司 1981 年推出。ANSI(美国国家标准学会)声称,SQL 是关系数据库管理系统的标准语言。SQL 语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用 SQL 的常见关系数据库管理系统有:Oracle、 Sy
19、base、 Microsoft SQL Server、 Access、 Ingress 等等。虽然绝大多数的数据库系统使用 SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的 SQL 命令,比如Select、 Insert、 Update、 Delete、 Create和 Drop常常被用于完成绝大多数数据库的操作。.2 Microsoft SQL Server 2000 简介简介Microsoft SQL Server 2000 是目前使用最广泛的数据库,它与 Windows 网络操作系统的无缝集成,智能化的内容管理,强大的功能,使它得到广大用户的喜
20、爱。SQL Server 能与 Microsoft 其他组件有机地结合,并充分利用它们提供的服务或功能(如安全管理、事件日志、性能监视器、内存管理和异步处理等),从而增强了 SQL Server 数据库系统的功能,同时占用较少的系统资源。另外,用户可以使用 Web 浏览器查询存储在 SQL Server 2000 数据库中的数据,且分布式查询使得我们可以引用来自不同数据源的数据。SQL Server 2000 数据库容量庞大,每个数据库中可创建多达 20 万个数据表,数据表中的记录的行数只受服务器硬盘空间的限制。此外,SQL Server 2000 数据库与普通的本地类型数据库系统(例如VFP
21、,DBASE,PARADOX,ACCESS)等不同,本地类型的数据库系统只是简单的文件存取,缺乏 SQL Server2000 等系统所拥有的诸如:数据完整性、安全性、事务处理、网络多用户处理等必备的功能。3 3 系统需求分析系统需求分析3.13.1 用户需求用户需求该系统的用户主要分为三种:未登录用户、登录用户、管理员。未登录用户只能查看日历主界面和注册模块,登录用户可以使用除删除用户和修改其他用户以外功能,管理员可以使用该桌面日历所有功能。登录用户和系统管理员都是通过密码验证登录,当角色操作完成后点击“注销”或“退出”按钮退出登录状态。3.23.2 功能需求功能需求系统功能模块主要包括以下
22、几个方面:1,用户注册模块;2,登录模块;3,日志提醒模块;4,节假日模块;5,日历主模块;6,用户信息、节假日信息和日志信息都保存在数据库模块中.以下按照不同的用户对具体功能进行描述:.1 未登录用户未登录用户未登录用户运行该系统后进入日历主界面,可以查看日历信息,可以查看当前的系统时间,当点击日历上某一天时可以查看该天是否是已设置的节假日。用户当点击“日志记录”或“节日设置”的时候,系统提示对话框显示“该用户为未登录用户” ,点击确定按钮后进入登录界面,输入账号和密码后实现用户登录。未登录用户在日历主界面或登录界面上点击“用户信息”可以进入用户注册界面,在用户注册界面可以实
23、现用户的注册,可以查看其他已注册用户的基本信息,可以对某用户名进行查找,但是不能删除其他用户或修改其他用户的个人信息,当点击“删除”或“修改”按钮后有错误信息提示。.2 普通登录用户普通登录用户用户通过登录模块登录系统后进入日历主界面,可以查看日历信息,可以查看当前的系统时间,当点击日历上某一天时可以查看该天是否是已设置的节假日,可以访问节日设置模块并对节日进行添加和删除。登录用户可以访问用户日志模块并对日志信息进行添加和删除,当系统时间到达当前登录用户设置的日志提醒时间时,系统自动加载日志提示模块提醒用户,用户可以点击日志提示界面上的“删除日志”按钮从数据库中删除该日志信息。
24、登录用户可以在日历主界面上点击“用户信息”进入用户注册和信息界面,在用户注册界面可以实现注册其他用户,可以查看其他已注册用户的基本信息,可以修改当前登录用户的基本信息和密码,可以对某用户名进行查找,但是不能删除其他用户或修改其他用户的个人信息。当点击“删除”或选择其他用户后点击“修改”按钮,有错误信息提示。登录用户在日历主界面上点击“用户注销”可以退出当前登录,并连接到用户登录模块。.3 管理员管理员管理员除了可以实现登录用户的所有功能外,还有更高的权限,可以对其他用户信息进行修改和删除。可以对数据库进行直接操作,可以查看其他用户的资料等等。但是管理员不能查看其他注册用户的登录
25、密码和日志信息,因为密码在数据库里是采用的 MD5 加密,而日志信息也采用了 Unicode 编码技术,在一定程度上保护了其他注册用户的权益。3.33.3 性能需求性能需求该系统主要是为了方便用户进行日程管理,所以要求界面要简洁,操作要方便。功能要完善,并且不能出现导致该系统崩溃的重大 BUG。因为该系统为多用户系统,所有用户资料均保存在数据库内,所以要求数据库安全性要高,运行要稳定,执行速度快。为保护用户信息,各用户密码和每日行程不能在数据库中以明文显示。该系统基于 Windows 操作平台,符合当前大多数人的操作系统,更加大众化。4 4 详细设计与实现详细设计与实现4.14.1 系统功能系
26、统功能设计设计该桌面日历系统是基于 C/S 结构的应用程序系统,由 C#+SQL 实现。客户端程序由 Visual Studio 2005 C#制作,用于与用户交互;后台数据库使用 SQL 2000,由带有逻辑结构关联的表组构成。下图为系统功能结构示意图: 登录用户普通用户管理员删除用户资料修改用户信息注册新用户使用日志记录使用节假日模块使用日志提醒使用日历主模块未登录用户图 4-1 用户功能示意图如图 4-1 所示,按登录与否可分为登录用户和未登录用户,其中登录用户又可分为管理员和普通用户,各类别的用户拥有对该系统中各功能的访问使用权限。4.24.2 数据库设计数据库设计根据需求分析,该系统
27、后台数据库共分为 4 个表,以下分别给出各个数据库表的简单描述。UserLogin用户登录表用于存储用户登录信息,以供登录密码验证,并分配用户编号。该表分为 3 个字段,以 UserNumber 字段为主键分别与 UserInfo和 MsgInfo 表相关联,各字段的属性和作用如表 4-1表 4-1:用户登录表UserInfo用户基本信息表用于存储用户的基本信息,如年龄、性别等。该表分为 6 个字段,其中 UserNumber 作为外键与 UserLogin 表相关联,各字段的属性和作用如表 4-2表 4-2:用户基本信息表MsgInfo用户日志信息表用于储存各用户设置的日志信息,以及系统自动
28、提醒用户的时间。该表分为 4 个字段,其中 UserNumber 作为外键与UserLogin 表相关联,各字段的属性和作用如表 4-3表 4-3:用户日志信息表JInfo节假日信息表用于储存节假日信息,没有与其他表相关联。该表分为 4 个字段,其中 JID 作为该表的主键,各字段的属性和作用如表 4-4表 4-4:节假日信息表字段名字段类型是否主键说明UserNamevarchar否定义用户登录名UserPwdvarchar否定义用户登录密码UserNumberint是定义唯一标识的用户编号字段名字段类型是否主键说明UserNumberint是唯一标识的用户编号UserAgeint否定义用户
29、的年龄UserSexint否定义用户性别,1 为男,2 为女UserAddressvarchar否定义用户的地址,允许为空UserTelvarchar否定义用户的电话号码,允许为空UserEmailvarchar否定义用户的 E-Mail 地址,允许为空字段名字段类型是否主键说明MsgIDint是唯一标识的用户日志信息编号MsgInfoTextvarchar否定义用户的日志信息内容MsgDateTimedatatime否定义用户的日志提醒时间UserNumberint是唯一标识的用户编号字段名字段类型是否主键说明JIDint是唯一标识的节假日编号JNamevarchar否定义的节假日名称JDa
30、teTimeMint否定义节假日的月份JDateTimeDint否定义节假日的日期4.34.3 各表之间的关系图各表之间的关系图该关系图是由 SQL 数据库的“新建关系图向导”自动生成。UserLogin(用户登录表)、UserInfo(用户基本信息表)和 MsgInfo(日志信息表)通过 UserNumber(用户编号)相关联,其中 UserLogin(用户登录表)的UserNumber 为 PK(主键) ,UserInfo(用户基本信息表)和 MsgInfo(日志信息表)的UserNumber 为 FK(外键)。JInfo(节假日信息表)相对其他三张表独立,没有关联关系。图 4-2 数据库
31、表关系图4.44.4 系统功能实现系统功能实现根据系统功能需求分析,系统主要划分为以下六个模块:.1 用户登录模块用户登录模块功能说明:通过用户输入的用户名、密码与数据库 UserLogin 表的UserName 字段和 UserPwd 字段相比较判断其有效性,来实现用户的登录。每次判断用户密码时将密码采用 MD5 加密后与数据库 UserLogin 表的UserPwd 字段相比较。如是有效用户则显示“登录成功”消息框,点击“确定后”登录到日历主界面,并设置 username 为当前登录用户名。如是无效用户则显示“登录失败”消息框,并提示重新输入用户名和密码。以下为用户登录密码
32、验证部分的伪代码:if (密码长度 5)MessageBox.Show(密码的长度不对,没有小于 5 位的密码,请重新输入!);else if(密码长度 = 0)MessageBox.Show(密码不能为空,请重新正确的输入您的登录密码!);elseif (连接数据库并将用户名和采用 MD5 加密后的密码与数据库中资料对比 = true)MessageBox.Show(登录成功!);关闭登录界面并释放资源;将当前登录的用户名赋值到其他窗体;打开当前登录用户的日志信息窗体;else MessageBox.Show(您输入的密码有错误请重新输入!);清除登录密码框内的字符并设置为焦点;4.4.24
33、.4.2 用户注册模块用户注册模块功能说明:用于用户注册,资料修改,用户删除和查询。注册界面将从数据库中读取出的所有用户信息显示出来。图 4-3 注册模块界面用户注册时根据用户所填写的信息存入数据库。需要判断用户名是否合法,用户名是否重复,两输入密码是否大于 6 位并相同,是否已选择年龄。不合法的注册信息显示错误消息框,并提示重新输入。合法的用户名和密码保存在UserLogin 表中,用户名采用明文保存,密码采用 MD5 加密保存,并为该用户分配一个 UserNumber 的整型编号。合法的用户个人资料保存在 UserInfo 表中,并使用 UserNumber 字段与 UserLogin 表
34、相关联。资料修改时根据选中的用户 UserNumber 修改用户信息,未注册用户不能修改用户信息,注册用户只能修改自己的信息,管理员可以修改所有用户信息。修改用户信息时也要判断合法性,并将合法信息存放到相应的表中。用户删除只有管理员可以访问,根据选中的用户 UserNumber 删除用户信息,并将数据库中 MsgInfo 表、UserInfo 表和 UserLogin 表中该用户的信息全部删除。用户查询可以根据输入的用户名查询显示出的用户,并将该用户所在行选中。以下为部分代码和伪代码:/ MD5 32 位加密代码static string UserMd5(string str)string c
35、l = str;string pwd = ;MD5 md5 = MD5.Create();/实例化一个md5对像/ 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择byte s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl);/ 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得for (int i = 0; i = 6 & 2 次输入的密码相同 & 性别选择代码 0) 连接数据库;将新用户信息插入到 UserLogin 表中,并为该用户分配一个编号;else输出提示错误信息;4.4.34
36、.4.3 日历主模块日历主模块功能说明:显示每一年的日历,显示当前系统时间,并根据数据库中的节假日设置显示选中日期的节日信息,是连接其他系统模块的入口。该界面使用 C#自带的 MonthCalendar 控件来显示每一年的日历,将当前的系统时间显示在 Label 静态文本框里,并根据数据库中的节假日设置显示选中日期的节日信息。图 4-4 日历主界面当用户点击“节日设置”按钮或“日志记录”按钮时,先判断 username 是否为空。如果为空则提示错误信息“用户尚未登录” ,并打开登录界面。如果username 不为空则直接打开节假日设置界面或日志设置界面。此模块还根据当前系统时间和当前登录用户的
37、日志信息来确定是否创建日志提醒窗体。当用户点击“用户信息”按钮时,直接打开用户注册界面。当用户点击“注销”按钮时,将 username 设置为空,并打开登录界面。当用户点击“系统退出”按钮时,退出桌日历系统,关闭所有窗体并释放占有资源。以下为部分伪代码。/ 当当前系统时间到达用户设置的日志响应时间时的事件处理伪代码声明一个空字符串 msg;if (当前登录用户名 Username 不为空)连接数据库,从数据库 MsgInfo 表中读取出当前登录用户的日志信息;while (用户设置了当前时间的日志信息)将该日志信息的内容放入 msg 中;if (日志信息不为空)以当前登录用户名为参数创建日志提
38、醒模块窗体;if (是否有模式地显示窗体 != true)显示窗体的文本信息 = 采用 Unicode 解码后的 msg;显示窗体的高度 = 获取的屏幕分辨率高度 + 10;显示窗体的左边框 = 屏幕分辨率宽度 显示窗体的宽度 + 5;显示窗体的生存时间 = true;显示日志提醒窗体;/ 显示当天节日伪代码文本框文本 = 今天不是节日;设置用于数据库查询命令的参数数组,并将数组第一个元素设置为“月” ,数组第 2 个元素设置为“日”;从数据库 MsgInfo 表中读取选定日期的节假日信息;while (是否有该条记录 = true)日历主窗体的文本框文本 = 今天是:+当天节假日名称;4.4
39、.44.4.4 日志记录模块日志记录模块功能说明:用于根据当前登录的用户名,从数据库的 MsgInfo 表中读出当前登录用户的所有日志信息并显示在 Datagridview 中。并根据用户需要进行添加和删除日志信息。图 4-5 日志记录模块界面当点击“添加”按钮时,系统将用户输入的日志信息和选择的提醒日期时间储存到数据库的 MsgInfo 表中。为保护用户的日志信息,MsgInfo 表MsgInfoText 字段的内容采用 Unicode 编码后储存,从数据库中读出时采用Unicode 解码后显示。当点击“删除”按钮时,系统按照用户选择的日志信息的编号 MsgID 来从数据库中删除该条日志信息
40、。以下为部分伪代码。/ Unicode 编码,用于将用户输入的日志信息采用编码形式储存在数据库中设置字符串型 encode 存放编码后的字符串; 将字符串 code 按字节进行编码,并存放在数组中;try将数组中每一个字节型元素转换为字符串型;catch处理异常;返回 encode;/ Unicode 解码,用于将数据库内的日志信息正常显示在 Datagridview 中,与编码过程相反设置字符串型 decode 存放解码后的字符串;将要解码的字符串型 code 转换为字节型;try将 code 信息解码并转换为字符串型并存放在 decode 中;catch处理异常;返回 decode;/ 删
41、除日志按钮事件的伪代码,其他按钮事件与此类似。if (当前日志 ID 为空)MessageBox.Show(请先选择您要删除的日志!);else连接数据库,根据 MsgID 删除日志信息;if (删除成功)MessageBox.Show(日志删除成功!);重新显示 MsgInfo 表内容;else MessageBox.Show(您的操作有错误!);.5 日志提醒模块日志提醒模块功能说明:当系统时间到达当前登录用户设置的日志提醒时间时,从数据库的 MsgInfo 表中读取出当前登录用户的当前系统时间的日志信息,并显示在弹出的窗体中。当用户点击“删除”按钮时,系统从 MsgInf
42、o 表中删除该条日志信息。以下为部分代码。/当点击“删除日志”按钮后的事件处理代码private void btnDeleteMsg_Click(object sender, EventArgs e)/设置数据库操作语句sqlstring sql = delete from MsgInfo Where MsgID= + msgid + and UserNumber=(select UserNumber from UserLogin where UserName= + userName + );/连接数据库并执行sql语句SqlConDao.SqlHelper.ExecuteNonQuery(S
43、qlConDao.SqlHelper.ConnectionStringLocal, CommandType.Text, sql);this.Close();.6 节假日设置模块节假日设置模块功能说明:从数据库的 JInfo 表中读出当前设置的所有节假日信息并显示在Datagridview 中。并根据用户需要进行节假日信息的添加和删除。图 4-6 节假日模块界面当用户通过下拉列表框选择好日期,并输入节假日名称后点击“添加”按钮时,系统将日期和节假日名称储存到数据库的 JInfo 表中。当点击“删除”按钮时,系统按照用户选择的节假日信息的编号 JID 来从数据库中删除该条节假日信息
44、。以下为部分代码。/ 点击“添加”按钮的事件处理private void btnAdd_Click(object sender, EventArgs e)/将 combox 内选择的日期分别储存在 month 和 day 整型变量中int month = int.Parse(this.cmbMonth.SelectedItem.ToString();int day = int.Parse(this.cmbDay.SelectedItem.ToString();if (this.txtJName.Text.Trim().Length = 2)/设置数据库添加记录 sql 语句string sql
45、 = insert into JInfo values( + this.txtJName.Text.Trim() + ,+month+,+day+);/如果 sql 语句执行成功if (SqlConDao.SqlHelper.ExecuteNonQuery(SqlConDao.SqlHelper.ConnectionStringLocal, CommandType.Text, sql) 0)MessageBox.Show(节假日添加成功!);/重新显示数据库内的节假日信息GetJinfo();elseMessageBox.Show(您的操作有错误!);elseMessageBox.Show(节
46、假日的输入格式不正确!请重新输入!);5 5 系统测试系统测试5.15.1 测试环境测试环境本系统测试环境;CPU:AMD 2500+ ,内存:DDR2 512M, SQL SERVER 2000,WIN2000/XP,2003 下均测试通过.建议用户 CPU PIII,内存 256M 及以上,数据库版本 SQL SERVER 2000,WIN2000PRO/XP,2003,WIN2000 SERVER 及以上软硬件平台使用。该测试以程序的功能实现是否符合设计标准和程序是否存在重大 BUG 为标准。5.25.2 测试结果测试结果由于条件所限,本测试仅对该系统进行功能测试。经测试,系统在上述软硬
47、件环境下,对各模块的功能均能测试通过,各逻辑流程均符合设计需要。以下为部分测试截图以及简要说明:图 5-1 密码错误提示信息在登录模块中,随机输入几组用户名和密码进行测试。经测试,其处理流程与代码设计里的处理流程一致。当输入的用户密码与数据库内该用户的密码不一致时,提示用户的错误信息,如图 5-1。当输入信息与数据库信息一致时才登录成功。一开始设计时忘记了密码在数据库中是采用 MD5 加密后储存的,当测试验证登录密码时没有采用 MD5 加密就直接进行比较,导致一直登录不上去。后将密码加密后再比较就正确登录了。图 5-2 未登录用户不能访问日志模块该系统采用多用户模式,并对各用户的访问权限进行了
48、设置,未登录用户只能访问登录模块、注册模块以及日历主模块。因此,当未登录用户点击日历主模块上的“日志记录”按钮时,系统提示用户先登录该系统才能访问日志模块,如图 5-2 所示。图 5-3 用户名不得重复注册图 5-4 非管理员不得删除用户资料在用户注册模块中,对注册时的资料输入进行条件判断,并提示出错误信息,图 5-3 所示。如用户名是否重复;密码是否为空等等,避免了数据库中的信息混乱。对于此模块中的“修改”和“删除”按钮也进行了一定的权限设置。如只有管理员才能删除用户资料,如图 5-4 所示;未登录用户不能修改和删除资料;登录用户只能修改自己的资料而不能修改他人的等等。在对此模块进行设计时,
49、一开始在显示用户信息的 DataGridView 中,系统会自动添加一行空行。当用户点击该空行时,系统会出错关闭。经检查,原来是设计当用户点击 DataGridView 某行时,会将该行的信息显示到下边的其他控件中,如 Label、Combox 等。而空行却带入了空字段,导致程序错误。所以,在显示 DataGridView 信息的代码中加入了 AllowUserToAddRows = false,就不会在 DataGridView 加上系统自动生成的空行了。其后的日志模块了节假日模块也采用了同样的方法去掉该空行。图 5-5 删除日志错误信息图 5-4 节假日格式不正确在日志记录系统和节假日管理
50、系统中,随机输入一些信息来验证该模块的判断逻辑是否符合设计要求。如:未选择日志信息就点“删除”按钮;输入不合规范的节假日名称等等。经测试,系统实际的处理顺序完全符合设计,如图 5-4 和图 5-4。图 5-5 日志提醒界面随机在某登录用户的日志记录模块中输入一条日志,并设置提醒时间。当系统时间到达该日志的提醒时间时,系统能正确发出提示信息,如图 5-5 所示,时间也非常准确。另外还测试了,当某用户登录该系统后,是否会提示其他用户的登录信息。测试结果为日志提醒模块只会提示当前登录用户的日志信息,而不会提示其他用户的。这也完全符合该系统的设计要求。最初设计时因为没有考虑到将用户日志信息进行 Uni
51、code 编码后储存,所以在日志提醒模块中采用了根据日志文本信息作为条件来删除数据库资料。但后来将日志信息采用 Unicode 编码储存后,该提醒模块在测试时就出现了很多问题,如直接显示数据库内未进行解码的日志信息;不能正常删除日志等。后将该模块加入 Unicode 解码代码,将日志信息进行解码后就能正常输出了。在删除日志时,将采用的以日志文本信息作为数据库删除条件,改为以该日志编号和登录用户名作为条件进行数据库操作就能正常删除用户日志。5.35.3 系统的安全系统的安全性测试性测试.1 密码的安全性密码的安全性该系统为多用户系统,所有用户的登录密码都保存在数据库中,以供用户登
52、录时的密码比较。如果密码以明文形式在数据库中储存,必定会对用户的资料安全造成很大的隐患。所以,该系统将用户的密码进行 MD5 加密后再存入数据库中。当用户登录时也采用 MD5 将用户输入的密码加密后与数据库中的密码信息比较。采用MD5 算法转换后的数据是伪随机的,而且该算法是一个不可逆的字符串变换算法,没有办法对已加密的数据进行解密。MD5 算法在密码的安全方面提供了非常好的保障。.2 日志信息的安全性日志信息的安全性用户的日志信息在数据库中采用 Unicode 编码进行储存。当用户登录该系统后,日志模块将数据库内该用户的日志信息经过 Unicode 解码后再输出。字符必须编码
53、后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。Unicode 是一种字符编码方法,由国际组织设计,可以容纳全世界所有语言文字的编码方案。虽然 Unicode 编码不像 MD5 加密那样安全可靠,但是因为 Unicode 编码可逆,而且储存在数据库中的信息并不是用户的原始信息,所以在一定程度上也对用户行程进行了保护。.3 数据库的安全数据库的安全性性在数据库的安全方面,主要依赖于 SQL Server 2000 自身的安全性。在使用时,定期对数据库进行备份,以便数据库发生错误时将数据库恢复到之前某一已知的正确状态,实现数据库的再次正确使用。结结 论论本次毕业设计完
54、成了预定任务,包括用户登录、用户注册、日历、日志记录、日志提醒、节假日设置等功能。通过此次毕业设计,虽说不能完全掌握 C#的编程技巧,但基本的编程思路还是逐渐地巩固起来。以前在课堂上学习的理论知识派上了用场,在程序的实际设计和实现过程中,逐步地将一些理论知识应用到开发中来,比如函数的调用、类与对象、方法的重载和引用等,并简单接触到了数据库的设计与操作。个人感觉其中最大的收获就是学习如何在程序开发过程中发现问题,查阅资料并解决问题,养成独立思考的能力。学习如何利用网络寻找解决问题的方法,这种方法在今后的工作和学习生活中能让事情变得事半功倍。在整个程序的设计与实现过程中,也发现自身存在的不少问题。
55、特别是在实际动手编写代码方面很欠缺,一些本来很简单的问题却要去花费大量的时间来解决。理论上明白的方法却不知道该如何去实现,今后要多加练习动手能力。参考文献参考文献1 Karli Watson,Christian Nagel.C#入门经典(第 3 版)M.齐立波译.北京:清华大学出版社,2006。2 Christian Nagel,Bill Evjen,Jay Glynn.C#高级编程(第 4 版)M.李敏波译.北京:清华大学出版社,2006。3 单银根,黎连业.C#语言及程序设计M.北京:北京希望电子出版社,2001。4 前沿软件研究室,郑小平.Visual C#.NET 开发实践M.北京:人
56、民邮电出版社,2001。5 郑宇军.C#2.0 程序设计教程M.北京:清华大学出版社,2004。6 李代平.中文 SQL server2000 数据库系统管理M.北京:冶金工业出版社,2003。7 方睿,刁仁宏,吴四九.网络数据库原理及应用M.成都:四川大学出版社,2005。致致 谢谢本文是在张路桥老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!在论文完成过程中,本人还得到了其他老师和一些同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!作者简介姓 名:魏键 性
57、别: 男出生年月:1984 年 3 月 13 日 民族: 汉E-mail:声声 明明本论文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。关于学位论文使用权和研究成果知识产权的说明:本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括:(1)学校有权保管并向有关部门递交学位论文的原件与复印件。(2)学校可以采用影印、缩印或其他复制方式保存学位论文。(3)学校可以学术交
58、流为目的复制、赠送和交换学位论文。(4)学校可允许学位论文被查阅或借阅。(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定) 。除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。特此声明! 作者签名: 2007 年 06 月 日 BOOK THIRD.-ACCOMPLISHMENT OF THE PROMISE MADE TO THE DEAD WOMANCHAPTER I THE WATER QUESTION AT MONTFERMEILMontfermeil is situated between Livry and Chelles, on
59、 the southern edge of that lofty table-land which separates the Ourcq from the Marne. At the present day it is a tolerably large town, ornamented all the year through with plaster villas, and on Sundays with beaming bourgeois. In 1823 there were at Montfermeil neither so many white houses nor so man
60、y well-satisfied citizens:it was only a village in the forest. Some pleasure-houses of the last century were to be met with there, to be sure, which were recognizable by their grand air, their balconies in twisted iron, and their long windows, whose tiny panes cast all sorts of varying shades of green on th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024广告征集代理合同范本
- 2024货物运输托运合同范文
- 短期流动资金借款合同
- 2024汽车公司运输合同范本
- 2024年度工程分包合同条款详细描述
- 出租车经营权转让协议
- 技术合同在企业竞争力提升中的作用
- 2024公司房产土地转让合同
- 2024新版大学场地租赁合同(商业活动)
- 房地产项目转让协议书
- 小记者第一课我是一名小记者
- 团结友爱和睦相处主题班会
- 2024年采购部年度工作总结
- 2024年总经理聘任书
- 2024年江苏省中等职业学校学生学业水平考试机械CAD绘图评分表
- 期中 (试题) -2024-2025学年外研版(三起)英语六年级上册
- 中小学教师职业道德规范(2023年修订)全文1500字
- 2024年车路云一体化系统建设与应用指南报告
- 2024年福建省托育服务职业技能竞赛理论考试题库(含答案)
- 2024下半年江苏苏州城市学院招聘管理岗位工作人员27人历年(高频重点提升专题训练)共500题附带答案详解
- 二年级乘除法口算题大全500题(可直接打印)
评论
0/150
提交评论