学生考勤管理系统_第1页
学生考勤管理系统_第2页
学生考勤管理系统_第3页
学生考勤管理系统_第4页
学生考勤管理系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:学生考勤管理系统摘要本系统阐述了考勤系统的设计开发的全过程,包括系统整体设计,各个功能模块划分,系统功能模块的设计与具体实现等部分。该系统侧重于学生考勤信息查询和数据库的维护,通过已编制好的程序,完成对用户的登录、考勤信息的添加、查询、统计、学生请假等,本系统使用VisualC#与SQLServer数据库编写完成,实现学生考勤信息的记录和管理,为教师的考勤工作提供信息。关键词:考勤管理,VisualC#,SQLServer

目录TOC\o"1-3"\h\u第1章前言 4第2章需求分析 52.1可行性分析 52.1.1技术可行性 52.1.2经济可行性 52.2功能分析 52.3系统需求分析 6第3章系统设计 73.1功能模块 73.2系统功能模块设计 83.3系统流程 8第4章数据库设计 104.1数据库模型设计 104.2数据库结构设计 10第5章详细设计 165.1主要界面及代码实现 165.1.1用户登陆界面 165.1.2系统主界面 185.1.3教师、学生管理界面 185.1.4课程管理界面 195.1.5基础信息维护界面 265.1.6角色管理 26第6章测试与维护 306.1测试目标 306.2测试方案 306.2.1单体测试 306.2.2集成测试 306.2.3验收测试 306.3设计测试方案 306.4系统维护 31结束语 32致谢 33

第1章前言信息技术的迅猛发展,已经引起社会的深刻变革,信息时代的到来,迫切要求学校的管理进行变革。因此,信息化的考勤系统就在这种情况下变的越来越受欢迎,它给教师带来了更加高效处理考勤的方法,使得教学能够比较顺利的进行下去,不会再因为考勤等烦杂事务影响教学。学生考勤管理系统是一个B/S系统,它改变了教师手工登记考勤信息的管理方式,管理员及教师使用计算机对学生信息进行管理,有着手工无法比拟的优点,例如:考勤统计查询方便快捷、数据存储量大、可靠性高等,便于教师掌握学生的出勤情况。学生考勤系统以方便、快捷等优点冲击着传统的考勤方式。也正是因为这些优点,使它更符合现代社会人们快节奏、高效率的生活方式。

第2章需求分析2.1可行性分析2.1.1技术可行性学生考勤管理系统在目前的学校中使用还不普遍,但也有许多类似的成功案例:如教务管理系统、排课系统等。本系统采用VisualC#语言及SQLServer数据库技术综合开发。而这个系统尽管其在组织关系上存在着很大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统。其基本操作还是对存在数据库进行添加、删除、查找、修改等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。2.1.2经济可行性本系统使用B/S架构设计,开发简单,使用度方便,不需要耗费大量的人力物力就能很快的开发出来,系统部署对软硬件要求不高,用户操作简单,几乎不需要对用户进行专业培训就可使用本系统,而同时又减少了数据的流通环节,不必要花费那么多的时间,最重要的是提高了效率,而又保证了各项数据的准确性,适应了当前的发展形式。2.2功能分析为了解决人工操作在学生考勤中存在的不足,从学校管理人员能够更容易、更方便地使用计算机对学生进行管理,以实现无纸化操作的方面进行分析。学生考勤管理系统能够提供学生考勤的情况记录,方便地对学生考勤进行评定。学生考勤管理系统应实现以下功能。①基础数据管理通过年级管理对年级进行管理。对年级进行添加、修改、删除等进行操作。通过班级管理对班级进行管理。对班级进行添加、修改、删除等进行操作。通过宿舍管理对宿舍进行管理。对宿舍进行添加、修改、删除等进行操作。②学生信息管理添加学生基本信息,包括学生姓名、性别、电话、所在班级等信息以及登录的账号、密码等,修改学生基本信息,删除学生基本信息。对学生添加角色,通过角色得到系统访问的权限。③教师信息管理添加教师基本信息以及登录的账号、密码等,包括教师姓名、性别、联系电话等信息,修改、删除、查看教师基本信息。对教师添加系统角色,通过系统角色的设置,得到系统权限控制。④学生考勤管理学生打卡记录。它们可以实现对学生日常主要上课的记录管理。教师新建课时,根据课时生成对应的考勤记录,学生根据考勤记录进行打卡。⑤系统管理通过系统管理/角色管理,对系统角色进行添加、修改、删除等维护操作,对系统角色进行权限添加。2.3系统需求分析学生考勤管理系统是学校对考勤实行了信息化管理,考勤管理中主要涉及的管理任务有6个方面:学生基本信息管理、教师基本信息管理、考勤信息管理、角色管理、基础信息管理等。管理员可以查询、添加、修改、删除学生及教师的基本信息;学生可以查询自己的课程信息以及对课程信息进行打卡,教师可以浏览学生考勤的基本信息等处理功能。管理系统应用于Windows平台下,能灵活处理各种特殊情况,方便地修改各种基本信息,查询快速,管理安全,操作简便,能具有一定的安全性、协调性和完整性。

第3章系统设计3.1功能模块①学生信息管理查询模块:主要完成对学生的信息添加、编辑、删除、查看基本信息以及对学生进行系统角色设置等操作,在查询中可以按学生姓名进行查询。②教师信息管理查询模块:主要完成对教师资料信息的管理,包括对教师的信息执行添加、修改、删除,对教师基本信息查看和对系统角色的设置,以及对教师和课程进行关联等基本操作。③基础信息管理模块:●年级管理:对年级信息执行添加、修改和删除查看等基本操作。●班级管理:对班级信息执行添加、修改和删除查看等基本操作。●班级管理:对班级信息执行添加、修改、查看、删除等操作,以及通过班级和宿舍、年级等信息进行逻辑关联。④系统管理模块:●菜单管理:通过菜单管理,对系统进行菜单添加、修改、编辑等操作,以及实现对菜单的权限进行控制操作。●角色管理:通过角色管理菜单,实现对角色的添加、编辑、删除、查看等操作,可以通过角色名称进行查询。对设置好的角色设置系统权限,权限控制到菜单上的按钮。设置完成的角色添加到教师和学生,以此控制用户登录到系统中实现权限的控制。⑤课程管理:对课程进行添加、修改、删除和查看操作,教师登录到系统以后添加课程,选择课程的学期起始时间、学习该门课程的班级等。保存的时候同时生成对应班级下的学生的打卡记录(状态为“代打卡”)。学生通过生成的打卡记录进行考勤。⑥考勤打卡:学生登录到系统,在“考勤打卡”菜单下,默认显示处于当前时间段未打卡的待考勤数据,进行考勤打卡。可以通过“考勤状态”和事件范围进行查询待考勤数据和考勤历史数据。⑦考勤统计通过考勤统计实现对学生、课程、班级等考勤信息的数据统计。3.2系统功能模块设计经过调查分析,本系统功能模块如图3.1所示。图3.1系统功能模块图3.3系统流程本系统分为三个用户:学生、教师、管理员。管理员:查询、添加、修改、删除学生及教师的基本信息。学生:查询出勤信息、查询出勤统计。教师:浏览、查询、添加、删除、修改学生考勤的基本信息等处理功能。用户以不同的身份登录,则进入不同的界面。用户登录进入主界面的流程图如图3.2所示。YYN身份验证主界面登录开始退出图3.2用户登录流程图

第4章数据库设计4.1数据库模型设计数据库结构的设计在学生考勤管理系统中占有着很重要的地位。它的好坏将会直接影响到本系统的效率和实现的效果。根据系统的实际应用情况,本系统采用MirosoftSQLServer作为后台的数据库管理工具,以下是本系统数据库设计的具体情况。数据模型图:图4.1数据模型图4.2数据库结构设计年级信息表,主要用来保存学生所属年级的信息。列名数据类型长度允许空备注GradeIdint否主键自增GradeNamenvarchar50否年级名Flagbit否1,有效,0,失效表4.1年级信息表T_Grade班级信息表,主要用来保存学生所在班级的信息。列名数据类型长度允许空备注ClassIdint否主键自增Codenvarchar50否班级编号Namenvarchar50否班级名GradeIdint否年级编号Flagbit否1,有效,0,失效表4.2班级信息表T_Classes宿舍信息表,主要用来保存学生所在宿舍的信息。列名数据类型长度允许空备注DormIdint10否主键DormNamenvarchar50否宿舍名Flagbit否1,有效,0,失效表4.3宿舍信息表T_Dorms课程信息表,主要用来保存课程信息,包含课程名称、课程有效的时间范围。列名数据类型长度允许空备注CourseIdint否主键CourseCodevarchar50否编号CourseNamenvarchar50否课程名BeginDateTimeDateTime否有效开始时间EndDateTimeDateTime否有效结束时间Flagbit否1,有效,0,失效表4.4课程信息表T_Courses课程信息表,主要用来保存教室信息。列名数据类型长度允许空备注Idint否主键CourseIdint否课程编号(课程表外键)ClassesIdint否班级idBeginDateTimeDateTime否开始时间EndDateTimeDateTime否结束时间表4.5课时信息表R_Course_ClassHour学生信息表,用来保存学生的基本资料信息。列名数据类型长度允许空备注StuIdint否主键自增SNovarchar50否编号StuNamenvarchar10否学生姓名Sexint否性别(1:男0:女)Telephonevarchar20否联系电话DormIdint否宿舍编号,外键Addressnvarchar5n00家庭住址Phonevarchar20家庭电话ClassIdint否班级id,外键Flagint否1,有效,0,失效表4.6学生信息表T_Students学生课程考勤信息表用,来生成、保存学生对应课时的打卡信息。列名数据类型长度允许空备注CourseIdint否课程idClassHourIdint50否课时idStudentIdint否学生idIPvarchar20是IPStatesint否状态,0,未开课,1,签到成功2,旷课,3,请假CreateDateTimedatetime是记录生成时间ClockDateTimedatetime是打卡时间表4.7学生课程考勤信息表R_Student_Course

教师信息表,用来保存教师基本资料的信息。列名数据类型长度允许空备注TeacherIdint否主键自增TeacherNamenvarchar50否教师姓名Sexint否性别(1:男0:女)Telephonevarchar20是联系电话Flagint否1,有效,0,失效表4.8教师信息表T_Teachers教师课程关联表,用来记录教师和课程的关联关系。列名数据类型长度允许空备注TeacherIdint否主键自增CourseIdint否课程idTeacherIdint否教师id表4.9教师课程关联表R_Teacher_Course用户信息表,主要用来保存用户的基本信息用来登录系统。列名数据类型长度允许空备注Idint否主键、自增UserNamenvarchar20否用户名Typeint否类型,0,学生,1,教师,其它RelationCodevarchar50否关联编号,学生、教师编号Accountvarchar50否登录账号Passwordvarchar50否密码Flagint1,有效,0,失效表4.10用户信息表T_Users

菜单表,主要用来系统中的菜单相关信息的。列名数据类型长度允许空备注Idint否主键、自增MenuCodevarchar50否菜单编号MenuNamenvarchar50否菜单名称URLvarchar200否URLIconvarchar100否图标Leaveint否层级ParentIdint父级菜单idMemonvarchar500备注表4.11菜单表T_Menu菜单权限表用来记录系统中的菜单权限相关信息的。列名数据类型长度允许空备注Idint否主键、自增MenuIdint否菜单idActionNamenvarchar50否权限名称ActionUrlvarchar200否权限action表4.12菜单权限表T_MenuAction角色表用来系统中的角色相关信息的。列名数据类型长度允许空备注Idint否主键、自增RoleNamenvarchar50否角色名称表4.13角色表T_Role角色权限表用来记录系统中的菜单相关信息的。列名数据类型长度允许空备注Idint否主键、自增RoleIdint否角色idMenuIdint否菜单idActionIdint否权限id图4.14角色权限表T_Role_Action用户角色表用来记录用户对应的角色列名数据类型长度允许空备注Idint否主键、自增RoleIdint否角色idUserIdint否用户id图4.15用户角色表T_User_Role

第5章详细设计5.1主要界面及代码实现5.1.1用户登陆界面用户登录界面,此界面主要用于用户进入主界面。此界面对用户设置了权限,进入系统主页面之前必须进行登录否则无法进入系统。如果用户强行在浏览器输入地址跳转,系统会今天拦截跳转到登录页面。当用户在系统中长时间不操作时(默认30分钟)超时以后默认跳转到登录页面重新登录。其登录界面如图5.1所示。

图5.1用户登录界面用户登录权限验证,其功能实现主要代码如下:///<summary>///登录页面///</summary>///<returns></returns>[HttpPost]publicActionResultLogin(UserModeluserModel){if(ModelState.IsValid){varuser=this.userBll.GetModel(a=>a.Account==userModel.Account&&a.Flag==1);//判断用户名是否正确if(user==null){ModelState.AddModelError("Account","用户名不存在");returnView(userModel);}//判断密码是否正确stringEncryptStr=EncryptUtils.GetMD5Str(userModel.Password);if(user.Password!=EncryptStr){ModelState.AddModelError("Password","密码错误");returnView(userModel);}//写入cookie票据跳转到系统主页FormsAuthentication.SetAuthCookie(userModel.Account,false);SetSession(user);returnRedirect(FormsAuthentication.DefaultUrl);}returnView();}///<summary>///设置Session初始化数据///</summary>///<paramname="user"></param>privatevoidSetSession(T_Useruser){MenuBllmenuBll=newMenuBll();List<MenuModel>list=menuBll.GetMenuListByUser(user.Id);Session[ConstantParam.SESSION_USER]=user;Session[ConstantParam.USER_MENU]=menuBll.GetMenuList(list);Session[ConstantParam.USER_MENUACTION]=menuBll.GetMenuActionList(list);}///<summary>///退出登录///</summary>///<returns></returns>publicActionResultSingOut(){FormsAuthentication.SignOut();Session.Clear();returnRedirectToAction("Login","Account");}5.1.2系统主界面用户登录以后,进入到系统主界面。主界面如图5.2所示。图5.2学生考勤管理系统主界面5.1.3教师、学生管理界面当用户登录点击进入教师管理,在界面中单击菜单“人员管理—教师管理”,添加教师基本信息,通过教师姓名对教师进行数据查询。以及实现对教师的权限设置等等。如图5.3所示。图5.3教师管理界面在界面中单击菜单“人员管理—学生管理”,添加学生基本信息,通过学生姓名对学生进行数据查询。以及实现对学生的权限设置等等。如图5.4所示图5.4学生管理界面教师、学生信息管理窗体主要功能:1.添加、修改、删除、查看教师和学生的基本信息。2.对学生和教师进行权限设置等操作。5.1.4课程管理界面当用户为进入课程管理界面,在界面中单击窗体“课程管理”。其界面如图5.5所示。图5.5课程界面通过课时设置,对添加的课程添加课时,同时根据选择的班级生产对应的待考勤记录,界面如图5.6所示。图5.6课程添加界面前端代码实现如下: <script>vardate=newDate();vard=date.getDate();varm=date.getMonth();vary=date.getFullYear();var_start,_end,_allDay;varday;debuggervararray=JSON.parse($("#json").val());varDataArray=[];$.each(array,function(index,value){DataArray.push({title:value.Title,start:newDate(value.Date),allDay:true,});})varcalendar=$('#calendar').fullCalendar({buttonText:{today:'今天',month:'月视图',week:'周视图',day:'日视图'},allDayText:"全天",timeFormat:{'':'H:mm{-H:mm}'},weekMode:"variable",columnFormat:{month:'dddd',week:'ddddM-d',day:'ddddM-d'},titleFormat:{month:'YYYY年MMMM月',week:"[yyyy年]MMMM月d日{'—'[yyyy年]MMMM月d日}",day:'YYYY年MMMM月D日dddd'},monthNames:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["星期天","星期一","星期二","星期三","星期四","星期五","星期六"],height:550,editable:true,selectHelper:true,unselectAuto:true,dayClick:function(start,end,allDay){debugger$("#myModal").modal('show');_start=start;_end=end;_allDay=allDay;day=start.format('YYYY-MM-DD');$("#Title").val('');$("#BeginHour").val('1');$("#BeginMinute").val('1');$("#EndHour").val('1');$("#EndMinute").val('1');},events:DataArray});functionsave(){$("#myModal").modal('hide');swal({title:"确定保存?",text:'请确认保存!保存之后将生成课时和考勤数据,课时将不能够进行删除!',type:"warning",showCancelButton:true,confirmButtonColor:"#DD6B55",confirmButtonText:"确定",cancelButtonText:"取消",closeOnConfirm:false},function(){var_Title=$("#Title").val();var_BeginHour=$("#BeginHour").val();var_BeginMinute=$("#BeginMinute").val();var_EndHour=$("#EndHour").val();var_EndMinute=$("#EndMinute").val();var_CourseId=$("#Id").val();var_ClassesId=$("#ClassesId").val()$.ajax({url:'/Course/CourseHoursel',type:'post',data:{CourseId:_CourseId,Title:_Title,BeginHour:_BeginHour,BeginMinute:_BeginMinute,EndHour:_EndHour,EndMinute:_EndMinute,Day:day,ClassesId:_ClassesId},success:function(data){if(data.Code=='ok'){swal({title:"保存成功!",text:null,type:"success"},function(){calendar.fullCalendar('renderEvent',{title:_Title,start:_start,end:null,allDay:_allDay},);});}else{swal("保存失败!",null,"error");}},error:function(message){swal("保存失败!",null,"error");}})});}</script>后端实现代码如下:///<summary>///添加课时///</summary>///<paramname="model"></param>///<returns></returns>publicintCourseHoursel(CourseDataWiewModelmodel){introw=0;using(vartran=_context.Database.BeginTransaction()){try{DateTimebegin=newDateTime(model.Day.Year,model.Day.Month,model.Day.Day,model.BeginHour,model.BeginMinute,1);DateTimeend=newDateTime(model.Day.Year,model.Day.Month,model.Day.Day,model.EndHour,model.EndMinute,1);R_Course_ClassHourr_Course_ClassHour=newR_Course_ClassHour(){CourseId=model.CourseId,ClassesId=model.ClassesId,BeginDateTime=begin,EndDateTime=end,Title=model.Title};_context.R_Course_ClassHour.Add(r_Course_ClassHour);varstudent=_context.T_Students.Where(a=>a.ClassId==model.ClassesId).ToList();foreach(variteminstudent){_context.R_Student_Course.Add(newR_Student_Course(){CourseId=model.CourseId,ClassHourId=r_Course_ClassHour.Id,StudentId=item.StuId,States=0,CreateDateTime=DateTime.Now,});}row=_context.SaveChanges();tran.Commit();}catch(Exceptionex){tran.Rollback();}}returnrow;}}5.1.5基础信息维护界面当用户进入基础信息维护界面,对班级管理、宿舍管理、年级管理等基础信息执行添加、修改和删除等基本操作。其界面如图5.7所示。图5.7基础信息管理界面5.1.6角色管理当用户为管理员时进入角色管理界面,点击“系统管理/角色管理”,进入到角色管理。对系统角色进行添加、编辑、删除、查询等操作。其界面如图5.8所示。图5.8角色管理界面点击角色角色管理列表操作栏的“权限”按钮,对角色进行权限设置,其界面如图5.9所示:图5.9角色权限设置界面权限保存代码如下:///<summary>///保存角色权限///</summary>///<paramname="roleAuthorizeModel"></param>///<returns></returns>publicboolSaveroleMenuAction(List<RoleAuthorizeModel>roleAuthorizeModel){try{MenuDalmenuDal=newMenuDal();List<T_RoleMenuAction>list=roleAuthorizeModel.Select(a=>newT_RoleMenuAction(){RoleId=a.RoleId,MenuId=a.MenuId,ActionId=a.ActionId}).ToList();List<T_RoleMenuAction>array=newList<T_RoleMenuAction>();foreach(variteminlist){varmodel=menuDal.GetModel(a=>a.Id==item.MenuId);if(model.Leave!=ConstantParam.MENU_BASR){array.Add(newT_RoleMenuAction(){RoleId=item.RoleId,MenuId=model.ParentId??0,});}}list.AddRange(array);intRoleId=roleAuthorizeMode

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论