• 4.72 MB
  • 2022-05-17 13:12:09 发布

毕业论文--学生考勤管理信息系统的设计与实现

  • 42页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
学号20090801050108密级________________兰州城市学院本科毕业论文学生考勤管理信息系统的设计与实现学院名称:信息工程学院专业名称:计算机科学与技术学生姓名:高国诚指导教师:朱正平教授二○一三年五月 BACHELOR"SDEGREETHESISOFLANZHOUCITYUNIVERSITYDesignandimplementationofstudentattendancemanageinformationsystemCollege:SchoolofInformationEngineeringSubject:ComputerscienceandtechnologyName:GaoGuochengDirectedby:ZhuZhengpingProfessorMay2013 郑重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名:日期: 摘要目前社会上信息管理系统发展飞快,智能化信息处理已是提高效率、规范管理、客观审查的最有效途径。学生考勤管理是学生信息管理的重要部分,面对大量的学生信息,采用人力处理将浪费大量的时间、人力和物力,而且统计数据麻烦。一个学校对其学生日常教学过程中的出勤和缺勤进行统计,用计算机对统计数据进行统计分析处理,得到我们所需要的各种统计报表和考勤原始数据,方便了学校对学生的管理。本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。本系统总体上由三大功能模块:请假系统、考勤系统和权限管理,涉及到高校六大类用户:学生、任课老师、班主任、院系领导、学校领导、系统管理员。本学生考勤管理系统采用了JAVA技术,以Tomcat为JAVA服务器、MySQL为数据库系统毕业设计,建立了一个基于B/S模式的三层体系的学生考勤管理网站,实现了网上考勤任务。关键词:考勤管理;在线请假;权限管理 ABSTRACTAtpresentthesocialdevelopmentofinformationmanagementsystemforfast,intelligentinformationprocessingisthemosteffectivewaytoimproveefficiency,standardizemanagement,objectivereview.Studentattendancemanagementisanimportantpartofstudentinformationmanagement,inthefaceofalargenumberofstudentinformation,usingmanpowerprocessingwillwastealotoftime,manpowerandmaterialresources,andstatisticaldata.Aschooldailyteachingprocessinattendanceandabsenceofstudentstatistics,toanalyzethestatisticaldatabyacomputer,getallkindsofreportsandattendancedataweneed,tofacilitatetheschoolmanagementofstudents.Thesystemisaninformationsystemforcurrentcollegestudentsandthestudentsleaveschoolattendancelinemanagementanddesign.Theoverallsystemconsistsofthreefunctionalmodules:leavesystem,attendancesystemandauthoritymanagement,involvessixmajorcategoriesofuniversityusers:students,teachers,classteachers,facultyleadership,schoolleadership,thesystemadministrator.ThestudentattendancemanagementsystemusingJAVAtechnology,usingTomcatasJAVAserver,MySQLasdatabasesystem,setupawebsitebasedonthestudentattendancemanagementsystemofthreelayersB/S,realizetheonlineattendancetask.Keywords:attendancemanagement;theonlineattendance;authoritymanagement 目录第1章绪论11.1系统开发背景11.2开发目的和意义1第2章需求分析22.1用户需求描述22.1.1学生用户需求描述22.1.2任课老师用户需求描述22.1.3班主任用户需求描述22.1.4院系领导用户需求描述22.1.5校领导用户需求描述32.1.6系统管理员用户需求描述32.2功能需求描述32.3相关开发工具简介32.3.1JSP简介42.3.2Mysql简介42.3.3MyEclipsed简介42.4系统关键技术42.4.1B/S架构42.4.2SSH框架5第3章总体设计63.1系统布局设计63.2总体结构图63.3系统功能流程图73.4数据库设计与实现93.4.1E-R模型93.4.2数据库的建立9 3.4.3数据库逻辑设计103.4.4数据库表的创建10第4章系统实现174.1登陆界面的设计与实现174.1.1用户登录界面174.2管理员主界面的设计与实现174.2.1管理员主界面174.3添加基础信息界面的设计与实现204.3.1基础信息的设计与实现204.3.2用户管理界面的设计与实现204.4课程管理的设计与实现244.4.1课程管理的增删改查244.5考勤记录的设计与实现264.5.1信息录入的设计与实现264.6请假管理的设计与实现284.6.1学生请假的设计与实现28第5章软件测试315.1测试方案315.1.1黑盒测试315.1.2白盒测试315.1.3其他测试方案315.2测试过程325.2.1用户登录测试32总结33参考文献34致谢35 第1章绪论1.1系统开发背景随着教育事业的飞速发展,我国的教育水平已经跃上了一个更高的平台:普及九年义务教育,本科生、硕士研究生的大量扩招,各高等院校及地州院校的新建与升级,越来越多的学子走进了大学的殿堂,这意味着学生的考勤管理信息任务越来越复杂、繁重,传统的考勤管理系统已无法承担当前的信息量,快速、高效的完成学生考勤信息管理的任务,无法减轻考勤管理人员的工作量与工作压力。传统的考勤方式,不能及时将学生的考勤信息进行登记、更新,也可能存在不公平的现象,比如:有的学生逃课,老师点名了,他就去找班主任请假,补个假条,取消自己的缺席记录等等……种种背景使得学校若要快速稳定发展,就必须从加强信息化入手,在各种领域都进行信息化管理,在考勤管理方面也不例外,然而各高校却不太重视考勤管理方面的建设、加强与发展。1.2开发目的和意义由于我校的考勤管理模式还是以任课老师上课点到,以及学生会的学生干部、干事课堂查勤来管理。同时学生请假需要经过系辅导员、系部领导批准才能生效。对于考勤结果,需要进行数据信息的录入以及数据信息的统计,这样比较麻烦且费时费力,出现误差的概率也比较大。更重要的是暴露出了以下的弊端:一、学生请假不方便;二、学生请假对任课老师不透明。三、学生对自己整个学期的上课出勤情况没有整体的统计信息。四、院系领导、学校领导不能把握住学生的上课出勤情况。由于以上原因,我们小组决定开发学生考勤管理系统,以方便学校对学生的考勤进行管理。基本运行要求:我组所开发的软件能在校内所有计算机上基于WINDOWS系统运行同时所开发的软件能与学校教务管理系统相衔接,进一步完善学校教务管理系统的功能。安全要求:登陆系统时,需验证身份和密码,只有通过验证的身份才能进入系统进行相关的操作。系统间信息的传递也需要进行安全设置,以防止学生的考勤信息被恶意篡改。34 第2章需求分析2.1用户需求描述2.1.1学生用户需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。在线请假需求:学生可以在线请假,并且可以随时查看请假的详细进展情况。查看出勤信息需求:学生可以查看自己在不同时段的出勤情况的详细信息。其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名等,以及修改个人用户密码。2.1.2任课老师用户需求描述任课老师对系统的主要需求是:管理所教班级学生的上课出勤信息以及查看所教班级学生的上课出勤信息。管理学生上课出勤需求:考勤表随着时间的变化,自动列出还没有在网上公布的学生上课出勤信息,系统自动根据学生请假系统,决定学生上课出勤的最终结果。查看学生出勤信息需求:查看所教班级学生整个学期出勤统计信息。其它需求:查看本人基本信息以及修改个人用户密码等。2.1.3班主任用户需求描述班主任对系统的主要需求是:查看本班学生上课出勤信息。查看出勤信息需求:输入查询条件后,系统根据查询条件列出本班学生相关的上课出勤信息。其它需求:查看本班学生的基本信息以及修改个人用户密码等。2.1.4院系领导用户需求描述院系领导对本系统的主要需求是:查看本院学生本学期所有课程的上课出勤信息。查看学生上课出勤信息需求:查看本院学生整个学期有关课程的出勤统计信息及详细信息。其它需求:查看本院学生的基本信息以及修改个人用户密码等。34 2.1.5校领导用户需求描述学校领导对系统的主要需求是:查看全校学生上课出勤信息。查看出勤信息需求:输入查询条件后,系统根据查询条件列出本校学生相关的上课出勤信息。其它需求:查看有关全校的基本信息以及修改个人用户密码等。2.1.6系统管理员用户需求描述系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的权限管理的设计,基本功能需求如下:(1)管理学校各院系、学工办、专业、班级的添加、删除、修改等。(2)管理系统所有用户。(3)管理全校课程。(4)管理系统的所有考勤信息。2.2功能需求描述根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。请假系统功能需求:通过班主任以及院系领导批准请假信息。请假最长时间不能超过1个月,特殊情况除外。考勤管理功能需求:任课老师通过考勤管理系统,对学生上课出勤信息进行公开。请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排在变化,学生在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确的更新系统数据。2.3相关开发工具简介根据各用户的需求,以及系统各大功能的需求,经过大量的调查分析,针对本高校学生考勤管理系统选择以下开发工具进行开发:开发语言:Java、JSP、JavaScript数据库:Mysql Server 5.5、Squiggly Enterprise    系统环境: JDK 1.6以上版本、apache-tomcat-6.0.26以上版本开发工具:MyEclipsed 10 34 2.3.1JSP简介JSP的全称是Java Serialist Pages,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它在传统的静态页面文件(*.HTML,*HTML)中加入Java程序片段和JSP标记,就构成了JSP页面。由Web服务器上的JSP引擎来处理JSP元素,生成调用Bean,并用JDBC访问数据库(或文件),最后以HTML或XML的形式返回浏览器。JSP在Serialist类中编译,编译一次后存入内存,以后再调用时,不用再编译,所以速度很快。2.3.2Mysql简介Mysql是一个精巧的SQL数据库管理系统,而且是开源的数据管理系统。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。2.3.3MyEclipsed简介Eclipsed企业级工作平台(Eclipsed Enterprise Workbench ,简称Eclipsed)是对Eclipse的扩展,利用它我们可以在数据库和JavaEe的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEe集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,Spring,SQL,Hibernate。2.4系统关键技术一个系统的开发,自然要询问一下自己“该采用什么技术开发呢?”。学生考勤管理系统的开发中,我运用了现在比较流行的各类框架技术,比如主流技术:B/S架构、SSH框架。2.4.1B/S架构34 学生考勤管理系统采用了当前很流行的B/S模式结构。相对于以往的主机/终端、C/S机构来说,B/S结构更具有优势。B/S结构是Browser/Server(浏览器/服务器)模式,它是对C/S模式应用的扩展。在这种结构下,只要安装维护一个服务器(Server),用户工作界面就可以通过IE浏览器来实现的。随着科技日新月异,C/S两层结构暴露出了许多弊端,如:灵活性差、升级困难、维护工作量大等等,很显然这种结构已较难适应当前信息技术与网络技术发展的需要。随着WEB技术的日益成熟,B/S结构已经成为取代Client/Server(简称C/S)结构的一种全新技术。它主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(JavaScript)成为一种全新的软件系统构造技术。2.4.2SSH框架相对于S2SH框架而言,大家或许更熟悉SSH框架,即:Struts框架、Spring框架、Hibernate框架。而S2SH框架的应用中,只是把Struts框架改成了Struts2框架。S2SH框架是由Struts2、Spring和Hibernate三大框架合成的一种新型的Web应用框架技术。Struts2构建成Web层,而Struts2和Spring集成为业务层,Spring和Hibernate集成为持久层,符合J2EE应用的分层结构。S2SH以Spring为核心部件,向上集成Struts2,向下集成Hibernate,充分发挥了三者各自的优势,具有很好的低耦合,扩展性和复用性。34 第3章总体设计3.1系统布局设计系统页面采用框架来设计,不同的用户有不同的功能菜单,但都有统一的风格,这给页面的使用和维护都带来了很大的便利,特别是在代码重用方面起了很大作用。本系统各用户的页面设计如图3.1所示:页面主体功能菜单BannerBottom3.1页面设计图1.Banner区——可以在此展示系统标识、页面归属等信息。2.功能菜单区——提供系统可供操作的功能列表。3.页面主体区——显示页面格式化数据页面主体区显示的内容,将依据页面在系统中的作用而定。4.Bottom区——可以在此显示系统当前在线人数及在线用户的信息。3.2总体结构图根据系统功能的要求,高校学生考勤管理系统各个模块之间的层次结构如图3.2所示:注:文中所提到的教师包括(任课教师、班主任、院校领导)注:用户包括(学生、任课教师、班主任、院领导、校领导)34 高校学生考勤管理系统请假系统考勤系统后台管理统计查询图3.2系统功能结构示意图3.3系统功能流程图开始用户登录基础信息管理权限管理课程管理考勤记录请假管理统计查询退出系统结束(1)主功能流程如图3.5所示图3.5主功能流程图(2)各个模块功能细化如下图3.6、3.7、3.8所示34 权限管理管理员角色管理按钮管理菜单增删改按钮权限细化按钮增删改查角色分配权限用户分配角色角色增删改图3.6权限管理功能细化教师管理员基础信息管理员管理员用户管理教师所有用户教师班级增删改学工办增删改院系增删改用户增删改用户密码重置用户查询所有用户管理员教师3.7基础信息管理功能细化考勤记录考勤增删改查教师教师课程管理教师请假管理学生请假审核请假申请课程增删改管理员3.8其他各模块功能细化34 学生请假请假成功班主任审批院校领导审批请假失败查看查看同意不同意不同意条件不符3.9请假模块细化注:条件是指三天以上十五天以内的请假要通过院领导的审批,超过十五天的请假就得要通过校领导。3.4数据库设计与实现3.4.1E-R模型缺勤情况学号姓名性别班级学生出勤出勤记录任课教师提交请假请假记录提交专业学院ID姓名班级课程应到人数实到人数上课时间111n1n1n审批人1n注:审批人包括:班主任、院校领导3.4.2数据库的建立建立数据库有两种方法:(1)使用mysqlserver命令建立34 数据库;(2)使用辅助工具sqlyogenterprise命令创建数据库。以下主要用第二种方法:打开MySQL,登录之后,选择[新建数据库]命令,给数据库起名为lzcu。然后通过设计器创建数据表,刚才已经说明了需要不同的数据表来分管,它们分别是“sys_user”,“work_course”,“work_attendance”等,有关这些数据表的信息见下表。3.4.3数据库逻辑设计根据系统功能设计的要求以及功能模块的划分,对于系统数据库,可以列出以下主要的数据表以及数据表项:按钮表:按钮名称、按钮图片路径、是否启用等。代码分类:代码分类名称、代码分类描述、排序、在用标志等。菜单表:菜单名称、上级菜单编码、排序号、菜单类别、菜单动作、是否叶子节点、是否在用等。角色表:角色名称、角色描述等。院办/学工办/班级表:部门名称、部门类型、部门负责人等。用户表:用户编码、用户名、是否超级用户、是否在用等。课程表:课程编码、课程名称等。考勤记录表:课程名称、任课老师、记录时间、班级、缺勤人数等。请假信息表:请假原因、请假理由、请假天数、申请时间、申请人、审批人、审批结果等。审核表:审批时间、审批人、审批结果等。3.4.4数据库表的创建根据数据库需求的分析,建立如下基本数据表。系统表:表3.1Sys_button(按钮表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号BUTTONIDvarchar(50)NotNull按钮编码BUTTONNANMEvarchar(100)NotNull按钮名称SORTNUMint(11)排序号34 BUTTONACTIONvarchar(100)按钮动作DIRECTIONvarchar(30)按钮动作方向ICONPATHvarchar(100)按钮图标路径PICPATHDOWNvarchar(100)选中时按钮图片路径PICPATHUPvarchar(100)未选中时按钮图片路径BUTTONDESCvarchar(200)按钮描述ISRUNNINGvarchar(2)是否启用表3.2sys_codetype(代码分类表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号CODETYPEIDvarchar(50)NotNull代码分类编码CODETYPENANMEvarchar(100)NotNull代码分类名称CODETYPEDESCvarchar(200)代码分类描述SORTNUMint(11)NotNull排序APPFLAGvarchar(2)NotNull在用标志:使用是1,不使用是0表3.3sys_menu(菜单表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号MENUIDvarchar(50)NotNull菜单编码MENUNAMEvarchar(200)NotNull菜单名称FATHERIDvarchar(50)NotNull上级菜单遍码MENUDESCvarchar(200)菜单描述34 SORTNUMInt(11)排序号ACTIONURLvarchar(200)菜单动作DIRECTIONvarchar(30)菜单动作方向(本窗体、弹出、根窗体)MENUTYPEvarchar(30)菜单类别SUPERUSERvarchar(2)超级用户使用ICONPATHvarchar(100)按钮图标路径PICPATHDOWNvarchar(100)选中时按钮图片路径PICPATHUPvarchar(100)未选中按钮图片路径ISLEAFNODEvarchar(2)NotNull是否叶子节点(0:否,1:是)APPFLAGvarchar(2)NotNull是否启用(1:启用;0:禁用)表3.4sys_menu_button(菜单拥有权限)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号ROLEMENUIDvarchar(50)NotNull菜单编码自增)BUTTONIDvarchar(50)NotNull按钮编码BUTTONLOCAvarchar(200)按钮位置表3.5sys_role(角色表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号ROLEIDvarchar(50)角色编码(自增)ROLENAMEvarchar(100)NotNull角色名称ROLETYPEvarchar(30)角色类别34 ROLEDESCvarchar(200)角色描述表3.6sys_role_menu(角色拥有菜单权限)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号ROLEIDvarchar(50)NotNull角色编码(自增)MENUIDvarchar(50)NotNull菜单编码表3.7sys_user_role字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号USERIDvarchar(50)NotNull用户编码ROLEIDvarchar(50)NotNull角色编码工作表:表3.1work_askapply(请假表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull自增序号APPLYTIMEvarchar(30)申请时间APPLYDAYNUMint(30)申请天数APPLYERvarchar(30)申请人APPLYERIDvarchar(50)申请人IDAPPLYREASONtext申请原因CHECKSTUTEvarchar(2)审批结果CHECKERvarchar(30)审批人CHECKERIDvarchar(50)审批人ID34 表3.2work_attendance(出勤表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNullIDCOURSEIDvarchar(50)课程IDCOURSENAMEvarchar(50)课程名称CLASSIDvarchar(50)班级IDCLASSNOvarchar(50)班级名称CLASSROOMTEACHERIDvarchar(50)任课老师IDCLASSROOMTEACHERvarchar(50)任课老师TOTALNUMint(11)应到人数REALNUMint(11)实到人数ASKDAYNUMint(11)请假人数ASKERIDtext请假者IDASKERtext请假者NOATTENDNUMint(11)旷课人数NOATTENDANTIDtext旷课者IDNOATTENDANTtext旷课者REMARKSvarchar(100)备注ADDERIDvarchar(50)NotNull添加人编码ADDERvarchar(100)NotNull添加人ADDERUNITIDvarchar(50)NotNull添加学院编码ADDERUNITvarchar(100)NotNull添加学院34 ADDTIMEEvarchar(30)NotNull添加时间DELFLAGvarchar(2)NotNull删除标志表3.3work_check(审核表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNull序列号FOREIGNKEYIDvarchar(50)关联父表IDCHECKERIDvarchar(50)审核人编码CHECKERvarchar(100)审核人CHECKUNITIDvarchar(50)审核部门编码CHECKUNITNAMEvarchar(100)审核部门CHECKTIMEvarchar(30)审核时间CHECKRESULTvarchar(2)0-未通过,1-通过CHECKOPINIONvarchar(255)审核意见ADDERvarchar(100)添加人ADDERIDvarchar(50)添加人IDADDUNITIDvarchar(50)添加部门IDADDUNITvarchar(100)添加部门ADDTIMEvarchar(30)添加时间DELFLAGvarchar(2)删除标志(0-未删除,1-删除)表3.4work_course(课程表)字段名字段类型主/外键字段约束说明IDvarchar(50)PNotNullIDCOURSEIDvarchar(50)课程编码34 COURSENAMEvarchar(50)课程名称COURSETYPEvarchar(50)课程类型COURSEWEEKHOURSvarchar(50)周课时COURSEMONTHHOURSvarchar(50)月课时COURSETOTALHOURSEvarchar(50)总课时REMARKSvarchar(100)备注ADDERIDvarchar(50)添加人编码ADDERvarchar(100)NotNull添加人ADDERUNITIDvarchar(50)NotNull添加学院编码ADDERUNITvarchar(100)NotNull添加学院ADDTIMEEvarchar(30)NotNull添加时间DELFLAGvarchar(2)NotNull删除标志34 第4章系统实现4.1登陆界面的设计与实现4.1.1用户登录界面用户登录界面,此界面主要用于用户进入主界面。此界面对用户身份没有设置相对应的权限,当所有用户成功进入系统时,统一显示主界面,但区别用户身份的是菜单。其登录界面如图4.1所示。图4.1登录界面4.2管理员主界面的设计与实现4.2.1管理员主界面Login.js://1functionsubmitUser(){//验证用户名是否为空if($("#userid")[0].value==""){alert("请输入用户名");//1.(1returnfalse;}//验证密码是否为空if($("#password")[0].value==""){alert("请输入密码");//1.(2returnfalse;}34 //窗口最大化self.moveTo(0,0);self.resizeTo(screen.availWidth,screen.availHeight);$.ajax({url:"login",//2type:"post",cache:false,dataType:"json",async:true,//异步data:$("#loginForm").serialize(),//获取数据timeout:30000,success:function(data){//2.(1if(data.success==true){window.location.href="login!getMenus.action";returnfalse;}else{//2.(2alert(data.msg);returnfalse;}},error:function(){alert(data.msg);returnfalse;}});};当管理员填写完用户名和密码,点击“登录”按钮时如下图4.2所示,图4.2填写完用户名和密码点击登录用户名和密码点击登录时34 1、系统首先通过login.js的submitUser()方法进行js对用户名和密码的空验证(1)当用户名或者密码为空时,通过alert方法(JavaScript脚本语言中窗口window对象的一个常用方法,弹出消息对话框,并且alert消息对话框通常用于一些对用户的提示信息)提示用户对应的空项,不跳转到LoginAction。(2)当用户名和密码都不为空时,然后通过ajax将用户名和密码提交到LoginAction的execute方法。2、由1.(2)进入到LoginAction的execute方法调用loginService的validateUser方法验证用户名,如果用户名不存在数据库中,返回null;如果用户名存在于数据库中,进而获得当前用户名所对应的密码和userInfo中的密码做比较,如果密码不匹配,返回null;如果密码、用户名都不匹配,将sysUser填充到userInfo中,返回userInfo对象。当用户名或者密码有一个不匹配时,LoginAction将msg储存信息:"用户名或密码错误!"并返回到登录界面给出相应提示;当用户名和密码都匹配时,初始化当前在线人数onlineUserList,然后将获取到的userInfo对象填充到LoginInfo中并且调用createLoginLog方法(初始化登录日志为其添加一条记录),将success(success默认为false)赋值给success并返回login.js。当LoginAction的execute方法返回的success值为true时,调用getMenus方法通过对用户身份的认证获得当前登录用户所对应的菜单,如下图4.3。当LoginAction的execute方法返回的success值为false时,不调用getMenus方法,只通过alert方法提示用户。图4.3主界面34 4.3添加基础信息界面的设计与实现4.3.1基础信息的设计与实现基础信息模块主要分为用户管理(用户维护、用户查询、密码重置)、院系管理、学工办管理、班级管理四大块。将最基础的学院或者系的信息和班级信息或者学工办信息以及班级学生信息整合在此模块,方便管理操作。菜单的顺序如需调节,根据个人爱好请进行调换。图4.4基本信息界面4.3.2用户管理界面的设计与实现用户管理分为用户维护、用户查询、密码重置三部分。如下图4.5:图4.5用户管理界面(1)用户维护:方便用户(学生、老师、管理员)进行增删改查操作,主要字段有用户编码、用户名称、是否班级、是否超级用户、是否在用。当用户是学生时,此时当前用户只有查看详情的权力。如下图4.6:当用户是教师时,此时当前用户只有查看详情的权力。如下图4.8:当前用户如果是管理员,可以对任意一个用户进行增删改查操作。如下图4.10:34 图4.6学生登录主界面查看详情相应操作如下图4.7:图4.7查看学生详情图4.8教师登录主界面查看详情相应操作如下图4.9:图4.9查看学生详情34 图4.10管理员登录主界面新增按钮的操作如下图4.11:图4.11错误的添加方式正确的操作如下图4.12:图4.12新增一个学生信息步骤图34 点击“提交”按钮时,弹出如下图4.13提示框:图4.13提交按钮弹出的提示框修改、详情的操作如同4.9实例。删除(包含多个删除)操作如下图4.14:图4.14删除操作的步骤点击“确定”按钮后,弹出删除成功与否的提示。(2)用户查询:不同角色的用户查询结果相同,即管理员和老师可以看见所有人信息,学生没有这个菜单,如下图4.15:图4.15管理员以及教师使用用户查询的界面34 (3)密码重置:不同角色拥有不同权限。管理员可以重置所有人的密码,而其他角色之内能重置自己的密码。管理员重置密码步骤下图4.16,其余用户一样的操作过程:图4.16管理员重置密码步骤4.4课程管理的设计与实现设计课程管理这一模块的主要目的是方便考勤记录,在后面的考勤管理模块会具体体现。主要功能模块如下图4.17:图4.17课程管理模块图4.4.1课程管理的增删改查1、下图4.18是课程信息的主要列表页面,显示字段:课程编码、课程名称、课程类型、周课时、月课时、总课时。图4.18课程信息列表页面34 2、添加步骤以及页面,如下图4.19:图4.19添加课程信息步骤以及页面注:课程类型:其他、专业课、选修课、公共课、公共选修课、专业选修课。3、修改(详情页面、删除略,操作一样)的步骤以及页面,如下图4.20:图4.20修改课程信息页面修改(详情、删除)了当前页面内容之后,点击“提交”按钮,会有提示框提示修改(详情、删除)是否成功。4、查询操作以及页面,点击提交后,跳转到主列表得到结果集,操作如下图4.21:34 图4.21查询步骤以及按钮4.5考勤记录的设计与实现这一模块的设计是为了方便后期的统计查询做准备。考勤信息录入需要每上一节课,当前代课老师登录此系统进行考勤记录,这个模块只有任课老师有此权限。模块设计简单,只需录入每节课的信息。模块设计如下图4.22:图4.22考勤记录模块设计图4.5.1信息录入的设计与实现1、考勤信息录入列表页面的设计与实现(1)设计:页面主要显示字段有:课程名称、班级名称、应到人数、实到人数、请假人数、请假者、旷课人数、旷课者;(2)实现:考勤信息录入列表页面如下图4.23:图4.23考勤信息录入列表页面2、添加步骤以及页面,如下图4.24:图4.24添加步骤以及页面设计34 (1)在点击班级名称的文本框时会弹出如图所示的一棵树图4.25:图4.25班级树(2)在点击添加课程时,会弹出和前面课程信息管理添加的一样的界面(不同是:此时并数据返回到父页面),如下图4.26:图4.26添加课程页面(3)点击“添加已存在课程”时,会弹出和课程信息管理中的列表页面一样一个页面(区别:只能单选,不能复选),点击“确定”后,将课程名称填充到文本框中。如下图4.27:图4.27添加已存在课程步骤34 (4)点击“添加请假者”或者“添加旷课者”的前提是:已经选择了班级,然后才有该班学生信息。如下图4.28:图4.28选择请假者或者旷课者的前提操作添加请假者或者旷课者具体操作如下图4.29:图4.29添加请假者或者旷课者具体操作4.6请假管理的设计与实现为了方便学生请假的管理和老师审批,此模块主要设计为申请请假和等待办理,然而等待办理根据学生具体请假天数来划分不同的审批对象。根据学生用户请假的需求,学生三天内的请假(包括三天)只需班主任批准后就可生效;四天(包括四天)至15天的请假,必须先由学院领导审批同意;如果请假天数大于15天,必须由学校审批同意。4.6.1学生请假的设计与实现1、学生请假只有申请、导出列表中的记录和查看详情三项权力。34 2、(1)学生请假列表的主列表,实现字段:申请时间、申请天数、申请人、申请原因、审批人、审批状态(后两项等到老师审批完成后显示),列表如下图4.30:图4.30申请主列表(2)申请请假步骤如下图4.31:图4.31申请请假步骤注:请假类型:病假、事假、其他。(3)查看详情略,注意:首先有且仅有选中一条记录,然后点击“详情”按钮查看。3、不同天数的审批,对应的只有不同的菜单,但审批操作是一样的,如下图4.32:34 图4.32不同角色的不同菜单图4、审批过程,拥有菜单的人都一样的操作方法,如下图4.33:图4.33审批过程注:(1)审核结果:通过、不通过。(2)审批可以单个审批,也可以批量审批,不同点是:单个审批弹出如图4.33的添加页面,而批量审批不弹出界面,只显示提示对话框。34 第5章软件测试软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。5.1测试方案5.1.1黑盒测试黑盒测试(Black-boxTesting,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程5.1.2白盒测试白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作5.1.3其他测试方案1、性能测试性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。2、随机测试随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程3、本地化测试本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件4、国际化测试国际化测试的目的是测试软件34 的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。5、安装测试安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。5.2测试过程5.2.1用户登录测试1、测试目的:验证服务器可以同时接受多少用户进行并发访问,查找系统的瓶颈。2、测试工具:loadrunner3、测试环境硬件环境操作系统数据库服务器客户端软件配置OS:Win7JDK1.5.0_06Apache2.2.0Tomcat5.5.15MySQLWindow7旗舰版32位测试结果215login.htm4、测试结果:225同时并发访问服务器,事务响应时间边长,0:55时事务的通过率变为0,已经超出了系统的瓶颈人数,说明系统的瓶颈在210人之间。测试结果:学生考情管理系统的登陆页面的瓶颈为215人,建议配置更好的服务器,之后再进行系统上线。34 总结经过几个月的设计,“学生考勤管理信息系统”已经基本设计完成。在这几个月的开发过程中,学到了许多有关数据库管理软件设计的知识,也对管理信息系统有了更加全面而深刻的认识。另外,通过对Myeclipse的使用,使我对该软件更加熟悉,学到了很多关于该软件可视化编程的东西,也深深体会到Myeclipse的强大功能。基于该系统的一些设计,下面对系统做一个总结。 在整个设计过程中,主要的工作有:1、登陆界面的设计与实现、管理员主界面的设计与实现、添加基础信息界面的设计与实现、课程管理的设计与实现、考勤记录的设计与实现模块的页面设计及功能的设计实现。设计中力求界面友好、简洁,易于操作。代码部分尽量避免逻辑错误,算法设计简单合理,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读。2、力求对数据库操作的安全与稳定,尽量避免数据库操作异常,并要保证查询的快速无误。3、保证程序的逻辑结构,编程时注意多使用通用方法(函数和过程),尝试用通用窗体函数。当然在设计中还有很多不足的地方。对于这样的软件开发,由于我们知识层次的欠缺,所以在开发过程中遇到了许多棘手的问题。现在开发出来的软件对数据库的操作还不够稳定,异常处理做的还很欠缺。程序代码中还存在不少的问题,这些在最后的测试过程中还有必要做修改和完善。在设计时,由于时间和能力有限,还有部分的功能没有实现,希望以后能够慢慢地发现问题,改正问题,力求将系统做得越来越完美、实用。34 参考文献[1]唐汉明.深入浅出MySQL数据库开发[M].人民邮电出版社,2008-04.[2]康诺利(Connolly,T.M.).数据库设计教程(第二版)[M].机械工业出版社,2005-1-1.[3]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2007-04.[4]Struts2深入详解/孙鑫[M].北京:电子工业出版社,2008.7.[5]聂培尧.Web技术[M].清华大学出版社,2012-7-1.[6]吴建,张旭东.JSP网络开发入门与实践[M].人民邮电出版社,2006-11.[7]李芝兴,杨瑞龙.Java程序设计网络编程[M].第2版.清华大学出版,2009-08.[8]施霞萍等编著.Java程序设计教程第2版.北京:机械工业出版社,2006.[9]郑莉,王行言.Java语言程序设计.北京:清华大学出版社,2006.[10](美)吴斯特曼(Horstmann,C.S)著;叶乃文,杜永萍译.JAVA核心技术卷1:基础知识(原书第8版).机械工业出版社,2008-5.[11]魏茂军JSP案例开辟北京:中国水利水电出版社[12]黄明JSP信息系统设计与开辟实例北京:机械工业出版社s[13]屈辉立JSP网站编程教程北京:北京欲望电子出版社34 致谢本论文完成的前提是老师和同学给我提供了知识上的帮助,并给予我悉心的关怀与指导。老师认真负责的工作态度、严谨的治学风格,使我深受启发;开发的同时,和同学们之间的相互探讨也使我获益匪浅。半年时间内,我除基本学会开发数据库外更重要的是学到了兢兢业业,奋发向上的精神,这种精神是我今后人生前进道路上的一种力量。所以我再次感谢老师和我的同学们。34