《基于JAVA的学生管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于JAVA的学生管理系统的设计与实现.docx(36页珍藏版)》请在三一办公上搜索。
1、基于JAVA的学生管理系统的设计与实现摘要随着社会的发展,信息化对人们的工作、生活产生了深远的影响。中国历来重视教育,但随着大学的扩张,对学生的管理也日趋复杂。比如,每一位同学的个人档案,住宿,课程安排,以及学习情况,都耍有一个精确的记录和管理。总之,对学生进行有效、准确的信息管理,将会变得更加重要。在此背景下,以JAVA为基础的学生管理系统应运而生。实现了对全校教师和学生的信息进行管理。通过本系统,管理员可以对校园内的教师、学生资料进行保存、查询,并对教师、学生进行分组、分班。该系统以JAVA及MYSQ1.为核心,以H+为核心的用户界面架构为核心,以JAVA为核心。本系统是以WEB访问的B/
2、S系统为基础,主要由五个基本模块组成:学生管理、教师管理、宿舍管理、班级管理和课程安排管理。关键词:学生管理系统;信息;JAVA;MYSQ1.;WEB第一章绪论第一章开发工具与开发环境概述1.1 开发工具简介1.1.1 Eclipse简介氏IiPSe最初是一种下一代IDE开发环境,是IBM公司为备选的商业软件VisualAgefOrJaVa而开发的,于2001年11月向开放源码社区捐赠,目前由一个非盈利软件厂商联合会ECIiPSe基金会进行管理。它具有如下优点:1、功能丰富:ECliPSe提供了大量的插件,可以满足不同的开发需求,例如代码编辑、调试、版本管理、项目管理等。2、用户友好:ECIi
3、PSe的界面清新、简洁,易于使用。3、跨平台:ECIiPSe可以在WindOWs、macOS和1.inUX等操作系统上运行,方便开发人员在不同平台间进行项目开发。4、开源免费:ECliPSe是开源软件,开发人员可以免费使用,无需支付任何费用。5、社区支持:ECIiPSe有庞大的开发者社区,可以获得丰富的帮助和支持。1.1.2 MYSQ1.数据库简介MySQ1.是一种由瑞典的MySQ1.AB公司所研发的、隶属于甲骨文集团的关系数据库管理系统。MySQ1.(MySQ1.)是目前使用最为广泛的一种关系数据库管理系统,而对于WEB应用来说,MySQ1.又是其中最优秀的一种。MySQ1.是一个关系型的数
4、据库管理系统,它将数据存储在多个表格中,以代替将全部数据存储在一个大型的存储库中,从而提高了数据的处理速度和灵活性。MYSQ1.是一种基于C/S架构的数据库服务器。1.1.3 Tomcat简介TomCat是APaChe软件基金会旗下的Jakarta项目所研发的SerVlet容器,它根据SUnMiCrOSyStemS的技术标准,支持SerVIet和JavaServerPage(JSP),并且具有Web服务器所特有的特性,例如TomCatManagement与控制平台,安全域管理,Tomcat阀门等。因为TOmCat自身还内置了HTTP服务器,所以可以将其看作是一台独立的网络服务器。由于TOmCa
5、t具有先进的技术和稳定的性能,并且是免费的,所以它受到了JaVa爱好者的喜欢,也得到了一些软件开发人员的认同,它已经成为了当前比较受欢迎的Web应用服务器。1.2 开发环境简介1.2.1 开发软件环境与工具选择(1)开发工具:eclipse4.4.3版本(2)服务器:tomcat7.0版本(3)数据库:MySQ1.5.5版本(4)前端框架:基于bootstr叩的H+后台主题Ul框架(5)后台框架:使用SPringMVC架构(6) JaVa环境变量:jdkl.7.0_131.2.2 开发的硬件环境主机配置:CPUi9-8950HKI.80HZ;内存64G;硬盘1T。第二章系统可行性分析2.1 经
6、济可行性分析该项目是以JAVA、MYSQ1.和ToMCAT服务器为基础的,只要将这三个要素配置好,就可以将该项目进行应用,其费用主要是针对软件的开发,而项目软件的开发费用远低于项目软件的收益,因此是完全可行的。2.2 操作可行性分析在界面的设计上,与学校管理人员的操作习惯相一致,它简单易学,数据准确可靠,具有很强的可维护性。2.3 技术可行性分析计算机要求:WindoWS系统,MYSQ1.数据库,tomcat服务器,JaVa环境,eclipseo软件开发技术方面:该项目前台是基于B/S架构的Java开发,后台采用MYSQ1.语句来实现与数据库的数据交互。第三章系统需求分析与设计3.1 学生管理
7、本模块可以对学生数据新增、修改、删除等操作。3.1.1 学生列表将学生的资料以列表的方式呈现出来,其中包含了学生的头像、姓名、创建时间等信息,并且以创建时间为依据,以倒序排列。请单击学生的照片以了解更多信息。3.1.2 功能描述该模块具有增加,删除,修改,查找等功能。新增:新的资料,以性别的方式进行选择。生日的选择使用时间控制,姓名,联络资料,班级是必须的。其中的班次是以下拉方式选取的,需要在班次管理中维持的内容。在一些输入栏中,例如手机号码、身份证号码等需要添加校验,以确保输入数据的格式是正确的。修改:新的特性删除:此功能需要有大批量删除的功能,使用软删除的方法,以后的数据可以恢复。查询:可
8、以通过名字,班级,联系信息等领域进行搜索。点击你的名字可以看到你的学生信息。3.1.3 数据库设计tb_student_info表用来存储学生的全部信息,其中有23个字段,其结构如表3-1所示。表3.1lb_ludent_info表字段名字段含义数据类型id学号(主键)varchar(50)stu_name姓名varchar(50)stu_sex性别Varchar(IO)stu_sex_code性别编码(0:女;1男)Varchar(IO)stu_idCard身份证号varchar(50)stu_birthday生日datetimestu_phone手机号varchar(50)StudenCp
9、arent联系人varchar(50)parent_phone联系人手机号varchar(50)stu_addr家庭住址varchar(50)province_id省份IDvarchar(50)province省份varchar(50)city_id城市IDvarchar(50)city城市varchar(50)CountyJd县IDvarchar(50)county县varchar(50)dormitory_id宿舍IDvarchar(50)entrance_date入学时间datetimeclass_id班级IDvarchar(50)head_url头像路径varchar(50)manag
10、er_name创建人varchar(50)manager_date创建时间datetimedel_flag删除标志(0:否;1是)varchar(10)tb_address_info表用来存储城市全部信息、,属于字典表,其中有9个字段,其结构如表3-2所示。表3.2tb_address_infb表字段名字段含义数据类型addr_id主键idvarchar(50)addr_name地区名名称varchar(50)addr_type地区类型1:省;2:市;3:区varchar(10)location位置坐标点varchar(50)del_mark删除标志(0:正常;1:已删除)varchar(50
11、)parentjd父地区IDvarchar(50)addr_memo备注varchar(50)manager_name创建人varchar(50)manager_date创建时间datetime3.1.4页面与头现在左边的菜单上按一下,就会出现一个学生的资料清单。这个清单的标题包含了图片,名字,创建的时间。学员形象加入超级连结,请按学员形象进入学员资料页面,可查阅学员资料。该模块具有新增,修改,删除等功能,还可以根据学生的姓名,电话,班级等条件对其进行模糊搜索。图31中显示了学生列的表面:图3.1学生列表效果图学生详情(修改,新增)面如图3-2所示:口品野23m9f图3.2学生新增、修改效果图
12、该模块的部分主要代码如下:1) Java代码网/* 跳转到学生管理页面* paramrequest* paramresponse* return* throwsException* /Auth(verify1.ogin=true)RequestMapping(value=7studentView)publicModelAndViewstudentView(HttpServletRequestrequest,HttpServletResponseresponse)throwsExceptionreturnnewModeIAndVieWC7schoolManager/StiIdentManager
13、/StudentViewJsp);)* 获取学生信息* paramrequest* paramresponse* return* throwsException*/Auth(verify1.ogin=true,verifyUR1.=true)ResponseBodyRequestMapping(value=7getStudentInfo,produces=11applicationtext;charset=utf-8)publicStringgetStudentlnfo(HttpServletRequestrequest,HttpServletResponseresponse)throwsEx
14、ceptionv!-获取分页总数-selectcount(*)asnumfromtb_student_infotwhere1=1andconcat(u.username,u.phone,u.manager_date)likeconcat(%#content)andt.de1.flag=,O,updatetb_student_infbtt.del_flag=,1t.manager_name=#item.managerNamewheret.id=#item.stuldupdatetb_student_infb3) JSP页面部分代码U3学生列表页:jQuery(H#studentView).jqG
15、rid(datatype:local,autoWidth:true,ShrinkToFititrue,hidegrid:false,CaptionibuttonStr,height:400,multiselect:true,rownumbers:true,loadtext:“数据加载中.”,CoINames:ID?头像?姓名?性别?出生日期了联系电话二班级?宿舍,入学日期?创建时间1ColModeI:namefstujd,indexr,stujd,width,alignzncenter11,hiddenlrue,name:head_urr,index:head_urr,width:l00,al
16、ign:center,formatter:function(value,row,index)if(typeof(value)=11undefined)return,臂未上传”;elseif(value=)return”暂未上传”;elsereturnn;name:stu_name,index:stu_name,Width:80,align:Center,namezsex,indexsex,width:100,align:center,name:stu_birthday,index:stu_birthday,Width:80,align:Center,name:PhOne,index:PhOne
17、,width:80,align:Center,namezclass-id,indexclass-id,width:100,align:,center,name:,dormitory-id,index:,dormitory-idwidth:100,align:Center),nameentrance-dateindexr,entrance-datewidthJOO,alignrcenter),namemanager-date,indexz,manager-date,width:100,align:center));3.2教师管理该模块具有对教师数据新增、修改、删除等功能。3.2.1 教师列表使用
18、列表列式来显示教师的资料,显示的资料包含了教师的头像、老师的联系方式、授课、职称、创建时间等信息,并按照创建时间倒序排序。点击头像可查看教师详情3.2.2 功能描述此模块具有增加、删除、修改、查询的功能。修改:功能与上述相同新增:增加了老师的资料,增加了性别的选项。必须使用时间控制来选择生日的日期。名称,联系信息,标题是必需的。一些输入栏:如移动电话号码、身份证号码等需要添加正规检查,以确保输入资料的格式是正确的。删除:此功能需要有大批量删除的功能,使用软删除的方法,可以在以后的数据恢复。查询:搜索可以通过名字,职务,联系信息等领域来搜索。点击你的名字可以看到老师的详细信息。323数据库设计I
19、bjeachejinfo表用来存储教师的全部信息,其中有19个字段,其结构如表33所示U1.表3.3tb_teacher_infb表字段名字段含义数据类型id主键IDvarchar(50)t_name姓名varchar(50)t_sex性别varchar(10)t_sex_code性别编码(0:女;1男)Varchar(IO)t_birthday生日datetimet_phone手机号varchar(50)stu_addr家庭住址varchar(50)province_id省份IDvarchar(50)province省份varchar(50)city_id城市IDvarchar(50)cit
20、y城市varchar(50)county_id县IDvarchar(50)county县varchar(50)t_major专业varchar(50)t_title职称varchar(50)head_url头像路径varchar(50)manager_name创建人varchar(50)manager_date创建时间datetimedel_flag删除标志(0:否;1是)varchar(10)3.2.4 页面与实现12点击左边的老师管理菜单,就可以看到老师的资料清单。这个清单的头部包含了图片,名字,、头衔,创建时间和其他的信息。老师的形象可以加入到这个连结中,然后图3-3教师列表效果图点选老
21、师的形象,就可以看到老师的形象了。该模块具有新增、删除等功能,还可以根据老师的姓名、授课情况等进行模糊搜索。图3-3中显示了教师列表的表面:二品r内图3.4教师新增、修改效果图该模块的部分主要代码如下:1)Java代码/*跳转到教师管理页面paramrequestparamresponsereturnthrowsException*/Auth(verify1.ogin=true)RequestMapping(value=uZteacherView)publicModelAndViewteacherView(HttpServletRequestrequest,HttpservletRespons
22、eresponse)throwsExceptionreturnnewModelAndView(7schoolManagerteacherManagerteacherView.jsp11);)* 获取教师信息* paramrequest* paramresponse* return* throwsException* /Auth(verify1.ogin=true,verifyUR1.=true)(三)ResponseBodyRequestMapping(value=VgetTeacherInfb,produces=application/text;charset=utf-811)publicS
23、tringgetStudentInfo(HttpServletRequestrequest,HttpServletResponseresponse)throwsExceptionJSONObjectjsonRes=newJSONObject();MapmapParam=getParameterMap(request);)* 保存教师数据* param* paramrequest* paramresponse* return*throwsException*/AUth(Verify1.ogin=true)RequestMapping(value=VsaveTeacherInfo,method=R
24、equestMethod,POST)publicResponseBodyintSaveTeacherInfo(HttpServletRequestrequest,HttpServIetResponseresponse)throwsExceptionMapmapParam=getParameterMap(request);Stringtype=mapParam.get(type,).toString();MapUser1.ogin=(Map)request.getSession().getAttribute(11userInfor11);mapParam.put(managerName11,us
25、er1.ogin.get(USER_NAME);mapParam.put(managerDate,newjava.util.Date();inti=0;if(,add,.equals(type)mapParam.put(atagjd,UUlD.randomUUID().toString().replaceAll(,”);i=insert(mapper11saveTeacherInfo11,mapParam);elsei=update(mapperupdateTeacherInfo,mapParam);1returni;)2) MybatiS配置部分代码select*fromtb_teacher
26、_infotwhere1=1andConCat(U.username,u.phone,u.manageJdate)likeconcatC%#content,1%,)3) Jsp页面部分代码3.3宿舍管理这个模块拥有对宿舍数据修改、新增、删除等功能,还拥有宿舍分配学生的功能。3.3.1 宿舍列表以一种列表的方式对宿舍数据进行显示,所显示的信息有:宿舍名称、宿管联系方式、创建时间等,并且以创建时间为顺序对其进行排列。双击列表以查看详细情况,详细情况页面中包含了宿舍楼的基本资料以及此宿舍楼下的学生资料。3.3.2 功能描述本模块包含宿舍资料增删修改查询等功能。删除:此功能需要有一批删除的功能,使用一
27、种软删除的方法,可以在以后的数据恢复。新增:增加了寝室资料,寝室管理员的名字在下拉菜单里,资料来源于老师管理系统的资料。宿舍名必须填写,不可重复。修改:此特性修正的原则与新增加的相同。另外,这一功能还包括了分配学生的功能。查询:可以根据宿舍楼的名字,宿管阿姨的名字,以及其他的一些字段进行查询。双击可查看宿舍楼详细信息。3.3.3 注意事项同一学生只能属于单个宿舍,宿舍数据删除后,该宿舍下的学生属于未分配状态。3.3.4 数据库设计Dtb-dormitoryjnfo表用来存储教师的全部信息,其中有9个字段,其结构如表3-4所示。表3.4tb_dormitory_info表字段名字段含义数据类型i
28、d主键varchar(50)d_no宿舍楼号d_name宿舍名称varchar(50)manager_name宿管老师varchar(50)manager_phone宿管电话varchar(50)d_num学生数量intd_max_num允许学生数量intcreate_date创建时间datetimedel_flag删除标志(0:否;1是)varchar(10)2)tb_dormitory_detail表是一个宿舍与该宿舍学生中间表,它被用来记录这个宿舍下的学生信息,它有3个字段,它的结构如表3-5所示。表3.5tb_dormitory_detail表字段名字段含义数据类型id主键varcha
29、r(50)dorm_id宿舍idvarchar(50)stu_id学生idvarchar(50)3.3.5 页面与实现按一下左边的宿管选单,可以看到宿管资讯。这个表格的标题包含了宿舍的楼号,宿舍的名字,宿舍的管理老师,宿舍的电话,学生的人数,最多的学生,创建的时间。按下表格,可进入宿舍楼详情页面,可浏览宿舍楼详情。本模块有新增,修改,删除等功能,并可根据宿舍楼的名字,宿管老师,宿管老师的联系方式,实现模糊搜索。图3-5中显示了宿舍的列面”引:图3.5宿舍管理列表效果图图3.6宿舍新增修改效果图该模块的部分主要代码如下:1) Java代码Controller(O)RequestMappingCV
30、dormitoryn)publicclassDormitoryActionextendsBaseActionf* 保存宿舍数据* param* paramrequest* paramresponse* return* throwsException*/Auth(verify1.ogin=true)RequestMapping(value=VsaveDormitoryInfon,method=RequestMethod,POST)public(O)ResponseBodyintsaveDormitoryInfb(HttpServletRequestrequest,HttpServletRespo
31、nseresponse)throwsExceptionMapmapParam=getParameterMap(request);Stringtype=mapParam.get(utype,).toSt11ng();MapUser1.ogin=(Map)request.getSession().getAttribute(11userInfor);mapParam.put(managerName11,user1.ogin.get(,USER-NAME11);mapParam.put(managerDate,newjava.util.Date();inti=O;if(add.equals(type)
32、mapParam.put(id,UmD.randomUUID().toStrmg().replaceAll(,-H,h);i=insert(mapper+11saveDormitoryInfb,mapParam);)elsei=update(mapper+,updateDormitoryInfbn,mapParam);)returni;)2) MybaliS配置部分代码select*fromtb_dormitory_infotwhere1=1updatetb_dormitory_infod_name=#d_name,manager_name=#manager_name),whereid=#id
33、3) JSP页面部分代码$(document).ready(function()CoINameSTlDr宿舍楼号?宿舍名称:宿管老师;宿管电话7学生数量最大容量”,创建时间IColModel:namezid,indexid,width,aligncenter,hiddenztrue,name:d-no,indexd-no,width:80,align,center,name:d_name,index丁d_name,Width:80,align:Center,namefmanager-name,indexrmanager-namewidthJOO,aligncenter),namemanager
34、-phone,indexzmanager-phone,widthz80,alignucenter,name:d_num,index:d_num,Width:80,align:Center,name:d_max_num,index:d_max_num,Width:80,align:center,namefmanager-date,indexmanager-date,widthJOO,aligncenter);3.4班级管理这个模块可以对班级数据进行修改、新增、删除等操作,还可以分配指导员和学生。3.4.1 班级列表列表显示的是班级的数据,显示的内容包括了学生人数、创建的时间等,并且以创建的时间为
35、顺序对其进行了排列。双击列表以查看详细情况,详细情况页面中包含了一个班的基本资料以及那个班下的学生资料。3.4.2 功能描述这个模块包含了班级资料的增,减,改,查等功能。新增:增加了班级资料,辅导员的名字在下拉菜单中,资料来源于老师的管理资料。班名必须填写,不可重复。修改:此特性修正的原则与新增加的相同。另外,这一功能还包括了分配学生的功能。删除:此功能需要有一批删除的功能,使用一种软删除的方法,可以在以后的数据恢复。查询:搜索功能,可以根据班级名称,导师姓名,以及其他领域进行搜索。双击可查看课程详细信息。3.4.3 注意事项一个学生只能在一个班级中学习,在班级资料被删除之后,这个班级中的学生
36、将会被视为没有被分组。3.4.4 数据库设计1)tb_class_info表用来存储班级的全部信息,其中有17个字段,其结构如表3-6所示。表3.6tb_class_infb表字段名字段含义数据类型id主键varchar(50)c_name班级名称varchar(50)t_id指导员idvarchar(50)t_name指导员varchar(50)t_phone指导员电话varchar(50)c_num学生数量varchar(50)manager_date创建时间datetimecourse_status是否排课(0:否;1是)varchar(10)del_flag删除标志(0:否;1是)va
37、rchar(10)3)tb_class_detail表是班级与教师的中间表,它可以用来记录老师与班级之间的关系,它有3个字段,它的结构如表3-7所示。表3.7tb_class_detail表字段名字段含义数据类型id主键varchar(50)c_id班级idvarchar(50)tea_id教师idvarchar(50)3.4.5页面与实现在左边的班级管理菜单中,按一下就可以看到宿舍的资料。这个表格的标题包含了班级的名字,老师的电话,学生人数,创建的时间。按下表格可进入课程详情页面,以了解课程详情。本模块具有新增,修改,删除等功能,还可以根据班级名称,辅导员,辅导员电话等条件,进行模糊搜索。等
38、级列面显示在图3-7中:图3.8班级新增、修改效果图该模块的部分主要代码如下:1 )Java代码/* 跳转到班级管理页面* paramrequest* paramresponse*return*throwsException*/* 保存班级数据* param* paramrequest* paramresponse* return* throwsException* /Auth(Verify1.ogin=Irue)RequestMapping(value=VsaveClassInfon)public(三)ResponseBodyintsaveClassInfo(returni;12)Mybatis配置部分代码!-获取分页总数select