- 1.95 MB
- 2022-05-17 13:13:45 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
.学生考勤管理系统学院:内蒙古大学创业学院系别:信息工程教学部班级:2010级计算机科学与技术1班指导老师:包山虎组别:第四小组成员:薛向南、刘贞、金磊、穆永振、张鹏飞、王浩绩-.
.分工情况序号学号姓名完成内容成绩101002005薛向南所有内容均有参与,着重在需求分析、详细设计、库表设计、代码设计。201002052刘贞参与概要设计、详细设计、代码设计、库表设计。301002006金磊参与软件测试、概要设计、详细设计。400902086穆永振参与概要设计、详细设计。501002008张鹏飞参与库表设计、详细设计。601002051王浩绩参与库表设计、详细设计。-.
.目录摘要………………………………………………………………(4)开发计划…………………………………………………………(5)1背景分析…………………………………………………………(6)2可行性分析…………………………………………………………(6)2.1引言………………………………………………………………(6)2.2目的和意义………………………………………………………(6)2.3可行性分析………………………………………………………(7)3需要分析……………………………………………………………(7)3.1学生需求描述……………………………………………………(7)3.2功能需求描述……………………………………………………(8)3.3系统功能划分……………………………………………………(8)3.3.1请假系统模块…………………………………………………(8)3.3.2考勤系统模块……………………………………………………(8)3.3.3后台管理管理……………………………………………………(8)4数据字典……………………………………………………………(9)4.1请假系统…………………………………………………………(9)4.2考勤系统…………………………………………………………(9)4.3后台管理…………………………………………………………(9)5系统共开发工具……………………………………………………(11)5.1相关开发工具简介……………………………………………(11)5.2.1B/S(浏览器/服务器)简介……………………………………(12)5.2.2JAVA/JSP简介…………………………………………………(12)6概要设计……………………………………………………………(12)6.1主要实体模型、E-R图……………………………………………(12)6.2使用T-SQL建立数据库……………………………………………(13)6.3库表关系图………………………………………………………(27)7系统实现界面及代码……………………………………………(27)8软件测试…………………………………………………………(40)9参考文献…………………………………………………………(42)-.
.摘要20世纪末,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。本系统总体上由三大功能模块:请假系统模块、考勤系统模块、后台管理模块组成。系统涉及到高校三大类用户:学生、任课老师、系统管理员。本高校学生考勤管理系统用JSP+SQLServer2005开发,开发过程中运用了页面模块化、信息发布的动态生成、静态页面显示等技术开发。本论文重点介绍本系统的请假系统、考勤系统两大功能模块设计,完成学生、任课老师、系统管理员三类用户功能的设计与实现。-.
.开发计划2012年11月5日——2012年11月20日:进行做需求分析,写出需求分析文档,确定系统需求,为以后设计做铺垫。2012年11月21日——2012年11月25日:进行概要设计,写出概要设计文档,确定系统的初步构架,为详细设计奠定基础。2012年11月26日——2012年11月30日:做库表设计,写建库sql脚本文件,做出数据库表,为以后与网页的链接做前提。2012年12月1日——2012年12月5日:详细设计,写出详细设计文档,对系统进行详细设计,做到能实现部分功能。2012年12月6日——2012年12月12日:编码实现程序,对部分功能进行编码实现,确保功能实现正确。2012年12月13日——2012年12月16日:测试,写出测试报告文档,检测系统是否能正常运行,每个功能是否还有缺陷。-.
.1学生考勤管理系统背景分析目前高校校园信息化逐步完善,能有效地借助网络才能提高办事效率。如今各大高校针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。因此学生考勤管理系统能进一步加强高校学风建设,维护正常的教学秩序,给学生创造一个优良的学习环境。目前高校学生上课考勤管理都是以任课老师上课点名,记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班主任、院系领导都批准方能生效。这种的模式在目前高校管理中暴露了不可避免的弊端:一、学生请假不方便;二、学生请假对任课老师不透明;三、学生对自己整个学期的上课出勤情况没有整体的统计信息;四、班主任对本班学生整个学期的上课出勤情况不易查看;五、院系领导、学校领导不容易把握学生上课的出勤情况。因此一个好的学生考勤管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。本系统涉及到高校六大类用户:学生、任课老师、班主任、院系领导、学校领导、教务管理员。2、可行性分析2.1引言这个阶段要回答的关键问题是:“对于上一个阶段所提出的问题有行得通的解决方法吗?”为了回答这个问题,需要一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决方法。2.2目的和意义开发本系统的目的,就是要解决目前高校中关于学生请假与上课出勤管理中所面临的一系列问题。-.
.开发出高校学生考勤管理系统能有效地提高高校办事效率,解决目前高校学生请假及上课出勤管理问题,实现学生请假及上课出勤信息对任课教师、班主任、院系领导、学校领导透明,使班主任、院系领导及时把握学生的学习情况,及时与学生沟通,提高教学质量。2.3可行性分析技术可行性:高校学生考勤管理系统在目前的高校中使用还不普遍,但也有许多类似的成功案例:如教务管理系统、排课系统等。本系统采用JSP,JavaScript脚本语言、html标识语言及SQLServer2005数据库技术综合开发。JSP是一种安全稳定的动态网页技术,目前国内各企业的电子商务系统,ERP系统,银行信息系统等基本上都用JSP开发的。MicrosoftSQLServer(基于结构化查询语言的数据库服务器)是基于客户/服务器结构的数据库管理系统,用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。为了使客户端能够从服务器中访问数据,服务器必须具备以下两个关键特征:一、对在数据库中的数据提供单点访问。二、将处理和操作在客户端和服务器间进行分配。SQLServer使用Transact-SQL语言来维护、实现和访问数据库,Transact-SQL是SQL(StructuredQueryLanguage)的一个子集标准。SQLServer有多种实用程序允许用户来访问它的服务,用户可用这些实用程序对SQLServer进行本地管理或远程管理。经济可行性:本系统使用B/S架构设计,使用市场上流行的动态网页技术,开发简单,使用度方便,不需要耗费大量的人力物力就能很快的开发出来,系统部署对软硬件要求不高,用户操作简单,几乎不需要对用户进行专业培训就可使用本系统,所以从经济上讲是可行的。操作可行性:本系统操作简单方便,只要懂得上网都能方便操作本系统,所以在操作上也是可行的。分析结果:从以上的分析可知,高校学生考勤管理系统的解决方案无论在技术,经济还是操作上都是可行的,且开发本系统具有一定的经济价值和实用价值。3.学生考勤管理系统需求分析3.1学生需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。在线请假需求:学生请假的全过程当中,学生可以随时查看请假的详细进展情况。查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如:查看“大学英语”这门课程在整个学期请假、旷课多少次等信息。其它需求:-.
.查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码。3.2功能需求描述根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。请假系统功能需求:通过班主任以及院系领导批准请假信息。请假最长时间不能超过1个月,特殊情况除外。考勤管理功能需求:任课老师通过考勤管理系统,对学生上课出勤信息进行公开。请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。3.3系统功能划分根据系统用户的需求,将本系统按功能划分成三大功能模块:请假系统、考勤系统、后台管理模块。3.3.1请假系统模块本模块的功能是在线请假的实现及管理,主要涉及两大类用户:学生、任课老师用户,学生通过此功能模块进行在线请假及查看请假记录信息;任课老师在线审批学生请假及查看请假记录信息。3.3.2考勤系统模块本模块的功能是学生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。学生在线查看自己所有学年的出勤信息;任课老师在线管理学生出勤信息;班主任、院系领导、学校领导查看不同的范围的学生出勤信息。3.3.3后台管理管理本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户。系统管理员动态的管理学生信息、课表安排、学年安排等信息,是整个系统实现的基础系统功能模块图:-.
.数据库系统学生任课老师教务管理员查看本人基本信息在线请假查看上课出勤信息查看本人信息修改个人密码管理所教班级学生的上课出勤信息以及批准学生请假查看所教班级学生出勤信息管理学校院系年级专业班级的添加、删除和修改更新每学期每个班级课程及任课老师的安排查看学生上课出勤信息管理系统的请假考勤信息系统功能结构4.数据字典数据词典,既用于描述数据流和数据存储的详细逻辑内容,也可用于描述外部项和处理逻辑的某些数据特性。4.1请假系统学生用户通过此功能进行在线请假及查看请假记录信息;任课老师在线审批学生请假及查看请假记录信息;4.2考勤系统学生考勤信息统计的实现、查看及管理,涉及三大类用户中的所有用户。学生在线查看自己所有学年的出勤信息;任课老师在线管理学生出勤信息;班主任、院系领导、学校领导查看不同的范围的学生出勤信息。4.3后台管理-.
.实现整个系统数据的同步更新及维护,只涉及系统管理员用户。系统管理员动态的管理学生信息、课表安排、学年安排等信息,是整个系统实现的基础。数据流图:学生请假任课老师审批请假成功请假失败请假记录同意不同意请假系统数据流图数据处理任课老师请假系统旷课请假出勤记录请假记录考勤系统数据流图数据流程图:-.
.开始身份验证与数据库核对字段是否匹配管理员主页进行相应操作结束YN重新登录用户类型教师主页学生主页5.系统开发工具根据各用户的需求,以及系统各大功能的需求,经过大量的调查分析,针对本高校学生考勤管理系统选择以下开发工具进行开发:5.1相关开发工具简介系统结构:B/S(浏览器/服务器)开发语言:JSP数据库:SQLServer2005开发工具:JDK1.5 Dreamweaver Jcreator-.
.5.2.1B/S(浏览器/服务器)简介B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。它是随着Internet技术的兴起,对C/S模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据;最大的缺点是对网络环境依赖性太强,由于各种原因引起网络中断都会造成系统瘫痪。5.2.2JSP简介JSP的全称是JavaServletPages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*htm)中加入Java程序片段和JSP标记,就构成了JSP页面。由Web服务器上的JSP引擎来处理JSP元素,生成调用Bean,并用JDBC访问数据库(或文件),最后以HTML或XML的形式返回浏览器。JSP在Servlet类中编译,编译一次后存入内存,以后再调用时,不用再编译,所以速度很快。此外JSP还具有以下优点:(1)一次性编写,到处运行。除了系统之外,代码不用做任何更改(2)系统的多平台支持(3)强大的可伸缩性(4)多样化和功能强大的开发工具支持(5)支持服务器端组件6.概要设计6.1、主要实体模型-.
.教务管理员性别编号姓名职称权限请假记录请假天数学生学号申请时间开始时间请假原因学生出勤记录上课时间出勤情况学生学号课程名称班级出勤记录出勤人数班级名称课程名称考勤时间旷课人数迟到人数6.2E-R图学生出勤学生出勤记录选修课程讲授任课老师批准请假请假记录提交班级出勤记录学号姓名性别班级专业学院编号名称学分学时编号性别姓名班级课程学院学生学号课程号上课时间出勤情况mn111n111n1n6.3使用T-SQL建立数据库-.
.6.3.1教务管理员信息表admin字段名字段类型主/外键字段约束说明编号char(5)PNotNull管理员编号姓名char(10)NotNull管理员姓名性别char(1)NotNull管理员性别职称char(20)NotNull管理员职称权限char(10)NotNull管理员权限图6-3-1教务管理员表截图6.3.2学生基本信息表student字段名字段类型主/外键字段约束说明学生学号char(6)PNotNull学生学号姓名char(10)NotNull学生姓名性别char(1)NotNull性别班级名称char(13)NotNull所在班级专业char(20)NotNull所属专业-.
.学院char(20)NotNull所属学院图6-3-2学生表截图6.3.3学生上课出勤记录表kaoqin_record字段名数据类型主/外键字段约束说明学生学号char(6)pNotnull学生学号课程编号char(14)pNotnull课程号上课时间char(14)Notnull上课时间出勤情况char(3)Notnull出勤情况-.
.图6-3-3学生出勤记录表截图6.3.4请假信息表qingjia字段名字段类型主/外键字段约束说明学生学号char(6)pNotnull学生学号申请时间char(14)Notnull请假时间开始时间char(14)Notnull开始时间请假天数smallintNotnull天数请假原因char(80)pNotnull原因审批状态char(5)Notnull审批状态图6-3-4请假信息表截图6.3.5任课老师信息表teacher-.
.字段名字段类型主/外键字段约束说明老师编号char(9)PNotNull老师编号老师姓名char(20)NotNull老师姓名性别char(1)NotNull性别所教班级char(13)NotNull所教班级所教课程char(20)NotNull所教课程所属学院char(20)NotNull所属学院图6-3-5任课老师信息表截图6.3.6考勤表字段名字段类型主/外键字段约束说明班级名称char(10)PNotNull上课班级课程编号char(10)NotNull课程编号考勤时间char(10)NotNull考勤时间出勤人数smallintNotNull已到人数-.
.迟到人数smallintNotNull迟到人数旷课人数smallintNotNull旷课人数图6-3-6任课老师考勤表表截图6.3.7上课缺勤记录表T_absenteeism字段名数据类型主/外键字段约束说明学生学号char(6)PNotNull学生学号学生姓名char(10)NotNull学生姓名班级名称char(5)NotNull所在班级课程名称char(10)PNotNull课程名称缺勤状态char(10)NotNull缺勤情况-.
.图6-3-7上课缺勤表截图6.3.8课程信息表course字段名字段类型主/外键字段约束说明cou_nochar(8)pNotnull课程编号cou_namechar(20)Notnull课程名称cou_creditsmallintNotnull课程学分cou_hourssmallintNotnull课程学时-.
.图6-3-8课程信息表截图6.3.8学生选课表(T_stucourse)字段名字段类型主/外键字段约束说明stu_nochar(8)PNotnull学生学号cou_nochar(8)PNotnull所学课程号图6-3-9学生选课表截图SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[请假记录表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[请假记录表]([学生学号][nchar](8)NOTNULL,[申请时间][nchar](14)NOTNULL,[开始时间][nchar](14)NOTNULL,[请假天数][smallint]NOTNULL,-.
.[请假原因][nchar](10)NOTNULL,[审批状态][nchar](5)NOTNULL,CONSTRAINT[PK_请假记录表]PRIMARYKEYCLUSTERED([学生学号]ASC,[申请时间]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[学生出勤记录表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[学生出勤记录表]([学生学号][nchar](8)NOTNULL,[课程编号][nchar](8)NOTNULL,[上课时间][nchar](14)NOTNULL,[出勤情况][nchar](4)NOTNULL,CONSTRAINT[PK_学生出勤记录表]PRIMARYKEYCLUSTERED([学生学号]ASC,[课程编号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[上课缺勤记录表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[上课缺勤记录表]([学生学号][nchar](8)NOTNULL,[学生姓名][nchar](10)NOTNULL,[班级名称][nchar](10)NOTNULL,[课程名称][nchar](10)NOTNULL,[缺勤状态][nchar](5)NOTNULL,CONSTRAINT[PK_班级缺勤记录表]PRIMARYKEYCLUSTERED-.
.([学生学号]ASC,[课程名称]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[学生基本信息表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[学生基本信息表]([学生学号][nchar](8)NOTNULL,[姓名][nchar](10)NOTNULL,[性别][nchar](2)NOTNULL,[班级名称][nchar](10)NOTNULL,[专业][nchar](11)NOTNULL,[学院][nchar](11)NOTNULL,CONSTRAINT[PK_学生基本信息]PRIMARYKEYCLUSTERED([学生学号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[课程表信息表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[课程表信息表]([课程编号][nchar](8)NOTNULL,[课程名称][nchar](10)NOTNULL,[课程学分][smallint]NOTNULL,[课程学时][smallint]NOTNULL,CONSTRAINT[PK_课程表信息]PRIMARYKEYCLUSTERED([课程编号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]-.
.)ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[任课老师信息表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[任课老师信息表]([老师编号][nchar](8)NOTNULL,[老师姓名][nchar](20)NOTNULL,[性别][nchar](1)NOTNULL,[班级名称][nchar](10)NOTNULL,[课程编号][nchar](8)NOTNULL,CONSTRAINT[PK_任课老师信息表]PRIMARYKEYCLUSTERED([老师编号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[教务管理员信息表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[教务管理员信息表]([编号][nchar](8)NOTNULL,[姓名][nchar](10)NOTNULL,[性别][nchar](2)NOTNULL,[职称][nchar](10)NOTNULL,[权限][nchar](10)NULL,CONSTRAINT[PK_教务管理员]PRIMARYKEYCLUSTERED([编号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSON-.
.GOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[学生选课表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[学生选课表]([学生学号][nchar](8)NOTNULL,[课程编号][nchar](8)NOTNULL,CONSTRAINT[PK_学生选课表]PRIMARYKEYCLUSTERED([学生学号]ASC,[课程编号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N"[dbo].[考勤表]")ANDtypein(N"U"))BEGINCREATETABLE[dbo].[考勤表]([班级名称][nchar](10)NOTNULL,[课程编号][nchar](8)NOTNULL,[考勤时间][nchar](10)NOTNULL,[出勤人数][smallint]NOTNULL,[迟到人数][smallint]NOTNULL,[旷课人数][nchar](10)NOTNULL,CONSTRAINT[PK_考勤表]PRIMARYKEYCLUSTERED([班级名称]ASC,[课程编号]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOIFNOTEXISTS(SELECT*FROMsys.foreign_keysWHEREobject_id=OBJECT_ID(N"[dbo].[FK_考勤表_课程表信息表]")ANDparent_object_id=OBJECT_ID(N"[dbo].[考勤表]"))ALTERTABLE[dbo].[考勤表]WITHCHECKADDCONSTRAINT[FK_考勤表_课程表信息表]FOREIGNKEY([课程编号])-.
.REFERENCES[dbo].[课程表信息表]([课程编号])6.4库表关系图第7章系统实现7.1登陆界面的设计与实现用户登陆时操作页面如图所示:-.
.输入用户名和密码,然后在选择用户类型就能登陆到相应的操作界面。如果用户名和密码不正确,那个会提示用户从新数据登录。
考勤管理系统
记住 -.
.
- 修改密码
- 用户信息
- 退出系统
首页 后退 前进 刷新 帮助