基于JAVA的门禁管理系统
摘 要
随着社会经济和科技的发展,IC卡技术已广泛地应用于各种行业,特别是公共交通、无线通信、身份识别、金融交易和安全防卫等行业。门禁控制系统通过对出入口的控制,限制人员和车辆进入受控区域,达到确保受控区域安全的目的。IC卡门禁系统由于其较高的安全性、较好的便捷性和性价比成为门禁系统的主流。
通过对IC卡门禁系统需求的深入分析,本次的软件设计采用SQL Server2005数据库来实现软件系统的数据库服务;采用完全面向对象编程的开发工具JAVA来设计软件的用户界面,用其中的各种常用控件设计了登录、基本资料、设备管理、卡管理、查询管理、系统管理一系列窗体;并应用数据库访问工具ODBC中的各种访问对象来实现软件与数据库的访问。
该软件是一个简易型不收费的管理系统。通过软件平台管理员可发行用户卡,并采集出入记录存入数据库中供查询和打印,通过"巡检"界面实时监控人员的出入,也可以与下位机(设备)进行无联机工作,即脱机工作。
本非接触式IC门禁管理系统软件具有界面友好,使用方便,操作简单的特点,不需要操作人员具有专业的计算机操作水平。
关键词:IC卡,门禁系统,数据库,SQL Server2005
ABSTRACT
With the development of social economy and science technology, the IC card technology has been broadly applied in all kinds of trades, especially, public traffic, wireless communication identify, finance trade and safety-defend etc. Access Control System (ACS) controls the gateway and safeguards Controlled area by restricting people and vehicles. Because of the higher security, preferably convenience and the ration of performance to price, The IC card Access Control System (ACS) will becomes the mainstream of the ACS.
Based on the in-depth demand analysis, the software system uses Microsoft SQL Server database as the data library services. The design of user interface resort , a fully object-oriented program tool. With the various in commonly used controls a series of forms have been designed including entry, basic information, equipment management, card management, inquiry management, System Management. And using various accessing object of database accessing tool ODBC for the visit to software and database.
The software is a Simple and charge free management system. Through the software platform, the manager can issue the user card, and collect the in and out record into the database for inquiry and printing. Through "inspection tour" interface and the in and out real-time monitoring of people, the software can work with the lower machines (equipment) without on-line, which is out-lining work.
These Radio Frequency Identification Card Access Control System (RFICACS) has good characteristic, such as friendly interface, the convenience for user, simple operation, and no requiring for operators with a professional computer operating level.
KEY WORDS: IC card, Access Control System (ACS), database, SQL Server2000
目 录
摘 要 I
ABSTRACT II
第一章 项目概述 - 1 -
1.1现系统概述 - 1 -
1.2系统组织机构 - 1 -
1.3系统业务流程 - 2 -
第二章 系统的可行性研究与需求分析 - 3 -
2.1 可行性研究 - 3 -
2.1.1经济可行性 - 3 -
2.1.2技术可行性 - 3 -
2.1.3操作可行性 - 3 -
2.1.4方案可行性 - 3 -
2.2 需求分析 - 4 -
2.2.1用户需求 - 4 -
2.2.2系统需求 - 4 -
2.2.3设备需求 - 5 -
2.2.4数据流图 - 6 -
2.2.5数据字典 - 6 -
2.2.6系统数据模型 - 9 -
第三章 系统的总体设计 - 11 -
3.1 系统软件结构设计 - 11 -
3.1.1 软件结构 - 11 -
3.1.2 数据库逻辑设计及表的设计 - 13 -
3.1.3生成表及建立表间关系 - 16 -
3.2 系统流程图 - 17 -
第四章 详细设计 - 18 -
4.1选择设计语言 - 18 -
4.2系统分析与设计 - 18 -
4.3 ODBC技术操作数据库 - 25 -
4.3.1 选择ODBC的原因 - 25 -
4.3.2 创建ODBC对象模型 - 26 -
4.4 IC卡管理模块设计 - 28 -
4.4.1 模块功能 - 28 -
4.4.2 界面设计 - 29 -
第五章 系统的实现与调试 - 31 -
5.1 应用系统的开发及测试 - 31 -
5.1.1 系统首页 - 31 -
5.1.2 产品说明 - 32 -
5.1.3 用户登录及访问权限 - 32 -
5.1.4 角色管理 - 33 -
5.1.5 操作员管理 - 33 -
5.2 应用系统的调试 - 34 -
第六章 测 试 - 36 -
6.1 测试原则及测试方法概述 - 36 -
6.1.1 测试原则 - 36 -
6.1.2 测试方法 - 36 -
6.2 测试项目测试用例 - 38 -
6.2.1功能测试 - 38 -
6.2.2缺陷限制及建议 - 38 -
结束语 - 41 -
致 谢 - 42 -
参考文献 - 43 -
第一章 项目概述
1.1现系统概述
门禁系统,又称为出入口控制系统,在科学技术发达的今天,已发展为一套现代化的、功能齐全的管理系统。它对出入门和通道的管理也早已超出了单纯的对门锁及钥匙的管理。它不只是作为进出口管理使用,而且还能有助于内部的有序化管理。它能够时刻自动记录人员的出入情况,限制内部人员的出入区域,出入时间,礼貌地拒绝不速之客。同时也将有效保护财产不受非法侵犯。门禁管理系统已成为安全防范系统中极其重要的一部分,在一些发达国家中,它正以远远高于其它类安防产品的进度迅猛发展,广泛应用在智能大厦、智能小区、办公室、宾馆等各种房间门、大门、人行通道的管理。
在注重美观的现代都市里,公司的形象体现了所追求的风格和气度,也是给顾客建立起信心的保障。可以想象,在追求智能化无纸办公的今天,在豪华气派的玻璃大门装上一把笨重的锁将会是件多么繁琐而尴尬的事情啊!但是,如果能用手中的卡片轻轻一晃,大门就应声而开,那将是一种全新的感受。另外,在越来越注重商业情报和安全的今天,传统的个人身份鉴别手段己不能完全满足现代社会经济活动和社会安全防范的需要。从消除人为不安全因素来看,只有不易被他人代替、仿制、甚至本人也无法转让的身份识别凭证才能胜任。因此,从易用性、安全性、成熟性、造价性等方面综合比较,IC卡门禁技术正在以惊人的速度迅猛发展。这正是我们研究IC门禁管理系统的意义所在。
1.2系统组织机构
目前系统组织机构如下图1-1所示:
图1-1系统组织机构图
1.3系统业务流程
下面以超级用户为例,介绍系统的使用流程。不同的用户拥有的操作权限不同,所以相应的 操作流程也会有所差别,用户只需按以下操作流程操作页面即可。
第一步:登陆门禁系统(用户名:0000 密码:000000)。
第二步:创建用户角色(如总经理、经理、职员)。
第三步:设置系统参数(如串口设置、安装插件、修改密码)。
第四步:对数据字典进行初始化操作(如部门、身份、证件号、国籍、民族、卡片处理)。
第五步:按照企业或学校组织结构录入人员信息。
第六步:添加门禁设备,添加门信息参数。
第七步:设置特殊时间组、门禁时间段,即特定时间组及门禁时间段,哪些人员可以对门禁 进行操作。
第八步:设置门禁权限组(将时间段与门禁绑定在一起)。
第九步:设置人员门禁权限组(添加人员信息到人员权限组内)。
第十步:添加的人员信息对门禁设备进行开、关操作。
第十一步:设置门策略时间组(如:00:00 至 24:00)。
第十二步:设置门策略(如门常开、门常闭、刷卡即开)。
第十三步:人员对门禁进行开、关操作。
第二章 系统的可行性研究与需求分析
2.1 可行性研究
本次软件项目可行性研究报告是对项目课题的全面通盘考虑,是项目分析员进行进一步工作的前提,是软件开发人员正确成功的开发项目的前提与基础.
写软件项目可行性研究报告可以使软件开发团体尽可能早的估计研制课题的可行性,可以在定义阶段较早的认识到系统方案的缺陷,就可以少花费时间和精力,并且避免了许多专业方面的困难.所以该软件项目可行性研究报告在整个开发过程中是非常重要的。
本系统从技术可行性、经济可行性、操作可行性、方案可行性四个方面分析研究。
2.1.1经济可行性
本系统使用SQL server数据库管理系统,前端采用eclipse作为应用开发工具,容易购买,价格低廉。开发此系统并投入使用,安装简单,成本低廉,易于维护和升级,开发周期短,经济效益高。
本系统要求的计算机配置不是很高,需要操作系统,应用软件和数据库管理等软件,基础投资建设成本不是很高。支持没有计算机使用经验、计算机使用经验较少及有较多计算机使用经验的用户均能方便地使用本系统。所以,在经济上是可行的。
2.1.2技术可行性
开发工具:MyEclipse
数据库环境:SQL server 2005
系统环境:Microsoft Windows 2000或以上版本。
系统实现依靠相对熟悉的JAVA语言和SQL server数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作,暂不存在技术问题。
2.1.3操作可行性
本系统需要一台WEB服务器,配置要求与客户量相关,对于普通公司内使用,一台普通的服务器即可。当前的主流服务器完全可以满足要求。对于客户端,只需要客户端装有浏览器即可,对机器本身没有太高的要求,一般电脑都可满足要求。
2.1.4方案可行性
本系统致力于设计出能够满足大楼管理需求,实现工作环境安全、人事考勤管理、大规模人员出入等管理工作,其带来的经济效益非常好,所以本方案是可行的。
2.2 需求分析
2.2.1用户需求
主要是建筑物的建筑施工图及建筑结构、布局及环境进行详细的研究及分析,结合长期的工程设计经验,对门禁防护范围及功能的需求分析如下所示。
1、在设备选择时,要考虑火灾情况下断电解锁功能,确保消防报警时人员的安全。
2、系统有可扩展性好,令用户可轻易在原系统基础上进行系统扩展,而不必重新对系统作太大的改造。
3、系统应配置方便用户制作工卡。
4、系统支持通行时区的设定,并可对不同的节假日独立设定。
5、系统采用分级结构,局部的损坏不会影响其它部分的正常工作。
6、门禁系统应可定时控制系统的各区域布防或撤防、通道门的开关及出入口的开关,并具有防返功能。
7、门禁点主要为单向控制,进门时刷卡,出门不用刷卡,按开门按钮开门。实时记录出/入人员的姓名、身份、时间、次数,可按时间、特定门、特定持卡人等进行检索查询,并自动生成报表。
8、门禁系统网络结构要求具有高系统容错性,采用集中管理、分散控制管理模式,整个系统为模块化结构,方便系统扩容。
9、所有门禁通过刷卡开门,合法用户可随时换卡,可设置持卡人拥有不同的权限,不同权限的人可进入的区域不同,也可以指定不同权限进入各个门的时效。
10、门禁系统实时监控各控制点的门的开关情况,异常情况(开门超时、强行开门、非授权开门等)自动报警,系统电缆、电源、模块等受到破坏时具有自动报警功能。
11、门禁系统的控制器在与控制主机失去通讯的异常情况下,可独立工作。每个智能控制器可同时支持读卡器及输入/输出点,设有配置端口,以便于使用计算机直接对单个智能控制器进行配置和编程。
2.2.2系统需求
实现对人员、出入通道的科学分类管理,对不同授权的人员,限制其进出区域和时段。结合实际情况,在大楼内办公室、每层楼出入口等设置门禁控制点,每一门禁点均可同时作为考勤点,也可独立设置考勤点。
对通道进出权限的管理:
• 进出通道的权限,就是对每个通道设置哪些人可以进出,哪些人不能进出。
• 进出通道的方式 ,就是对可以进出该通道的人进行进出方式的授权,进出方式通常有密码、读卡(生物识别)、读卡(生物 识别)+密码三种方式。
• 进出通道的时段,就是设置可以进出该通道的人在什么时间范围内可以进出。
• 进出记录保存过后可查询,保障了公司安全并且可以防止员工混加班现象 。
2.2.3设备需求
表2-1中心设备需求列表
设备 用途 软件要求 硬件要求(最低) 备注
PC服务器(六台) 中心数据库、中心平台系统、综合管理系统、银行转帐、门禁通道、汽车通道 操作系统:Microsoft Windows2003 Advanced Server
数据库:Microsoft SQL Server 2000 企业版 最低配置要求:Xeon3.2G\2M\2G DDR2\21000M\2 146G接口,HBA卡
PC机
(5 台)
WEB服务前置机、商务收银前置机、门禁身份前置机、第三方前置机、手机增值服务前置机 操作系统:Windows 2000 Server 或 Windows2000 Advance Server
数据库:Microsoft SQL Server 2000
WEB服务软件:JDK1.4 与Apache Tomcat 4.1 硬件:四核CPU,Xeon E5500,DDRIII内存2GB,硬盘146G。100Mb网卡,有USB接口 三个厂区加办公大楼
2.2.4数据流图
数据流图(DFD:Data Flow Diagram)是对调查材料进行加工、提炼、抽出其中只反映组织中信息运动规律的部分,是组织中信息运动的抽象,是信息系统逻辑模型的主要形式。由于图形描述简明,清晰,不涉及到技术细节,所描述的内容是面向用户的,所以数据流程图是系统分析人员与用户进行交流的有效手段,也是系统设计的主要依据之一。
数据流图符号说明如表2-2所示。
2.2.5数据字典
数据字典对数据流程图的各种成分其注解、说明作用,给这些成分赋以实际的内容并且还要对系统分析中其他需要说明的问题进行定义和说明。数据字典是对DFD的说明,是系统设计、系统实施及系统维护的重要基础资料。
数据字典描述的主要内容有:数据流、数据元素、数据存储、加工处理、其中数据元素是组成数据流的基本成分。
门禁管理系统------专家数据管理模块数据字典如下:
- 数据元素:是不可再分的数据单位
名字:用户功能模块
描述:用于区分用户使用系统权限
编号:F1.1
数据类型:字符串
取值范围:管理员、会员
名字:信息管理模块
描述:对权限的信息查询和出入信息查询
编号:F1.2
数据类型:字符串
取值范围:权限信息、出入信息
名字:用户权限管理模块
描述:权限处理
编号:F1.3
数据类型:字符串
取值范围: 用户信息和权限信息处理
名字:管理设置模块
描述:信息管理、会员管理、权限管理
编号:F1.4
数据类型:字符串
数据来源: 管理信息
- 数据存储
数据存储是数据结构停留或报讯的地方。也是数据流的来源和去向之一。可以是手工文档或手工凭单,也可以使计算及文档,一般而言,应包括如下内容:{数据存储名,说明,编号,输入的数据流,输出的数据流,组成(数据结构),数据量,存取频度,存取方式}。
名字:用户信息
描述:与用户相关的属性集合
编号:D1
组成:用户名、地址、性别、电话、密码、邮箱、权限、验证码
- 数据流:是数据结构在系统内传输的路径。岁数据流的描述通常包括如下内容:{数据流明,说明,编号,数据流来源,数据流去向,组成(数据结构)}
名字:权限更改管理
描述:权限更改相关的信息
编号:F1
组成:用户信息、权限信息、
名字:用户信息管理
描述:动态进行专家查询的条件组合
编号:F2.1
组成:用户名、地址、性别、电话、密码、邮箱、权限、验证码
2.2.6系统数据模型
图2-2系统活动图
图2-3模块实体-联系图(E-R图)
第三章 系统的总体设计
3.1 系统软件结构设计
3.1.1 软件结构
管理软件有基本资料、设备管理、IC卡管理、查询管理、辅助管理五个模块组成。如图所示。
图3-1门禁管理系统模块
图3-2 基本资料模块
图3-3 IC卡管理模块
图3-4查询管理模块
图3-5辅助管理模块
图3-6设备管理模块
3.1.2 数据库逻辑设计及表的设计
在此阶段,把E---R图转换成DBMS(数据库管理系统)所支持的数据类型,就得到层次模型、网状模型或关系模型,然后对相应的数据模型定义。根据功能要求,就可以把表设计出来。分述如下:
表3-1发卡信息表(tblcardnew)
字段名 字段意义 类型 长度 备注
cnumber IC卡号 double 20
pnumber 员工编号 double 20
newtime 发卡日期时间 date 8
oktime 卡有效期 text 10
表3-2挂失信息表(tblcardlost)
字段名 字段意义 类型 长度 备注
pnumber 员工编号 double 20
losttime 挂失时间 date 8
表3-3退卡信息表(tblcardend)
字段名 字段意义 类型 长度 备注
cnumber IC卡号 double 20
Endtime 退卡时间 date 8
表3-4部门信息表(tblcon)
字段名 字段意义 类型 长度 备注
conno 部门编号 integer 2
Conname 部门名称 text 10
Mainno 部门主管编号 double 20
表3-5员工信息表(tblworker)
字段名 字段意义 类型 长度 备注
pnumber 员工编号 double 20
name 姓名 Text 10
sax 性别 Text 10
borntime 出生年月 Text 10
phoneno 身份证号 double 20
tel 电话号码 double 20
addr 地址 Text 10
worktime 工作时间 Date 8
position 职务 text 10
conno 部门编号 Integer 2
表3-6操作信息表(tblcontrol)
字段名 字段意义 类型 长度 备注
controlerpnumbe 操作员编号 Double 20
controlstarttime 操作开始时间 Date+time 30
controlendtime 操作结束时间 Date+time 30
表3-7门禁管理信息表(tbldoormen)
字段名 字段意义 类型 长度 备注
cnumber IC卡号 Double 20
doorno 有效门号 Double 20
doorauthority 开门权限 Text 20
表3-8开门信息表(tblopendoor)
字段名 字段意义 类型 长度 备注
cnumber IC卡号 Double 20
doorno 门号 Double 20
opentime 开门时间 time 8
3.1.3生成表及建立表间关系
(1)新建数据库。进入"企业管理器"单击控制台根目录下的"+",找到数据库文件夹,右击数据库文件夹,选择"新建数据库",给定数据库名字为"gate"
(2)生成表。生成的数据库有十个项目,右击"表",选择"新建表"。依次生成8个表,各表的各字段名称、类型和属性如表3-1---表3-8所示。
(3)设置每个表的主键和外键关系。双击项目"表",找到新建的表,右击表"tblworker",选择"设计表"然后选中"pnumber"这一行,右击,在下拉菜单中选择"设为主键"。看在"pnumber"这行前有一个钥匙形状的标志,表示设置成功,再在表内任意一处右击,在下拉菜单中选择"关系",在对话框中单击"新建",主键表一项选"tblworker",外键表一项选"tblcardnew"然后在对应的下方都选"pnumber"再单击"新建",建立另外的外键关系,方法同上。另外再建立其他的主键和外键关系。
(4)生成关系图。右击"关系图",选择"新建关系图",根据向导,把8个表添加,单击"完成"系统自动完成关系图。
3.2 系统流程图
图3-7门禁系统流程图
第四章 详细设计
4.1选择设计语言
我们选择现在流行的个人电脑作为主机系统,如果要求客户在配置门禁系统的同时,也要配置专业的工作站和服务器,这样的代价将会得不偿失。近些年来,面向对象技术在理论上和实践上得到了飞速发展,今天的应用系统愈来愈庞大、复杂。我们必须选择强大的开发工具来支持。这些开发工具应支持Windows系列平台,同时具有可视化编程、可复用的组件、集成的开发环境和强有力的辅助工具。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
JAVA语言的特点:
- 面向对象。面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。
- 分布式。Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供的动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。
- 健壮。Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大缩短了开发Java应用程序的周期。Java提供Null指针检测数组边界检测异常出口字节代码校验。
- 结构中立。为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
5.安全。Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。 - 可移植的。同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础。
- 动态。Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。
4.2系统分析与设计
根据系统特点,管理软件要求易学、容易掌握,可以很简单方便的管理各种信息。能完成通讯和访问数据库的功能,并要有很好的安全性、协调性和完整性。
根据需求分析,我们采用当前流行的B/S(浏览器/服务器)结构,它的主要形式是系统的管理人员以及使用者在浏览器输入数据,对服务器端的数据库进行各种操作,操作的结果又由服务器端的数据库发回给浏览器显示出来,形式比较自由,安装也很方便。该模式同时具有开发时间短,成本较低,数据量传输快等优点。
下面分别对5个功能模块进行介绍。
(1)基本资料
1)用户资料
在用户资料管理界面中,可以增加一个新的用户,在数据库中为该用户建立相应的数据记录,也可以对已经存在的记录进行修改和删除操作。该"用户界面"(如图4-1所示)菜单提供了详细的资料记载功能,包括用户的电话、地址、性别、身份证号、照片,这样对用户进行多方面记载,提高了安全性。
图4-1 用户角色编号
图4-2 角色管理
2)设备资料
设备要在系统中正常使用必须在设备界面中输入相应的设备信息,包括设备所处的位置、硬件跳线地址、设备类型、与设备连接的电脑、与控制器连接的门数以及是否要巡检等等。也可以通过设备资料输入界面删除和修改设备资料。
3)开门时段
在给每个用户定义开门时段的时候,每个新的时段会产生一个新的时段码,一个控制器可以存储多个开门时段。它可以实现下载、查询和初始化。
4)读取记录
脱机使用时,用户进出记录将被存储在控制器存储器中,控制器的存储空间有限,管理者要经常在提取界面中提取控制器中的记录,提取完后,系统将自动清空记录存储区。
5)黑名单
在此界面中可以对控制器黑名单存储区进行操作,当用户卡丢失后,须到管理中心去挂失,管理员在执行挂失以后需到黑名单中下载黑名单,这样挂失处理才会生效。
6)远程控制
在远程控制可以进行开关门,报警,复位功能。
8)巡检
巡检是指管理计算机实时监控门锁的状态,在管理计算机和房门控制器连接正常的情况下,巡检功能可以监控到连接在本机上的门禁控制器的各种状态,包括通讯是否正常、门状态等。
9)设备信息
可以从设备信息界面中读取程序版本、硬件版本、设备系列号以及出厂日期等。
(2)IC卡管理
1)IC卡发行
"IC卡发行"可以从数据库中读取用户信息,选择卡的类型、发行日期、有效日期、有效通道、休息日及有效通道地址进行发行。界面如图4-3所示。
图4-3卡户开户
2)IC卡修改
在此界面中可以修改IC卡的各种信息。
图4-4修改IC卡
3)IC卡挂失
IC卡遗失后,可以通过卡挂失操作将丢失的IC卡的卡号写入黑名单库,并将黑名单下载到控制器存储器中。
4)IC卡解挂
在此界面中恢复已经挂失的卡。
图4-5卡片挂失/解挂
5)IC卡检测
在此界面中可以检测IC卡存储内容。
(3)查询管理
此模块可以查询IC卡发行记录,IC卡修改记录,IC卡挂失记录,IC卡解挂记录,远程控制记录,开门记录。
图4-6用户信息查询
(4)辅助管理
1)操作员管理
在此界面中可以为不同操作员组设定相应的开启不同菜单项的权限。选择相应内容进行修改和保存。
2)操作员管理
此管理界面可以对操作员进行分组,分到不同的组所对应享有的权限是不同的。
图4-7操作员管理
3)更改密码
在此界面下可以修改自己的登陆密码。
4)系统维护
在此界面可以对:公司名称、背景、串口、数据库、无卡挂失、清理门禁记录进行维护。
5)系统初始化
系统初始化可以清空数据库中的记录。
6)时段设置
在此界面下可以对控制器中的时段进行设置、修改。
4.3 ODBC技术操作数据库
4.3.1 选择ODBC的原因
Visual C++是一个功能强大的可视化应用程序开发工具,它提供了对数据库的多种访问技术。例如,ODBC、MFC ODBC、DAO、OLE DB、ADO等,DAO提供了使用Microsoft数据库引擎的层次来访问数据库,用户可通过代码来创建和操纵数据库;OLE DB是一套COM接口,它为应用程序提供一个统一的接口以访问存储在不同信息资源中的数据。它是一种底层接口技术,仍需编制大量代码;ADO技术是一种基于OLE DB的访问接口,它是在OLEDB API基础上提供一种面向对象的与语言无关的接口,它属于高层接口。ODBC技术为用户提供了一个访问关系数据库的标准接口,它可以通过MFC或API使用应用程序独立于源数据库管理系统,它建立一组高层应用程序调用接口和一套基于动态链接库的运行环境,我们可以用这样一组接口规范开发应用程序,而使用标准函数和结构化查询语言(SQL)对数据库进行操作。目前,几乎所有关系数据库都提供了可用于ODBC的驱动程序。正是因为ODBC让应用程序的开发者避免了与数据源相连的复杂性,所以ODBC技术的应用非常广泛,基本上都可用于所有的关系型数据库。此外,还具有易于使用,功能强、高速、低内存开销的特点。
4.3.2 创建ODBC对象模型
(1)ODBC的体系结构原理。
ODBC的体系结构由应用程序、ODBC接口、驱动程序管理器、驱动程序和数据源组成,如图4-20所示。应用程序通过ODBC接口访问不同数据源中的数据。它负责执行并调用ODBC接口来提交SQL语句并接收SQL的执行结果,它完成以下任务:请求与数据源链接;发送SQL请求:定义存储区和数据格式;请求结果;终止与数据源的链接等。驱动程序管理器主要为应用程序装入驱动程序,另外还执行以下任务:映射数据源成特定驱动程序的动态链接库;处理初始化调用;提供入口指针;提供ODBC的参数确认和顺序确认。每个驱动程序是一个动态链接库,实现ODBC函数调用与数据源交互。数据源是由用户需要访问的数据以及与之相关的操作系统、DBMS和网络平台组成。每个不同的数据源类型由一个驱动程序支持。
图4-1 ODBC结构图
2)生成ODBC应用框架。
应用VC++的APPWIZARD自动生成一个ODBC应用框架(选定Database view with file support)。在生成的应用程序框架VIEW类中,包含一个指向VIEW类对象的指针m_pSet,目的是在视图表单和记录集之间建立联系,使得记录集中的查询结果可以在视表单中显示出来。使程序与数据源建立联系,使用CDatabase::Open()来进行初始化。具体介绍如下。
1)查询记录
查询记录使用CRecordSet::Open()和CRecordSet::Requery()成员函数。在调用CRecordSet::Open()时,将已经打开的CDatabase对象指针传给CRecordSet对象的m_pDatabase成员变量,使用该数据库对象建立ODBC连接;如果m_pDatabase为空指针,就新建一个CDatabase类对象,并使其与缺省的数据源(GetDefaultConnect()获得)相连,然后进行CRecordSet类对象的初始化。
在查询过程,利用CRecordSet的成员变量m_strfilter(为过滤字符串,存放着SQL语句的WHERE条件串)和m_strSort(为排序字符串,存放着SQL语句中的ORDERBY条件串)来执行条件查询和结果排序。使用参数化查询的步骤如下:
声明变量:CString Pl;float p2;
在结构函数中初始化参数变量:P1=_T("");P2=0.Of;m_nParms:=2;
将参变量与对应列绑定;
pFx一>SetFieldType(CFieldExchang::param)
RFX_Text~pfx._T("Pl"J。Pl);
RFX_Single(Pfx,-T("P2"),P2);
完成以上便可以利用参变量进行条件查询:
m_Pset一>m_strfilter="TYPE=?AND VOLTAGE"=?;rft_Pset一>Requery();
参变量的值按绑定的替换查询字串的"?"适配符。如果查询的结果是多条记录,可以用CREcordSet类的函数Move()、MoverNext()、Moveprev()、MoveFirst()、MoveLast()来移动光标。
2)增加记录
增加记录使用ADDNWE()函数,要求数据库必须是允许增加的打开方式m_Pset--->ADDNEW();//在表的末尾增加新记录
rn_Pset一>SetFieldNull(&.(rn_Pset一>rn_type),FALSE);
Pset一>m_type一"AAA";//输入新的字段
m_Pset一>Update();//将新的记录存入数据库中
m_Pset一>Requery();//重建立数据集
3)删除记录
用Delete()函数来删除记录,并在调用
Delete()函数后不需要调用Update()。
m_Pset一>Delete()-if m_Pset一>IsEOF())
m_pset一>MoveNext();
else
m_pSet一>Move Iast();
4)修改记录
m pSet一>Edit();//修改当前记录
m_pSet一>m_type---SSS;
m_pSet一>Updata();//将修改结果存入数据库中
rn_pSet一>Requery()
4.4 IC卡管理模块设计
4.4.1 模块功能
IC卡管理主要完成IC卡发行,IC卡延期,IC卡挂失,IC卡解挂,IC卡检测功能。操作人员可以通过"IC卡发行",发行IC卡,将具体的卡和数据库中的用户关联起来。并能设置用户的开放时间,卡的类型,有效通道,以及有效地址等;可以在"IC卡延期"修改IC卡的有效期;当用户卡丢失时,可以通过"IC卡挂失"把卡号写入黑名单库;也可以通过"IC卡解挂"使写入黑名单的卡在系统中恢复;通过"IC卡检测"检测IC卡的存储内容。
4.4.2 界面设计
(1)创建工程
根据需求和功能分析,为了方便加入其他的模块,我们采用基于对话框的MFC AppWizard[exe]程序。设计思路:主模块的界面和代码编写放在各个分模块之后[16]。
(2)IC卡发卡模块主要控件设置以及功能如表4-1所示。
表4-1 IDD_DIALOG_ONOK对话框中的主要控件表
控件类型 ID 属性设置 功能
按钮 IDC_BUTTON_OK Caption设为"确定" 执行操作
按钮 IDC_BUTTON_QUERY Caption设为"读卡" 读卡
按钮 IDC_BUTTON_GOBACK Caption设为"返回" 返回到主界面
按钮 IDC_BUTTON_CHNCEL Caption设为"取消" 撤消准备执行的操作
组框 IDC_STATIC Caption设为空 组织控件
静态文本 默认 Caption设为"用户编号" 盛放说明文字
静态文本 默认 Caption设为"用户姓名" 盛放说明文字
静态文本 默认 Caption设为"卡号" 盛放说明文字
静态
文本 默认 Caption设为"卡类型" 盛放说明文字
静态
文本 默认 Caption设为"有效日期" 盛放说明文字
静态
文本 默认 Caption设为"时间段" 盛放说明文字
编辑框 IDC_EDIT_PNUMBER Styles选中Number 显示员工编号
编辑框 IDC_EDIT_NAME 默认 显示员工姓名
编辑框 IDC_EDIT_CNUMBER Styles选中Number 输入或显示员卡号
编辑框 IDC_EDIT_DOORAUTHORITY 默认 输入或显示卡的类型
组合框 IDC_DATETIMEPICKER_OPENTIME 默认 输入或显示时段
(3)按表4-1所示添加控件后,双击对话框资源,打开Class Wizard,为IDD_DIALOG_ONOK添加类C Dialog ON OK,按表4-2添加成员变量。
表4-2 CDialogONOK类成员变量表
控件ID 变量名 数据类型
IDC_BUTTON_OK m_btnOK CButton
IDC_BUTTON_QUERY m_btnQUERY CButton
IDC_BUTTON_GOBACK m_btnGOBACK CButton
IDC_BUTTON_CHNCEL m_btnCHNCEL CButton
IDC_EDIT_PNUMBER m_ctlPNUMBER CEdit
IDC_EDIT_PNUMBER m_Pnumber int
IDC_EDIT_NAME m_ctlNAME CString
IDC_EDIT_CNUMBER m_Cnumber int
IDC_EDIT_DOORAUTHORITY m_Doorauthority CString
IDC_DATETIMEPICKER_OPENTIME m_Opentime COleDateTime
其他模块也可以根据这种思路做出来。
第五章 系统的实现与调试
5.1 应用系统的开发及测试
5.1.1 系统首页
图5.1系统首页
5.1.2 产品说明
图5-2产品说明
5.1.3 用户登录及访问权限
本系统设计要求用户通过登录框选择访问权限,登录系统。其中,用户须输入用户名和密码,以进入系统。未使用过本系统的用户选择注册会员,系统自动跳转至主界面。
图5.3登录框
常见门禁系统操作,门禁快速上手。
图5.4用户指南
5.1.4 角色管理
对门禁系统的各个用户依据权限分类管理。
图5.5角色管理
5.1.5 操作员管理
对于门禁管理系统管理员,意即操作员,有多种权限,可以更改用户信息,设置用户权限。
图5.6操作员管理
5.2 应用系统的调试
5.2.1操作员权限管理调试
操作员权限是所有用户信息都能给予调用和查看,是一种超级权限,本图只展示操作员在部门的设置。如下图所示。
图5-7部门设置
5.2.1部门树
操作员根据企业或者公司单位的实际情况录入部门信息,系统生成部门树。如下图所示。
图5-8部门树
第六章 测 试
6.1 测试原则及测试方法概述
系统测试的目的是发现系统中的错误,并在发现错误之后诊断错误、改正错误,以提高系统质量,使系统完全符合用户的要求。
6.1.1 测试原则
(1)尽早地和不断地进行软件测试。
(2)测试用例应由测试输入数据和与之对应的预知结果两部分组成。
(3)程序员避免检查自己的错误。
(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
(5)充分注意测试中的群集现象。
(6)严格执行测试计划,排除测试的随意性。
(7)应当对每一个测试结果作全面检查。
(8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
6.1.2 测试方法
本系统的测试普遍采用了黑盒、白盒两种测试方法。黑盒测试是对系统功能的检测,而白盒是检查系统的内部流程。如下表测试方法
序号 检验项目 检验要求及测试方法
1 出入目标识读装置功能检验 出入目标识读装置的性能应符合相应产品要求
2 信息处理/控制设备功能检验 1 对各类不同的通行对象及其准入级别,应具有实时控制和多级程序控制功能。
2 不同级别的入口应有不同的识别密码,以确定不同级别IC卡证的有效进入。
3 有效证卡应有防止室友同类设备非法复制的密码系统应能。
4 控制设备对执行机构的控制应准确,可靠。
5 对于每次有效进入,都应自动存储该进入人员的相关信息和进入时间,并能进行有效统计和记录存档,可对出入口数据进行统计,筛选等数据处理。
6 应具有多级系统密码管理功能,对系统中任何操作均应有记录。
7 门禁管理系统应能独立运行,当处于集成系统中时,应可与监控中心联网。
8 应有应急开启功能。
3 执行机构功能检验 1 执行机构的动作应实时,安全,可靠。
2 执行机构的一次有效操作,只能产生一次有效动作。
4 报警功能检验 当出现非法授权进入,超时开启应能发出报警信号,应能显示出非法授权进入,超时开启发生的时间,区域或部位,应与授权进入显示有明显区别。
6.2 测试项目测试用例
6.2.1功能测试
用例组编号 MJXT-06-07 设计人 李雅洁 设计日期 2013-6-7
用例组概述 本组中的所有用例均为门禁系统的校验,用例中针对门禁系统查询功能中的人员证卡号码查询功能进行测试
业务规则 不可接收不可见字符
用例组共用数据 数据名称 取值 数据名称 取值
用例一 用例编号 MJXT-06-07-01
用例说明 输入一个错误的证卡号码时,能否成功查询到这张IC卡
数据取值 IC卡号码:"00000780"
预期结果 不能成功查询到这张IC卡,系统查询结果为0
实际结果及分析 与预期结果相符,测试通过
用例二 用例编号 MJXT-06-07-02
用例说明 输入一个作废的IC卡号时,能否查询到该员工
数据取值 IC卡号码:"00000600"
预期结果 不能成功查询到该IC卡,系统查询结果为0
实际结果及分析 与预期结果相符,测试通过
测试结果 100%
测试结论 <根据用例组执行情况,对测试结果进行分析>
6.2.2缺陷限制及建议
通过软件测试,发现现系统存在如下不足之处:
- 404错误
图6-1404错误
404错误说明是路径不正确,解决办法有两种:
一是配置web.xml,其内容如下:
<?xml version="1.0" encoding="UTF-8"?> index.jsp 二是更改出错的路径,要链接的文件和本页在同一文件下,直接写链接的文件名即可;要链接的文件在本页的下一级文件中,用"父文件名/链接的文件名" ;要链接的文件在本页的下一级文件中,用"../链接的文件名" ;路径名字母写错了也会报404错误 。 2. NullPointerException异常 这是一个NullPointerException异常,如果页面中包含NULL值操作,就会产生这种异常。如果确定在页面中没有NULL值操作,那就要检查一下数据库,有两种可能,一种是连接数据库时语句出现问题,另一种是没有正确配置数据源。
图6-2异常诊断
结束语
随着IC智能卡、计算机、通讯等技术的不断发展,IC门禁系统越佳的完善,市场前景越来越广阔。学习和研究它的意义毋庸质疑。本次毕业设计的选题源于深圳来吉智能有限公司的IC门禁项目,在毕业设计期间,完成了如下工作。
首先,通过生产实习,掌握了系统所面向的对象是什么,系统由那些硬件组成,以及他们怎样完成相关工作。
第二,查询有关IC卡、计算机、控制、通讯、编程、数据库等方面的资料。学习他们的使用技术。
第三,根据具体的需求、系统特点和对各种方案的对比与研究,采用B/S(浏览器/服务器)结构,选择功能强大的SQL Server 2005作为数据库,MyEclipse为开发工具。
第四,建立数据库,开发管理软件。
由于水平有限和时间的限制,设计出来的软件难免存在着许多的缺点和不足之处,功能也不够完善。这只是一个开始,系统要真正走进市场,还需要进行更深一步的完善工作。如提高系统性能,优化人机界面等工作。
随着信息技术和社会的发展,IC卡技术已广泛被广泛用于社会各领域,如安全防卫、身份识别、金融贸易、公共交通等行业。在芯片技术不断发展中,IC卡的成本会不断下降,性能会更加提高。IC卡将会超着低功耗、大容量、高速度、高技术方向发展。同时,门禁系统的应用范围越来越广泛,人们对门禁系统的应用已不局限在单一的出口控制,而且还要求它不仅应用于智能大厦或社区的门禁控制、考勤控制、停车场、电梯等。还要实现强大的管理功能,操作更简单,控制更严密,管理更智能化。最终嵌入"城市一卡通"系统里,全方位服务于人们智能化与信息化生活。
致 谢
本论文是在导师王维的悉心指导下完成的。导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。使我树立了远大的学术目标、掌握了基本研究方法。本人从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!
对于今天我能顺利的完成大学学业,我最不能忘记的就是我的父母。是他们辛勤的劳动换来我无忧无虑的大学生活,更是他们的关心、爱护和帮助使我有了今天的成绩。
本论文的顺利完成,离不开各位老师、同学和朋友的关心和帮助。三年学习期间,对于同窗好友的关心和帮助,在此表示深深的感谢。还有远方家人的精神鼓励与支持。没有你们的帮助和支持是没有办法完成我的学士学位论文的。
最后对老师,同学再次致以我最衷心的感谢!
参考文献
[1]孙燕涛,试论我国非接触式IC卡应用系统的现状与发展,维普资讯
[2]王爱英,智能卡技术,清华大学出版社,1996
[3]Klaus Finkenzeller,射频识别(RFID)技术一无线电感应的应答器和非接触IC卡的原理与应用,电子工业业出版社,2001.6第一版
[4]包桂秋、林容喜、苏晓生等,基于人体生物特征的身份鉴别技术发展概况,清华大学学报(白然科学版),2001年第41卷第4/5期
[5]王恒奎等,非接触式智能卡系统及若干关键技术,电子应用基础,1999、12
[6]Philips Mifare standard card IC MFI IC S50 Functional Specification [M].holand:Philips,2001-5-23
[7智能门禁管理说明书,深圳来吉智能有限公司
[8]于松涛,徐振成,精通SQL Server2000数据库管理与开发,人民邮电出版社,
[9]韩存兵,Visual C++数据库编程实战,科学出版社
[10]David J,KruglnsK,Scot Wingo,George Shepherd著,Visual C++技术内幕,北京希望电子出版社,1999.5第一版
[11]贾成宇,智能门禁系统门控部分软件设计,长春邮电学院学报2001年01期
[12]宋振会,SQL Server 2000基础教程,清华大学出版社
[13]蔡长安,VC++6.0环境下的ODBC数据库接口与编程技术,江汉大学学报,2003年3月
[14]宋小燕、赵明峰等,VC中串口编程与ODBC技术的应用,维普资讯
[15]王萍、冯建华等,C++面向对象程序设计,清华大学出版社