毕业设计管理系统的设计与实现毕业论文Word下载.docx
《毕业设计管理系统的设计与实现毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《毕业设计管理系统的设计与实现毕业论文Word下载.docx(57页珍藏版)》请在冰点文库上搜索。
1.概述
1.1背景分析
毕业设计管理问题是高校教师必须面对的工作,但理工学院各个院系一直使用Excel表格管理、分析毕业设计。
使用Excel软件分析统计毕业设计制作情况,该软件存在许多不足,如:
立题不灵活,选题必须集中,对于整个院系选题有诸多不便;
毕业设计评分也必须集中录入等;
统计毕业设计制作情况也不能自动完成。
毕业设计是实现高等学校人才培养目标的重要教学环节,也是培养大学生创新能力、实践能力和创业精神的重要实践环节,是学生提高专业素质和实践能力的综合训练,是对学生大学期间学习效果的全面检验。
通过这套毕业设计管理软件可以解决毕业设计过程管理工作中存在的工作效率低,交互性差等问题,对高校管理学生毕业设计意义重大。
因此为了克服上述缺陷,编写一个使实现教师立题、学生选题、教师对选题信息进行管理的系统,再根据各个评分给出综合测评,达到管理自动化、精确化、智能化是非常必要的,因此可以把毕业设计管理系统作为毕业设计的课题,正好可以利用所学知识开发一个毕业设计管理系统来实现毕业设计的管理。
1.2毕业设计系统的现状
本课题开发的目的在于解决以往毕业设计管理过程中存在的问题,解决效率低、容易出错等问题,从而对毕业设计信息进行更好的管理,对毕业设计的数据进行统计分析。
提高各个管理效率,减少教师工作量。
其次,通过本课题可以使自己更进一步的了解软件开发流程,同时对J2EE平台与MSSQLSERVER有进一步的了解,使用更加熟练。
2需求分析
2.1功能需求
高等院校的毕业设计涉及到了教师立题、学生选题、课题管理功能,这些功能则需要教研室、办学层次、课题类型、课题来源、教师、学位、专业、专业方向、教师、学生和课题等信息多种信息的支持。
从管理的角度可以将毕业设计管理系统分为八个部分:
课题信息管理、职称学位管理、专业信息管理、用户信息管理、立题信息管理、选题信息管理、其他信息管理和统计信息管理。
课题信息管理、职称学位管理、专业信息管理、用户信息管理、立题信息管理、选题信息管理和其他信息管理包括这些信息的添加、删除、修改及查询操作;
统计信息包括学生人数信息、学生选题数目、题目来源、题目类型、毕业论文(设计)的篇数统计等信息的操作。
核心功能主要为教师立题、学生选题、课题管理。
2.2开发与运行环境
毕业设计管理系统的开发与运行环境如下:
开发环境:
Window7+JDK6.0
开发工具:
MyEclipse6.5
数据库管理系统:
MSSQLServer2005
服务器:
tomcat6.0
运行环境:
Window98/ME/2000/XP/7以及Linux
2.3系统实现过程
首先根据系统功能分析设计出数据库,包括各个数据表和数据表关系图的详细结构。
实现功能模块时,因为要实现教师立题、学生选题以及选题管理模块,故应先将职称、学位、专业信息、教研室、办学层次、课题类型、课题来源这些独立模块分别实现,其次实现独立模块分别实现,在实现学生、教师模块,最后实现立题、课题管理模块。
即在这里分别对系统各个功能模块分别对立设计和调试,最后将各个模块通过菜单栏集成到一起,最后进行系统整体设计的调试。
在访问数据库时,本系统采用hibernate实现数据库的操作,在基本实现类中实现数据库的各种访问操作,其他的类直接或间接继承基本类。
这种实现方式可以减少代码冗余,避免数据库的反复连接,从而提高系统的开发效率。
3总体设计
3.1系统模块设计
根据系统功能分析,得到如图3.1所示的系统功能模块结构图。
图3.1系统功能模块图
3.2数据事项分析
根据系统的功能,模块结构和管理流程,以及毕业设计管理系统的需求,总结出如下的数据项:
1)学位信息数据:
学位代码,学位名称。
2)教研室信息数据:
教研室代码,教研室名称。
3)专业信息数据:
专业代码,专业名称。
4)专业方向信息数据:
方向代码,方向名称。
5)办学层次信息数据:
办学层次代码,办学层次名称。
6)职称信息数据:
职称代码,职称名称。
7)课题来源信息数据:
课题来源代码,课题来源名称。
8)课题类型信息数据:
课题类型代码,课题类型名称。
9)教师信息数据:
工号,教师,性别,职称,所属教研室,联系,电子地址,是否为管理员,学位信息,登录密码。
10)学生信息数据:
学号,,性别,所在年级,专业信息,专业方向信息,层次类别,联系,电子,登录系统口令,是否选题标志,毕业年份,指导教师成绩,评阅成绩,答辩成绩1,答辩成绩2,答辩成绩3,答辩成绩4,答辩成绩5,答辩平均成绩,百分制总成绩,五级总成绩。
11)选题信息数据:
课题编号,立题教师,课题名称,所属专业信息,所属专业方向信息,课题来源信息,课题类型信息,课题完成地点,完成课题所需课时,课题容的描述,课题已具备的条件,完成人具备的条件,最终成功形式,初审意见,终审意见,立题时间,初审标志,初审时间,终审标识,终审时间,选该选题学生,该选题是否已选,老题还是新题,老题题号。
3.3数据库模型图
根据系统需求,分析出数据库模型图,如如3.2所示。
图3.2数据库模型图
4.详细设计
4.1数据库设计
4.1.1关系模式
根据数据事项分析和数据库模型图得出关系模式如下:
标识列,学位代码,学位名称。
标识列,教研室代码,教研室名称。
标识列,专业代码,专业名称。
标识列,方向代码,方向名称。
标识列,办学层次代码,办学层次名称。
标识列,职称代码,职称名称。
标识列,课题来源代码,课题来源名称。
标识列,课题类型代码,课题类型名称。
标识列,职称(外键),所属教研室(外键),学位信息(外键),工号,教师,性别,联系,电子地址,是否为管理员,登录密码。
标识列,专业信息(外键),专业方向信息(外键),层次类别(外键),学号,,性别,所在年级,联系,电子,登录系统口令,是否选题标志,毕业年份,指导教师成绩,评阅成绩,答辩成绩1,答辩成绩2,答辩成绩3,答辩成绩4,答辩成绩5,答辩平均成绩,百分制总成绩,五级总成绩。
标识列,立题教师(外键),所属专业信息(外键),所属专业方向信息(外键),课题来源信息(外键),课题类型信息(外键),选该选题学生(外键),课题编号,课题名称,课题完成地点,完成课题所需课时,课题容的描述,课题已具备的条件,完成人具备的条件,最终成功形式,初审意见,终审意见,立题时间,初审标志,初审时间,终审标识,终审时间,该选题是否已选,老题还是新题,老题题号。
4.1.2数据库表的结构定义
数据表名称与结构如下:
学位信息数据表:
表名(tb_degree),结构见表4.1。
字段名称
类型
长度
能否为空
备注
id
int
4
NotNull
标识列,主键
degreeNo
nvarchar
20
学位代码
degreeName
30
学位名称
表4.1tb_degree表结构
教研室信息数据表:
表名(tb_department),结构见表4.2。
departNo
教研室代码
departName
教研室名称
表4.2tb_department表结构
专业信息数据表:
表名(tb_major),结构见表4.3
表4.3tb_major表结构
majorNo
专业代码
majorName
专业名称
专业方向数据表:
表名(tb_interested),结构见表4.4
表4.4tb_interested表结构
interestedNo
专业方向代码
interestedName
专业方向名称
办学层次数据表:
表名(tb_level),结构见表4.5
levelNo
办学层次代码
levelName
办学层次名称
表4.5tb_level表结构
职称数据表:
表名(tb_title),结构见表4.6
titleNo
职称代码
titleName
职称名称
表4.6tb_title表结构
课题来源数据表:
表名(tb_subSource),结构见表4.7
表4.7tb_subSource表结构
sourceNo
课题来源代码
sourceName
课题来源名称
课题类型数据表:
表名(tb_subType),结构见表4.8
typeNo
课题类型代码
typeName
课题类型名称
表4.8tb_subType表结构
教师数据表:
表名(tb_teacher),结构见表4.9
teacherNo
教师工号
teacherName
教师
sex
性别
Title_id
Null
职称代码(外键)
department_id
所属教研室代码(外键)
degree_id
学位信息(外键)
telphone
联系
email
电子地址
admin
boolean
1
是否是管理员
password
登录密码
表4.9tb_teacher表结构
学生数据表:
表名(tb_student),结构见表4.10
studentNo
学号
stuName
stuClass
所在年级
major_id
专业信息(外键)
level_id
层次类别(外键)---如本科、专升本
interested_id
专业方向信息(外键)
登录系统口令
electiv_flag
是否选题标志
grade2
毕业年份
tutorResult
指导教师成绩
estimatorResult
评阅成绩
appraiser1
答辩成绩1
appraiser2
答辩成绩2
appraiser3
答辩成绩3
appraiser4
答辩成绩4
appraiser5
答辩成绩5
average
答辩平均成绩
finallyPersent
百分制总成绩
finallyFive
五级总成绩
表4.10tb_student表结构
课题数据表:
表名(tb_subject),结构见表4.11
subjectNo
课题编号
teacher_id
立题教师编号(外键)
subjectName
课题名称
所属专业代码(外键)
所属方向代码(外键)
subSource_id
课题来源(外键)
subType_id
课题类型(外键)
address
课题完成地点
times
完成所需课时数
content
50
课题容的描述
condition
课题已具备的条件
request
完成人具备的条件
result
最终成果形式
checkUpFirst
初审意见
checkUpLast
终审意见
fillInDate
datetime
8
立题时间
checkFlage1
初审标志
checkDate1
初审时间
checkFlage2
终审标志
checkDate2
终审时间
student_id
该选题学生学号(外键)
electivFlag
该选题是否已选
oldOrNew
老题还是新题
oldSubjectNo
老题题号
表4.11tb_subject表结构
4.2数据库中关系设计
数据库中的表与表之间的关系如表4.12所示
表4.12关系
主键表
主键表字段
外键表字段
外键表
tb_level(办学层次)
id(标识列)
tb_student(学生)
tb_major(专业)
tb_subject(课题)
tb_interested(专业方向)
tb_title(职称)
title_id
tb_teacher(教师)
tb_degree(学位)
tb_department(教研室)
tb_subSource(课题来源)
tb_subType(课题类型)
4.3操作流程
立题流程是教师添加一个课题,然后再由管理员进行审核,通过初审和终审则进入选题库。
立题流程如图4.1所示
图4.1立题流程图
5系统实现
5.1建立数据库
数据使用SQLServer2005,数据名为:
graduate。
5.2程序设计
5.2.1主界面
主界面分为上、左、右三部分,其中上边为显示系统系统及用户信息,左边为菜单栏,右边为主要展现页面,如图5.1所示。
图5.1主页面
5.2.2基本的实现类
通过hibernate提供的hibernateTemplat可以执行hql语句,在基类中分别实现要调用的方法。
其中主要的方法如下所示:
publicvoiddelete(Objectentity){this.getHibernateTemplate().delete(entity);
}
publicvoiddelete(Class<
?
>
clazz,Serializableid){if(get(clazz,id)!
=null)
this.getHibernateTemplate().delete(get(clazz,id));
publicintcount(finalStringhql,Object...params){
List<
Long>
list=getHibernateTemplate().find(hql,params);
if(list.size()>
0){returnlist.get(0).intValue();
return0;
publicList<
T>
findEntityListByHql(Stringhql,Object...params){
returnthis.getHibernateTemplate().find(hql,params);
find(Stringhql,Object...params){
returngetHibernateTemplate().find(hql,params);
}
publicvoidinsert(Objectentity){this.getHibernateTemplate().save(entity);
Autowired
privateHibernateTemplatehibernateTemplate;
publicHibernateTemplategetHibernateTemplate(){returnhibernateTemplate;
publicvoidsetHibernateTemplate(HibernateTemplatehibernateTemplate)
{this.hibernateTemplate=hibernateTemplate;
5.2.3基本的信息管理模块
基本信息包括:
专业信息、专业方向、职称、学位、课题类型、课题来源、教研室、办学层次等信息,因为起实现类似,在此只对教研室信息的管理做出说明。
添加窗口如图5.2所示,列表如图5.3所示,修改窗口如如5.4所示。
图5.2添加教研室窗口
图5.3教研室列表窗口
图5.4修改教研室窗口
主要实现代码如下:
/**
*添加一个教研室信息
*return教研室列表页面
*/
publicStringadd(){
getDepartmentService().saveOrUpdate(getDepartment());
getPage().setData(getDepartmentService().findByPage(getPage()));
return"
department-list"
;
*查看分页信息的教研室信息
*returnpage.data
publicStringlist(){
getPage().setData(getDepartmen