毕业设计管理系统设计案例.docx

上传人:b****8 文档编号:10623627 上传时间:2023-02-21 格式:DOCX 页数:57 大小:801.50KB
下载 相关 举报
毕业设计管理系统设计案例.docx_第1页
第1页 / 共57页
毕业设计管理系统设计案例.docx_第2页
第2页 / 共57页
毕业设计管理系统设计案例.docx_第3页
第3页 / 共57页
毕业设计管理系统设计案例.docx_第4页
第4页 / 共57页
毕业设计管理系统设计案例.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

毕业设计管理系统设计案例.docx

《毕业设计管理系统设计案例.docx》由会员分享,可在线阅读,更多相关《毕业设计管理系统设计案例.docx(57页珍藏版)》请在冰豆网上搜索。

毕业设计管理系统设计案例.docx

毕业设计管理系统设计案例

毕业设计管理系统设计案例

 

系统开发过程

1可行性分析

✧技术可行性

可运用JSP技术进行开发,并结合适当的操作平台(window2000)及服务器(tomcat),建立Web服务器站点,实现与Internet的网络连接,用Mysql作为数据库。

✧经济可行性

本系统逻辑相对简单,开发周期较短,故成本不高,应用于毕业设计管理可以提高工作效率,使每个学生的选择更加公平,完善管理。

✧操作可行性

本系统主要是为了让学生在网上查询并选择毕业设计,教师也可以在网上申报、修改、查看毕业设计题目并查看选择了自己毕业设计学生名单。

通过强大的查询功能,学生和教师都能容易的找到自己想要的信息,并做出自己的选择。

用户是学生和教师。

系统界面美观,操作简单,只要用户会汉语和懂得基本的计算机操作就可以自如的使用本系统。

2需求分析

明确该系统用户的具体需求,写出系统需求说明书,毕业设计管理系统功能需求如下:

2.1系统需求

毕业设计管理系统主要用于管理毕业生毕业设计的相关工作。

系统提供给了学生和老师通过Web浏览器在任何可以连到教务WEB服务系统的地方分别进行相应的操作。

系统需要满足来自三方面的需求,这三方面分别是教师,学生和教学办老师。

学生可以选择毕业设计题目,更改选择、查看自己的选择、修改个人密码等;教师可以申报毕业设计题目、更改题目、查看选择自己题目的学生、修改个人密码等;教学办老师可以审核毕业设计题目、审核学生的毕业设计选择、管理毕业生和教师资格、修改个人密码等。

首先,由学院教师根据自己的研究方向或者当前教学、社会服务的实际需要,拟定毕业设计题目。

毕业设计题目的拟定,要贯彻因材施教原则,使各类学生在知识水平和能力培养上有较大提高,鼓励学生有所创新。

题目的类型可分为设计型和研究型。

教师在学院主页教师模块上填报好自己的毕业设计题目后提交到教学科,提交后教师将没权修改毕业设计题目。

教学科管理员根据题目的具体要求对其进行审核,需要修改的题目通过网上控制反馈给教师,教师则能够修改题目内容。

修改后又提交到教学科审核。

满足要求的毕业设计题目将通过审核,通过审核后的题目显示给学生作为毕业设计的选择题目,毕业生可查询到题目的详细信息,选择符合自己兴趣的课题,并与指导教师联系。

毕业生在学生模块按照规定的题目个数选择好毕业设计题目后提交到教学科,在教学科管理员还未对此进行审核之前,学生有权修改所选择的毕业设计题目,教学科管理员针求指导教师的意见对学生的选择情况进行审核后,学生的毕业设计题目将不允许发生变动。

最终的结果将显示在教师和学生信息模块中。

由于数据量特别多,在设计时应充分考虑到了这一点,在操作的时候能够更简单,更人性化。

所以在设计中需要实现满足多种条件的查询功能,用户和管理员能够在大量的数据中利用自己所知的一部分信息,能够快速准确的查找到所需要的信息,然后对其进行操作。

此外,强大的查询功能还能为管理者了解老师的申报题目情况和学生的选择题目情况,提供了强大的平台支撑。

2.2功能需求 

该系统需要分为三个模块:

教师模块、学生模块和教学办模块。

教师模块:

✧毕业设计题目申报

可由老师在毕业设计立题申报页面中填写毕业题目申报表格,老师把申报毕业设计的相关信息填好后提交,并在操作时提供系统安全性提示。

✧毕业设计题目修改

当教学办管理员将题目设置为可修改,那么教师就可以在修改页面里看到相应的题目,点击修改就可以进行修改。

✧毕业设计题目查询

要求能够查看到所有的毕业设计题目信息,包括毕业设计题目名称、教师姓名、联系电话、计划人数、选择人数、时间、是否审核和可否修改这些内容。

有一个按钮能控制题目是否能够修改,可以根据需要,输入题目名称、负责教师姓名、或选择时间、题目人数是否已经选满、题目是否被审核来进行个别查询。

✧毕业设计选择情况查询

教师可以看到自己毕业设计题目的选择情况,包括选择了自己题目的学生名单、班级、联系方式等。

✧毕业设计最终结果查询

要求能够查看到所有被审核了的学生以及他们的最终毕业设计题目,包括毕业设计题目、教师姓名、学生姓名和学号。

✧个人密码修改

要求能够进行登陆用户自己密码的修改。

学生模块:

✧毕业设计题目选择

学生可以在该页面查看到所以已审核的毕业设计题目,然后选择自己志愿的题目,当选择的题目超过三个或者选择了重复题目时会提示错误。

✧毕业设计选择情况查看

在该页面学生可以看到自己已选了的题目。

✧毕业设计最终结果查询

要求能够查看到所有被审核了的学生以及他们的最终毕业设计题目,包括毕业设计题目、教师姓名、学生姓名和学号。

✧个人密码修改

要求能够进行登陆用户自己密码的修改。

教学办模块:

✧毕业设计题目审核

要求能够查看到所有没有被审核教师申报的毕业设计题目以及题目的详细信息,能按照题目名称和教师姓名进行个别查询,能够准确无误地实现对题目的审核和删除操作。

✧毕业设计题目查询

要求能够查看到所有的毕业设计题目信息,包括毕业设计题目名称、教师姓名、联系电话、计划人数、选择人数、时间、是否审核和可否修改这些内容。

有一个按钮能控制题目是否能够修改,可以根据需要,输入题目名称、负责教师姓名、或选择时间、题目人数是否已经选满、题目是否被审核来进行个别查询。

✧毕业设计学生查询

要求能够查看到所有符合选择毕业设计条件学生的信息,包括学号、学生姓名、班级名、联系电话和电子邮箱。

可以对学生的信息进行删除、添加和修改操作。

✧毕业设计学生审核

要求能够查看到所有选择了毕业设计题目学生的选题情况,能按照题目名称或教师姓名进行个别查询,能够准确无误地实现对学生所选题目的审核和删除操作。

✧毕业设计结果查询

要求能够查看到所有被审核了的学生以及他们的最终毕业设计题目,包括毕业设计题目、教师姓名、学生姓名和学号。

能按照学生姓名、学号或教师姓名进行个别查询。

能够进行删除操作。

✧个人密码修改

要求能够进行登陆用户自己密码的修改。

✧教师基本信息查询

要求能够查看到所有教师的基本信息,包括登陆号、姓名、联系电话和身份。

可以对教师的信息进行删除、添加和修改操作。

3系统设计方案的确定

3.1设计方案1

用JSP+JAVABEAN技术来实现,JSP作为视图,同时也有部分控制器的功能,JAVABEAN组件作为模型和控制器,当HTTP请求到达JSP时,它首先设置JAVABEAN组件的属性,然后调用JAVABEAN组件的方法,JAVABEAN组件通过连接数据库来执行业务逻辑,最后JAVABEAN组件把执行的结果返回给JSP页面,数据传递关系如图1所示。

View

 

设读

置取

JDBC

 

Model/Control

图1方案1数据传递关系图

方案1优点:

程序编码简单,客户端传送的参数将在另一个页面进行处理,复杂的逻辑处理都在JAVABEAN中进行。

方案1缺点:

维护性差,扩展性差,所有的页面控制都将在页面进行,导致页面中的JAVA代码过多,使用效率降低。

3.2设计方案2

用JSP+JAVABEAN+SERVLET技术,主要是通过客户端请求首先发送到SERVLET,SERVLET执行一些必要的操作处理,然后调用JAVAEBAN组件,通过JAVABEAN组件来连接数据库并执行逻辑处理,操作完成后用JAVABEAN来封装执行的结果,然后把结果保存到请求的对象中,最后把视图发送到显示的JSP页面,JSP页面读取SERVLET的执行结果进行显示。

数据传递关系如图2所示。

View

 

设置Control

Model读取

 

JDBC

 

图2方案2数据传递关系图

方案2优点:

各组件分工很明确,层次关系清楚,开发页面易于维护,在此模式中,JSP用于显示,它充当视图的角色,SERVLET用于传递参数等,它充当控制器的角色,JAVABEAN组件用于执行业务逻辑,相当于模型角色。

方案2缺点:

与方案1相比较,模式2程序编码相对来说比较复杂,它的逻辑处理以及控制都在JAVABEAN和SERVLET中完成。

鉴于以上两种设计方案的优缺点,本小组成员讨论出了自己的设计思想:

系统采用跨平台性能较好的Java编程语言,编码严格按照面向对象的思想来进行,所有的后台处理都放在类里实现,不采用Servlet来进行后台处理,这样做是因为对权限进行配置时对Servlet的配置比较麻烦。

后台处理主要分为公用部分和后台处理类。

前台的所有对数据库的操作一定要调用后台类或公用类来实现。

在后台类中为了达到功能单一、高内聚低偶合的目的,把类的操作和数据库的操作分开。

在前台中尽量不把后台类声明为JavaBean的形式,最好用new运算符生成一个对象,再用对象来调用类中的方法。

这样,便于对系统的维护和修改。

为了能够更好控制数据库的连接和关闭,在JSP页面中不能出现对数据库的连接语句,将对数据库的连接和关闭都放在后台的公用类中。

在JSP页面中能用JavaScript实现的功能尽量不使用Java语言来实现,虽然JSP实现了动态页面,但是在服务器端执行,而JavaScript不需要Java编译器,是直接运行在Web浏览器中,使得信息和用户之间不仅是一种显示和浏览的关系,而且实现了一种实时的、动态的、可交互式的表达。

如交给JSP来完成将给服务器增加不必要的负担。

所以有很多客户端的判断、操作(如用户输人内容是否符合所要求的字符个数)等都需要用JavaScript来实现。

采用安全域技术实现用户登陆,保证了系统的安全性。

在前台为了不让用户感觉页面单调,根据实际情况而定,尽量在一个页面中完成信息显示、信息添加或者修改。

在errorPage中设置容错页面,一旦Web服务器出现错误时,可以自动转向errorPage所指定的页面。

不管在进行JSP页面编码或者是后台编码都要严格按照JAVA和JSP编码规范来进行。

基于以上大量的分析,系统采用Browser/Server(B/S)浏览器/服务器结构为软件体系结构。

B/S是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。

B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript,JavaScript...)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

这种结构最大的优点是:

客户机统一采用浏览器,这不仅让用户使用方便,而且使得客户机端不存在维护的问题。

当然,软件开发和维护的工作不是自动消失了,而是转移到了Web服务器端。

在Web服务器端,需要编写响应页面。

例如用JSP语言查询数据库,将结果保存在Web页面中,再由浏览器显示出来。

工作原理图如图3所示。

请求以HTML方式交WWW服务器执行数据查询

页面返回脚本交JSP处理查询返回

图3系统工作原理图

4系统工作流程分析

没有任何一个软件系统是孤立存在的,一个系统总是存在于某些语境中,并且这些语境总是包含与该系统进行交互的参与者。

然而,工作流代表着工作的流程以及贯穿于业务之间的对象,工作流建模在工作流技术中占有重要的作用,因为工作流模型的精确定义与否影响着工作流引擎的性能,从而决定着关键业务过程的运行效率。

一个良好的工作流建模既能为普通用户易于掌握,也能为计算机系统方便、高效地解释和执行。

根据与用户的反复交流以及本系统的具体要求,在一年一度的毕业阶段,首先由教师进行毕业设计题目申报,在网上填写好毕业设计申报表后提交到教学办,教学办对申报的题目进行审核,审核通过的题目将显示在学生的毕业设计题目选择页面,学生便可以进行毕业设计题目选择,学生按照要求个数选择好毕业设计题目后提交到教学办,在教学办还未审核前,该学生有权修改自己选择的题目,教学办审核后,该学生将不能再修改自己的毕业设计题目,在毕业设计选择结果页面中将查询到自己的最终结果,同时,教师也能在教师模块中的毕业设计结果查询页面中查询到所有已审核的选择自己毕业设计学生的信息。

画出工作流如图4所示。

图4毕业设计管理系统工作流图

5数据库的设计

5.1毕业设计管理系统数据库表

根据用户需求分析,数据库中各个表的设计如下:

users——用户表

列名

数据类型

长度

可否为空

说明

Uname

varchar

15

NOTNULL

登陆号(主键)

Upass

varchar

15

NOTNULL

密码

Upass

varchar

15

NOTNULL

密码

roles——角色表

列名

数据类型

长度

可否为空

说明

Uname

varchar

15

NOTNULL

登陆号(主键)

Urole

varchar

15

NOTNULL

角色

Biyeshejititle——毕业设计题目表

列名

数据类型

长度

可否为空

说明

Titleno

int

10

NOTNULL

题目编号(主键)

Title

varchar

50

NOTNULL

名称

Time

varchar

20

NULL

设计时间

Original

varchar

100

NULL

题目来源

Type

varchar

10

NULL

课题类型

Requirement

varchar

100

NULL

仪器设备要求

Hour

int

11

NULL

机时

Environment

varchar

100

NULL

软件环境

Doc

varchar

100

NULL

技术资料要求

Address

varchar

100

NULL

学生毕业设计地点

Influence

varchar

200

NULL

课题意义

Critical

varchar

200

NULL

研究内容、特色及关键问题

Gole

varchar

200

NULL

题课题目标

Accumulated

varchar

200

NULL

基本条件与前期工作积累

Result

varchar

100

NULL

论证结果

Tname

varchar

50

NOTNULL

指导老师

Ppeople

int

4

NOTNULL

计划人数

Apeople

int

4

NOTNULL

实际人数

Ttel

varchar

30

NULL

老师联系方式

Tpost

varchar

20

NULL

职称

Stno

varchar

20

NOTNULL

审核人编号

Amend

varchar

10

NOTNULL

可否修改

Rmark

varchar

100

NULL

备注

resultquery——毕业设计结果

列名

数据类型

长度

可否为空

说明

Titleno

varchar

10

NOTNULL

题目编号(主键)

Sno

int

10

NOTNULL

学生学号

Tname

varchar

20

NOTNULL

老师名

Stno

varchar

20

NOTNULL

审核人编号

Noauditing——未审核毕业设计表

列名

数据类型

长度

可否为空

说明

No

int

10

NOTNULL

编号(主键)

Sno

varchar

10

NOTNULL

学生学号

Titleno

int

10

NOTNULL

毕业设计题目编号

Studentinfo——毕业设计学生基本信息表

列名

数据类型

长度

可否为空

说明

Sno

varchar

15

NOTNULL

学号(主键)

Classname

varchar

20

NOTNULL

班级名称

Sname

varchar

20

NOTNULL

姓名

Stel

varchar

30

NULL

联系电话

Semail

varchar

30

NULL

电子邮箱

Teacherinfo——教师基本信息表

列名

数据类型

长度

可否为空

说明

Tno

varchar

15

NOTNULL

教师编码(主键)

Tname

varchar

20

NOTNULL

姓名

Ttel

varchar

30

NULL

联系电话

Wronginfo——错误信息表

列名

数据类型

长度

可否为空

说明

id

int

10

NOTNULL

编号(主键)

date

varchar

100

NULL

日期

user

varchar

20

NULL

用户

info

longtext

200

NULL

详细信息

注:

roles和users两个表主要是针对用户名、密码和安全域所建的

注意:

确定数据库字段非常关键,在建立数据库表之前要做大量的分析,反复思考,尽量在确定好数据库后不再修改数据库字段,因为在开发后期再来修改数据库字段对整个系统改动比较大,付出的代价较高。

5.2数据库表间关系图

根据确定的数据库字段以及数据库表之间的关系画出数据库表间的关系图如图5所示。

 

图5数据库表间关系图

5.3数据库的建立过程(具体操作)

Navicat是一套适用于MySQL数据库系统地图形化数据库管理、报告以及监控的工具,具有高性能的、有商业智能的、强大的备份功能。

让你浏览你的数据库,它创建和删除的正偏差数据库,表,索引和用户。

你能够也修改你的数据和创建或者经营SQL拿着视觉的查询生成器询问。

因此,借助Navicat来建立数据库比较方便。

建立过程大致如下:

打开Navicat,点击Connection,连接到MySQL后就可以建立数据库了。

对准localhost点右键,点击NewDatabase输入数据库名,例如bs,然后保存,接下来按照2.5.1的需求建表,点击NewTable,输入所需字段名,长度,类型以及是否是主、外键等等,然后保存,输入表名,以同样的办法建立所有的数据库表。

5.4数据库的备份

对MySQL数据库的备份,这里介绍两种备份方法。

1.使用mysqldump命令备份数据库。

mysqldump命令位于mysql\bin\目录中,mysqldump工具很多方面类似相反作用的工具mysqlimport。

它们有一些同样的选项。

但mysqldump能够做更多的事情。

它可以把整个数据库装载到一个单独的文本文件中。

这个文件包含有所有重建您的数据库所需要的SQL命令。

这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。

这个工具将您的数据库中所有的设计倒转。

因为所有的东西都被包含到了一个文本文件中。

这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。

这个工具令人难以置信地简单而快速。

决不会有半点让人头疼地地方。

因此备份数据库bs,可以mysql\bin\mysqldumpbs>bs.sql即可对bs数据库进行备份。

2.直接在C:

\mysql\data目录下,将文件夹的名字为bs复制到一个目录下,即实现了对bs的备份。

6静态页面的制作

静态页面用Dreamweaver或FrontPage制作比较方便,但必须对HTML的主要标志比较熟悉。

在对HTML熟悉了后,可以对Dreamweaver或Frontpage最基本的工具进行学习,利用Dreamweaver或Frontpage进行静态页面的设计时将自动生成HTML代码。

7编程规范说明

软件开发中采用统一的编程规范的目的是改善程序的可读性,方便开发人员和维护人员理解代码。

同时还有助于避免某些错误的发生。

因此,在编码之前先写了Java编程规范和JSP编码规范,用于很好地指导同一项目小组的所有编程人员,达到统一规范的目的。

在静态页面制作好后,就可以编写程序了,编写程序严格按照Java编程规范和JSP编程规范,参考附录一和附录二。

8通用类的设计与实现

8.1数据库连接

数据库的操作我们定义了一个DBCon类,其中定义了getConnection()、getInstance()、disConnect()三个方法,分别用于获取数据库连接、返回唯一实例、释放数据库连接。

所有其他的行为类在对数据库进行操作时都必须调用DBCon类,首先通过getInstance()方法创建一个实例,然后用getConnection()进行连接数据库,操作完毕后用disConnect()断开数据库连接。

8.2数据库查询

目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。

这种方法有两个主要的缺点:

一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。

  其它常见的方法还有每次翻页都查询一次数据库,从ResultSet中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()定位到本页起始记录)。

这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。

  至于缓存结果集ResultSet的方法则完全是一种错误的做法。

因为ResultSet在Statement或Connection关闭时也会被关闭,如果要使ResultSet有效势必长时间占用数据库连接。

因此比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。

这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,如果使用连接池更可以略过最耗时的建立数据库连接过程。

而在数据库端有各种成熟的优化技术用于提高查询速度,比在应用服务器层做缓存有效多了。

本系统的分页功能正是采用这样的方式,对数据库的查询我们定义了JSPQuery类,其中定义了分页查询pageQuery()和没有分页查询的简单查询singleQuery()两种方法,JSPQuery类在Pub包中,在JSP页面中根据需要调用相应的查询方法时,只需要在页面引入该类(如:

<%@pageimport="pub.JSPQuery"%>),就可以通过生成一个对象来进行对数据库的查询。

将数据库的每张表建一个对应的类,处理对该表数据的添加、删除和更新的操作。

根据需要,对页面要进行的处理就写一个对应的行为类来进行处理,在行为类中,可以调用表类中对数据的处理方法,在JSP页面中也只需引入相应的包中的类通过对象来调用方法,例如,在密码修改页面中,就定义了UsersUptAction类和Users类中定义了一个upt()方法。

当用户修改密码时,在JSP页面直接调用UsersUptAction类,UsersUptAction类会创建users实例并调用其upt()方法就可以实现对密码的修改。

这样设计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1