- 867.02 KB
- 2022-05-17 13:17:04 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
共享资料,信息互通。目录目录I摘要IABSTRACTII第1章问题定义11.1引言11.2开发背景11.3问题描述1第2章可行性分析32.1引言32.2目的和意义32.3可行性分析3第3章需求分析53.1引言53.2用户需求描述53.2.1学生用户需求描述53.2.2任课老师用户需求描述53.2.3班主任用户需求描述63.2.4院(系)领导用户需求描述63.2.5学校领导用户需求描述63.2.6系统管理员用户需求描述63.3功能需求描述73.4系统开发工具73.5相关开发工具简介73.5.1B/S(浏览器/服务器)简介73.5.2JAVA/JSP简介83.6系统功能划分83.7数据字典93.8数据流图11III
共享资料,信息互通。3.9运行需求123.9.1最低配置123.9.2建议配置12第4章总体设计134.1引言134.2系统布局设计134.3总体结构图144.4本人主要工作任务15第5章详细设计165.1引言165.2系统功能流程图165.3系统目录结构设计175.4数据库设计与实现175.4.1实体模型175.4.2E-R模型185.4.3数据库的逻辑设计195.4.4数据库表的创建195.4.5数据库的建立215.5前端操作页面设计215.5.1系统登陆设计215.5.2学生用户功能设计215.5.3任课老师用户功能设计225.5.4班主任用户功能设计235.5.5院系领导用户功能设计235.5.6学校领导用户功能设计24第6章编码256.1用户操作页面编码256.1.1系统登陆编码256.1.2学生用户功能编码276.1.3任课老师用户功能编码30III
共享资料,信息互通。6.1.4班主任用户功能编码346.1.5院系领导用户功能编码356.2数据库连接池编码386.2.1数据库连接池程序编码386.2.2连接池配置文件41第7章软件测试437.1引言437.2测试方案437.2.1黑盒测试437.2.2白盒测试437.2.3其它测试方案437.2.4本系统所采用测试方案437.3测试过程447.3.1用户登陆测试447.3.2页面使用安全测试447.3.3学生用户测试457.3.4任课老师用户测试467.3.5班主任用户测试467.3.6院系领导/学校领导用户测试47总结48参考文献49致谢50附录51附录一:文献资料51原文51译文53附录二、系统部署及使用手册57开发工具的安装与配置57系统部署59用户操作手册60III
共享资料,信息互通。摘要本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。本系统总体上由三大功能模块:请假系统模块、考勤系统模块、后台管理模块组成。系统涉及到高校六大类用户:学生、任课老师、班主任、院系领导、学校领导、系统管理员。本高校学生考勤管理系统用JSP+SQLServer2000开发,开发过程中运用了页面模块化、信息发布的动态生成、静态页面显示等技术开发。本论文重点介绍本系统的请假系统、考勤系统两大功能模块设计,完成学生、任课老师、班主任、院系领导、学校领导五类用户功能的设计与实现。关键词:考勤管理;在线请假;JSPII
共享资料,信息互通。ABSTRACTThesystemisaninformationsystemdesignedforaskingforleaveonlineforstudentsandmanagingattendanceofundergraduate.Itisgenerallydividedintothreemainmodules:themoduleforaskingforon-lineleave,themoduleformanagingattendanceofundergraduateandthemoduleforbackstagemanagement.Therearedifferentcustomersintheuniversityoperatingthesystem,suchasstudent,teacher,ateacherinchargeofaclass,departmentleader,schoolleader,administrator.ThesystemisdevelopedwiththehelpofJcreator,JSP(java、javascript、html)andSQLServer2000.Thekeytechniquesusedintheprocessofdevelopmentare:thepagemodularization,dynamicgeneratingandstaticpageshowingofinformation,etc.Andthethesisfocusesontheintroductionofthesystem’sattendancemanagementandthemanagementofaskingforleaveonline.Anditdevelopsthefunctionofstudent,teacher,ateacherinchargeofaclass,departmentleader,schoolleaderonthewhole.Keyword:attendancemanagement;onlineaskforleave;JSPII
共享资料,信息互通。第1章问题定义1.1引言问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”,在此阶段中,主要是弄清本课题需要解决的问题根本所在,以及此课题所需的资源等。1.2开发背景目前高校校园信息化逐步完善,高校师生借助校园网有效的提高了办事效率。各大高校针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。目前高校学生上课考勤管理都是以任课老师上课点名,记录学生上课出勤情况,学期末根据上课出勤表及作业登记表对学生平时成绩打分,然后把数据上交到各院系。学生请假以传统的写请假条的形式向各自班主任请假,时间长的请假,要班主任、院系领导都批准方能生效。这种的模式在目前高校管理中暴露出了许多弊端:一是学生请假不方便;二是学生请假对任课老师不透明,造成对学生上课出勤误记的情况;三是学生上课出勤表对班主任不透明,班主任很难知道本班学生上课的出勤情况,不便于与学生及时有效的沟通;四是学生对自己整个学期的上课出勤情况没有整体的统计信息。五是院系领导、学校领导更加把握不住学生上课的出勤情况。1.3问题描述上述所说高校对学生考勤和请假面临的问题涉及多类用户,系统使用范围是在全校校园网内,由于用户分布广泛,且存在很大差异,如:知识结构的差异、计算机硬件配置的差异、操作系统的差异等。因此本系统设计应当采用典型的B/S(浏览器/服务器)的构架进行设计,操作简单直观,对硬件要求低,最好能实现跨平台。跨平台一是指客户端用户操作的跨平台,二是指服务器端的跨平台,即可以将服务器部署在所有操作平台上。系统应当有很好的扩展性,与当前高校中现有的系统很好集成。61
共享资料,信息互通。目前随着IT技术的不断创新与发展,新的技术不断推出,各种企业实现信息化的解决方案不断成熟。面向对象程序设计语言的广泛使用,各种成熟关系数据库的不断完善与推出,再加上面向对象的软件开发过程广泛应用,软件开发过程变得越来越容易,开发出的系统变得越来越实用,许多企业使用信息系统后,明显提高了办事效率,带来了很大的经济收入。目前流行的基于B/S结构的解决方案主要有ASP,JSP,PHP等技术。本系统选用JSP技术开发,使用当前流行的SQLServer2000数据库管理系统来存储数据,主要解决学生在线请假、在线考勤管理以及后台数据的维护与更新。61
共享资料,信息互通。第2章可行性分析2.1引言这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决方法吗?”为了回答这个问题,需要一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决方法。2.2目的和意义开发本系统的目的,就是要解决目前高校中关于学生请假与上课出勤管理中所面临的一系列问题。开发出高校学生考勤管理系统能有效地提高高校办事效率,解决目前高校学生请假及上课出勤管理问题,实现学生请假及上课出勤信息对任课教师、班主任、院系领导、学校领导透明,使班主任、院系领导及时把握学生的学习情况,及时与学生沟通,提高教学质量。2.3可行性分析技术可行性:高校学生考勤管理系统在目前的高校中使用还不普遍,但也有许多类似的成功案例:如教务管理系统、排课系统等。本系统采用JSP,JavaScript脚本语言、html标识语言及SQLServer2000数据库技术综合开发。JSP是一种安全稳定的动态网页技术,目前国内各企业的电子商务系统,ERP系统,银行信息系统等基本上都用JSP开发的。MicrosoftSQLServer(基于结构化查询语言的数据库服务器)是基于客户/服务器结构的数据库管理系统,用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。为了使客户端能够从服务器中访问数据,服务器必须具备以下两个关键特征:一、对在数据库中的数据提供单点访问。二、将处理和操作在客户端和服务器间进行分配。SQLServer使用Transact-SQL语言来维护、实现和访问数据库,Transact-SQL是SQL(StructuredQueryLanguage)的一个子集标准。SQLServer有多种实用程序允许用户来访问它的服务,用户可用这些实用程序对SQLServer进行本地管理或远程管理。经济可行性61
共享资料,信息互通。:本系统使用B/S架构设计,使用市场上流行的动态网页技术,开发简单,使用度方便,不需要耗费大量的人力物力就能很快的开发出来,系统部署对软硬件要求不高,用户操作简单,几乎不需要对用户进行专业培训就可使用本系统,所以从经济上讲是可行的。法律可行性:本系统拥有自主知识产权,没有使用任何违法的软件也没有交易任何非法的商品,所以在法律上是可行的。操作可行性:本系统操作简单方便,只要懂得上网都能方便操作本系统,所以在操作上也是可行的。分析结果:从以上的分析可知,高校学生考勤管理系统的解决方案无论在技术,经济还是法律以及操作上都是可行的,且开发本系统具有一定的经济价值和实用价值。61
共享资料,信息互通。第3章需求分析3.1引言这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。3.2用户需求描述用户是系统的最终使用者,开发系统的目的是要用户最终很好的使用系统,最终为用户带来各种便利。本系统要解决高校学在线请假以及上课考勤管理两大问题,通过对高校的实际调查分析,本系统应当包括学生、班主任、任课老师、院系领导、学校领导、系统管理员六类用户,这六类用户对系统的需求简要概括如下:3.2.1学生用户需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。在线请假需求:学生在网上填写好请假的起止日期,请假原因后,就可以向本学期本班班主任提出请假申请,超过三天的请假,由班主任审批后,再由院系领导审批。在在线请假的全过程当中,学生可以随时查看请假的详细进展情况。查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如:查看“高等数学”这门课程在整个学期请假、旷课、迟到、早退了多少次,以及具体的时间、任课老师姓名、第几节课等详细信息。其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码,查看本班课表安排。3.2.2任课老师用户需求描述任课老师对系统的主要需求是:管理所教班级学生的上课出勤信息以及查看所教班级学生的上课出勤信息。管理学生上课出勤需求:根据学校安排的课表,随着时间的变化,自动列出还没有在网上公布的学生上课出勤信息,系统自动根据学生请假系统,决定学生上课出勤的最终结果。61
共享资料,信息互通。查看学生出勤信息需求:查看所教班级学生整个学期上出勤统计信息及详细信息。其它需求:查看上课课表,本人基本信息以及修改个人用户密码。3.2.3班主任用户需求描述班主任对本系统的主要需求是:审批本班学生本学期的在线请假以及查看本班学生本学期所有课程的上课出勤信息。审批学生请假需求:本班学生本学期在线请假申请后,自动提示班主任有等待审批的请假信息,班主任针对请假申请信息进行学生请假审批,以及对请假信息回复。查看学生上课出勤信息需求:查看本班学生整个学期有关课程的上出勤统计信息及详细信息。其它需求:查看本班学生的基本信息、修改个人用户密码等。3.2.4院(系)领导用户需求描述院系领导对系统的主要需求是:审批本院系学生超过三天的请假以及查看本院系学生上课出勤信息。审批请假需求:当学生请超过三天的假,经班主任审批同意后,系统自动提交给任何一个最先进入系统的院系领导审批请假,以及针对请假回复。查看本院系学生出勤信息需求:输入查询条件后,系统根据查询条件列出本院系学生相关的上课出勤信息。其它需求:查看本院系有关基本信息以及修改个人用户密码等。3.2.5学校领导用户需求描述学校领导对系统的主要需求是:查看全校学生上课出勤信息。查看出勤信息需求:输入查询条件后,系统根据查询条件列出本校学生相关的上课出勤信息。其它需求:查看有关全校的基本信息以信修改个人用户密码等。3.2.6系统管理员用户需求描述系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的设计,基本功能需求如下:1、管理学校各院系、年级、专业、班级的添加、删除、修改等。2、管理每个学期每个班级的课程安排及指定班主任和任课老师。3、管理系统所有用户。61
共享资料,信息互通。4、管理全校课表安排。5、管理全校每学年开学的起止时间。6、管理系统的请假、考勤信息。3.3功能需求描述根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。请假系统功能需求:通过实际调查分析得出,目前高校中的请假流程是学生若要请假,必须先写好请假条先由本学年班主任审批,超过四天的请假,还要等待院系领导审批通过后才能生效。请假最长时间不能超过1个月,特殊情况除外。考勤管理功能需求:任课老师通过考勤管理系统,对学生上课出勤信息进行公开,但由于任课老师忙于教学,为了能及时准确无误的对学生出勤情况公开,要求系统能自动提示任课老师对上完课了,但还没公布的出勤信息进行网上公布。后台管理功能需求:后来管理主要是用来管理系统操作的数据,因为高校每学年的学生都在变化,有新生入学,也有学生毕业。请假系统要借助班主任安排才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。3.4系统开发工具根据各用户的需求,以及系统各大功能的需求,经过大量的调查分析,针对本高校学生考勤管理系统选择以下开发工具进行开发:系统结构:B/S(浏览器/服务器)开发语言:JAVA/JSP数据库:SQLServer2000开发工具:JDK1.5DreamweaverJcreator服务器端容器:Tomcat5.53.5相关开发工具简介3.5.1B/S(浏览器/服务器)简介61
共享资料,信息互通。B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。它是随着Internet技术的兴起,对C/S模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据;最大的缺点是对网络环境依赖性太强,由于各种原因引起网络中断都会造成系统瘫痪。3.5.2JAVA/JSP简介JAVA是SUN公司推出的完全面向对象的语言,它有很好的跨平台性、安全性、重用性等特点。JSP的全称是JavaServletPages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*htm)中加入Java程序片段和JSP标记,就构成了JSP页面。由Web服务器上的JSP引擎来处理JSP元素,生成调用Bean,并用JDBC访问数据库(或文件),最后以HTML或XML的形式返回浏览器。JSP在Servlet类中编译,编译一次后存入内存,以后再调用时,不用再编译,所以速度很快。3.6系统功能划分根据系统用户的需求,将本系统按功能划分成三大功能模块:请假系统、考勤系统、后台管理模块,涉及到六大类用户:学生、任课教师、班主任、院系领导、学校领导、系统管理员。1、请假系统模块本模块的功能是在线请假的实现及管理,主要涉及三大类用户:学生、班主任及院系领导用户,学生通过此功能模块进行在线请假及查看请假记录信息;班主任在线审批学生请假及查看请假记录信息;院系领导在线审批学生长时间的请假及查看请假记录信息。2、考勤系统模块本模块的功能是学生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。学生在线查看自己所有学年的出勤信息;任课老师在线管理学生出勤信息;班主任、院系领导、学校领导查看不同的范围的学生出勤信息。3、后台管理管理61
共享资料,信息互通。本模块的功能实现整个系统数据的同步更新及维护,只涉及系统管理员用户。系统管理员动态的管理学生信息、课表安排、学年安排等信息,是整个系统实现的基础。3.7数据字典数据词典,既用于描述数据流和数据存储的详细逻辑内容,也可用于描述外部项和处理逻辑的某些数据特性。数据词典把数据的最小组成单位看作数据元素,若干个数据元素组成数据结构。它通过对数据元素和数据结构的定义,来描述数据流和数据存储的逻辑内容。它相当于字典的作用,当用户或软件人员想了解某一数据的含义时,查查字典就可以了。名字:学生信息表别名:学生定义:学生基本详细信息描述:学生=stu_number+stu_name+stu_sex+stu_password+class_id位置:用户登录名字:任课老师信息表别名:任课老师定义:任课老师基本详细信息描述:任课老师=teacher_id+teacher_name+teacher_password+college_id位置:用户登录名字:班主任信息表别名:班主任定义:班主任基本详细信息描述:班主任=class_teacher_id+class_teacher_name+class_teacher_password+college_id位置:用户登录名字:院系领导信息表别名:院系领导定义:院系领导基本详细信息描述:院系领导=college_leader_id+college_leader_name+college_leader_password+college_id位置:用户登录61
共享资料,信息互通。名字:学校领导信息表别名:学校领导定义:学校领导基本详细信息描述:学校领导=school_id+school_name+school_password位置:用户登录名字:上课考勤登记信息表别名:考勤登记定义:任课老师对所教课程的登记情况描述:考勤登记=id+record_time+sk_time位置:任课老师考勤管理页面名字:请假信息表别名:请假定义:学生请假详细信息描述:请假=class_id+year_id+stu_number+qingjia_yuanyin+start_time+end_time+day_number+qingjia_time+class_teacher_status+class_teacher_sp_time+class_teacher_restore+college_leader_status+college_leader_id+college_leader_sp_time+college_leader_restore位置:学生、班主任、院系领导请假系统名字:学生上课出勤息表别名:出勤定义:学生上课的出勤情况。描述:出勤=id+sk_time+stu_number+stu_status位置:学生、任课老师、班主任、院系领导、学校领导考勤系统61
共享资料,信息互通。3.8数据流图数据流程图是结构化系统分析的工具。它既可以表达数据在系统内部的逻辑流向及存储,又可以表达系统的逻辑功能和数据的逻辑变换。数据流程图既能表达现行人工系统的数据流程和逻辑处理功能,也能表达自动化系统的数据流程和逻辑处理功能。图3-1请假系统数据流图Fig3-1thesystem’sofaskingforleavedataflowpursueing学生请假班主任审批院系领导审批请假成功请假失败请假记录同意同意不同意同意不同意图3-2考勤系统数据流图Fig3-2attendancesystem’sdataflowpursueing任课老师请假系统数据处理请假旷课迟到早退出勤记录请假记录61
共享资料,信息互通。3.9运行需求3.9.1最低配置服务器端:1)硬件需求:处理器IntelPentiumIII内存128M硬盘40G2)软件需求:Windows98MicrosoftInternetExplorer4.01JDK1.5SQLServer2000数据库Tomcat5.0客户端:1)硬件需求:处理器Intel奔腾133或相当的处理器内存64M硬盘10G2)软件需求:Windows98MicrosoftInternetExplorer4.013.9.2建议配置服务器端:1)硬件需求:处理器IntelPentiumIV2.8G内存256M硬盘80G2)软件需求:MicrosoftWindows2000/XPJDK1.5Tomcat5.5SQLServer2000数据库MicrosoftInternetExplorer6.0客户端:1)硬件需求:处理器IntelPentiumIV1.8或相当的处理内存128M硬盘20G2)软件需求:Windows2000/XPMicrosoftInternetExplorer6.061
共享资料,信息互通。第4章总体设计4.1引言经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。4.2系统布局设计系统页面采用框架来设计,不同的用户有不同的功能菜单,但都有统一的风格,这给页面的使用和维护都带来了很大的便利,特别是在代码重用方面起了很大作用。本系统各用户的页面设计如图4-1所示:页面主体功能菜单BannerBottom图4-1系统布局图Fig4-1System’slayoutmap1.Banner区——可以在此展示系统标识、页面归属等信息。2.功能菜单区——提供系统可供操作的功能列表。4.页面主体区——显示页面格式化数据页面主体区显示的内容,将依据页面在系统中的作用而定。5.Bottom区——可设计为显示系统所有权等信息。61
共享资料,信息互通。4.3总体结构图根据系统功能的要求,高校学生考勤管理系统各个模块之间的层次结构如图4-2所示:高校学生考勤管理系统请假系统考勤系统后台管理图4-2系统功能结构示意图Fig.4-2Structuresketchmapofthesystem’sfunction按用户划分,系统结构图如图4-3所示:高校学生考勤管理系统学生班主任任课老师院系领导学校领导管理员图4-3系统用户结构示意图Fig.4-3StructuresketchmapoftheSystem’suser请假系统子功能模块层次结构图如图4-4所示:请假系统子模块学生在线请假模块班主任审批模块院系领导审批模块图4-4请假系统结构示意图Fig.4-4Structuresketchmapofthesystemaskingforleave61
共享资料,信息互通。考勤系统子功能模块的层次结构如图4-5所示:考勤管理子模块任课老师提交数据各用户查询考勤数据图4-5考勤系统结构示意图Fig.4-5Structuresketchmapofthesystemcheckingattendance4.4本人主要工作任务本高校学生考勤管理系统分成三大功能模块来实现,本人主要负责:请假系统、考勤系统两大功能模块,涉及前五大类用户:学生、班主任、任课老师、院系领导、学校领导。后台管理功能模块,即系统管理员的功能由同组的同学来实现。61
共享资料,信息互通。第5章详细设计5.1引言总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计是软件开发时期的第三个阶段,也是软件设计的第二步。其任务就是把解法具体化,也就是回答下面这个关键的问题:“应该怎样具体地实现这个系统呢?”,通过详细设计应该得出对目标系统的精确描述,给出各个模块的详细过程性描述。从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。5.2系统功能流程图1)主功能流程:图5-1主界面流程图Fig.5-1mainpages’sflowdiagram开始用户登陆学生班主任任课老师院系领导学校领导在线请假查看考勤信息查看考勤信息提交考勤信息查看考勤信息审批请假审批请假查看考勤信息查看考勤信息退出系统结束61
共享资料,信息互通。5.3系统目录结构设计index.jsp系统首页WEB-INF系统配置目录public公共目录image图片目录student学生目录teacher任课老师目录class_teacher班主任目录college_leader院系领导目录school_leader学校领导目录admin系统管理员目录account_manager账号管理目录class_teacher班主任指定目录college_manager院系管理目录admin子目录course_manager课表安排目录kecheng_manager课程管理目录kaoqin_manager考勤管理目录qingjia请假管理目录year_manager学年安排目录5.4数据库设计与实现5.4.1实体模型老师提交记录记录ID提交时间上课时间图5-1任课老师提交记录实体图Fig5-2entitychartoftherecordssubmitedtobyteacher61
共享资料,信息互通。图5-3请假记录属性模型Fig5-3attributemodeloftherecordaskingforleave院系领导姓名请假记录班级代号学年代号学生学号请假原因请假天数开始时间结束时间申请时间班主任审批状态班主任审批时间班主任回复院系回复院系审批状态院系审批时间图5-4学生出勤记录属性模型Fig5-4attributemodeloftherecordgoingonduty学生出勤记录出勤ID上课时间学号出勤情况5.4.2E-R模型学生请假记录1n请假图5-5学生-请假记录E-R模型Fig5-5theE-Rmodeloftherecordsaskingforleave61
共享资料,信息互通。11出勤记录学生出勤图5-6学生—出勤记录E-R模型Fig5-6E-Rmodeloftherecordsgoingonduty5.4.3数据库的逻辑设计根据系统功能设计的要求以及功能模块的划分,对于系统数据库,可以列出以下数据项和数据结构:考勤登记表:课程安排代号、记载时间、上课时间。学生上课出勤信息表:上课时间代号、上课时间、学号、出勤状态。请假信息表:请假代号、班级代号、学年代号、学号、请假原因、开始时间、结束时间、请假天数、申请时间、班主任审批状态、班主任审批时间、班主任回复、院系领导审批状态、院系领导代号、院系领导审批时间、院系领导回复5.4.4数据库表的创建根据数据库需求的分析,建立如下3个基本数据表。表5-1请假信息表(qingjia)列名数据类型是否为空说明idInt(4)否(主键)(自动生成)请假代号class_idvarchar(10)否班级代号year_idvarchar(20)否学期代号stu_numbervarchar(20)否学生学号qingjia_yuanyinvarchar(200)否请假原因start_timedatetime否开始时间end_timedatetime否结束时间day_numberInt(4)否(默认0)请假天数qingjia_timedatetime否申请请假时间61
共享资料,信息互通。class_teacher_statusInt(4)否(默认值:0)班主任审批状态class_teacher_sp_timedatetime是班主任审批时间class_teacher_restorevarchar(200)是班主任回复college_leader_statusInt(4)否(默认值:0)院系领导审批状态college_leader_idvarchar(20)是院系领导代号college_leader_sp_timedatetime是院系领导审批时间college_leader_restorevarchar(200)是院系领导回复备注:status表示审批状态:0为等待审批,1为同意请假,2为不同意请假。表5-2任课老师提交出勤信息记录表(record)列名数据类型是否为空说明record_idInt(4)否(自动生成)代号idInt(4)否与表course_time中id关联record_timedatetime否老师考勤记载时间sk_timedatetime否上课时间表5-3学生上课出勤记录表(kaoqin_record)列名数据类型是否为空说明kaoqin_idInt(4)否(自动生成)代号idInt(4)否与表course_time中id关联sk_timedatetime否上课时间Stu_numberVarchar(20)否学生学号Stu_statusVarchar(1)否学生上课考勤状态说明:stu_status的值为:“2”表示旷课。“3”表示迟到。“4”表示早退。61
共享资料,信息互通。“5”表示请假。5.4.5数据库的建立打开SQLServer2000下面的[企业管理器],登录之后,选择[新建数据库]命令,给数据库起名为kaoqin。然后通过设计器创建数据表,刚才已经说明了需要不同的数据表来分管,它们分别是“qingjia”,“kaoqin_record”,“record”等,有关这些数据表的信息见上图。5.5前端操作页面设计5.5.1系统登陆设计当不同的用户使用系统时,都要事先进行身份验证。用户在“用户名”处输入系统管理员分配的用户,选择正确的用户类型,最后输入正确密码后方能进行系统,用户名、用户类型、密码任一一个输入有误,系统都将拒绝用户使用此系统,若用户忘记了用户名或密码,请与管理员联系,本系统不支持在线找回密码功能。学生用户的用户名为学生本人的学号,密码也是学号,其它用户的用户名、密码由系统管理员指定。本系统在设计时,严格考虑好了系统的安全性,不允许用户不经登陆直接使用系统的任何一个网页,用户也不能绕过身份验证,即:假如一个学生用户用正确的用户名和密码进行系统后,就算他知道管理用户或其它用户的某个网页地址,也是不能打开,进行操作的,系统将自动提示没权限的错误信息。5.5.2学生用户功能设计根据学生用户的需求,系统实现了在线请假、查看上课出勤信息、查看个人基本信息这三大主要功能。系统针对学生用户设计如下功能菜单:基本信息、请假系统、考勤信息、查看课表、修改密码、安全退出、帮助。在基本信息功能菜单中,学生可以查看自己的学号、姓名、性别、院系、年级、专业、班级号信息。在请假系统功能菜单中,实现了在线请假申请功能,以及查看等待审批的请假信息、请假成功的请假信息、请假失败的请假信息。在考勤信息菜单下,学生可以查看本学年以及历史学年上课出勤的统计信息及详细信息。在查看课表功能菜单中,学生可以查看当前学期的课表安排,以及历年的课表安排。修改密码功能菜单,学生可以修改自己的密码。本系统还自带帮助文件,方便用户在使用过程中随时查阅。61
共享资料,信息互通。学生用户的在线请假,在班主任或院系领导还没批假之前可以由学生自行删除,若班主任审批了请假,则学生不能删除申请记录,学生不能重复请假,因此学生请假时应当慎重。根据学生用户请假的需求,学生三天内的请假(包括三天)只需班主任批准后就可生效,四天(包括四天)以上的请假,必须先由班主任同意,然后学校同意,请假方能生效,超过30天的请假不能在线请假。请假开始时间必须在请假结束时间之前,否则系统自动提示出错信息,且请假时,必须指定请假开始时间,请假结束时间,以及请假原因,请假时不必要指定班主任,系统会自动根据本学期的班级与班主任安排,找到班主任,并将信息自动交给对应班主任进行审批处理,超过四天的请假还将自动交给任何一个院系领导审批处理。系统还约定学生网上请假只能提前一个星期。请假开始时间与结束时间的约定:请假时间学生可自动选择,也可自己输入日期,但是必须输入正确的日期格式,否则系统将出错,建议学生选择日期还不手动输入,以免出错。假若学生只请一天假,则开始时间与结束时间都选择要请假的那一天,如:一个学生2006年5月30日要请假,则开始时间、结束时间都选择2006-05-30,系统在进行处理时,自动把请假的时间设为从2006-05-3000:00:00开始,2006-05-3023:00:00结束。同样,请超过一天的假也是以这种方式处理的。在请假的详细记录中,有学生请假有关所有详细信息,包括学生请假的申请时间、开始时间、结束时间、天数、原因、审批时间、回复、请假成功与否等所有有关请假的信息,学生可以随时查看请假进展情况。5.5.3任课老师用户功能设计根据任课老师用户需求,系统实现了任课老师在线公布学生上课出勤信息、查看学生考勤信息两大基本功能。系统针任课老师用户设计以下功能菜单:查看课表、考勤管理、考勤信息、修改密码、安全退出、帮助。在查看课表功能菜单下,任课老师可以查看本学期自己所带课程的上课时间以及所教班级的一些基本信息。在考勤管理功能菜单中,系统比较智能的根据当前日期自动提示当前学年还没登记的学生上课出勤表。在考勤信息功能菜单中,任课老师可以查看已经记录的学生上课出勤信息,既可以查看学生上课出勤统计信息,也可以考勤学生上课出勤统计信息,还可以做适当的修改。考勤管理功能是任课老师用户最主要的功能,任课61
共享资料,信息互通。老师上完课后,将传统的学生上课出勤情况在网上进行公布,使学生上课出勤信息及时准备对对班主任、院系领导、学校领导透明。根据任课老师用户的需求,系统实现了自动提示任课老师提交数据的功。根据课表安排,将本学期上完课的,还没提交数据的学生出勤情况自动提示任课老师提交数据,实现了智能化管理。比如说一个老师在2006-5-30进入了系统,那么这个老师在本学期,也就是2006-5-30之前上过的课,但还没提交数据出勤登记信息自动显示出来,等待任课老师提交数据,且任课老师在提交数据时,若学生在上课的那天请了假,且请假成功了,那么系统自动将学生出勤记录记为请假,任课老师无法记载学生为旷课等情况。任课老师在考勤信息当中,可以查看所教过的学生上课出勤的详细信息及统计信息,从而到了学期末,可以方便任课老师根据上课出勤情况对学生平时成绩打分。5.5.4班主任用户功能设计根据班主任用户功能的需求,系统实现了游览班级信息、审批本班学生在线请假、及上课考勤信息三大基本功能。系统针对班主任用户设计如下功能菜单:班级信息、请假系统、考勤信息、修改密码、安全退出、帮助。在班级信息功能菜单中,班主任用户可以查看本班学生的基本信息如:年级、专业、班级、学生学号、姓名、性别。在请假系统功能菜单中,班主任可以审批本班学生的在线请假,以及查看审批学生请假的历史记录,如:同意的请假记录和不同意的请假记录。在考勤信息功能菜单中,班主任用户可以查看本班学生所有课程的上课出勤信息,包括出勤详细信息及出勤统计信息。班主任用户在整个系统中是学生请假的决策者,学生请假必须经班主任同意后,才能提交给院系领导审批请假。班主任在审批学生请假时,可以对学生的请假返回反馈意见,以对学生说明不同意请假的原因,或向院系领导说明情况的真实性以更好的方便学生请假。班主任另外一大功能是查看本班学生本学期的所有考勤信息,包括详细信息和统计信息,这样班主任可以及时有效的与本班同学沟通,提高办事效率,提高学生的学习成绩。5.5.5院系领导用户功能设计根据院系领导的用户需求,系统实现了查看本院系信息、审批本院系学生请假、查看考勤信息三大基本功能。系统针对院系领导用户设计如下功能菜单:院系信息、请假系统、考勤统计、班主任信息、任课61
共享资料,信息互通。老师信息、班主任安排信息、院系课表、修改密码、安全退出、帮助。在院系信息功能菜单中,院系领导可以查看本院系的专业信息、班级信息、学生信息。在请假系统功能菜单中,院系领导可以审批经班主任同意的长时间请假,并可查看审批请假的历史记录。在考勤统计功能菜单中,院系领导可以查看本院系各班级考勤统计数据、查寻学生请假信息、考勤信息等。另外在班主任信息、任课老师信息中院系领导可以查看本院系班主任、任课老师的一些基本信息。在院系课表中可以查看本院系当前学年或历年课表安排。院系领导用户的主要功能是查询本院系学生上课的考勤信息及审批学生请假。院系领导可以查询本院系某个班的考勤信息,也可以查询本院系某个人的考勤信息,在查询个人考勤统计信息时,是一个模糊查询,可以根据一个完整学号,唯一的查出一个学生考勤信息,也可输入部分学号、姓名列出所有相关的考勤记录。院系领导还可查看本院系的一些基本信息,如:专业、班级、任课老师、班主任等一些基本信息。5.5.6学校领导用户功能设计根据学样领导用户的功能,本系统实现了查看全校基本信息及学生考勤信息这两在基本功能。针对院系领导用户设计如下功能菜单:学校信息、考勤信息、院系领导信息、班主任信息、任课老师信息、班主任安排信息、全校课表、修改密码、安全退出、帮助。在学校信息功能菜单下,学校领导可以查看有关本校的一些基本信息,包括:院系信息、专业信息、班级信息、学生信息等。在考勤统计功能菜单下,学校领导可以分院系,班级查看学生考勤统计数据也可以查寻学生上课出勤信息。学校领导用户的功能与院系领导用户的功能基本上相同,只是查看信息的范围不一样,院系领导只能查看本院系的信息,而学校领导可以查看全校学生、任课老师、班主任等所有相关信息。由于与院系领导设计基本上一致,不再重复。61
共享资料,信息互通。第6章编码6.1用户操作页面编码6.1.1系统登陆编码用户登陆时操作页面如图6-1所示:图6-1用户登陆页面Fig6-1thepageofdebarkationbyuser部分代号:chuser.jsp……<%request.setCharacterEncoding("GBK");username=request.getParameter("username");password=request.getParameter("password");Type=(String)request.getParameter("type");charuserType=Type.charAt(0);if(username==null||password==null||username.equals("")||password.equals("")){out.println("");out.println("
");out.println("返回");out.println(" ");return;}61
共享资料,信息互通。switch(userType){case"1":{sql="select*fromstu_userwherestu_id=""+username;sql+=""andstu_password=""+password+""";rs=conn.executeQuery(sql);if(rs.next()){session.setAttribute("userType",Type);session.setAttribute("userName",username);session.setMaxInactiveInterval(60*60*24);response.sendRedirect("/kaoqin/student/student.jsp");}else{out.println("");out.println("
");out.println("返回");out.println(" ");}conn.close();break;}…………%>各页面身份验证代码:如check_stu.jsp<%if(session.getAttribute("userType")!=null&&!session.getAttribute("userType").equals("")){StringuserType=(String)session.getAttribute("userType");if(!userType.equals("1"))response.sendRedirect("/kaoqin/public/error_user.jsp");}else{response.sendRedirect("/kaoqin/public/error_log.jsp");}61
共享资料,信息互通。%>只要在所有的学生用户页面中加入上面的代码后,用户必须先登陆后才能打开网页,且不能绕过身份验证。同样的页面对应各用户还有check_class_teacher.jsp等6.1.2学生用户功能编码根据系统详细设计,学生用户操作页面如图6-2所示:图6-2学生请假系统页面Fig6-2Thepageofthesystemaskingforleave请假功能的实现的程序流程图如图6-3所示:61
共享资料,信息互通。图6-3请假系统流程图Fig6-3theflowchartofthesystemaskingforleave等待班主任审批学生请假记录N班主任审批请假T=0C=0N=?T=1C=0N=?T=2C=0N=?N>=4等待院系审批请假失败N<4请假成功院系审批请假T=1C=0N>=4T=1C=1N>=4T=1C=2N>=4请假失败请假成功T=0C=0N=?说明:T表示班主任对请假审批结果。默认值:0C表示院系领导对请假审批结果。默认值:0N表示学生请假天数。默认值:0T、C的值为:0、等待审批。1、同意请假。2、不同意请假。功能实现部分代码:packageqingjia;publicclassQJ_Record{61
共享资料,信息互通。publicintday_number=0;publicintclass_teacher_status=0;publicintcollege_leader_status=0;publicQJ_Record(intT,intC,intN){this.class_teacher_status=T;this.college_leader_status=C;this.day_number=N;}}packageqingjia;publicclassQingJia{publicintjudge(QJ_Recordrecord){//对请假记录进行判断,返回值为1:请假成功;intT=record.class_teacher_status;//返回值为0:等审批的请假。返回值为-1:失败的请假intC=record.college_leader_status;intN=record.day_number;intresult=0;if(T==0&&C==0)result=0;if(T==2&&C==0)result=-1;if(T==1&&C==0)if(N>=1&&N<4)result=1;if(T==1&&N>=4)if(C==0)result=0;elseif(C==1)result=1;61
共享资料,信息互通。elseresult=-1;returnresult;}}6.1.3任课老师用户功能编码根据任课老师详细设计的要求,设计任课老师操作页面如图6-4所示:图6-4任课老师考勤管理页面Fig6-4thepageofattendancemanagementofteacher部分代码:kq_manager_m.jsp……<%format=newjava.text.SimpleDateFormat("yyyy/MM/ddHH:mm:ss");Stringcur_time_2=format.format(cur_time);Stringsql_t="select*fromyearwhereyear_id=""+year_id+""";ResultSetrs_t=conn.executeQuery(sql_t);if(rs_t.next()){year_id=rs_t.getString("year_id");year_name=rs_t.getString("year_name");year_start=rs_t.getTimestamp("year_start");year_end=rs_t.getTimestamp("year_end");61
共享资料,信息互通。}conn.close();java.util.Calendarcalendar=newjava.util.GregorianCalendar();calendar.setTime(cur_time);calendar.set(calendar.DATE,calendar.get(calendar.DATE)-1);//限置任课老师不能管理当天学生的出勤java.util.Calendarcalendar_1=newjava.util.GregorianCalendar();java.util.Calendarcalendar_2=newjava.util.GregorianCalendar();calendar_1.setTime(year_start);calendar_2.setTime(year_end);ResultSet_rs=null;String_sql="";Stringweek_name="";format_1=newjava.text.SimpleDateFormat("yyyy/MM/ddHH:mm:ss");format_2=newjava.text.SimpleDateFormat("yyyy/MM/dd");format_3=newjava.text.SimpleDateFormat("yyyy/MM/dd");Stringgrade_name="";Stringsp_name="";Stringclass_number_name="";Stringkecheng_name="";_sql="selectdistinctkecheng_name,sp_name,grade_name,class_number_namefromcourse_infowhereyear_id=""+year_id+""andteacher_id=""+teacher_id+""andkecheng_id=""+kecheng_id+""andclass_id=""+class_id+""";_rs=conn.executeQuery(_sql);if(_rs.next()){grade_name=_rs.getString("grade_name");sp_name=_rs.getString("sp_name");class_number_name=_rs.getString("class_number_name");kecheng_name=_rs.getString("kecheng_name");61
共享资料,信息互通。}conn.close();%>上课时间星期第几周课时登记
<%intsubDate=date.subDate(calendar_1,calendar);do{Stringbefore_time=format_1.format(calendar.getTime());Stringbefore_time_2=format_2.format(calendar.getTime());Stringbefore_time_3=format_3.format(calendar.getTime());intzhou=subDate/7+1;intday_of_week=calendar.get(calendar_1.DAY_OF_WEEK);switch(day_of_week){case1:week_name="星期日";break;case2:week_name="星期一";break;case3:week_name="星期二";break;case4:week_name="星期三";break;case5:week_name="星期四";break;case6:week_name="星期五";break;61
共享资料,信息互通。case7:week_name="星期六";break;}_sql="select*fromcourse_infowhereclass_id=""+class_id+""andyear_id=""+year_id+""andteacher_id=""+teacher_id+""andweek_name=""+week_name+""andkecheng_id=""+kecheng_id+""";_rs=conn.executeQuery(_sql);if(_rs.next()){do{Stringstatus=_rs.getString("status");intpd=zhou%2;if(status.equals("1")&&pd==0)continue;if(status.equals("2")&&pd==1)continue;intid_2=_rs.getInt("id");//检查是否以经登记Stringsql_2="select*fromrecordwhereid=""+id_2+""andsk_time=""+before_time_3+""";ResultSetrs_2=conn.executeQuery(sql_2);if(rs_2.next())continue;%><%=before_time_2%><%=week_name%>第<%=zhou%>周<%=_rs.getString("lesson_name")%>用户名或密码输入非法!请返回重新输入!
");out.println("
用户名或密码不正确
");out.println("