APP下载

毕业论文指导双向选择系统的设计与实现

2020-11-30康耀龙张景安冯丽露

软件 2020年9期

康耀龙 张景安 冯丽露

摘  要: 针对大四学生在选择论文指导老师时存在的诸多问题,详细阐述了基于B/S的论文指导双向选择系统的设计和实现。该系统是一个Java Web项目,采用B/S架构,主要实现了学生和老师信息的录入和完善、学生与老师之间的互相选择等功能。该系统为学生和指导老师的互相选择提供了一种便利的方式,并且在互相了解前提下,学生和老师进行互相选择,有效的提高了论文指导双向选择的工作效率,提升了高校数字化办公的能力。

关键词: Java Web;论文指导;双向选择系统

中图分类号: TP 311.52    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.09.012

本文著录格式:康耀龙,张景安,冯丽露. 毕业论文指导双向选择系统的设计与实现[J]. 软件,2020,41(09):4648

【Abstract】: Aiming at the problems of senior students in choosing thesis tutors, this paper expounds the design and implementation of bi-directional thesis tutor selection system based on B/S in detail. The system is a Java Web project, based on the B/S structure, It mainly realizes the input and perfection of the information of students and teachers, and the mutual choice between students and tutors. The system provides a convenient way to choose each student and the tutors, and in the premise of mutual understanding, tutors and students to choose each other, effectively improve the working efficiency of the bi-directional selection, to enhance the capacity of the digital office.

【Key words】: Java Web project; Thesis guidance; Bi-directional selection system

0  引言

毕业论文的指导关系建立是教师和学生之间的一个双向选择模式,需要学生了解指导教师的研究方向和专业擅长,同时也需要指导教师了解学生的专业特长和感兴趣的方向。只有建立在双向了解、方向匹配的基础上,毕业论文的指导工作才能更好的服务于学生,毕业论文指导才更具有教育价值。另外,由于指导名额的限定,这种关系的确立还需要一定的选择机制,人为操作复杂且易错。该系统使学生与老师之间的互相选择具体化、形式化,便于管理,优化毕业生与指导老师之间的选择机制,大大提高了该项工作的工作效率。

1  主要开发技术

(1)J2EE技术架构

J2EE[1-3]是一套开发Java Web项目的技术架构,包含许多组件。J2EE简化Java Web项目的开发,规范了项目的开发形式、开发环境,规范了具体的编码规则,如实体类的实现、Servlet的实现等。

(2)Servlet

Servlet[4-5]是程序运行在服务器端,用于动态的处理HTTP协议。Servlet是一个Java类,并且一个Servlet匹配不同的请求,进而处理不同的业务逻辑。浏览器发送HTTP请求后,Web服务器将请求匹配相应的Servlet,从而进行业务逻辑处理并返回相应的数据。

2  系统的需求分析

为能更好的了解论文指导双向选择系统的需求分析,调查了大量毕业生和教师,对论文指导双向选择系统所要实现的功能做了一个详细的分析。

(1)系统总体的需求分析

论文指导双向选择系统是基于B/S模式的应用系统,用户不需要安装任何额外的程序,仅使用浏览器即可完成所有操作,实现用户所需的功能。設计开发的论文指导双向选择系统以互联网为基础,为学生和导师的互相选择提供一种便捷的方式。

(2)用户需求分析

该系统中有导师、管理员和学生三种用户。系统管理员负责学生和老师账户信息的增加、删除和查看,同时也设置学生和老师登录时间的限制。学生用户主要负责自己相关信息的完善和查看,查看相关系别老师的信息,并进行申请。老师用户主要负责自己相关信息的完善和查看,查看申请自己学生的信息并进行选择学生以及导出申请通过的学生的相关信息。

3  毕业论文指导双向选择系统设计

3.1  数据库建立

数据库中表的设计就是为了存储一条用户的基本信息或者用户操作的一条记录,将数据持久化,为之后的操作保存记录。本数据库设计了5个数据表[6-8]。

(1)tutor表用于保存每个导师的相关信息。id唯一标识一条导师工号,还包含导师姓名、导师登录密码、导师年龄、导师性别、导师所在系别、导师研究方向、导师对所选学生的要求、导师所授课程、导师入职时间。

(2)student表用于保存每个学生的信息。id唯一标识一条学生学号,还包含学生姓名、学生登录密码、学生年龄、学生性别、学生所在系别、学生所学专业的方向模块、学生所在班级、学生的课题方向、学生所选导师的id。

(3)accept表用于记录学生和导师之间相互选择的操作信息。id唯一标识一条操作记录。

(4)login_time_limit表用于记录学生和导师各自的可以登录的时间。stu_start_time和stu_end_time为学生登录时间段的起止期,tutor_start_time和tutor_end_time为导师登录时间段的起止期。

(5)admin表用于记录管理员的基本信息。记录管理员姓名、管理员登录密码,属性的访问权限都是私有的。

3.2  系统功能设计

(1)登录模块设计

登录模块是为了区分用户角色以及用户数据的安全性,从登录页面輸入账号和密码并且选择用户角色之后,如果验证通过可以登录到学生、导师和管理员三个角色的系统界面。

(2)信息管理模块

信息管理模块按用户不同可分为三方面,学生首先完善自己的信息,其次是查看导师的信息;导师首先完善自己的信息,其次是查看学生的信息;管理员完成增加学生和导师的账号信息、删除学生和导师无效的账号信息。

(3)选择模块

该模块是学生和导师之间的互相选择。学生根据导师信息选择符合条件的导师,导师查看学生信息,从而确定同不同意。

(4)登录时间限制模块

该模块是用来限制学生和导师的登录时间的。通过对学生和导师分别加一个时间限制,从而限制学生和导师的登录时间。

4  毕业论文指导双向选择系统实现

经过需求分析和系统设计阶段,得出系统整体功能的具体实现[9],分为登录模块、信息管理模块、选择模块和登录时间限制模块。系统功能的实现就是根据每个模块功能的业务逻辑,进行相应代码的编写,从而实现具体的系统功能。

4.1  用户登录的实现

导师、学生、管理员登录通过点击登录按钮,将静态页面上的用户名和密码通过Ajax技术传到服务器上。表示层的DispatcherServlet将不同的请求匹配不同的控制层,控制层接受相应的参数并且调用业务层的相应方法,业务层调用持久层的方法,并将参数传给持久层,持久层以此为条件进行查询,将查询出来的数据返回给业务层,然后业务层在对得到的数据进行校验,若校验通过,则登录成功,若不通过,则提示相应的信息。登录页面如图1所示。

4.2  信息管理功能

管理员增加学生和导师的账户,就是提交JSP页面[10]中相应的表单控件,服务器接受参数,控制层将参数传给调用业务层,业务层将参数传给持久层,持久层将将数据插入到数据库中相应的表中。管理员删除账户就是删除已经毕业学生的信息,从而提高系统查询数据库时的效率。在管理员页面,对学生账户操作页面如图2所示。

核心代码如下:

@RequestMapping("/deleteStudent.do")

@ResponseBody

public JsonResult deleteStudent(String stu_no){

try {

Student stu = stuService.findByStu No (stu_no);

stuService.delete(stu);

return new JsonResult("");

} catch (Exception e) {

e.printStackTrace(); }

return null;

}

修改、完善登录用户的信息,在学生或者导师登录的时候,系统会把从数据库表中查出来的用户id和用户名存入到cookie或者session,当点击个人信息时,系统会获取到cookie或者session中的用户id值,通过这个阈值把用户的信息查询出来并显示到相应的表单控件中,并且可以修改这些值。

学生查看导师信息,在学生这个角色中,有一个页面用于显示所有导师的少量信息,是用HTML中的Table呈现的,每一个导师都有职工号,在查看导师详细信息的时候,获取导师工号从而查询导师的相关信息,并将它呈现在一个页面上。

4.3  双向选择功能

导师可以选择当年规定数量的学生,包括已经通过申请的和正在申请的。学生可以申请3名导师,但是可以同意申请的只有一名导师,当一名导师同意申请之后,其他导师就不可以再同意申请,并且学生申请的其它导师也会被删除。学生表中有一个字段导师id(tid)用于表示是否该学生已有导师。导师选择已经申请的学生时,点击同意或者不同意,已被选择的学生不能被其他教师选择。导师选择学生页面如图3所示。

核心代码如下:

@RequestMapping("/accept.do")

@ResponseBody

public JsonResult accept(String accept,String stu_no,HttpSession session){

Integer tutorId = (Integer) session.getAttribute("TutorId");

if(tutorId!=null){

List sids = acceptService.findApplyByTid(tutorId);

Student stu = stuService.findByStuNo (stu_no);

if(stu.getTid()!=null && stu.getTid()>0){

acceptService.deleteApply(stu.getId(), tutorId);

return new JsonResult(1,"","该学生已有导师,将在您的申请列表中删除"); }

if("t".equals(accept)){

stuService.updateStuTid(tutorId,stu_no);

acceptService.updateTF(tutorId,stu.getId());

return new JsonResult(0,"","操作成功,请在学生列表中查看相关信息");

}else if("f".equals(accept)){

acceptService.deleteApply(stu.getId(), tutorId);

return new JsonResult(1,"","操作成功,将在您的申请列表中删除"); }

} return null;

}

4.4  时间限制功能

通过给学生和导师分别设置一个时间段,从而限定学生和导师的登录时间。因为在学生与导师互相选择是有一个时间段的,如果过了这个时间段,在用户进行操作的话,会生成无效数据,从而影响该系统的正常运行,因此设计了一个登录时间的限制。登录时间限制页面如图4所示。

5  结语

毕业论文指导双向选择系统是一个Java Web项目,开发环境为开源免费的Eclipse软件,后台使用 Java语言,前端页面使用HTML和JavaScript等语言,数据库使用MySQL。该系统通过学生信息表和指导老师信息表公開,增强学生与指导老师的互相了解,从而确定是否选择对方。毕业生可以通过条件查找与自己想做的毕业设计符合的指导老师,让双向选择更理性化,让毕业论文指导工作更专业化。

参考文献

[1]戚欣. 基于J2EE架构的层次结构研究及应用[J]. 吉林大学学报(信息科学版), 2008, 26(3): 295-296.

[2]柯采. 基于J2EE和MVC模式的Web应用研究[J]. 软件, 2020(03): 165-167.

[3]田亚丽. 基于J2EE架构的企业信息化应用平台的研究与设计[J]. 软件, 2017(08): 197-199.

[4]张璞, 庄成三. 基于Servlet技术的Web应用及其实例分析[J]. 计算机工程科学, 2001, 23(2): 37-39.

[5]王琴, 杨宗凯, 吴砒. 基于工作流和JSP/Servletct技术的网上项目申报与管理系统设计[J]. 计算机应用研究, 2006, (12): 181-184.

[6]蒋海锋, 万畅. 基于数据库XML语法实现动态界面的数据库存储与检索[J]. 软件, 2019(02): 214-217.

[7]季菁苇. 计算机数据库技术在信息管理中的应用研究探讨[J]. 软件, 2018(06): 160-163.

[8]周玲艳. 网络数据库技术应用[M]. 北京: 机械工业出版社, 2008: 37-55.

[9]田文涛, 张钊, 张笑冰. 基于SSH的学生成绩信息管理系统的具体设计与实现[J]. 软件, 2018(02): 212-217.

[10]王志军, 孙月霞. 基于 Web 开发的几种服务器端脚本语言的分析与比较[J]. 计算机应用研究, 2006, 23(3): 32-35.