摘 要:本论文介绍了开发访客管理系统的运行环境Visual Studio 2008与SQL Server 2005;详细介绍了系统的操作流程、功能模块划分,数据库的需求分析与设计,其中数据库设计包括逻辑结构设计和概念结构设计以及系统中主要的表结构的设计。系统的实现与测试中主要对权限设计、用户登录设计、来访信息登记、来访信息查询的实现进行了详细描述并解决了测试中遇到的问题。
关键字:访客管理系统;VS2008;SQL2005
Visitors Management System
Abstract:This paper introduces the development of the management system operation environment of visitors Visual Studio 2008 and SQL Server 2005; Detailed introduction of system operation process, function module partition, database needs analysis and design, including database design including logic structure design and concept structure design and system in the main table structure design. The realization of the system and the main test to access design, user login design, visit the registration information, information visit the realization of inquires described in detailed and solve the problems in the tests.
Key Words:Visitors management system; VS2008; SQL2005
引言
随着计算机技术和社会经济的快速发展,计算机的应用已在社会各个领域深入开来,本次毕业设计就是把计算机应用到各个企事业单位访客管理中的范例。
目前,公司、企业和机关的计算机化管理已经逐渐普及,各企事业单位之间的业务往来越来越密切,从而导致出入各单位的来访人员日益频繁,并呈现出人流多而杂的特征,因此各单位的访客出入安全管理,成为安保工作中最为重要的环节之一。在传统模式下利用人工进行管理,存在着较多的缺点,如:纸质登记单易丢失、损坏,同时不易保存,不便查找,流于形式,难以进行有效管理等。随着科学技术的不断提高,计算机科学日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式,来实现访客信息的现代化管理,其强大的功能已为人们深刻的认识,它在人类社会中发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对访客信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、便于管理等。这些优点能够极大地提高访客管理的效率,加快门卫操作时间。因此,开发这样一套管理软件成为很有必要的事情。
1.绪论
1.1编写目的
本文档描述了访客系统所实现的功能,对各项业务提供详细、准确的描述。使软件开发的人员和用户对本系统中的业务流程及功能达成共识。通过本文档用户可以了解访客系统所要完成的主要任务。本系统可进行来访信息登记,被访员工信息查询,来访信息查询等。
应用目标:方便各个单位访客管理。
使用范围:计算机化管理的公司、企业和机关单位等。
1.2可行性分析
C#是.NET平台的通用开发工具,它能够建造所有的.NET应用。其固有的特性保证了它是一种高效、安全、灵活的现代程序设计语言。改进了用户界面,以.NET的构建思想来实现的访客管理系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化的原则。
2.运行环境简介
2.1Visual Studio 2008简介
VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用程序。同时Visual Studio 2008支持项目模板、调试器和部署程序。
2.2SQL Server 2005简介
SQL Server 2005是一个全面的数据库平台,其数据引擎是企业数据管理解决方案的核心。集成的商业智能工具、分析、报表、集成和通知功能为用户提供了企业级的数据管理。
SQL Server 2005可以为开发人员、数据库管理员、信息工作者以及决策提供创新的解决方案,帮助用户从数据中获得更多的收益。
3.系统分析与设计
3.1系统设计
本系统主要实现访客登记、查询,来访信息的登记、查询以及权限管理。
3.1.1系统操作流程
本系统分角色登录:超级管理员登录成功后,进入主界面后可使用所有功能模块。一般用户则只可以进行访客信息的登记、来访信息登记、来访信息的查询以及被访员工信息的查询。
3.1.2系统功能模块划分
本系统可以划分为基本信息管理、访客信息模块、信息查询模块三个主模块。如图1所示。
图 1 系统功能模块
基本信息管理:通过这一模块,可以实现员工基本情况的添加、删除,更新。员工的基本信息包括员工ID号、姓名、性别、出生日期、电话号码、Email、住址等。因为本系统是供多人一起使用的,必须对某一些人进行。于是设置了超级管理员和管理员进行管理。
访客信息模块:包括访客信息的登记,来访记录的登记。本模块实现了访客基本信息的登记、删除、更新。
信息查询模块:来访记录的查询,便于查找单位每天的来访记录。被访员工的查找,便于查找被访人的联系方式及时与之联系确认访客的信息,使得工作效率得到相应的提高。
3.2数据库设计
3.2.1数据库需求分析
本系统的数据库系统是应用于来访登记管理,应满足来访信息登记管理的要求,本系统要求登记每一位访客的资料以及访客的来访记录,并允许有权限的用户查询来访记录。分析过后,数据库设计应满足:登录用户可登记访客信息,访客来访记录;超级管理员可查询来访记录,对员工信息进行增加、删除和修改;每个用户ID必须对应一个权限类型(超级管理员、一般管理员)。
3.2.2数据库概念结构设计
通过对本系统的分析,可得到主要实体—关系模型(E-R模型)如图2所示。
图 2 E-R图
对主要实体定义的属性如下:
来访记录:{来访记录ID,流水号,访客ID,被访人员ID,进门日期,进门时间,出门日期,出门时间,进门登记人ID,出门登记人ID,随身物品,随行人员数量,车辆数目,来访原因}
用户:{用户ID,用户姓名,用户密码,用户权限}
3.2.3逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为数据库系统所支持的实际数据模型,即数据库的逻辑结构。
用户信息(用户ID,用户名,用户密码,角色ID)
来访记录(记录ID,流水号,访客ID,被访员工ID,访客图片信息,进门日期,进门时间,出门时间,进门登记人,出门登记人,随身物品,人数,车辆数,访客原因)
访客信息(访客ID,证件号,访客姓名,性别,地址,发证日期)
员工信息(员工ID,姓名,部门ID,性别,出生日期,电话号码,手机号码,Email,地址)
部门信息(部门ID,部门名称)
角色信息(角色ID,角色名称)
访客管理系统数据库中主要的表结构有:员工信息表(Employee)中保存了被访员工的基本信息主要包括员工ID,姓名,部门ID等;用户表(LOGIN)记录了使用该系统用户的信息,用来检验用户登录和用户权限的管理;访客信息表(Visitor)主要记录的是访客的基本信息,便于查找来访记录中的访客基本资料;来访记录表(Visited)主要记录来访记录的流水号,访客的进、出门时间,进出、门登记人,来访原因,携带物品,车辆数,随行人员等,主要表如以下表所示。
表 1 Employee表
| 字段名 | 类型 | 长度 | 备注 | 主键 |
| EmployeeID | varchar | 10 | 被访人ID | 主键 |
| DeptID | varchar | 10 | 部门ID | |
| Name | varchar | 20 | 姓名 | |
| Sex | varchar | 2 | 性别 | |
| Birthday | datetime | 8 | 出生日期 | |
| Tel | varchar | 15 | 电话号码 | |
| Mobile | varchar | 15 | 手机号码 | |
| varchar | 50 | 电子邮件 | ||
| Address | varchar | 100 | 地址 |
| 字段名 | 类型 | 长度 | 备注 | 主键 |
| UserID | varchar | 10 | 用户ID | 主键 |
| UserName | varchar | 20 | 用户名 | |
| UserPwd | varchar | 20 | 密码 | |
| RoleID | varchar | 10 | 角色ID |
| 字段名 | 类型 | 长度 | 备注 | 主键 |
| VisitorID | varchar | 10 | 访客ID | 主键 |
| CardNo | varchar | 20 | 证件编号 | |
| Name | varchar | 20 | 姓名 | |
| Sex | varchar | 2 | 性别 | |
| IssueDate | datetime | 8 | 发证日期 | |
| Address | Varchar | 100 | 访客地址 |
| 字段名 | 类型 | 长度 | 备注 | 主键 |
| VisitedID | varchar | 10 | 来访ID | 主键 |
| SerialNum | varchar | 20 | 流水号 | |
| VisitorID | varchar | 10 | 访客ID | 外键 |
| VisitByPoepleID | varchar | 10 | 被访人ID | 外键 |
| InDate | datetime | 8 | 进门时间 | |
| OutDate | datetime | 8 | 出门时间 | |
| InRegistrant | varchar | 10 | 进门登记人ID | 外键 |
| OutRegistrant | varchar | 10 | 出门登记人ID | 外键 |
| EntranceID | varchar | 10 | 入口ID | |
| ExtitID | varchar | 10 | 出口ID | |
| InImage | image | 进门图像 | ||
| OutImage | image | 出门图像 | ||
| Goods | varchar | 100 | 随身物品 | |
| PeopleNum | int | 4 | 随行人数 | |
| Vehicle | int | 4 | 随行车辆 | |
| State | varchar | 2 | 进门状态 | |
| Reason | varchar | 200 | 来访理由 |
4.1系统的实现
4.1.1用户登录界面的设计与实现
运行系统后,进入系统的登录界面。输入用户名和密码后点击登录按钮,首先判断用户名和密码是否为空,若为空则提示错误信息重新输入;若用户名和密码都不为空,则判断用户名是否存在,不存在提示错误信息要求重新输入;否则判断密码是否匹配,不匹配提示错误信息,相同则登录成功。代码实现流程图如图3所示。
图 3 登录流程图
4.1.2权限的设计与实现
用户登录成功后,查询到登录用户的权限ID,如果权限ID(RoleID)为“001”,则该用户为超级管理员,除了一般用户的权限外,又可对公司员工信息和管理员信息进行添加、删除、修改以及对来访记录的查询。否则为一般用户,只能对访客以及来访信息进行添加。
4.1.3来访信息登记的设计与实现
用户登录成功后,点击来访信息登记进入到来访信息登记界面(如图4所示),可输入访客的ID和被访人ID,如果不记得访客ID与被访人ID可通过按钮进行选择。把所要输入的信息输入完成后,点击添加按钮。如果添加信息准确无误,提示添加成功,否则添加失败,清空所有控件重新输入。
图 4 来访信息登记
4.1.4来访信息查询的设计与实现
用户登录成功后,点击来访信息查询进入到来访信息查询界面(如图5所示),可输入来访ID,也可通过按钮选择访客的ID和姓名,把查询条件输入完成后,点击查询按钮若数据库中存在与该条件相同的记录即可查询到相应的记录。若不存在则提示错误信息,重新输入查询条件查询。
图 5 来访信息查询
4.2系统运行测试
测试是软件开发必不可少的环节,每个开发者都应该养成良好的测试惯,一个系统的完善就是通过不断的测试与维护来完成的。由于系统是由我个人来完成的,已经知道了产品应该具有的功能,做完一个模块就进行测试看所做的模块能不能实现所需要的功能。在进行模块测试的时候,主要遇到以下几个问题:
(1) 本系统中进行来访信息登记时,希望实现访客的照片信息添加到数据库中,并且在界面中可显示该图片的信息。进行测试后,可以实现将图片信息已二进制的形式添加到数据库中,界面中无法显示图片。解决方法:使用Image类的FromFile方法将指定的图片重新画到PictureBox容器中即可实现。
(2) 本系统中的访客信息查询时,点击DataGridView控件中某一单元格时触发查询条件的各个控件中也显示该条访客信息的相应内容。刚开始初步设计时,DataGridView控件中并没有流水号和被访人ID这两列,想通过DataGridView控件中对应列的数据绑定到查询条件的控件中,同时又不想在DataGridView控件中显示出这两列内容。为解决这一问题,使用到了DataGridView控件中列的隐藏性,将条件控件中要显示却在DataGridView控件中不想显示的列的隐藏性给选中即可。
5.总结
经过两个多月的开发,系统在实际的运行过程中比较稳定,基本上满足预期的基本功能。实现了一般用户对访客基本信息和来访记录的登记,以及超级管理员可以对来访记录的查询,员工信息的增加、删除、修改以及一般管理员的添加、删除、修改。由于个人水平有限,难免会有不足之处,功能的完善程度还需要进一步的加强。
参考文献
[1]刘甫迎,刘光会,王蓉.《C#程序设计教程(第2版)》[M].北京:电子工业出版社,2008.
[2]李君.《浅析C#应用程序的技巧》[J].《商情》,2010,19:1.
[3]赵畅.《多媒体教学平台与C#程序设计》[J].《中国科教创新导刊》,2011,4:59
[4] 张勇.《ADO.NET不同提供程序访问SQL Server 2000数据库的效率比较》[J].《考试周刊》,2009,30:83.
[5] 曹付元,梁吉业.《基于SQL语言的粗糙数据查询》[J].《计算机科学》,2004.
[6] [美] 戴特尔等.《Visual C# 200学教程(第三版)(英文版)》[M].北京:电子工业出版社,2011.
[7] 支和才. 《ADO.NET技术研究》[J].《软件导刊》2011,10(9):121-123.
[8][美]Simon Robinson/ Christian Nagel著, 李敏波译.《C#高级编程(第3版) 》[M].北京:清华大学出版社,2005.
[9]蒋文沛. 《SQL Server2005实用教程》[M].人民邮电大学出版社,2009.下载本文