• 921.00 KB
  • 2022-04-22 11:17:55 发布

学生信息管理系统毕业论文.doc

  • 20页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'河北建材职业技术学院HebeiVocational&TechnicalCollegeofBuildingMaterials毕业设计(2016届)题目:学生信息管理系统所属系部机电工程系专业计算机信息管理(3G软件开发)班级3G软件开发(4)班姓名XXXXXX学号0123456789指导教师XXXXXX完成日期:2015年10月20日 摘要随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点,通过计算机可以将许多繁琐的工作简单化,学生管理是高校人才培养计划的重要组成部分,所以有必要开发学生信息管理系统来对学生的信息进行数字化管理。既可减轻学院教职员工工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,跟上国家各部门关于信息化的步伐,使各项管理更加规范化。基于此我设计出了一套可行而有效的学生信息管理系统,本文介绍了学生信息管理系统整个的开发过程,阐述了系统需求分析、设计、数据库设计的全过程,具体功能采用了面向对象的开发方法。本文以学生信息为研究对象,从实际出发,分析目前学生信息管理中存在的问题,并结合管理信息系统开发的基本原则,设计出学生信息管理系统。本文首先介绍了学生信息管理系统研究的背景、意义及研究的内容,在此基础上提出了基于三层B/S架构的学生信息管理系统。结合实际需求,本文将学生信息管理系统分为以下管理功能:学生信息的增、删、改、查和学生的基本管理,以及报表的查询等功能。在需求分析中,从本系统的业务需求、功能需求、非功能需求三个方面进行介绍;系统设计是从抽象的概念层次和功能需求角度,根据需求结构确定系统的逻辑模型,并通过概念类分析和用例分析进行详细说明;在数据库设计中介绍了数据库的概念设计和数据字典。关键词:B/SJavaSSH管理信息系统体系结构 目录引言11、系统分析11.1需求分析11.2本系统开发按任务描述21.3系统应该具备的基本功能21.4系统功能描述22、设计说明32.1各模块分析32.2项目架构42.3包及Java类说明42.4数据库设计53、系统设计与实现53.1主界面窗口模块设计与实现53.2系统主界面63.3添加学生信息63.4学生信息维护63.5根据学号查找学生73.6更新学生信息73.7删除学生信息83.8更改管理员密码83.9退出系统84、主要代码实现94.1登录94.2管理员管理学生部分104.3通用模块115、系统测试135.1什么事软件测试13 5.2软件测试的对象135.3测试项目135.4测试结果说明14结论15致谢15参考文献16 引言数字化飞速发展的今天,计算机的应用已在社会的各个领域摄入开来,无论是在商业,工业还是政府部门都早已普及,如今甚至连教育行业也把计算机应用到各个方面的工作中,本次毕业设计就是把计算机应用到学校学生信息管理中的范例。人类已进入21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息科技和网络技术的迅速发展和广泛应用,对社会的政治、经济、军事、文化等领域产生越来越深刻。学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学习的决策者和管理者来说都至关重要。学生信息管理系统(StudentInformationManagementSystem),一下剪成SIMS,是针对学校教务处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。它是一个教育单位不可缺少的部分,它的内容对于学习的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的信息情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率低,保密性差,时间一长将产生大量的文件和数据,更不变查找,更新,维护等。诸如这些情况,给学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理。例如:检索迅速、查找方便、已修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。针对于此,本次课题研究了一种利用开发工具JavaWeb、SSH框架和MySql开发的学生信息管理系统,该系统可以极大提高学生信息管理的效率,也是学校的科学化、正规化管理、与世界接轨的重要条件。为了更好的把握学校的教育方针起到了一定的促进作用。因此,开发这样一套管理软件成为很重要的事情。1、系统分析1.1需求分析需求分析的结果是学生信息管理系统开发的基础,关系到工程的成败和软件产品的质量,因此必须进行需求分析。16 1.2本系统开发按任务描述此管理软件是为学校教务处儿设计,它充分利用计算机的宫内实现对于基本信息管理、学生信息管理等宫内的自动化控制,将学生信息管理工作打打减轻,方便友好的图形用户界面,简便的操作,完善的数据库管理,是的该系统成为学校教务处管理人员的得力助手,对于笨管理系统,管理人员能够很好地对现有的系统用户进行学生基本信息以及成绩等管理,快速方便的实现使用过程中的各项任务,管理员进入系统应该需要验证,用户、密码都需要填写。进入系统后,可以进行基本信息的增、删、改、查等操作。1.3系统应该具备的基本功能系统开发的总任务是实现各种信息的系统化、规范化、和自动化。系统功能分析是在系统开发的总任务的基础上完成的,在学生信息管理系统中它需需要完成的功能主要有:学生基本信息的管理,主要包括:学生信息的录入,修改、查询学生信息、以及删除学生信息等。系统管理功能,包括用户管理、修改密码、重新登录和退出系统等。除了实现上述功能以外,学生信息管理系统还具有简介的界面、安全性高、稳定性强,经过对学生信息管理流程进行了解和分析之后,可以看出一个功能完善的学生信息管理系统必须包括以下几个管理系统:(1)基本信息管理系统(2)学生信息管理系统(3)查询和统计系统(4)系统管理系统(5)退出系统1.4系统功能描述由以上的分析结果,我们可以得知本系统的功能。我们根据操作划分模块,每一个操作模块都要实现自身的功能,并且在整个操作流程中负责承上启下。下面我们来分别描述各个模块要实现的功能。(1)登录:系统初始化好,系统管理员和普通用户无需选择用户身份即可输入用户名和密码,登录系统。系统根据登录者的身份不同,显示不同的菜单。(2)修改密码:登录本系统的用户可以修改自己的登录密码,但必须将登录密码输入正确并两次输入相同的密码,就可以成功修改用户的登录密码。(3)16 区域管理:可以对于院校选定的招生区域进行管理,查看所有区域信息,修改区域信息,删除区域信息并可以增加区域信息,并可以为其选择该区域所属父区域,使其存在上下级关系。(4)学校管理:对于院校选定区域中隶属于本区域内的招生学校进行管理,查看所有学校信息或查看某个区域内的学校信息,修改学校信息,删除学校信息并可以增加学校信息。(5)年级管理:可以对系统中已经存在的学校添加对应的年级,查看所有年级信息或查看某个学校内的年级信息,修改年级信息,删除年级信息。(6)部门管理:对于院校安排的负责招生管理的部门进行管理。功能包括可以查看所有部门信息,修改部门信息,删除部门信息,添加部门信息。(7)高校管理:对于所招学生,除了报名本院校之外,其他有意向报名的院校进行管理。功能包括查看所有院校信息,修改院校信息,删除院校信息,添加院校信息。(8)学生管理:对已经搜集到或者通过与进行招生老师沟通后有报告意向的学生信息添加到本系统中,编辑学生信息,删除学生信息,查询学生信息,并在查询时可以添加意向学生与招生老师进行沟通的情况和查看沟通情况的明细内容。2、设计说明2.1各模块分析学生信息管理系统结构图如图2-1所示图2-1学生信息管理系统结构图16 2.2项目架构学生信息管理系统项目架构图如图2-2所示图2-2学生信息管理系统项目架构图2.3包及Java类说明表2-1包及Java类的结构包类方法返回值说明com.xt.dao(数据库访问层)StuDao接口getStuId(intstid)Student按学号查询学生getAllStudent(intpageNo)List检索所有学生AddStudent(Studentstudent)void添加学生信息UpdateStudent(Studentstudent)void按学号更新学生DeleteStudent(Studentstudent)void按学号删除学生UserDao接口getAdmin(StringuserName,StringuserPwd)Users管理员登陆UpdatePWD(Usersusers)void更改管理员密码com.xt.entity(模型层)User实体类构造方法、get、set方法管理员实体类Students实体类构造方法、get、set方法学生实体类com.xt.factory(工具类)该包下存放一些开发中常用的工具类,如连接数据库操作com.xt.entity(控制层)控制层,实现action的业务逻辑,执行数据库访问层的操作。16 2.4数据库设计表2-2.学生表No列名属性必须主键说明类型大小1Stidint20YY学生学号2StnameVarchar15Y学生姓名3Stageint3Y学生年龄4Stsexchar1Y学生性别5StdeptVarchar20Y学生系别6SttelVarchar11Y学生电话表2-3.管理员表No列名属性必须主键说明类型大小1Idint20YY管理员编号2UsernameVarchar15Y管理员账号3PasswordVarchar20Y管理员密码3、系统设计与实现3.1主界面窗口模块设计与实现系统的任何用户使用系统,都必须从系统的登陆入口进入,这是任何一个系统管理功能保密性的需要。根据前面的需求分析和设计指导,系统角色包括管理员类,这就要求为管理员用户才可以提供登陆的界面。系统应用程序的主要功能都是在浏览器窗口打开,在地址栏内输入对应的网址(http://localhost:8080/StudentManager/login.jsp),可以打开本软件的主界面,在里面完成其特定的功能。主窗口的界面如图3-1所示。图3-1系统登录界面设计16 3.2系统主界面以下为进入“学生信息管理系统”后,展示的界面,界面会根据登录的用户的角色不同,显示不同的操作菜单,这是由用户的权限决定的。如图3-2-1李四1用户登录后的界面,图3-2李四1用户登录后的界面图3-2李四1用户登录后的界面3.3添加学生信息这一部分的内容主要实现对年级学生的管理,当管理员进行添加学生信息操作的时候,首先是添加功能,为此,我设计了学习添加界面,在添加界面需要包括如下的信息:姓名、性别、年龄、电话、系别、和地址。还应该提供对年级管理操作的入口,包括查询学生更新学生和删除学生,设计图如图3-3所示图3-3学生的添加界面3.4学生信息维护16 以下是学生信息查询的界面,可以根据条件进行查询学生信息。可查看某个学生的详细信和学生与招生老师的沟通情况,以此了解学生对本校的报名意愿,在本界面可以为学生添加和修改其沟通记录。设计图如图3-4所示图3-4学生个人信息详情界面3.5根据学号查找学生输入要查找的学生的学号如图3-5所示图3-5根据学生ID查询界面3.6更新学生信息以下是修改学校的界面,可以根据条件进行查询或者查询出全部的内容。在内容列表中可以实现分页功能,并可以控制每页显示的数目。点击相应的修改按扭可以修改某一学生的信息。设计图如图3-6所示图3-6学生的修改界面16 3.7删除学生信息这一部分的内容主要实现对学生的删除,当管理员进行学生删除操作的时候,根据学生的ID删除对应的学生信息,然后在更新数据库里面的学生信息和设计图,点击该学生所对应的删除按钮,即可从数据库中删除该学生。如图3-7所示图3-7学生的信息删除3.8更改管理员密码这一部分的内容主要实现对管理员账号安全性的保障,当管理员的密码异常登录时,或者密码泄露不安全的时候,可以修改管理员密码。这样可以确保账号的安全性,避免不必要的损失,如图3-8所示图3-8修改管理员密码3.9退出系统为了保障管理员的账号安全,设置了用户退出系统。退出后移除用户的Session,并且跳到系统的登陆页面,如图3-9所示图3-9退出系统16 //删除session中对应的值session.removeAttribute("username");//调用方法清空已定义session中保存的值session.invalidate();//地址重定向(页面跳转)response.sendRedirect("login.jsp");4、主要代码实现4.1登录系统用户登录使用的是类UserAction.java和类Users.java,其中UserAction.java是专门为登陆验证写的一个类。根据部分的界面设计可知,输入的参数有2个:用户名、密码,在登录页面login.jsp中分两个文本框表示。登陆操作时,把上面两个参数传递到UserAction.java中,然后根据登录的用户名、密码进行验证。验证过程代码如下://查询用户名密码登录Usersuser=newUserDao().getAdmin(username,password);//把查询到的用户名密码保存到session中ServletActionContext.getRequest().getSession().setAttribute("user",user);//判断用户名密码正确跳转到成功页面,否则跳转到错误页面提示,然后返回重新登录if(user!=null&&user.getId()>0){returnSUCCESS;}else{return"error";}/***登录界面不为空的方法*/$(function(){16 $("#btn").bind("click",function(){varname=$("#username").val();varpwd=$("#password").val();if(name==""){alert("用户名不允许为空");$("#username").focus();returnfalse;}elseif(pwd==""){alert("密码不允许为空");$("#password").focus();returnfalse;}else{$("#mfrom").submit();}});});4.2管理员管理学生部分管理员管理学生时,主要使用的是类AllStudentAction.java和类Student.java.其中AllStudentAction.java是专门为学生编写的一个类,封装了对学生的所有操作。根据界面部分的设计可知,管理学生包括的功能有:取得所有学生的列表、增加学生、增加学生的沟通记录、修改学生信息和删除学生。根据这些功能的需要,我们在该类中逐一实现了这些功能。接下来我们就介绍代码的具体实现。首先,在类StudentAction.java中定义的变量如下:privateintpageNo;publicintgetPageNo(){returnpageNo;}publicvoidsetPageNo(intpageNo){this.pageNo=pageNo;16 }//Action中的分页查询方法publicStringexecute()throwsException{//TODOAuto-generatedmethodstubif(pageNo==0){pageNo=1;}//查询总页数StuDaodao=newStuDao();dao.pageCount();//查询所有学生信息ListallStu=newStuDao().getAllStudent(pageNo);//保存到session中,在页面调用ServletActionContext.getRequest().setAttribute("allstudent",allStu);ServletActionContext.getRequest().setAttribute("pageCount",StudentPage.PageCount);returnSUCCESS;}4.3通用模块本系统中,每个查询、修改、删除列表界面都完成了分页效果,为了实现此效果,并使代码具有一定的通用性,将实现这一部分功能的代码封装为一个实体类StudentPage.java。根据功能的需要,我们在该类中逐一实现通用功能。接下来我们就介绍代码的具体实现。首先,在类StudentPage.java中定义的变量变量如下:publicclassStudentPage{publicstaticintPageCount=0;//保存总页数publicstaticintPageSize=6;//保存每页的数据}//查询所有学生publicListgetAllStudent(intpageNo){ListallStu=null;16 try{Sessionsession=HibernateSessionFactory.getSession();//查询语句Stringhql="fromStudent";//获取查询对象Queryquery=session.createQuery(hql);//设置查询对象的起始行query.setFirstResult((pageNo-1)*StudentPage.PageSize);//设置查询对象的查询行数query.setMaxResults(StudentPage.PageSize);//执行查询allStu=query.list();}catch(Exceptionex){ex.printStackTrace();}finally{HibernateSessionFactory.closeSession();}returnallStu;}在运行系统时,首先要对分页信息进行初始化,根据实体类里面数据的多少进行计算页数,不足一页显示的数量时,增加一。在翻页时,计算是否在第一页或最后一页,其具体实现代码如下:">">用按钮调用JavaScript的点击事件来调用JavaScript代码进行上一页、下一页、首页和尾页的操作。分页的部分JavaScript代码如下//下一页16 functionnextPage(){//获取总页数varpageCount=parseInt(document.getElementById("pageCount").value);//获取当前页varpageNo=document.getElementById("pageNo").value;//判断当前页不是最后一页的时候,当前页+1,向下翻一页然后在进行Action的操作。把当前页传到session中重新判断if(pageNo5、系统测试在开发软件的过程中,人们使用了许多保证软件质量的方法分析、设计和软件,但难免还会在工作中犯错误。这样,在软件产品中就会隐藏许多错误和缺陷,尤其是对规模大、复杂性高的软件更是如此。所以,必须进行认真、计划、彻底的软件测试。5.1什么是软件测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终复审,是软件质量保证的关键步骤。确切的说,软件测试就是为了发现错误而执行的过程。一般分为两阶段:(1)单元测试:在编完某一模块后进行测试(2)综合测试:在开发完软件后进行系统测试。即使经过最严格的测试之后,仍然可能还有没被发现的错误隐藏在程序中。测试只能查找程序中的错误,不能证明程序中没有错误。5.2软件测试的对象软件测试不等于程序测试。软件测试应贯穿于软件定义与开发的整个周期。所以,需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档都应该是软件测试的对象。5.3测试项目16 系统中虽然从总体上分为管理员模块和招生老师查询模块,但是实际上这两种模块所包含的低层次功能模块有重叠的,因此,我们在设计测试用例的时候该按照这两大模块下属的小功能模块进行,可以用最小的工作量完成整个系统的测试。具体的测试项包括有:(1)系统操作员登录测试系统操作界面。内容包括账号口令输入、合法性检查,验证码正确性检查,系统操作界面显示控制。(2)区域管理测试区域管理部分的功能,内容包括添加区域,新区域信息的输入、子区域的输入;查询区域有根据父区域的名称查询、查询所有的区域并进行分页;编辑区域在指定范围内查询出相应的信息列表,然后修改对应的区域;删除指定的区域。(3)学生管理测试学生管理部分的功能,内容包括添加学生,学生信息的输入、必填项的填写、数据的合法性;根据查询条件对学生进行查询并具有分页功能;在查看学生详细信息时,显示出该生的沟通咨询情况,并可以添加沟通记录;编辑学生在指定范围内查询出相应的信息列表,然后修改对应的学生,核对数据的合法性;删除指定的学生。(4)修改密码测试登录人员在修改密码时,必须保证原密码正确性和两次输入的新密码的一致性,才可以修改。5.4测试结果说明(注下面以学生添加模块和修改年级的测试结果为例说明)条件:对学生进行添加,如果没有选择学生所在学校,提交添加的信息,则会显示警告“学生所在学校不能为空”。当对学生的添加,在选择学校的基础上,没有选择该校的联系人,也会显示相应的警告。制定测试计划目的:按照所制定的测试计划可以有效的计划、执行、跟踪、组织和管理测试项目。16 结论由于时间和技术水平的原因,在本系统设计上,还不能将全部功能设计得非常完善,还有一些功能模块有待于进一步的完善。同时,在本系统中还缺少了一部分必要的功能模块,例如系统的操作日志。这一系列工作都有待于今后在工作中逐步地加以补充和完善。另外,随着信息技术的发展,各类移动终端设备和移动接入技术以及相当成熟。若能够将各类移动终端设备纳入到本系统中,使得员工可以随时随地的通过移动终端设备访问本系统,在移动终端设备上办理业务,则能够显著提髙系统的办公效率,使得企业的办公自动化水平更上一个台阶。致谢在大学生活即将结束之际,我借这个机会向大学四年悉心教导我的辅导员和大学期间教我学到书本知识的老师和学会为人处世的老师、同学、朋友和其他一切帮助过我的人,在我心中,他们是最可爱的人。我感谢大学里伴我一起走过四年的朋友、室友,在我最无助和堕落的时候你们没有放弃我,我感谢你们。如今,回忆四年的点点滴滴,都好像发生在昨天一样。时间如梭,四年的时间就这么过去了,虽然没有太多的遗憾,但心里难免有些酸酸的感觉,我只能在这里祝福我的朋友,希望你们一路走好!衷心感谢在百忙之中抽出时间来评阅我设计的XXX老师和参加我的毕业答辩的老师们,向你们道一声:辛苦了!这次毕业设计,请教了很多同学,我才能这么顺利地完成目标,深刻地让我感觉到了友谊的可贵的师生缘的难得,也明白了团结力量大这个道理,在往后的日子里,我都会记住这一切切,来勉励我以后的人生。的来说,这次毕业设计我是成功的。我又学到新的知识了,也更明白了持之以恒对一个程序员来说的重要性,也懂得了世事的苦处。这期间,除完成了本身的学生信息管理系统的功能之外,也帮同学一起做了一些事情,大家有困难一起解决实在是件很开心的事情。16 只要生命不停止,学习永不停止。有了知识才不会觉得虚拟,有了知识才会觉得充实。再次感谢四年来曾经帮助过我的领导、老师、朋友、同学和其他友好人士,我一定不会忘记你们对我的好,我一定会在以后的人生证明你们对我的帮助没有白费,让我们一起笑傲江湖!参考文献1、刘京华著《JavaWeb整合开发王者归来》清华大学出版社20082、张孝祥著《深入JavaWeb开发内幕—核心基础》电子工业出版社20093、孙卫琴,李洪成著《Tomcat与JavaWeb开发技术详解》电子工业出版社20094、孙卫琴精通hibernate[M].电子工业出版社2005年4月100-1205、孙鑫编著.JavaWeb开发详解[M].电子工业出版社,2006.189-2746、耿祥义著《JSP基础编程》清华大学出版社2010,36(4)7、郑阿奇著《MySQL实用教程》电子工业出版社200816'