• 1.99 MB
  • 2022-04-22 13:37:07 发布

基于Web的管理系统毕业论文.doc

  • 31页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于Web的管理系统毕业论文目录1引言11.1研究背景11.2本文工作12相关技术及开发工具12.1Strust2框架12.2Hibernate框架22.3Ajax技术32.4JQuery技术32.5MYSQL技术32.6运行环境42.7软硬件需求42.7.1硬件环境42.7.2软件环境43系统分析与设计43.1需求分析43.2系统的功能设计53.3功能模块设计53.3.1用户登录模块53.3.2选题模块53.3.3学生成绩评定模块63.3.4留言板模块63.3.5公告板模块63.4系统结构图64系统数据库设计74.1数据库E-R图74.2数据库相关表105详细设计14 5.1系统登录功能实现145.2系统首页设计165.3老师管理模块175.3.1老师信息增加175.3.2老师信息管理185.4学生信息管理195.4.1学生信息管理界面195.4.2学生信息删除205.5公告信息管理215.5.1公告信息增加215.5.2公告信息查询215.6论文课题查询225.7论文管理245.8安全退出系统255.9学生选取老师255.10留言板界面256系统测试266.1系统测试目的与意义266.2测试分析266.2.1链接测试266.2.2数据库测试276.2.3功能测试276.3测试结果分析277结束语27参考文献28致谢29 1引言毕业论文管理系统,这种到目前为止还没有在各大高校执行的一款管理系统,其实有着不可忽视的意义。毕业生和指导老师在毕业的时候会显得特别麻烦,而这个系统正好减轻了老师繁重的工作,从而也方便了学生。1.1研究背景随着计算机时代的前进,计算机已经变成现实生活中不可缺少的一部分,人们在工作中依靠计算机技术已经无可替代。而毕业论文设计作为大学生在大学时代学习的一个重要展现,有必要具体实现计算机网络化和信息化的管理,这样不仅可以减轻论文指导老师承重的负担,也可方便指导老师进行课题申报、评分等过程,让比较繁重的毕业设计采用数据库进行统一管理。因此,设计一种毕业论文综合管理系统是各大高校教学管理所向往发展的一项任务,也是各院校教学发展的主要趋势。目前在国内外虽然有很多像这种类似的系统和软件,然而真正应用到各大高校和院校的却少之又少。针对各大高校及院校的基本需求和要求,一个好的毕业论文管理系统必须操作比较简单,功能比较完善,能够很好的向学生及老师展示其优点。1.2本文工作毕业论文设计作为大学生在大学四年的一个成果,是考察学生自身能力的一个机会。本设计主要针对各个高校的毕业论文管理,面向老师和所有即将毕业的学生,系统实现了学生自主选题和教师申报课题的双向交流,并增加了留言板、文件上传与下载、网上评分、发布公告等功能,能够保证毕业设计期间管理员、老师、学生之间信息的沟通,对保证毕业设计的质量有不可忽视的现实意义。2相关技术及开发工具2.1Strust2框架Struts2是三大框架之一,在设计的项目中用到Struts2都会有一个对应的Struts.xml,在这里面采用拦截器的机制来处理用户传过来的请求,是界面之间的跳转能够变得更安全,同时也使得业务逻辑中的控制器能够与Servlet和API完全脱离开。工作原理如图2-1所示:28 图2-1Struts2工作原理图2.2Hibernate框架Hibernate是一个独立框架,是SSH框架中的H,在使用Hibernate的时候都会有对应的映射文件,把java中的对象映射到数据库中,从而方便人们更好,更形象化的操作数据库属性,其工作原理如图2-2所示。Hibernate可以应用在很多场合,它可以通过PO,对数据库表中的数据进行增删改查工作,从而完成数据的持久化。图2-2Hibernate工作原理图28 2.3Ajax技术Ajax(AsynchronousJavaScriptandXML)是由HTML,JavaScript,CSS和DOM等技术组成。Ajax在现代很多浏览器中都能使用,它是一种支持异步请求的技术。也就是说,XMLHttpRequest(xmlHttp)对象可以让用户使用JavaScript向服务器提出请求并且响应。Ajax技术比较适用于交互比较多,读取数据频繁的web应用。其工作原理如图2-3所示。图2-3Ajax工作原理图2.4JQuery技术JQuery是一个优秀的JavaScript框架,它是轻量级的JS库,在使用的时候它兼容多种浏览器,解决程序员由于浏览器不同而导致的外部因素,并且能够方便为web端提供Ajax交互。JQuery还有很多优点,其中一个就是其文档写的非常详细,说明也很全面,同时有很多比较成熟的插件供人学习。2.5MYSQL技术MySQL是一个开源的关系型数据库管理系统,是一种关联数据库管理系统,在很多系统中,人们都选用MySQL来作为基本数据库大部分都是因为MySQL数据库有很多优点,例如速度快,有灵活性。本次设计使用的是集很多优点于一身的MySQL5.5关系数据库系统来完成。28 2.6运行环境本系统开发的是基于Web的毕业论文管理系统,在Windows下运行,要求使用的操作系统上安装有MYSQL数据库、Myeclipse、Tomcat服务器。2.7软硬件需求2.7.1硬件环境本系统程序运行的基本硬件要求是:CPU是AMDE2_3000MAPUwithRadeon(tm)HDGraphics1.80GHZ以上计算机2.7.2软件环境数据库系统:MySQL开发平台:MyEclipse8.5,ApacheTomcat6.0开发语言:Java,Jsp浏览器:GoogleChrome3系统分析与设计3.1需求分析本设计主要为了方便各高校教师和学生以及管理员的相关信息的管理和查询等。根据系统功能实现分为以下几种操作情况。系统由三个主要的角色组成:管理员、指导老师、学生。1.管理员的操作主要包括论文指导老师和学生基本信息的修改,以及管理所有在该系统中的老师和学生,发布具体公告等。2导师的操作主要包括个人基本信息的修改,课题的增加,以及论文格式的要求,给学生留言,论文成绩评定等。3.学生的操作主要包括个人基本信息的修改,自拟题目,选择课题,利用留言板与自己的指导老师进行交流,文件的上传和论文成绩查询等。28 3.2系统的功能设计系统结构图如图3-1所示,毕业论文管理系统分为学生子系统、老师子系统、和管理员子系统。每个系统下面分为多个模块,学生子系统主要有学生登录、查看和修改信息以及文件上传、和成绩查看等;老师子系统主要是登录、查看修改信息、出题和成绩录入等;管理员则主要负责后台处理。图3-1系统功能结构图3.3功能模块设计3.3.1用户登录模块管理员和老师,学生可通过自己的账户和学号登录该系统,进行密码验证,当选择记住用户名和密码时,系统会将用户的信息保存到用户本地的Cookie中,在下次进入本页面就会默认读取显示该账号。登录过后的用户可自行修改密码,同时管理员可以管理老师和学生,可重置老师和学生的密码。3.3.2选题模块选题模块主要针对学生题目的选定,首先学生通过自己的学号或者用户名登录管理系统,进入选题模块,找到自己的导师,查看导师和管理员提供的题目及全部信息,从而根据自身要求进行选择,同时学生也可自行拟题,题目和专业相关,并且有一定的需求,自行拟题的学生把自己拟的题目上传,在达到限定日期后,管理员确定最终选题结果并通知相应的导师。导师则对学生选择的题目进行审核,和学生进行交流,告知学生需要实现的功能及相关要求。对于自拟题目的学生,必须和老师说出自己的设计。28 3.3.3学生成绩评定模块学生成绩评定主要有以下功能:首先学生在系统通知的时间前上传自己完成的论文,管理员通知导师对学生的成绩进行评定,评定的成绩录入系统,学生则可通过登录自己的界面进行查看。3.3.4留言板模块留言板模块是一个交流的平台,主要为了方便学生与老师之间的交流,该模块对所有学生开放,学生可通过在留言板上发布消息,对自己的导师进行留言。与此同时,老师会接收到学生的留言,给予回复。3.3.5公告板模块公告板模块是管理员发布公告的地方,主要发布一些重要的信息,例如发布论文提交的具体事项,注意的内容等。学生和老师可通过登录自己的账号来查询公告的相关信息。3.4系统结构图系统结构图如图3-2所示,管理员主要实现后台处理,例如添加用户学生和老师。已经存在数据库中的老师登录系统可以增加课题,此课题提供给学生进行选择。如此同时存在数据库中的学生登录系统后也可自拟课题。学生选题是一对一的关系,一个学生只能选一个课题,如果想更改的话,必须告知自己的论文指导老师,经过老师同意方可改选。管理员则主要进行后台管理,他可以管理学生和老师,编辑学生和老师的信息,同时也可增加、删除学生和老师以及发布公告和上传论文格式等。28 图3-2系统结构图4系统数据库设计数据库的设计在整个软件设计过程中占有重要的地位,一个数据库的优劣直接影响到整个系统的执行效率。而毕业论文管理系统涉及到各大高校的毕业生以及老师,范围比较广,而且相关功能也比较多,其中有论文的上传,需要大量的存储空间,所以数据库的设计对于本系统来说至关重要。下面介绍下数据库的详细设计。4.1数据库E-R图E-R图主要是以一种图形界面的形式向人们展现该设计所需要涉及到的模型关系。它全称实体-联系图,主要由实体、属性、联系这几个组成元素组成。“实体”用长方形表示,“属性”用椭圆表示,“联系”用菱形表示。数据库的设计要联系相关表格,要有一定的约束条件,使实体与表一一对应。管理员实体由管理员用户名和密码,ID组成,如图4-1。28 图4-1管理员实体图老师实体分别是姓名,性别,ID,登录名,年龄,密码,编号组成,如图4-2。学生实体有姓名,性别,ID,年龄,入学时间,学号,登录名,密码组成,如图4-3。图4-2学生实体图图4-3老师实体图28 老师可以申报课题,学生可以选择课题,同时老师可以监督学生完成设计。图4-4学生和老师关系E-R图留言板实体分别是留言ID,内容,附件,发布时间,学生ID,老师ID,是否已读组成,如图4-5。图4-5留言板实体图28 公告实体分别是ID,内容,标题,时间组成,如图4-6。图4-6公告实体图论文课题实体主要是ID,标题,时间,类型,附件,是否选取组成,如图4-7。图4-7论文课题实体图28 4.2数据库相关表本系统有7张表,分别是留言板信息表,管理员表,论文显示表,学生表,老师表,论文课题表,公告表。数据库相关表如下:(1)留言板信息表该表存储留言板的相关信息,主要由留言id,留言内容,时间,留言人分为学生和老师,对应表中的学生id和老师id,是否已读,类型组成。留言板主要是方便老师和学生的交流,留言板上的内容由老师或者学生发布,其发布人可自行设置主题,同时,只有学生的指导老师可以给学生留言,相反的学生也只可以给自己的指导老师留言,页面中会显示用户发表留言的时间和内容,详细结构见表4-1。表4-1留言板信息表(t_liuyan)字段名称类型长度可否空描述主键外键idINT11N留言IDYNcontentVARCHAR8000Y内容NNfujianVARCHAR255Y附件NNfujianYuanshimingVARCHAR255Y附件原始名NNshijianVARCHAR255Y时间NNstu_idINT11Y学生IDNYtea_idINT11Y老师IDNYshifouyiduVARCHAR255Y是否已读NNtypeVARCHAR255Y类型NN(2)管理员信息表该表存储管理员相关信息,管理员主要负责后台处理,管理员通过username和userpw登录界面,管理员的账号只有唯一的一个,在系统完成的时候会默认一个系统管理员来执行管理功能,详细结构见表4-2。表4-2管理员表(t_admin)字段名称类型长度可否空描述主键外键useridINT11NIDYNusernameVARCHAR100N姓名NNuserpwVARCHAR100N密码NN28 (3)论文显示信息表该表主要存储学生提交的论文以及查看论文分数相关信息,主要由id,论文课题,论文上传时间,学生ID,论文成绩等组成。学生通过自己的用户名和密码登录自己界面上传论文后,如果上传论文有误,可通过控制该表中的del字段来删除论文。如若论文通过并传给指导老师评分,学生则可在论文界面查询自己对应的论文成绩,详细结构见表4-3。表4-3论文显示表(t_zuoye)字段名称类型长度可否空描述主键idINT11NIDYtitleVARCHAR255Y课题NfujianVARCHAR255Y附件NfujianYuanshimingVARCHAR255Y附件原始名NshijianVARCHAR255Y时间NdelVARCHAR255Y删除Nstu_idINT255Y学生IDNfenshuINT11Y分数N(4)教师信息表该表主要存储教师相关信息,教师通过自己的登陆名和密码登录界面,教师有ID,性别还有编号和年龄,姓名以及是否被删除操作等属性,老师的ID默认的是自增长,当增加一个新的老师时会默认ID。详细结构见表4-4。表4-4教师表(t_tea)字段名称类型长度可否空描述主键idINT11NIdYcnoVARCHAR25N编号NnameVARCHAR25N老师姓名NsexVARCHAR25N老师性别NageINT11N年龄NloginnameVARCHAR255Y登陆名NloginpwVARCHAR255Y教师密码NdelVARCHAR50Y删除N28 (5)学生信息表该表主要存储学生相关信息,学生可通过登录名和密码登录到系统,每个学生都会有姓名,性别,学号,年龄,入学时间,以及对应论文指导老师的ID等属性,详细结构见表4-5。表4-5学生表(t_stu)字段名称类型长度可否空描述主键idINT11N学生idYxuehaoVARCHAR100N学生学号NnameVARCHAR100N学生姓名NsexVARCHAR100N学生性别NageVARCHAR100N年龄NruxueshijianVARCHAR50N入学时间NloginnameVARCHAR255N登录名NloginpwVARCHAR255N密码Ntea_idINT11N对应老师IDNdelVARCHAR50N删除N(6)论文课题表该表主要存储论文课题的相关信息,论文课题表主要由id,标题和课题发布时间,课题类型,是否已被选取等属性组成。类型分为两种,一种是学生自己拟定的课题,一种是老师给的课题。学生选取论文课题后根据老师给定的要求来完成论文,详细结构见表4-6。表4-6论文课题表(t_geshi)字段名称类型长度可否空描述主键idINT11NidYtitleVARCHAR255N标题NfujianVARCHAR255Y附件NfujianYuanshimingVARCHAR255Y附件原始名NshijianVARCHAR255N时间NtypeINT11Y类型N28 xuxuINT11Y是否选取N(7)公告表该表主要存储管理员发布的公告,公告表主要由id,标题,内容,时间等属性组成。公告由管理员发布,学生和老师则只可以在登录自己的界面后查看公告,详细结构见表4-7。表4-7公告表(t_gonggao)字段名称类型长度可否空描述主键idINT11NidYtitleVARCHAR1000N标题NcontentVARCHAR10000N内容NshijianVARCHAR100N时间N5详细设计本文的主要任务是对各大高校的毕业设计管理工作进行统一的管理,使老师和学生能够有一个更好的交流平台。同时也使每个高校都能及时而且有效地发布最新的关于毕业论文的相关信息和通知,方便学校对每个毕业生的毕业设计进行监督与管理。本次设计的系统主要内容包括用户登录(登录分为三个角色登录,学生,老师和管理员)、老师出题、学生选题、论文上传、成绩评定、相互留言等。通过这个系统能够使广大师生从繁重的毕业工作中解脱出来,从而提高老师工作的积极性和效率。5.1系统登录功能实现系统登录界面如图5.1所示,用户登录系统在登录的时候主要设置了三个角色管理员、老师、学生,在勾选中自己所要登录的角色进入主界面时都会随着登录角色不一样而定义不同的功能。28 图5.1系统登录界面本系统中的登录界面,采用了Ajax进行判断,判断用户名和密码是与数据库中查到的一致,然后调用后台中的service,若判断正确则显示登录成功,跳转到主界面。其中usertype分别为0,1,2代表的是系统管理员,老师,学生登录的时候会查询对应的表,验证用户名和密码是否正确,然后根据用户名和登录密码查询出来的该条数据将其放到Session中,从而方便其他页面进行调用。登录界面核心代码:/***用户登录信息验证*@return*/publicStringlogManagement(Stringusername,Stringuserpw,intusertype)//登录界面验证信息{Stringresult="no";//定义一个result为0if(usertype==0)//在这里控制了usertype对应的不同的角色{Stringhsql="fromTAdminwhereusername=?anduserpw=?";//查询数据,根据用户名和密码去数据库中查询Sessionsession1=HibernateSessionFactory.getSession();Queryquery=session1.createQuery(hsql);//调用session中的方法执行SQL语句query.setString(0,username);query.setString(1,userpw);ListadminList=query.list();if(adminList.size()==0){result="no";//判断list的大小是否为0,返回结果}else{WebContextctx=WebContextFactory.get();//调用get()方法HttpSessionsession=ctx.getSession();//为了把登录信息放置在session中TAdminadmin=(TAdmin)adminList.get(0);//取到界面中选择的角色封装到实体类中session.setAttribute("usertype",0);/28 /管理员登录把userType设置为0,以此类推,学生,老师分别为1,2session.setAttribute("admin",admin);//设置属性admin,为了方便前台调用result="yes";//操作成功,yes}}5.2系统首页设计管理员主页面如图5.2所示,左方菜单栏显示了管理员可以操作的功能,例如修改个人密码,学生,老师管理,论文课题管理等。图5.2系统首页设计在struts.xml中对每个页面进行拦截操作,这样可以提高系统运行的安全性,为了防止界面再跳转的时候没有经过登录页面而直接跳转。前台核心代码:/common/succeed.jsp/common/add_success.jsp/common/del_success.jsp/common/update_success.jsp/common/msg.jsp28 5.3老师管理模块5.3.1老师信息增加老师信息增加界面如图5.3所示,管理员登录后在老师管理界面上增加老师信息,在form表单中调用Action中的teaAdd()方法,操作成功跳转到teaMana.action,显示出所有老师的信息。图5.3老师信息增加界面增加老师信息核心代码:/***增加老师信息*@return*/publicStringteaAdd(){TTeatea=newTTea();//NEW一个实例,把增加的信息放到里面tea.setBianhao(bianhao);tea.setName(name);tea.setSex(sex);tea.setAge(age);tea.setLoginname(loginname);tea.setLoginpw(loginpw);tea.setDel("no");Sessionsession=HibernateSessionFactory.getSession();//调用session,结束时必须要关闭Transactiontransaction=session.beginTransaction();//开启事务session.save(tea);//调用save方法把数据保存到数据库中28 transaction.commit();//允许提交HibernateSessionFactory.closeSession();//关闭sessionthis.setMessage("操作成功");//如果操作成功则界面提示操作成功this.setPath("teaMana.action");//跳转到界面teaManareturn"succeed";//返回成功界面}5.3.2老师信息管理老师信息管理界面如图5.4所示,在管理员登录后点击“老师学生管理”菜单中的老师管理,会调用后台中teaAction中的teaAll()方法来查询所有的论文指导老师。在界面中根据操作可以选择编辑和删除老师,还可以点击添加按钮增加老师信息。当管理员对老师进行编辑的时候,通过编辑按钮触发前台中的teaEdit()方法,跳转到编辑界面,通过从session中取得数据,进行修改。删除时则是调用前台中的teaDel()方法,跳转到删除界面,再把数据库中对应的属性Del从no改为Yes,即该条信息删除。增加时则是调用teaAdd()方法,把数据保存到数据库中,完成增加操作。图5.4老师信息管理页面老师信息管理后台核心代码:/***查询所有老师*@return*/publicStringteaAll()//查询所有指导老师的全部信息{Stringhsql="fromTTeawheredel="no"";//拼接的sql语句,控制条件del是no28 Sessionsession=HibernateSessionFactory.getSession();//调用Hibernate工厂中的sessionQueryquery=session.createQuery(hsql);//执行SQL语句ListteaList=query.list();//获得的数据放到teaList中HibernateSessionFactory.closeSession();//关闭SessionMaprequest=(Map)ServletActionContext.getContext().get("request");//在action中获取request对象的方法request.put("teaList",teaList);//设置参数为teaList,方便前台调用returnActionSupport.SUCCESS;//完成操作,返回success}前台核心代码:functionteaDel(id)//根据传过来的Id删除老师{if(confirm("您确定删除吗?")){window.location.href="<%=path%>/teaDel.action?id="+id;}//跳转界面到后台对应的action中设置del属性为yes}5.4学生信息管理5.4.1学生信息管理界面学生管理界面如图5.5所示,管理员登录后,可以查询学生信息,当点击“老师学生管理”菜单中学生管理时,触发事件,会调用后台stuAction中stuMana()方法查询在该系统中的所有的学生信息。界面中管理员可以对学生的信息进行修改,也可增加学生,删除学生。当点击删除按钮,触发事件,调用前台中的stuDel()方法,确认是否删除,当确认后,界面进行判断进入action类,调用对应的方法将数据库中的del属性的值改为yes,即为删除。图5.5学生管理界面28 学生管理界面核心代码:/***查询所有学生*@return*/publicStringstuAll(){Stringsql="fromTStuasstuwherestu.del="no"";//用del来控制删除功能Sessionsession=HibernateSessionFactory.getSession();//调用Hibernate工厂中的sessionQueryquery=session.createQuery(sql);//执行SQL语句ListstuList=query.list();//获得的数据放到stuList中HibernateSessionFactory.closeSession();//关闭SessionMaprequest=(Map)ServletActionContext.getContext().get("request");//在action中获得request对象request.put("stuList",stuList);//设置参数为stuList,方便前台调用returnActionSupport.SUCCESS;//操作成功,返回success}5.4.2学生信息删除学生信息删除如图5.6所示,管理员登录后先点击学生信息管理,点击要删除的学生信息,触发事件,调用stuAction中的stuDel()方法,首先会在前台传出要删除的学生的Id,判断是否删除,当确定删除时会跳转到后台执行相应的操作,在整个设计中删除功能是由数据库表中的一个del属性来控制的,在您确定删除时点击确定按钮,会触发对应的action中的方法将del设置为yes,此时界面中查询出来的是del是no的数据。28 图5.6学生信息删除5.5公告信息管理5.5.1公告信息增加公告信息增加界面如图5.7所示,在内容框里面输入内容后,然后提交,触发事件,跳转到action类中查询相应的方法,进行增加公告。如果不输入公告标题和内容,系统会给出警示,提示必须输入公告标题和内容。图5.7公告信息增加5.5.2公告信息查询公告信息查询如图5.8所示,公告信息管理功能。管理员会通过发布公告来通知一些重要的事情,例如通知学生何时提交论文,当点击公告管理界面的时候,会跳转到gonggaoAction中的gonggaoAll中执行操作,对数据库中的公告表进行查询,从而显示在界面上。该界面中可以执行增加,删除和编辑公告等操作。图5.8公告信息查询公告信息查询核心代码:28 /***查询所有公告*@return*/publicStringgonggaoAll()//显示所有的公告信息{Stringsql="fromTGonggao";//sql语句Sessionsession=HibernateSessionFactory.getSession();//Hibernate工厂,get方法来获取Queryquery=session.createQuery(sql);//执行sql方法ListgonggaoList=query.list();//将获取的数据放到gonggaoList中Maprequest=(Map)ServletActionContext.getContext().get("request");//在action中获得request对象request.put("gonggaoList",gonggaoList);//将gonggaoList设置参数,方便前台获取returnActionSupport.SUCCESS;//操作成功,返回success}5.6论文课题查询论文课题查询界面如图5.9所示。该界面主要是老师登录后对论文进行管理,老师可以增加课题,删除课题,同时还可以对学生自拟的题目进行管理。若觉得题目不符合要求,老师则可以把学生提交的题目驳回。课题选择是一是选择老师出的课题,二是老师同意学生自拟题目后学生按照自己的题目进行下面的编写。此功能用数据库表中的xuxu属性来定义,当xuxu是No的情况下是没有被学生选取过,学生即可选择。图5.9论文课题查询论文课题管理界面核心代码:/***查询论文课题*@return28 */publicStringtaobiaoMana2()//查询当前登录老师自己增加的论文课题{HttpServletRequestreq=ServletActionContext.getRequest();//获取当前页面请求的request对象Sessionsession=HibernateSessionFactory.getSession();//Hibernate工厂,get方法来获取Transactiontransaction=session.beginTransaction();//开启事务HttpSessionsession1=req.getSession();//获取sessionTTeaTeach=(TTea)session1.getAttribute("tea");//得到之前封装放在session中的老师。inttea_id=Teach.getId();Stringsql="fromTTaobiaowheretype=1andtea_id="+tea_id;Queryquery=session.createQuery(sql);//执行sql语句ListtaobiaoList=query.list();//把获取的数据放到List中HibernateSessionFactory.closeSession();//关闭sessionMaprequest=(Map)ServletActionContext.getContext().get("request");//在action中获取request对象的方法request.put("taobiaoList",taobiaoList);//设置参数,方便前台调用returnActionSupport.SUCCESS;//操作成功,返回success}5.7论文管理论文管理界面如图5.10所示,论文管理界面分为三种形式的论文,管理员登录后查到的论文是所有学生的论文,而老师登录后查询到的是该老师下所有学生提交的论文。学生登录后查询到的是自己提交的论文,并且学生提交论文后可以在自己的界面中查询到导师给自己论文评定的成绩。而这种形式通过数据库表中的约束条件来控制的,之前在用户登录得时候有把学生,老师,管理员封装放到session中,某个老师登录后会去session中找到对应的stu_id来查询自己管理的学生所提交的论文。28 图5.10论文管理界面论文管理核心代码:/***查询所有论文信息*@return*/publicStringlunwenAll()//当跳转到该方法时,通过查询数据库,在界面上显示所有的论文{Stringsql="fromTTaobiaowheretype=1";//用Type来控制两种类型的论文Sessionsession=HibernateSessionFactory.getSession();//Hibernate工厂,get方法来获取Queryquery=session.createQuery(sql);//执行sql语句Listlunwen=query.list();//把获取的数据放到List中HibernateSessionFactory.closeSession();//关闭sessionMaprequest=(Map)ServletActionContext.getContext().get("request");//在action中获取request对象的方法request.put("lunwen",lunwen);//这是参数,方便前台使用returnActionSupport.SUCCESS;}5.8安全退出系统安全退出界面,在每个用户登录后都会存在,即点击安全退出按钮,则调用前台链接直接回到系统的登录界面。28 5.9学生选取老师学生选取老师如图5.11所示。在登录界面中会增加一个按钮,进行学生选取老师,每个学生都会有自己对应的论文指导老师,而这个模块正好实现这个功能。图5.11学生选择老师界面5.10留言板界面留言板界面如图5.12所示。留言板界面主要是为了方便学生和老师之间的交流,学生只能给自己的指导老师留言。点击左菜单栏上面的按钮会进入对应的form表单,通过form表单中的action属性跳转到action中对应的方法,进行操作。图5.12留言板界面留言板前台核心代码:functionstuAll(tea_id)//点击提交按钮,触发方法,传递要留言的老师ID{varstrUrl="<%=path%>/stuAll.action?tea_id"+tea_id;//跳转到对应的后台action中的stuAll方法中varret=window.showModalDialog(strUrl,"","dialogWidth:700px;dialogHeight:400px;");//设置界面窗口展现的属性28 document.getElementById("stu_id").value=ret;//老师要给某个学生留言的学生ID}6系统测试6.1系统测试目的与意义系统测试是整个系统在开发到上线这个过程中比较重要的一个环节。其目的就是为了不断完善系统,使系统能够以一种近乎完美的姿态出现在人们眼中。系统测试的主要任务就是把我们觉得会出错的地方反复进行测试,同时要对整个系统进行一个比较全面的功能测试,从而提高软件系统的可执行性,达到检验系统是否满足需求的目的以及系统是否已经完善。测试的方法有很多种,每个人都会用不同的方法进行测试,但是其目的是一样的,都是为了制造各种可能会出现Bug的环境,从而让一个好的系统出现。本次设计从最开始的第一个功能实现就进行了模拟测试,在开发的过程中伴随着测试,当有问题的时候就进行修改。6.2测试分析在测试刚开始的时候,输入了很多数据进行了简单的测试,而这些数据保存后没有任何实用性,为了使系统能够变得更好。在开发结束后,采用集体测试,让每个人模拟自己的测试环境,这样可以更好的发现错误,完善系统。当发现问题的时候,要一个一个的进行解决,使系统能够更好的展示。6.2.1链接测试所有的页面链接都没有问题,链接成功可以跳转。测试成功。6.2.2数据库测试MySQL数据库连接使用正常,项目与数据库进行连接正常,项目中的增删改查功能执行Sql语句正常。测试成功。6.2.3功能测试登录模块:输入用户名和密码,判断用户是否存在,并且能给出相应的提示,登录名和密码正确时,登录正常。测试成功。28 系统管理员模块:增加删除功能正常,添加公告正常。测试成功。老师学生管理,留言板、公告板模块:老师,学生执行相应的功能正常,增删改留言板和公告板正常。测试成功。选题模块:课题数据加载正常,选题操作正常。测试成功。论文模块,论文格式模块:学生上传、下载论文,查询论文成绩正常。老师上传论文格式正常。测试成功6.3测试结果分析通过反复测试,本系统可以在运行在Windows7家庭版系统上,它所支持的数据库是MySQLServer5.5,系统的开发平台是Myeclipse8.5。系统可以实现用户建立与选题和论文管理等功能。7结束语本系统设计实现了毕业论文管理系统的基本功能,向各大高校展示了毕业论文管理系统的实用性。在设计过程中完成了用户登录,学生自拟课题、选题、上传论文以及指导老师网上评分,课题增加,学生老师相互留言和后台管理等功能,功能上没有缺少,基本已经实现。在技术上采用了JSP来实现整个系统的设计编码,数据库采用了MySQL。通过本次系统的设计与开发,明白了毕业论文管理这一系统的可执行性。各大高校都期望能够有一个好的毕业管理系统来代替人工操作。而在日常生活中,人们也希望有好的系统或者软件来分担一些工作量以及能够及时的更新相关信息,而该设计正好帮人们实现了整个想法。在毕业季来临的时候,指导老师和学生都会有很多任务,有时会由于交流不方便而导致信息传递不及时,该软件就是针对高校毕业生量身定做,能够更好的方便指导老师和学生之间的沟通与交流,也降低了成本,提升老师的工作积极性。在学生选题模块,学生可以通过该系统很好地了解自己选择的课题和具体的需求,以及要完成的任务,而避免一些不方便的原因导致的论文提交不及时等。参考文献[1]李飞,方睿,苟志坚.最新计算机网络基础与应用[M].成都:四川大学出版社,2003。[2]方睿.网络数据库原理及应用[M].成都:四川大学出版社,2005。[3]李立功.MySQL程序设计与数据库管理[M].北京:科学出版社.[4]JamesJaworkski.JavaScript从入门到精通[M].北京:电子工业出版社,1998.28 [1]Y.DanielLiang,李娜Java语言程序设计(基础篇)(原书第8版)[M].北京:机械工业出版社,2011.[2]李兴华.Java开发实战经典(名师讲坛)[M].北京:清华大学出版社,2009.[3]张兴科.JSP动态网站设计项目教程[M]. 北京: 中国人民大学出版社,2010. [4]张全新,李炜译.数据库驱动的Web站点[M ].北京:清华大学出版社,2002. [5]于大伟.基于WEB的数据库应用系统优化管理解决方法[D]. 吉林大学,2005. [6]FrankBuschman,KevlinHenney,DouglasC.Schmidt,Pattern-OrientedSoftwareArchitecture:APatternLanguageforDistributedComputing[M],JohnWileyandSonsPress,2007[7]HuangZ,ChenH,ZengD.Applyingassociativeretrievaltechniquestoalleviatethesparsityproblemincollaborativefiltering,IEEETransInformationSystems,2004[8]JuanLipsonVuong.Asemantics-basedroutingschemeforgridresourcediscovery[M].E-Science:FirstInternationalConferenceonE-ScienceandGridComputing,200528 致谢本文是在陈遥老师的指导下完成的,她渊博的知识使我在这次设计中受益匪浅,同时此次设计也是对我大学四年学习得一种检测,也是自身的锻炼,设计中出现了很多问题,确都在老师耐心的指导下解决了,十分感谢指导老师对我的精心栽培,同时我也要感谢我的同学们,对于基础知识不好的我,却能如此有耐性的给我细心讲解。28'