毕业论文管理系统的设计与实现

摘要

毕业论文工作是高等学校本科培养阶段的一个重要环节。目前论文管理工作存在着许多问题,例如人工管理极为不便;学生对论文所要撰写的内容并不十分了解,与指导老师的沟通非常不便;老师的指导监督也很难完全到位;手工评审的效率低等。而现有的一些毕业论文信息管理或答辩评审系统只是实现了部分网上交流和评审管理的功能,在答辩评审的自测和项目指标权重等方面都存在着一定的不足。因此,本文设计的毕业论文管理系统采用B/S模式开发。其中,Browser层使用JSP技术开发;Server层使用Struts2.x+Spring2.0+Hibernate3.0开发。该系统以支撑高校毕业生毕业论文管理为目标,以管理员、导师、毕业生三种角色为核心。实现了论文管理的相关功能:1、管理员对导师、毕业生和答辩小组的管理以及管理自己资料的权限;2、导师有创建任务书、指导毕业生完成论文、录入答辩结果以及管理自己资料的权限;3、毕业生有论文选题、论文录入以及管理自己资料的权限。

关键词:1、B/S体系结构 2、SSH框架 3、DAO模型 4、session会话

目录

一、前言 1
二、开发工具与开发架构 2
(一)开发工具 2
(二)开发框架(SSH框架) 2
三、毕业论文管理系统的功能与操作流程 5
(一)毕业论文管理系统的管理功能 5
(二)毕业论文管理系统的操作流程 10
四、数据库设计 11
(一)数据库总体介绍 11
(二)数据表职能详细介绍 12
五、毕业论文管理系统的框架搭建 14
(一)关于struts2.x的引入 14
(二)关于spring2.0的引入 15
(三)关于hibernate3.0的引入 15
六、毕业论文管理系统的具体实现 17
(一)领域模型层实现 17
(二)持久层的实现 18
(三)业务层的实现 19
(四)表示层的实现 20
1、表示层设计依据 20
2、表示层代码的设计规范 21
3、表示层的session会话 21
4、表示层设计实例(管理员登陆过程) 22
5、表示层的国际化应用 23
七、结束语 24
致谢 25
参考文献 26

一、前言

随着高校的规模不断扩大,如何合理地利用教学资源、有效地加强教学管理工作,已成为各大高校关注的焦点。目前,在教学管理方面,特别是在学生学籍管理、成绩管理等方面都普遍采用了网络化管理手段,而对于毕业设计这一重要的教学环节,则普遍采用传统的单机管理模式。现有的毕业设计管理系统主要用来完成毕业设计基本信息和成绩的输入输出等工作,而毕业设计的选题、毕业设计过程管理等工作还没有被纳入到管理系统中。目前,实现毕业论文(设计)的双向选择和毕业论文(设计)过程的动态跟踪与交流己成为毕业设计管理工作改革的重要内容。在国外,英国诺丁汉大学开发了专门的管理系统实现了毕业设计的网上双向选择在国内,南昌航空工业学院电子信息工程学院开发的毕业设计双向选题管理系统,主要侧重选题的管理,能够完成题目申报、题目审核以及学生选题的功能,辅助个人资料管理、发布公告通知功能;南开大学开发的毕业设计网站,为毕业设计的选题、师生交流和毕业设计成绩的管理提供了良好的环境,取得了良好的效果;北京科技大学幵发的基于项目管理的工业设计专业毕业设计管理系统,结合专业特点和项目管理特色,加强了毕业设计文档、图片、多媒体的存档以及优秀毕业设计的展示;电子科技大学管理学院本科毕业论文提交系统主要完成学生论文的上传提交以及论文审核鉴定结果反馈的功能,学生可以通过系统查询自己的论文的审核情况,并根据结果在指导教师的指导下进行修改,并完成论文提交。从以上分析中可以看出,研究设计一种工作流程明晰、功能完善、可操作性强、适用于高校的毕业论文管理系统是十分必要的。

二、开发工具与开发架构

(一)开发工具
数据库:MySQL
数据库开发工具:SQLyog
网站服务器:Tomcat6.5
J2EE开发工具:Myeclipse7.0
(二)开发框架(SSH框架)
毕业论文管理系统采用B/S体系结构开发,其中server层使用SSH(Struts2.x+Spring2.0+Hibernate3.0)框架开发,该系统在结构上主要分成领域模型层、业务层、持久层和表示层(如图2.1),系统开发的目录结构(如图2.2)。
Struts2.0介绍,Struts2.0是在webwork基础上构建起来的mvc框架,实际上是struts1.x与xwork相结合的产物;对于xwork 而言,前端的Webwork 组件为其提供的是一个Map 类型的数据结构;而Action面向的却是Model对象所提供的数据结构。xwork 通过Interceptor 拦截器实现了map模型与model模型的转换,从而我们可以根据需要,灵活的配置所需的Interceptor;从而为Action提供可扩展的预处理、后处理过程。
Spring2.0介绍,Spring2.0可以将简单的组件配置、组合成为复杂的应用。在Spring2.0中,应用对象被声明式的组合,具体实现是在一个XML文件里。Spring2.0也提供了很多基础功能(事务管理、持久化框架集成等等)。
在这里插入图片描述

图2.1 系统框架
在这里插入图片描述
图2.2 目录结构

Hibernate3.0介绍,Hibernate3.0是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate3.0的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration,本系统使用的接口为SessionFactory。

三、毕业论文管理系统的功能与操作流程

(一)毕业论文管理系统的管理功能
该系统实现了角色登录,以及相应角色对论文管理的功能(如图3.1)。
(1)管理员、导师、毕业生的登陆页面(如图3.2),通过选择角色下拉列表选择相应的角色进行登陆,在输入用户名、密码和验证码时,系统首先做相应的格式验证,然后访问数据库确认登陆,进入各自的管理页面。
(2)管理员的权限有:a.修改自身密码、资料;b.添加管理员;c.添加导师;d.添加毕业生;e.创建答辩小组;f.管理员管理角色(注销/激活,如图3.4)。管理员通过用户名、密码登陆管理员管理页面(如图3.3)。
在这里插入图片描述

图3.1 系统功能模块
在这里插入图片描述

图3.2 管理员登陆页面
在这里插入图片描述

图3.3 管理员主页
在这里插入图片描述

图3.4 管理员管理角色
(3)导师的权限有:a.修改自身密码、资料;b.新建任务书(如图3.6);c. 管理任务书(包括:编辑任务书、放开任务书、批准选题、指导论文、答辩录入等,如图3.7);d. 检索所有任务书(包括:阅读任务书、阅读论文,如图3.8);e.评阅论文。导师通过用户名、密码登陆导师管理页面(如图3.5)。
在这里插入图片描述

图3.5 导师主页

在这里插入图片描述

图3.6 新建任务书
在这里插入图片描述在这里插入图片描述

图3.7 管理任务书、导师管理论文
在这里插入图片描述在这里插入图片描述

图3.8 检索任务书、任务书内容、论文内容

(4)毕业生的权限有:a.修改自身密码、资料;b.论文选题(如图3.9);c.检索所有任务书(包括:阅读任务书、阅读论文等);d.管理论文(包括:编辑论文、查看论文、提交论文等,如图3.10)。毕业生通过用户名、密码登陆毕业生权限管理页面。
在这里插入图片描述

图3.9 毕业生选题
在这里插入图片描述在这里插入图片描述

图3.10 毕业生管理论文、撰写论文
(二)毕业论文管理系统的操作流程
角色管理的操作流程(如图3.11)、论文管理的操作流程(如3.12)。

在这里插入图片描述

图3.12论文管理

四、数据库设计

(一)数据库总体介绍
毕业论文管理系统使用MySQL数据库,首先创建毕业论文管理系统的数据库thesismanagedatabase,在数据库thesismanagedatabase中创建了9张数据表用来存储该系统的相关数据,保障系统的合理运行。各数据表的关联关系(如图4.1)。
数据库thesismanagedatabase以及其内部数据表的创建使用提前写好的sql脚本直接生成,具体内容如代码:
DROP DATABASE IF EXISTS thesismanagedatabase;
CREATE DATABASE thesismanagedatabase;
USE thesismanagedatabase;
#drop table manager;
CREATE TABLE manager (
oid INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(20) DEFAULT NULL,
……
PRIMARY KEY (oid)
) ENGINE=INNODB DEFAULT CHARSET=gbk;
在这里插入图片描述

图4.1数据库设计思路

(二)数据表职能详细介绍
(1)管理员数据表,管理员登陆管理系统后负责为学生和导师注册,因此管理员数据表存储管理员身份信息、登陆信息的相关数据。
(2)毕业生、导师数据表,导师负责创建、开放任务书,毕业生可以选择导师开放的任务书(同时创建论文),如果任务书不合适可以退选(在导师提交同意之前);然后,毕业生登陆管理系统实时的编辑论文,导师在系统上实时的指导;因此在数据表中存毕业生和导师的身份信息、登陆信息等数据。
(3)任务书,由导师创建、开放,记录着导师的部分信息;任务书作为撰写论文的核心依据,记录着论文的题目、导师、研究方向、主要任务、论文目标等信息。
(4)论文数据表(如表4-1),论文是整个系统最核心的数据,由毕业生在选题时创建;存储的信息包括:a.毕业生、导师、任务书的部分信息,b.论文摘要、论文主要内容、导师意见、评阅教师意见等c.指导记录编号、答辩记录编号。
表格4-1 Thesis
字段名称 数据类型 字段说明
oid Int(11) 论文系统编号
Tsid Varchar (11) 任务书档案编号
……
readidea Varchar(512) 评阅教师意见
Readscore Int(2) 评阅教师建议分数
resultoid Int(11) 答辩记录编号
Endscore Int(2) 最终分数
Status Int(2) 论文状态
createtime Varchar(20) 论文创建时间
subtime Varchar(20) 论文提交时间

(5)论文指导记录数据表,论文指导的记录由导师创建,记录着导师对论文实时的指导内容,所以对于一篇论文可能有好几篇指导记录,因此需要单独建表存储数据。
(6)答辩记录,在答辩结束后由导师负责录入,记录了答辩的详细内容包括:a.论文编号、答辩小组编号,b.答辩小组意见、最后成绩,c.领导意见。
(7)答辩小组数据表,由管理员创建,记录的内容包括:小组编号、组长、那一届毕业生、隶属部门等信息。
(8)答辩小组成员数据表,由管理员创建,主要记录答辩小组的成员信息,这些成员必须是由管理员创建的导师。

五、毕业论文管理系统的框架搭建

关于struts2.x、spring2.0和hibernate3.0框架的集成顺序是:spring2.0框架的引入先于hibernate3.0框架,以便将hibernate3.0的相关配置在spring2.0的脚本文件中完成;至于struts2.x可以随时引入。其中sping2.0框架和hibernate3.0框架用Myeclipse直接引入,而struts2.x框架需要手工引入。
(一)关于struts2.x的引入
在实现struts2.x框架、spring2.0框架与hibernate3.0框架的三者集成时,对于struts2.x框架需要引入相应的jar架包,还必须对web.xml和struts.xml文件做相应的配置。
(1)引入jar架包
首先引入struts2.x的核心架包:xwork-2.0.4.jar、struts2-core-2.0.11.jar、ognl-2.6.11.jar、freemarker-2.3.8.jar和commons-logging-1.0.4.jar。由于该框架要与spring2.0框架整合,所以还要struts2-spring-plugin-2.0.8.jar。最后由于需要连接数据库MySQL,还要引入关于数据库的驱动架包mysql-connector-java-3.1.14-bin.jar。
(2)修改web.xml文件
为了使毕业论文管理系统支持struts2.x框架,需要在web.xml文件中配置struts2.x的相关内容,如代码:
……

struts2 org. apache.struts2.dispatcher.FilterDispatcher …… (3)创建struts.xml文件 struts.xml文件是整个系统的大脑,在该文件中配置了整个系统的所有事务的动作流程,操控着毕业论文管理系统的所有页面的动态流程。 (二)关于spring2.0的引入 在实现struts2.x框架、spring2.0框架和hibernate3.0框架集成时,对其中的spring2.0的框架除了引入必须的架包 ,还要对spring2.0框架的脚本文件进行配置。 (1)引入jar文件 引入spring2.0框架的核心架包:spring.jar (2)创建spring2.0框架的applicationContext.xml文件 通过Myeclipse开发环境直接将spring框架引入项目中,同时创建applicationContext.xml文件并将其放到webRoot根目录下WEB_INF文件中,这时的applicationContext.xml文件默认配置就可以。 (三)关于hibernate3.0的引入 在实现struts2.x框架、spring2.0框架和hibernate3.0框架集成时,对其中的hibernate3.0的框架除了引入必须的架包 ,还要将hibernate3.0框架在spring2.0框架的脚本文件applicationContext.xml中进行配置。 (1)引入架包 首先引入hibernate3.0框架的核心架包:hibernate3.jar、log4j-1.2.15.jar、cglib-nodep-2.1_3.jar、dom4j-1.6.1.jar、commons-collections-2.1.1.jar、c3p0-0.9.1.2.jar、jta.jar、antlr-2.7.6.jar。 (2)在spring2.0框架的applicationContext.xml文件中配置hibernate3.0 通过Myeclipse开发环境直接将hibernate3.0框架引入项目中,同时设置将hibernate3.0的hibernate.cfg.xml文件合并到spring2.0框架的applicationContext.xml文件,然后修改applicationContext.xml文件;然而,applicationContext.xml文件的链接数据库配置内容如代码:

六、毕业论文管理系统的具体实现

(一)领域模型层实现
领域模型是对领域内的概念类或客观现实世界中对象的可视化表示,所以也称为概念模型、领域对象模型和分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
由反向工程生成领域模型对象,Myeclipse的功能非常强大支持从数据库到领域模型对象的逆向生成功能。我们在Myeclipse Hibernate视图中创建数据库链接后,打开对应的数据库,右键数据表选择Hibernate Reverse选项弹出Hibernate框架的反向工程界面,在该界面中设置需要生成文件的类型以及他们的路径,然后点击Finish就生成了相应的文件。
对于数据库thesismanagedatabase中的9张数据表进行逆向工程后,就会自动生成各个数据表的对应领域模型对象和映射文件。这些模型的详细描述(如表6-1所示),各对象模型的映射文件(如表6-2所示)。
表格6-1 领域模型对象
名 称 说 明
AnswerGroup.java 答辩小组模型
GroupMember.java 答辩小组成员模型
Guidance.java 论文指导模型
Manager.java 管理员模型
Result.java 论文答辩结果模型
Student.java 毕业生模型
Thesis.java 论文内容模型
Tutor.java 指导教师模型
WorkList.java 任务书模型

表格6-2 领域模型对象映射
名 称 说 明
AnswerGroup.hbm.xml 答辩小组映射文件
GroupMember.hbm.xml 答辩小组成员映射文件
Guidance.hbm.xml 论文指导映射文件
Manager.hbm.xml 管理员映射文件
Result.hbm.xml 论文答辩结果映射文件
Student.hbm.xml 毕业生映射文件
Thesis.hbm.xml 论文内容映射文件
Tutor.hbm.xml 指导教师映射文件
WorkList.hbm.xml 任务书映射文件

论文的领域模型层的领域模型对象文件存放在src文件下com.hyd.domain包下,领域模型对象映射文件直接放在src文件下面。
以管理员为例,详细介绍领域模型对象定义和领域模型对象映射定义的详细内容,管理员领域模型对象(Manager.java)实现了java.io.Serializable接口,管理员领域模型对象与管理员数据表的映射(Manager.hbm.xml)的具体内容如代码:
……






……

(二)持久层的实现
持久层就是在系统逻辑层面上,专注于实现数据持久化的一个相对独立的领域;持久层是负责向一个或者多个数据存储器中存储数据的一组类和组件。这个层必须包含一个业务领域实体的模型。
毕业论文管理系统的持久层采用DAO模式设计,系统持久层的实现使用Hibernate3.0框架,所以在具体实现持久层中的各个类时都继承了HibernateDaoSupport类。由于继承了HibernateDaoSupport类,所以在实现操作数据库功能时可以采用灵活的HQL语音编写。
以论文模型对象(Thesis.java)为例,介绍毕业论文管理系统领域模型对象所对应的持久层的实现过程。对于Thesis模型对象,在持久层中主要用来操作该对象的增、删、该、查询等功能。对该层的DAO模式设计使用了接口技术,因此创建了两个类:ThesisDao.java(接口类)和ThesisDaoImpl.java(实体类)。
(1)操作Thesis模型对象的接口类ThesisDao.java文件,主要是用来定义操作Thesis模型对象的方法(事务)。
(2)ThesisDaoImpl.java实现了操作Thesis模型对象接口的所有方法(事务),并且继承了HibernateDaoSupport类,具体内容如代码:
……
public List findAll() {
List find = (List) getHibernateTemplate().find(“from Thesis”);
return find;}
……
(3)在applicationContext.xml文件中配置DAO
由于整个系统采用spring2.0框架进行事务管理,因此Thesis模型的事务模型ThesisDAO必须在spring2.0框架的applicationContext.xml脚本文件中实施依赖注入。实际上就是把ThesisDAO事务依附在Hibernate3.0的sessionFactory接口上,具体内容如代码:

(三)业务层的实现 业务逻辑层是系统框架中体现核心价值的部分,它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,业务层的具体实现采用spring2.0框架。 毕业论文管理系统管理系统的业务层有两部分组成:业务管理和提供服务。显而易见,该系统中使用spring2.0框架来解决各层之间的耦合问题(事务管理),因此需要使用业务服务的类都需要在applicationContext.xml文件中实现依赖注入。 以毕业生模型对象(Student.java)为例详细阐述业务层的实现原理;在业务层中对Student模型对象的处理,一方面实现与持久层的交互处理和事物管理,另一方面为表示层提供服务。由于该层的服务采用接口的方式来设计,所以创建了两个类:StudentService.java(接口)和StudentServiceImpl.java(实体类)。 (1)StudentService.java接口类主要用来为表示层提供相关的业务服务,毕业生登陆服务具体内容如代码: public Student findStudent(String name, String password); //毕业生登陆 (2)继承StudentService.java接口的实体类:StudentServiceImpl.java类,实现了接口类中定义的各个方法。 (3)在applicationContext.xml文件中配置相关的业务管理,毕业论文管理系统在业务层采用了Spring2.0框架管理事务,StudentService.java业务需要使用持久层的StudentDAO.java事务提供服务,所以需要在applicationContext.xml文件中对StudentServiceImpl.java业务实现依赖注入。具体内容如代码: (四)表示层的实现 表示层主要处理用户和软件的交互;表示层的主要职责就是为用户提供信息,以及把用户的指令翻译,传输给业务层和持久层。 毕业论文管理系统采用B/S模式开发,因此交互界面为基于html的界面;关于用户的所有请求指令都是由Struts2.0框架的Action类来处理的。由于毕业论文管理系统采用Spring2.0框架处理层与层之间的耦合问题(业务管理),所以所有的Action类都要在applicationContext.xml文件中依赖注入。 1、表示层设计依据 毕业论文管理系统的业务流程是以毕业生论文设计的流程为主线,按照毕业生选题、撰写、答辩的流程,给任务书、论文赋有不同的状态,任务书、论文走到每个阶段都有一个固定的状态,每种状态只有相应的角色具有操作论文的权限。任务书、论文的流程(如图6.1)。

在这里插入图片描述

图6.1任务书、论文的流程

2、表示层代码的设计规范
毕业论文管理系统的表示层代码主要存放在src文件下的各包中,包括struts2.0的Action类和脚本文件struts.xml。Action类具体存放位置为com.hyd.action.;struts.xml脚本直接存放在src文件下。
为了提高代码通用性,在表示层中把Struts2.0框架的Action类分为数据对象和数据处理两部分。由于数据处理类和页面功能相对应,数据对象类是与领域模型和业务服务模型相对应,因此数据处理类需要重复继承数据对象类(com.hyd.action.rootaction.
)。
3、表示层的session会话
(1)毕业论文管理系统与浏览器交互的几乎所有数据都是采用session会话进行传输。在model模型使用session.setAttribute(变量,值)方法,将数据放到session中;在JSP页面(map模型)使用JSP标记语言<s:property value=“#session.变量” />将session中的值取出。
(2)session会话在登录判断中的应用,对每一项功能的操作都要判断该角色是否登录。具体实现:将角色的基本信息放到session中,在登录拦截器SessionInterceptor.java中获取session信息,判断角色是否登录。
(3)session会话在对话框中的应用,毕业论文管理系统中的所有异常对话框都是采用Javascript实现。在model模型中将异常信息放到session中,在JSP页面中使用Javascript的alter()方法弹出对话框,然后使用JSP技术将session中的异常信息清空,具体内容如代码:

<%session.setAttribute(“message”,“”); %> //jsp中直接引入java代码
4、表示层设计实例(管理员登陆过程)
(1)数据对象类虽然继承了ActionSupport类但没有使用struts2.0的请求调用方法execute(),数据对象和领域模型对象一一对应,负责定义*.jsp到业务层的数据对象;管理员数据对象类ManagerRoot.java包括管理员基本属性的定义和管理员业务属性的定义。
(2)数据处理action继承了数据对象类,并且重写了struts2.0的请求调用方法execute(),该action是和页面功能一一对应,负责对相关数据的处理和封装。管理员数据处理action有Login.java(管理员登陆)、CreateManager.java(创建管理员)、CreateStudent.java(添加毕业生)、CreateTutor.java(添加导师)、ChangePwd.java(修改密码)、ChangeInfo.java(修改资料)等;具体内容如代码:
……
if (sf.equals(safecode)) { // 图形校验码验证
if (loginselect.equals(“managerlogin”)) { //角色验证
Manager manager = managerService.findManager(username, password);
if (manager == null) { //用户存在验证
addActionError(getText(“loginerror”));
return ERROR;
} else {
if(manager.getStatus()==0){ //用户注销状态验证
addActionError(getText(“roledelete”));
return ERROR;} //错误抛出
……
(3)struts2.0的action流程控制在struts.xml文件中的配置如代码:

/login.jsp login …… 在applicationContext.xml文件中把管理员需要的业务管理依赖注入如代码: //登陆业务的注入 (4)登陆页面(login.jsp)采用JSP动态网页技术实现。 关于JSP(Java Server Page)技术,它是在传统的网页HTML文件(*.htm、*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成了JSP文件(*.jsp),用JSP开发的web应用是跨平台的,也就是不受操作系统平台的限制。 5、表示层的国际化应用 国际化(Internationalization,il8n)是指程序在不修改代码内部的前提下,根据不同的语言及地区显示相应的界面。毕业论文管理系统使用国际化技术,在整个系统的JSP代码中没有汉字,全部使用getText()方法从文件globalMessages_zh_CN.properties中获取。如果想要显示其他语种的界面,只需配置该语种的globalMessages_zh_*.properties文件就可以实现,该功能为毕业论文管理系统实现多种语言展示奠定了基础。

七、结束语

论文分为三大模块介绍毕业论文管理系统:1、开发工具与架构;2、系统功能的展示与操作;3、开发过程与技术介绍。
毕业论文管理系统基于Struts2.x + Spring2.0 + Hibernate3.0框架构建而成,实现了标准的java EE 4层结构体系。其中,Struts2.0框架实现表示层页面的跳转,Hibernate3.0框架由数据库记录转变成POJO对象的持久层,Spring2.0框架主要实现该系统业务逻辑的服务。设计毕业论文管理系统时,重点考虑基本功能的实现和系统维护的优越性,因此该系统的结构体系明确、层次清晰,层与层之间采用接口链接,极易维护和升级。

致谢

在这两年中,在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的论文指导老师程老师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”的感触。
感谢我的父母,焉得援草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。
在论文即将完成之际,我的心情无法平静,从开始进课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意、同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在论文中被我引用或参考的论著的作者。

参考文献

[1]李瑞俊.学生毕业论文选题系统的研究与设计[D].内蒙古大学,2012
[2]孙文.基于WEB的毕业论文管理系统[D].中国海洋大学,2011
[3]杨照峰.基于WEB的高校毕业论文管理系统的设计与实现[D].西安电子科技大学,2010
[4]陈泽强.基于.NET的本科毕业设计管理系统的设计与实现[D].电子科技大学,2012
[5]巴桑罗布.基于ASP.NET的西藏学院毕业论文管理系统的设计与实现[D].电子科技大学,2013
[6]侯凌霄.高校毕业设计论文管理系统设计与实现[D].电子科技大学,2013
[7]江进.毕业论文网上管理系统的研究与实现[D].南京理工大学,2010
[8]黎华.基于Web的高校毕业论文管理系统的设计与实现[D].电子科技大学,2009
[9]戴斌.高职院校学生毕业论文管理系统的设计与实现[D].天津大学,2012
[10]李萌.基于LINQ技术的毕业论文管理系统的设计与实现[D].黑龙江大学,2010
[11]应颂翔.基于B/S架构的毕业论文管理信息系统设计[D].浙江工业大学,2012
[12]韩晓菊.毕业论文管理系统的设计与实现[J].科技信息,2012,33:554+567
[13]刘慧婷,岳可诚,刘椿.毕业论文管理系统的设计与实现[J].中国现代教育装备,2013,01:4-6+9
[14]温小勇.基于工作流和角色协同的毕业论文管理系统的设计与实现[J].实验室研究与探索,2012,04:314-317+338
[15黄兰.基于B/S结构的毕业论文管理系统[D].电子科技大学,2011

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/194869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

总结1073

学习记录&#xff1a;今日共计学习12h 数学:纯计算1.5h,用克拉默法则解方程&#xff0c;华里士公式大全&#xff0c;三个公式的推导&#xff0c;推导出来后&#xff0c;一道模拟卷的大题就能直接秒了&#xff0c;又捡回了12分。 英语&#xff1a;作文一篇22年阅读长难句回顾1…

C#,数值计算——插值和外推,二维三次样条插值(Spline2D_interp)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 二维三次样条插值 /// Object for two-dimensional cubic spline interpolation on a matrix.Construct /// with a vector of x1 values, a vector of x2 values, and a ma…

矩阵元素求和:按行、按列、所有元素np.einsum()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 矩阵元素求和&#xff1a; 按行、按列、所有元素 np.einsum() [太阳]选择题 下列说法正确的是&#xff1a; import numpy as np A np.array([[1, 2],[3, 4]]) print("【显示】A") p…

会话 cookie 及隐私的那些事

什么是会话 Cookie? 会话 Cookie 的概念非常简单。 会话 Cookie,也称为临时 Cookie 或内存 Cookie,是网站在浏览会话期间存储在用户计算机或设备上的小数据片段。 它是由网站生成并由您的浏览器存储和使用的多种 Cookie 之一。 常规 Cookie 或“持久”Cookie 是通常在您的…

Pandas实战:电商平台用户分析

数据分析 1.行为概况 首先&#xff0c;我们要对用户的行为类型有一定的理解&#xff0c;了解每个行为所代表的含义。 浏览&#xff1a;作为用户与商品接触的第一个行为&#xff0c;它的数量级与其他行为类型相比而言是非常庞大的&#xff0c;因为&#xff1a; 用户购买之前需…

Spring-Boot---项目创建和使用

文章目录 什么是Spring-Boot&#xff1f;Spring-Boot项目的创建使用Idea创建使用网页创建 项目目录介绍项目启动 什么是Spring-Boot&#xff1f; Spring的诞生是为了简化Java程序开发的&#xff1b;而Spring-Boot的诞生是为了简化Spring程序开发的。 Spring-Boot具有很多优点…

【risc-v】易灵思efinix FPGA sapphire_soc IP配置参数分享

系列文章目录 分享一些fpga内使用riscv软核的经验&#xff0c;共大家参考。后续内容比较多&#xff0c;会做成一个系列。 本系列会覆盖以下FPGA厂商 易灵思 efinix 赛灵思 xilinx 阿尔特拉 Altera 本文内容隶属于【易灵思efinix】系列。 前言 在efinix fpga中使用riscv是一…

算法基础--双指针

前面已经写了两篇关于算法方面的文章&#xff0c;这几天想了下&#xff0c;决定把这个算法整理成一个系列&#xff0c;除了是帮助自己巩固算法知识外&#xff0c;还能够把自己总结的每种算法的套路保存下来并分享给大家&#xff0c;这样以后即使是哪天想要重拾起来&#xff0c;…

实验六 单脉冲触发中断实验(汇编与微机原理)

实验目的&#xff1a; 掌握可编程中断控制器8259一般的使用方法。 掌握8259初始化的编程方法及中断服务程序的编写方法&#xff0c;中断程序的调试方法。 实验内容&#xff1a; 用单脉冲按钮的正脉冲输出作为中断控制器8259的中断源产生中断请求&#xff0c;在中断服务程序…

prometheus基础,结合node_exporter监控节点

文章目录 一、Prometheus是什么二、exporters是什么三、node_exporter四、安装 Prometheus 和 node_exporter下载运行 prometheus运行 node_exporter 五、配置 Prometheus 收集监控数据总结 一、Prometheus是什么 Prometheus 是一个开源的监控和警报工具&#xff0c;它记录任何…

Centos7安装docker、java、python环境

文章目录 前言一、docker的安装二、docker-compose的安装三、安装python3和配置pip3配置python软链接&#xff08;关键&#xff09; 四、Centos 7.6操作系统安装JAVA环境 前言 每次vps安装docker都要看网上的文章&#xff0c;而且都非常坑&#xff0c;方法千奇百怪&#xff0c…

go elasticsearch 测试实例

// 查询列表数据 func QueryOperateList(ctx context.Context, esClient *elastic.Client, index string, pageNum, pageSize int, start, end int64, execSql string, list []interface{}, operateAccount string, operateAddr string, maxRows, minRows int, dbAddr, namespa…

【USRP】5G / 6G 原型系统 5g / 6G prototype system

面向5G/6G科研应用 USRP专门用于5G/6G产品的原型开发与验证。该系统可以在实验室搭建一个真实的5G 网络&#xff0c;基于开源的代码&#xff0c;专为科研用户设计。 软件无线电架构&#xff0c;构建真实5G移动通信系统 X410 采用了目前流行的异构式系统&#xff0c;融合了FP…

【毕业设计】基于雷达与深度学习的摔倒检测——微多普勒效应

运动物体的微多普勒效应为人体动作识别提供了可能&#xff0c;基于雷达的居家检测具有良好的隐私保护性&#xff0c;且不易受环境因素影响&#xff08;如光照、温度等&#xff09;&#xff0c;近年来已受到国内外学者的广泛关注。由于雷达信号的非平稳特性&#xff0c;通过短时…

Oracle-CDB容器数据库修改service_names踩坑

前言: 最近在对一套Oracle容器数据库进行迁移测试时&#xff0c;为了保持新环境与旧环境的服务名一致&#xff0c;需要在新环境添加旧环境的服务名&#xff0c;在CDB的根容器通过service_name参数添加旧环境的服务名之后&#xff0c;发现数据库PDB的服务名全部被注销&#xff0…

自动驾驶学习笔记(十四)——感知算法

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 感知算法 开发过程 测试和评价 前言…

鸿蒙4.0开发笔记之ArkTS装饰器语法基础@Prop@Link@State状态装饰器(十二)

文章目录 一、哪些是状态装饰器二、StatePropLink状态传递的核心规则三、状态装饰器练习 一、哪些是状态装饰器 1、State&#xff1a;被装饰拥有其所属组件的状态&#xff0c;可以作为其子组件单向和双向同步的数据源。当其数值改变时&#xff0c;会引起相关组件的渲染刷新。 …

思维模型 赫洛克效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。及时反馈&#xff0c;激发动力。 1 赫洛克效应的应用 1.1 赫洛克效应在管理中的应用 美国惠普公司是一家全球知名的科技公司&#xff0c;该公司非常注重员工的激励和认可。在惠普公司&…

网络和Linux网络_9(应用层和传输层_笔试选择题)

目录 一. 常见应用协议等等 1. 以下不是合法HTTP请求方法的是( ) 2. 文件传输使用的协议是&#xff08;&#xff09; 3. HTTP1.1的请求方法不包括&#xff1f;() 4. http状态码中&#xff0c;( )表示访问成功&#xff0c;( )表示坏请求&#xff0c;( )表示服务不可用。() …

mysql的几种索引

mysql可以在表的一列、或者多列上创建索引&#xff0c;索引的类型可以选择&#xff0c;如下&#xff1a; 普通索引&#xff08;KEY&#xff09; 普通索引可以提高查询效率。在表的一列、或者多列上创建索引。 每个表可以创建多个普通索引。 例如&#xff0c;下面示例&#…