1、基于一卡通的学生考勤系统摘要 传统的点名考勤方法,不仅占用大量的授课时间,也不能真实地反映学生出勤情况,老师对学生出勤情况的报告与统计工作难度极大、信息的实时性差。尤其是在三本院校中学校教师结构复杂,考勤信息的采集就更是一大难题。基于一卡通的学生考勤管理系统就是真对这一情况,并且经过导师对院校的长时间的教学调查后,结合教学的实际情况决定开发的一套实用的系统模块。本系统由硬件和软件两大部分组成。硬件包括读卡器和射频ID卡组成。软件部分用JSP技术,应用了SSH框架(Spring ,Struts和Hibernate),在页面中使用了JQUERY和AJAX技术进行处理,数据库使用的是 SQL SER
2、VER 2005。本课题开发有三大难题分别是数据库课程表的设计、考勤信息的获取与统计报表和系统权限分配。系统开发过程中指导老师给予的很多处理的方案和宝贵的意见,使课题中三个难题目前已经基本解决。关键字:射频卡,B/S,学生考勤系统,SSHCheck on Work Attendance for Student Base on Radio Frequency Identification Card Manager SystemAbstractThe traditional attendance checking method not only takes massively teaching t
3、ime, but also can not really reflect the attendance situation.Teachers report and statistical work of the students attendance situation is very difficult,and the accrucy of the information is bad. Especially of undergraduate course teacher is very structure complex. The information gather is more ba
4、d,so check on word atterdance for student base on radio frequency card system to resolve this problem .Throughing my teacher thinking so decide to exploit this system. The databaseThe system is composed by two major parts: the hardware and the software. The hardware platform of this system contains
5、Radio Frequency identification ID card andcard reader. The software using JSP technology , use SSH(Spring,hibernate and struts) framework. Using Ajax and Jquery technology to deal with interface.The DateBase use SQL SERVER 2005.This system comprise three difficult problem theyre Database curriculum
6、schedule design , check on work attendance for student forms for reporting statistics and The System UserRole Manager Key words: Radio Frequency identification,IC card, checking system 目录1 绪 论v1.1 研究背景v1.1.1 软件v1.1.2 硬件:v1.2 国内外研究情况及研究意义vi1.2.1 研究意义vi2.系统需求分析i2.1 系统总体需求简介i2.2 系统功能需求分析i2.3 系统性能需求分析i2
7、.4 系统用例模型ii3 系统概要设计v3.1 系统模块划分v3.2系统功能模块设计vi3.2.1 系统管理模块vi3.2.2 统计信息展示vi3.2.3考勤信息获取vii4 详细设计vii4.1数据库设计设计思想vii4.1.1 课程表设计vii4.1.2 系统角色数据库设计viii4.2 数据字典ix5. 系统实现的技术简介xxii5.2 开发相关技术xxii5.2.1 Spring技术xxii5.2.2 struts 技术xxiii5.2.3 hibernatexxiv5.2.4 jquery 技术xxv5.2.5 Ajax 技术xxvi5.3开发环境xxviii5.3.1 SQL Se
8、rver 2005xxviii5.3.2 MyEclipsexxix6. 结 论xxx致 谢xxxi参考文献xxxii1 绪 论射频识别卡技术是近几年发展起来的一项新技术,它成功地结合射频识别技术和ID卡技术解决了无源(卡中无电源)和免接触的难题,是电子信息技术领域的一大突破.由于其方便性,耐用性,且可高速通信和多卡操作等特点,射频识别卡在门禁安防,身份识别,公共交通等众多领域正逐渐取代传统的接触式ID卡,在市场上所占的份额越来越大,射频识别卡的应用日益广泛.这为我们实现学生考勤获取智能化提供了良好的硬件平台,本课题利用射频ID卡和读卡器为硬件,应用jsp技术,真对西安工业大学北方信息工程学院
9、量体裁衣开发的一套学生考勤系统。1.1 研究背景1.1.1 软件自从第一台计算机问世到现在不到百年的时间,计算机已经成为了相当普及的必备设备,在当前社会是信息化社会,科技是第三生产力。计算机应用程度已经成为了各行各业是否能够适应当前社会的标志。管理软件的应用就成为各大企业、学校、政府部门的首选。一套合适的管理软件能够极大的提高部门内部的执行效率,减少时间和人员浪费。所以各种管理软件已经在社会上普遍流行。各大学校都也为自己开发了各种教务系统以提高学校的教学管理效率。所以目前教务管理关键的开发技术和开发思想已经相当成熟,为本系统的开发提供了良好的软件环境和技术的支持。1.1.2 硬件:射频ID卡(
10、俗称感应卡,又称非接触式ID卡)是世界上近十余年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电子器件的一大突破,读写操作只需将卡放在读卡器附近一定距离之内就能实现数据交换,无需任何接触,使用非常方便、快捷、不易损坏。根据射频ID卡据有防磁、防静电、抗破坏性和耐用性强、防伪性好、存储数据安全性高(可加密)、数据储存容量大、应用设备及系统网络环境成本低、成本、品种型号齐全、技术规范成熟等特点,一些功能比较完善的射频ID卡系统得到广泛的采用。中国的ID卡产业及应用从无到有,从小到大,迅速走过了启动阶段,发展的速度是惊人的,特别的这两年
11、来,中国的年发卡量均超亿张,年增长率达到3040%,已成为世界ID 卡应用发展最快的国家之一。射频ID卡系统的应用在国内相当快。各种考勤系统,公共交通收费系统,智能水表系统,门禁系统,食堂售饭系统,节水控制系统和巡检巡更系统等等射频ID卡系统得到广泛的采用。1.2 国内外研究情况及研究意义1.2.1 研究意义当今社会日新月异,信息全球化、产业化已经是众人皆知的事实。所以在教育界实行信息化管理已经是事在必行。当前的大学教育形式多样,管理模式也各有不同,各有其长处和短处。在高校上课还存在着一位教师上多个班级,或者一位教师上大课的特点,用传统的点名考勤的方法,不仅会占用大量的上课时间而且也不能真实的
12、反映学生的到课情况,导致学生出勤情况的报告与统计工作难度极大。虽然每个辅导员和任课老师都参与考勤信息的收集,但考勤信息的汇总和统计仍很繁琐。就大学三本的学校而言,学校的教师结构比较复杂,所以学生考勤信息的收集就更加的困难。本课题的研究就是在目标就是能够基于目前的状况,从实际出发开发出一个实用的系统,即让学生通过射频卡(ID卡)来签到,方便教师和辅导员实施考勤信息的采集。使教师能够对学生的考勤情况随时进行抽查,很方便的看出学生的平时表现情况,从而能够做出正确的管理方案对症下药,提高学校的教学效率。1.2.2 国内外研究状况2.系统需求分析2.1 系统总体需求简介 本系统的主要研究功能是,通过射频
13、ID卡于软件相结合实现对学生和教师考勤的管理,督促学生努力学习。并且应用软件对学生和教师的考勤情况进行准确的统计。给校方管理人员提供了科学可靠的数据以便做出更好的管理方式。学生或教师通过射频ID卡在读卡器中刷卡,由读卡器获得学生或教师的基本信息(卡号、时间、地点),然后由系统对获得的信息进行分析和计算,得到学生、教师、课程、和专业的日、周、月考勤情况。本系统还可以提供各种用户的查询,以便对各自的考勤情况进行了解。 系统中还设计了管理模块,对ID卡、系统用户和用户角色进行管理。2.2 系统功能需求分析 系统功能主要有:1. ID卡管理ID卡管理主要是指对ID卡的办理、注销、挂失等操作。2. 系统
14、用户管理该模块主要是对本系统的使用者进行统一的管理,包括用户的创建与注销,还有密码管理等等。3. 角色管理 指在系统中有各种级别的角色,要对系统的用户进行分类管理,按照角色的不同给予不同的权限,4. 考勤的查询 系统通过学生刷卡得到的信息,生成基于班级、专业、院系、年级、及课程或者基于学生和教师的日、周和月报表。5. 刷卡信息的获取 通过学生的刷卡获得学生或者教师的ID编号、教室IP号、刷卡时间进行记录。2.3 系统性能需求分析 1. 学生刷卡反应要快。 在学校中上课时间比较集中,并且相对固定。可能同一时间要有数百人的同时刷卡,所以要求刷卡反应要快。 2. 数据库信息处理要及时 由于学校学生众
15、多,在加上同一个学生在一天中都可能刷卡数次。在数据库中的数据会相当的庞大。所以对数据库中数据的处理要及时。2.4 系统用例模型 1. 参与者(Actors)Actors系统的主体,表示提供或接收系统信息的人或系统,他们是与系统有交互作用的人或事物。参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。由于非压缩格式文件、压缩格式文件都分别与系统产生关系,从以上的分析中,可以创建以
16、下角色:非压缩格式文件 压缩格式文件2.创建用例(Use Case)用例模型是系统和角色之间的对话,它表现系统提供的功能模块,系统给操作者提供什么样的使用操作,即用例是参与者想要系统做的事情。对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。对一个Use Case应说明的基本内容是:Use Case怎样开始和结束、正常德事件流、变通的事件流、意外情况的事件流等。用例在画图中用椭圆来表示,椭圆下面附上用例的名称。在线压缩和解压缩文件根据业务流程可以分为以下几个用例:上传Use Case 压缩Use Case 解压缩Use Case下载Use Case3箭头,用来表示
17、参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。4.创建角色用例关系图在Actor和Use Case之间存在着关联关系,这种类型的关联关系通常涉及到Actor和Use Case之间的通信关联关系。a. 管理员 管理员有用户管理,权限管理,和id卡管理等权限, 其中用户管理包括(用户的创建,注销和密码修改)。 权限管理包括(对角色权限的赋予、权限改变 和角色的创建)。 b. 学生权限 学生只能查看自己的考勤信息c. 教师教师可以查看自己的考勤信息和所带课程的考勤信息d. 辅导员辅导员可查看各个专业,
18、课程和学生的考勤信息,e. 其他人员权限(主要指各级领导)可查看各个专业、学生、课程还有教师的考勤情况。3 系统总体设计3.1 系统模块划分 本课题由软件和硬件两部分组成,主要分为三大模块分配是考勤信息获取、系统管理和统计信息展示。其中系统管理和统计信息展示模块采用的B/S(Browser/Server)架构.运用jsp技术开发。考勤信息获取采用的是C/S架构开发。系统用户可以通过浏览器登录本系统,执行系统的查询和管理等操作。3.2系统功能模块设计3.2.1 系统管理模块系统管理模块分为了系统用户管理、ID卡管理和用户权限管理。其中系统用户管理中的用户是指本系统中的WEB用户,系统用户管理的功
19、能有,对用户的创建和删除,用户密码的设置和修改。ID卡管理子模块是对射频ID卡进行管理,功能是对ID的用户进行创建,还有对ID卡的挂失和注销的处理。通过ID卡管理子模块可以方便学校对学生射频卡的统一管理、用户权限管理模块是对系统中各个用户的权限进行系统的管理,包括用户角色的赋予、角色操作赋予和角色创建三个字模块。3.2.2 统计信息展示统计信息展示是指对学生或教师通过读卡器获得的数据进行分析得到的考勤信息进行分类展示。分类学生考勤、教师考勤、课程考勤和专业考勤4个部分。其中各个部分都要实现对日、周和月的考勤查询。3.2.3考勤信息获取考勤信息获取是指通过读卡器来获取考勤的基本信息。读卡器通过学
20、生或教师的刷卡来获得相应的刷卡信息,包括ID卡的卡号、刷卡时间和刷卡教师IP。本模块包括信息获取、考勤信息有效性验证、考勤分析三部分。信息有效性验证是指要对射频卡对有效性进行验证,看是否是有效的射频卡。考勤分析是指对正确的射频卡刷卡时要判断其刷卡地点是否正确,刷卡时间是否正确有没有迟到。4 详细设计4.1数据库设计设计思想4.1.1 课程表设计 数据库的设计是本系统开发的最重要也是最难的部分,是系统的支柱。其中课程表的设计设本系统数据库的核心。在数据库课程表中引入了教学班的概念。在以往各种教学管理系统中课程表一直是个难题,在很多高校中课程都是人工排课,再在电脑中查找冲突这样做费时费力。也有些学
21、校虽然是实现了课程表的设计,但是数据库结构相当的复杂。使系统庞大运行效率降低。比如在大学的课堂并不像高中那样每个班级的上课的人数、人员和地点是固定不变的,在大学中有小课和大课,有时候会是几个班级在一块上而有时会是一个班。甚至是很多不是一个班级、年级或者专业的学生在一块上课,比如选修课,而且教师也分小教室、多媒体教师和阶梯教室等等。课程表的设计要考虑到学生、教师和教室的空闲时间,还有考虑教室的类型。在本系统的开发过程中经过导师的指导,在数据库设计时候引入了教学班的概念,教学班与我们平时所说的班级有很大的区别,我们可以认为我们每上一次课就是一个独立的课程班,一个普通的课程班是由多个教学班组成。以教
22、学班的基础上设计课程表给数据库的设计带来了很大的方便。 本系统数据库中课程表,是多维数据库设计方式,主要由时间、教师、教室和学生四个部分组成。我们把一年的时间按周分开,一周分7天,一天又分为9节(包括晚自习)。然后以时间为轴将教师、教师和学生与时间分别建立中间表教师时间表、教室时间表、和学生时间表用于标识学生,教师和教室在某个时间的占用情况。同时一个教师可能会教授多门课程,所以在在课程与时间也建立一个课程时间表,用以标识。在本数据库中并没有设计课程表,本课题在数据库中引入了学生培养计划表,应为在大学中每个学生上的课程是不一样的即使是在同一个班级中,所以在导师的指导下引入了学生培养计划表,在培养
23、计划表中存放了该学生在大学中所要上的课程,所以之前的课程时间表的课程指向的是学生培养计划表。 通过这样就确定了学生、教师、教室的占用情况,并且确定了所占地点的课程,但是又有了个新问题,我们并不知道该课程是由那位教师上。所以我们将教师与学生培养计划之间建立了教师授课表,这样就可以知道在某个教室,在指定的时间是在上什么课程,由那位老师教授。而且不会有重复数据出现。 4.1.2 系统角色数据库设计 在系统中登录用户众多,所以用户权限问题尤为重要,在本系统中分别设计了SystemRole(系统角色表),RoleRight(角色权限表), SystemRight(),SystemUser(系统用户表),
24、 UserRole(用户角色表)4.2 数据字典 1表AttendanceRecode表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1student_idint空classroom_ipnvarchar(255)空card_timenvarchar(255)空2表Card表名列名数据类型(精度范围)空/非空约束条件其他说明card_idint非空种子,自增1card_codenvarchar(50)空card_stateint空card_create_timedatetime空card_logout_timedatetime空card_lost_timedatet
25、ime非空3表Classes表名列名数据类型(精度范围)空/非空约束条件其他说明class_idint非空种子,自增1class_namenvarchar(50)空class_codenvarchar(50)空special_grade_idint非空4表Classroom表名列名数据类型(精度范围)空/非空约束条件其他说明classroom_idint非空种子,自增1classroom_namenvarchar(255)空classroom_ipnvarchar(255)空classroomtype_idnvarchar(50)空5表ClassroomClasstype表名列名数据类型(精度
26、范围)空/非空约束条件其他说明classroom_classroomtype_idint非空种子,自增1classroom_idint空classroomtype_idint空6表ClassroomTime表名列名数据类型(精度范围)空/非空约束条件其他说明classroom_time_idint非空种子,自增1classroom_idint非空外键time_idint非空外键7表ClassroomType表名列名数据类型(精度范围)空/非空约束条件其他说明classroomtype_idint非空种子,自增1classroom_namenvarchar(50)空classroom_ desc
27、riptionnvarchar(MAX)空8表CourseClassTime表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1course_idint非空外键time_idint非空外键classroom_idint非空外键9表CourseData表名列名数据类型(精度范围)空/非空约束条件其他说明CourseDataint非空种子,自增1course_codenvarchar(50)空course_namenvarchar(50)非空course_typenvarchar(50)非空10表CourseStatistics表名列名数据类型(精度范围)空/非空约束条件
28、其他说明course_statistics_idint非空种子,自增1course_to_class_ratedecimal(18, 0)空到课率course_late_timesint空迟到次数course_truant_timesint空旷课次数course_statistics_timedatetime空统计时间train_plan_course_idint外键11表CourseTime表名列名数据类型(精度范围)空/非空约束条件其他说明course_time_idint非空种子,自增1time_idint空外键course_idint空外键12表Depart表名列名数据类型(精度范围)
29、空/非空约束条件其他说明depart_idint非空种子,自增1depart_namenvarchar(50)空depart_codenvarchar(50)空13表GradeSpecial(专业年级表)表名列名数据类型(精度范围)空/非空约束条件其他说明special_grade_idint非空种子,自增1special_idint非空外键专业编号gradeint空年级编号14表Special(专业表)表名列名数据类型(精度范围)空/非空约束条件其他说明special_idint非空种子,自增1special_namenvarchar(50)空专业名称special_codenvarchar
30、(50)空专业编号special_std_codenvarchar(50)空专业学生编号depart_idint非空15表SpecialStatisics(专业考勤统计表)表名列名数据类型(精度范围)空/非空约束条件其他说明special_statistics_idint非空种子,自增1special_idint非空外键special_to_class_ratedecimal(18, 0)空到课率special_late_timesint空迟到次数special_truant_timesint空旷课次数special_statistics_timedatetime空统计时间16表Student
31、(学生表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_idint非空种子,自增1student_codedecimal(18, 0)非空学生编号student_namenvarchar(50)非空学生姓名student_ageint空年龄student_nationalitynvarchar(50)空民族student_birthdaydatetime空出身日期student_sexvarchar(10)空性别student_birthday_placenvarchar(50)空籍贯class_idint空外键班级编号student_identitynvarchar(5
32、0)空身份证17表StudentStatisics(学生考勤统计表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_statistics_idint非空种子,自增1student_idint空外键student_to_class_ratedecimal(18, 0)空到课率student_late_timesint空迟到次数student_truant_timesint空旷课次数student_statistics_timedatetime空统计时间18表StudentTime(学生时间表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_time_idi
33、nt空主键student_idint空外键学生编号time_idint空外键时间编号stateint空状态(标识考勤状态)19表StudentTrainplan(学生培养计划表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_plan_idint非空种子,自增1student_idint空外键学生编号statusnvarchar(50)空培养状态(在修,已修)resultnvarchar(50)空train_plan_course_idint外键培养计划课程表20表SystemRight(系统权限表)表名列名数据类型(精度范围)空/非空约束条件其他说明system_righ
34、t_idint非空种子,自增1system_right_namenvarchar(50)空system_right_descriptionnvarchar(MAX)空21表SystemRole(系统角色表)表名列名数据类型(精度范围)空/非空约束条件其他说明system_role_idint非空种子,自增1system_role_namenvarchar(50)空system_role_ descriptionnvarchar(MAX)空22表SystemUser(系统用户)表名列名数据类型(精度范围)空/非空约束条件其他说明system_user_idint非空种子,自增1system_us
35、er_accountnvarchar(50)非空账号system_user_passwordnvarchar(50)空密码23表TeachClass表名列名数据类型(精度范围)空/非空约束条件其他说明teach_class_idint非空种子,自增1train_plan_course_idint空外键24表TeachClassStudent(教学班学生表)表名列名数据类型(精度范围)空/非空约束条件其他说明teach_class_student_idint非空种子,自增1student_plan_idint非空外键teach_class_idint非空外键25表Teacher表名列名数据类型(
36、精度范围)空/非空约束条件其他说明teacher_idint非空种子,自增1teacher_namenvarchar(50)非空姓名teacher_sexvarchar(10)非空性别teacher_nationalitynvarchar(50)空民族teacher_title_idint空外键职称teacher_birthday_placenvarchar(50)空籍贯teacher_birthdaydatetime空出身日期teacher_ageint空年龄26表TeacherStatistics表名列名数据类型(精度范围)空/非空约束条件其他说明teacher_statistics_id
37、int非空种子,自增1teacher_to_class_ratedecimal(18, 0)空到课率teacher_late_timesint空迟到次数teacher_truant_timesint空旷课次数teacher_statistics_timedatetime空统计时间teacher_idint非空外键27表TeacherTeachClass(教师教学班表)表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1teacher_idint空外键教师表IDteach_class_idint空外键教学班表ID28表TeacherTime表名列名数据类型(精度范围)空
38、/非空约束条件其他说明teacher_time_idint非空种子,自增1teacher_idint非空外键time_idint非空外键stateint空29表TeacherTitle表名列名数据类型(精度范围)空/非空约束条件其他说明teacher_title_idint非空种子,自增1teacher_title_namenvarchar(50)非空30表TeachPrinciple(教学计划)表名列名数据类型(精度范围)空/非空约束条件其他说明outline_idint非空种子,自增1course_idint非空外键课程IDcourse_hourint空课时book_isbnnvarcha
39、r(50)空outline_versionint空course_pointint空31表Test(测试表)表名列名数据类型(精度范围)空/非空约束条件其他说明test_idint非空种子,自增1outline_idint空外键test_timedatetime空测试时间test_addressnvarchar(50)空地点test_main_teachernvarchar(50)空主考官32表TestScore表名列名数据类型(精度范围)空/非空约束条件其他说明score_idint非空种子,自增1test_idint空外键student_idint空学生编号score_typenvarcha
40、r(50)空考试类型score_valueint空test_sortnvarchar(50)空33表TestTeacherclass表名列名数据类型(精度范围)空/非空约束条件其他说明test_teach_class_idint非空种子,自增1teach_class_idint空外键教学班IDtest_idint空外键测试ID34表Time表名列名数据类型(精度范围)空/非空约束条件其他说明time_idint非空种子,自增1part_numberint非空节次day_numberint非空日次week_numberint非空周次35表TrainPlan(培养计划)表名列名数据类型(精度范围)
41、空/非空约束条件其他说明train_plan_idint非空种子,自增1train_plan_codenvarchar(50)空培养计划编码train_plan_vernvarchar(50)空培养计划版本train_plan_authornvarchar(50)空作者special_grade_idint空外键专业36表TrainPlanDetail(培养计划细节)表名列名数据类型(精度范围)空/非空约束条件其他说明train_plan_course_idint非空种子,自增1培养计划课程IDtrain_plan_idint空外键培养计划IDexecute_termnvarchar(50)空学期outline_id