金笔博世期刊联盟 - 权威期刊杂志门户网

网站首页»论文投稿»计算机类论文»

基于Java的代写毕业论文管理系统设计与实现

  摘要:系统的设计主要是针对在校外实习的学生毕业论文过程管理,主要解决了指导老师和实习生在完成毕业设计及论文工作上面的繁琐,也从另一方面有效的对论文及其相关文档的管理,能进一步的提高工作的效率。系统地分析了实习生论文管理系统开发的背景、意义,概述了系统实现所需要的关键技术。本系统使用的编程语言是Java,使用了当前流行的SSM组合框架实现系统的搭建,采用了MVC设计模式,使系统各模块之间解耦,从而使系统具有高内聚,低耦合的特性,前端页面的设计主要用到了BJUI框架,减少了页面布局的困扰,也方便管理。后台使用MySQL数据库,通过将所有技术合理的融合,最终实现了这个系统。

  关键词:毕业论文管理;Java;MVC

  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)32-0103-03

  目前市面上的管理系统很多,但是针对在外实习的学生毕业论文管理方面的系统还是很少出现的,老师与在外实习生之间开展论文开题报告等环节都还是比较分散的去管理。本系统设计的主要目的是帮助导师和学生,通过一个网络管理平台更好地完成毕业设计及论文工作。该文从使用的框架和设计模式、系统设计、数据库设计及功能模块的实现等方面进行阐述。

  1系统框架

  1.1 持久层 MyBatis

  先来说说为什么会出现Mybatis。我们原来使用JDBC和数据库进行交互不也可以实现正常的业务处理么,为什么非要使用框架呢,答案很简单:框架使我们开发出来的系统更加高效,维护方便,稳定,Mybatis将我们平时在Dao方法里面写的sql语句全部抽出来放在一个单独的文件中进行管理,方便了我们后期的维护,所以持久层框架是很有必要的。最重要的是他能够解决代码冗余的问题,而且能够实现对数据结果集的封装。

  MyBatis框架根据 XML配置文件创建SqlSessionFactory,SqlSessionFactory再根据配置获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession。

  1.2 控制层 Struts2

  Struts2是一个基于JAVA EE的MVC模式实现经典框架,在Struts2框架中,视图通常由HTML、JSP和Struts2标签表示,JSP 页面结合Struts2 的标签库构成了视图组件的主体[1]。在该框架下,Struts2的主要作用是充当控制层来进行后台与前端页面的数据交互和转发请求的操作。Struts2框架实现的核心技术是通过Filter拦截所有请求,然后根据相应的URI去执行相应的任务请求的分发工作,在这过程中涉及多种拦截器和过滤器,最后才能到达真正请求对应的Action。

  1.3 框架Spring

  Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。在本系统中Spring担任所有类实例化的容器,通过它整合了Struts2,MyBatis框架,实现了MVC设计模式,有助于开发的维护和成本的降低。

  1.4 视图层 B-JUI

  B-JUI框架是基于现在流行的Bootstrap样式及其丰富的jQuery库来实现的开源框架,只要使用过HTML的用户就可以很便捷的去使用此款客户端框架,将框架放入你的项目中,然后就可以简单的配置HTML属性,进行开发,其是对Bootstrap样式及其丰富的jQuery进行封装的,我们只需要使用class属性去调用相应的样式即可。所以就算没有js开发经验的程序员也能够创建出漂亮的前端展示页面。

  2 MVC设计模式

  模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

  视图(View) - 界面设计人员进行图形界面设计。

  控制器(Controller)- 负责转发请求,对请求进行处理。

  MVC设计模式实现的业务处理和视图展示的分离,降低了每個模块之间的耦合度,达到了系统的设计目标和整体要求[2]。目前最流行的就是MVC设计模式,structs、spring、hibernate、JSF等则是实现MVC模式最流行的框架方案[3]。

  3 数据库设计

  MySQL是一个轻量级关系型数据库管理系统,他是跨平台的,所以这让它在同类型的数据库下具有很大的竞争优势,Mysql是在控制台上面进行操作的,然后也出现了一些Mysql的图形式的客户端的免费软件,供我们更好地去操作数据库,Mysql具有开源,简便易用的优点,我们可以针对自己的需求去修改源码,重新打包编译。本系统设计表中的Id均为主键,数据表及属性如下:

  1) 文件管理表(Filemanage)。属性分别为Id、filename、filename、Filepath、Uploadtime、Md5。

  2) 开题报告表(Ktbg)。属性分别为Id、Xtdy、Zywt、Lwsl、Lwtg、Ckwx、Zdlsyj、Stuid、Status、Name、StuNum。

  3) 老师拟题表(lsnt)。属性分别为Id、Lwtm、Zdls、Xtlx、Rwyq、Uid。

  4) 论文表(Lw)。属性分别为Id、Stuid、Fileid、Status、Name、StuNum。

  5) 我的资源表(Myzy)。属性分别为Id、Fileid、Stuid。

  6) 任务书表(Rws)。属性分别为Id、Zynr、Jbtq、Yjrw、Mb、Ckwx、Xyyj、Status、tuid、Stunum、Name。endprint

  7) 老师学生管理表(Teawithstu)。属性分别为Id、Stuid、Teaid。

  8) 用户表(Users)。属性分别为Id、Userid、Userpwd、Role、Username。

  9) 问题反馈表(Wtfk)。属性分别为Id、Stuid、Fklx、Fknr、Dsjd、Status、Title。

  10) 选题审批表(Xtspb)。属性分别为Id、Stuname、Stunum、Zdls、Lwtm、Tmly、Tmlx、Xtly、Zdlsyj、Lwxzyj、Status、Stuid。

  11) 学习资料表(Xxzl)。属性分别为Id、Type、Fileid。

  12) 制定计划(Zdjh)。属性分别为Id、Name、Stunum、Lwxtstime、Lwxtetime、xdrwststime、xdrwsetime、zxktbgstime、zxktbgetime、sclwstime、sclwetime、Status、Stuid。

  13) 资源链接表(Zylj)。Id、Type、Name、url。

  4 系统功能设计

  系统实现了类似于‘单点登录的功能,用户登录时系统采用验证码的机制防止机器注册等不安全因素,而且在系统中设置了会话超期的功能,如果在session中该字段消失了,就表示此次会话结束,一旦会话结束,就必须重新登录系统,系统是通过jsp的重定向实现的,会先请求服务器,此时是否有会话还没有结束,如果没有结束,就会跳转到正在执行的会话页面,如果没有则转向登录页面,如图1所示。

  5 详细设计

  5.1 学生模块

  根据需求分析学生应包括在线选题,在线学习,制定计划(严格按计划执行),上传(综合实训和毕业设计)各阶段文档和视频,与导师互动等功能,分析之后得到学生需要的模块截图如图3所示:

  学生制定完计划之后,还可以回头来查看,所以此页面还得具有会显得功能,即当学生第一次进入页面进行编辑的时候,页面时空,当学生第二次进入时,里面展现的值是上一次录入的,并且是不能修改,所以在整个系统中,是用status变量来控制它们,让一个页面可以根据不同的status呈现不同的值。

  选题模块,该模块主要是通过集合存储从数据库传过来的值,然后在页面通过遍历,获取到所有的选题,每个页面还带有分页功能,此功能主要是借助BJUI控件开发出来的。通过从页面中传到后台的limit和start参数,利用mysql中的limit进行限制,从而实现分页的功能。

  任务进度模块,数据库中每个表都会有一个status字段,每次打开审核结果页面时,都会去读取该字段,来判断学生提交的报告有没有通过。

  在资源上传模块,为了提供论文的上传和后面模块的学习资料的上传及其学生自己开发的系统的上传,此模块中主要是通过BJUI的一个上传组件(data-toggle="upload")来操作的,他传递给后台一个文件流,后台只要写一个文件变量和其对应,就可以接收了,然后进行流的操作,就可以实现文件上传的功能,当论文上传成功之后,还可以进行论文的下载查看,主要是用于导师审核。

  系统开发模块主要使用到的是文件的上传与下载功能,上传功能和上面模块类似,并且还提供了删除功能,删除功能使用的是ajax的异步请求,ajax的异步请求功能它只会刷新页面的部分数据,而不会请求整个页面,造成资源的浪费。

  在线学习模块又分为在线资源和我的社区两个子模块,在线资源模块主要是老师上传的一些学习资料和一些在线链接,它里面的内容又会按照不同的学科进行分类。在线学习模块的第二个功能是社区功能,学生可以在这里进行提问,然后由老师解答,它的首页面列出了该生自己提出的所有问题及其解决的状态。

  5.2 导师模块

  发布选题是老师给学生提供选题的一种方式,学生可以在参考选题节点下获取到老师发布的选题,而且老师发布的选题中的指导老师字段必须是老师自己,不可修改的。

  审核计划模块的功能主要是通过改变每个表中的status字段的值来决定他们通过不通过,而且在页面中会根据status的状态值,来显示通过或者不通过,当还没有审核时,他是一个通过或不通过按钮,审核成功时会有一个回调结果,用来提示用户的操作狀态。

  在线支持模块主要是老师对学生们提出的问题进行解答的功能模块,老师可以看到学生提出的所有问题,而且可以无限次的解答,任何导师都可以解答学生提出的问题。

  5.3 管理员模块

  该模块就是用来管理学生和导师及其他们之间的关联,同时管理员还要具备管理用户和管理进度的权限。而且在每个模块上都支持根据某个属性进行模糊查询,还支持刷新功能。其中,进度管理主要是修改学生制定的计划时间,因为系统中规定学生提交的计划书一旦通过,所有流程都会按照此计划走,所以如果某一阶段的任务超出了时间规定,我们就不能进入此节点去完成相应的任务,我们必须借助管理员的权限去修改计划,让学生的流程得以进行。

  6总结

  本系统主要运用了JAVA编程语言及SSM框架技术,搭建出了一个MVC设计模式的论文管理系统。系统具有使用简单、维护成本低、后台代码分层清晰等优点,另外登录入口采用密码和验证码的双重验证,在安全方面做了保证。系统中有些模块还存在代码过于繁琐,前端界面设计过于简单等不足之处,后续会进行代码的优化和前端界面设计的改进,进一步完善系统。

  参考文献:

  [1] 聂常红,唐远强.基于Struts2的Web应用开发研究[J].现代计算机,2014(22):52-57.

  [2] 李洋. SSM框架在Web应用开发中的设计与实现[J]. 计算机技术与发展,2016(12):190-194.

  [3] 陆荣幸,郁洲,阮永良,等.J2EE平台上MVC设计模式的研究与实现[J].计算机应用研究,2003(3):144-146.


一天审稿,一月见刊! 若发表不成功,全额退款!点击咨询在线老师