目 录
1 绪论 ................................................................................3
1.1 系统开发背景及现状 ........................................................... 3
1.2 系统开发的目的 ............................................................... 3 1.3 本文研究内容 ................................................................. 3 2 系统的功能需求 ......................................................................4 2.1 系统功能 ..................................................................... 4
2.1.1 功能描述 ............................................................... 4 2.1.2 登陆功能 ............................................................... 4 2.1.3 注册功能 ............................................................... 5 2.1.4 出题、选题功能 ......................................................... 5 2.1.5 作业管理功能 ........................................................... 5
2.1.6 文档上传、下载 ......................................................... 5 2.1.7 消息处理功能 ........................................................... 5 2.1.8 公告信息功能 ........................................................... 5
2.2 技术方案 ..................................................................... 5
3 系统总体设计 ........................................................................5
3.1系统开发关键技术与开发环境 ................................................... 5
3.2框架设计 ..................................................................... 6 3.3 总体功能模块图 ............................................................... 7 3.4数据库设计 ................................................................... 7 3.5 本章小结 ..................................................................... 8 4 详细设计 ............................................................................8
4.1 系统整体界面设计 ............................................................. 8
4.2 系统框架设计 ................................................................. 9 4.3 系统结构和流程图 ............................................................ 10
4.3.1 学生模块的结构 ........................................................ 10
4.3.2 教师模块的结构 ........................................................ 10 4.3.3 管理员模块的结构 ...................................................... 11 4.4 系统模块详细设计 ............................................................ 11 4.4.1系统模块详细设计概要 .................................................. 11
4.4.2注册模块详细设计 ...................................................... 11 4.4.3查询模块详细设计 ...................................................... 12 4.4.4修改模块详细设计 ...................................................... 13 4.4.5删除模块详细设计 ...................................................... 13 4.5 数据库的设计和构建 .......................................................... 14 4.6 本章小结 .................................................................... 17 5 系统实现 ........................................................................... 17 5.1 用户登陆功能的实现 .......................................................... 17
5.2 文件上传功能代码 ............................................................ 18 5.3 数据库连接 .................................................................. 18 5.4 查询数据功能 ................................................................ 18 5.5 删除数据功能 ................................................................ 19
I
5.6 修改数据功能 ................................................................ 19 总结 ................................................................................. 20 致谢 ................................................................. 错误!未定义书签。 参考文献 ............................................................. 错误!未定义书签。 个人简介 ............................................................. 错误!未定义书签。
II
基于Web的毕业设计管理系统的设计
摘要:20世纪末,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。本系统迎合现代高校计算机技术的发展,为了应对以往毕业生毕业设计中遇到的工作效率低,交互性差和解决其在现代化办公中的应用需求等问题而采用软件工程的设计思想设计的。本文的基础就是利用java技术与Web数据库的结合,开发出的一个基于Web技术的B/S结构的毕业设计管理系统。同时通过对现有管理毕业设计分析,设计完成了web毕业设计管理系统,系统的主要功能有管理毕业设计题目,实现师生互发消息,教师修改作业,上传和下载文章和管理员发送校园信息公告等,系统就有界面友好,操作简易,方便移植,功能完善,同时可以很好的解决教师与学生沟通和交流不方便的问题,实现资源的共享,学生、教师通过网络就可以了解到学校的最新公告信息。
关键词:毕业设计管理系统,管理信息系统, JAVA,WEB数据库
1
THE DESIGN THE DESIGN OF MANAGING THE SYSTEM ACCORDING TO THE WEB
GRADUATION
Abstract:End of the 20th century, with the development of computer science, database technology application in the Internet more and more widely, for the vast number of network users with a more thoughtful and human services. The system responsive to the modern computer technology to the development of colleges and universities, in order to deal with the past, graduates of work encountered in the design of low efficiency, poor interaction and solve problems in the modern office applications in the use of such issues as the design of software engineering design. This article is based on java technology and the use of a combination of Web database, developed a Web-based B / S structure of the graduate design management system. At the same time, the management of the existing school design analysis, design school web design completed management system, system management functions graduation project topic, the achievement of students send messages with each other, teachers modify operations, uploading and downloading articles and campus administrators to send information notices, etc., the system will have user-friendly, simple, convenient transplant function, as well as good communication between teachers and students out of question and exchange, sharing of resources, students, teachers can learn through the network Notice to the latest information on schools.
Keywords:J2EE, Manage system, Servlet, JavaBean,JSP
2
1 绪论
1.1 系统开发背景及现状
随着计算机网络技术的发展,给信息时代的人们带来了很大的方便。如今在Internet上,你随处都可以看到很多的各类信息管理系统,如企业信息管理系统,电子商务系统,学校教务管理系统等各类信息管理系统的普及。而针对本科毕业设计的选题等相关事项,涉及到导师给出课题或学生自选课题,以及在各个阶段需要上交或是提交相关的文档资料等问题,目前主要还是由人为来处理操作,需要花费一定人力,这给整个工作带来了很多不便,而且容易出错。因此就需要一个对此流程进行管理的电子系统,使得此过程更加方便,更加透明,更加高效,以节省更多的人力和不必要的工作。 而目前的此类系统或多或少的存在以下的问题:
不清楚建立网站的目的或没有根据自己的目的详细策划网站的功能,只适应一时之需;结果页面的设计,包括系统内的链接和功能未能真正提供方便;[14]
缺少一个针对有效管理本科毕业设计(论文)工作的基于Web技术的B/S的管理系统,所以很多的管理系统远远达不到标准,没能很好地发挥管理系统应有的效果;
现实还没有一个适合我校关于毕业设计管理工作的管理系统,或是直接针对我校的毕业设计管理工作而编写的管理系统。[15]
通过对毕业设计管理工作的初步了解,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今毕业设计管理工作需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。
[11]
1.2 系统开发的目的
随着计算机信息技术、网络通讯等高新技术的发展,对高校毕业设计管理提出了更高的要求。这样不仅可以使教师从烦琐的事务中解脱出来,而且还能提供面向学生的快捷、灵活、方便的智能服务。[12]
本课题旨在使目前校园内毕业设计管理信息网络化,解决已往信息传递不方便、不快捷等问题,如假期学生因不在校而无法上交文档,学院或导师为安排工作而必须通知到各个学生等繁琐的操作,通过本系统可实现管理的网络化,方便教师和学生,提高工作效率和效果,节省人力资源等,提高高校的管理水平,有利于推动高校管理的“无纸化办公”进程。[16]
1.3 本文研究内容
《基于WEB的毕业设计管理系统的设计与实现》的任务是对学校毕业设计管理中的工作进行集中处理,使教师与教师之间,教师与学生之间能更快、更方便的交流,取代原来的电话(或Email)通知和联系,材料纸的发送等诸多不便,也使学院能更好、更快的发布最新的关于毕业设计(论文)的相关信息和通知,及监督学生毕业设计(论文)的完成情况和文档上交情况。该系统主要内容包括: 用户注册(包括学生和教师)、教师出题、学生选题、文档上交、相互留言等。通过这个系统,可以使广大师生从繁杂琐碎的事情中解脱出来,专心投入毕业设计(论文)的工作中去,提高整个毕业设计工作的工作效率。
本设计结合了java 应用和mysql数据库的操作。
Java应用采用MVC模式,它结合了Jsp,Servlet,JavaBean,其具有多个视图对应一个模型的能力;模型可以直接应用于接口的使用;一个应用的业务流程或者业务规则的改变只需改动MVC的模型层;控制层的概念很有效;有利于软件工程化管理。[8]
Mysql数据库的操作这部分内容分成三部分来实现:首先,编写对数据库操作的类,包括:连接数据库、执行sql语句、关闭数据库连接等。其次,编写一个用于对学生信息进行数据库操作的类,
3
包括:学生信息的增加、修改、删除和查询等。最后,编写一个用于对设计相关信息进行数据库操作的类,包括:毕业设计信息的增加、修改、删除、查询等等。[5]
通过web应用和数据库编程,从而基本上实现了web毕业设计管理的基本功能,由于本人技术上的不足,难免有些地方需要改进,这些存在的问题都将成为本人前进的动力,并在日后更加完善本设计。[25]
2 系统的功能需求
系统分析和设计是信息系统开发的一个重要环节。本章将主要说明一个基于WEB的B/S结构的毕业设计管理系统的功能需求、总体框架、以及系统开发原理等做系统的分析研究,并说明系统所拥有的特点。
2.1 系统功能
2.1.1 功能描述 该系统一般包括对选题的发布、更新、删除,学生毕业设计文档信息、导师文档信息的上传(在指导时间前才可提交)和相关信息的发布、查询、更新、输出等功能。如果人工直接操作的话,工作量将十分庞大,特别是,如果学生人数有几千或上万时,人工操作将变得相当繁杂。用计算机可使人们从繁重而又单调的工作中解脱出来,仅用一些简单的操作便可及时准确地获得需要的信息。毕业设计管理系统是一个为适应当前毕业设计管理工作的需求而设计开发的软件系统。
对系统功能的规定:该系统的角色是学生、教师(导师)和系统管理员。学生和教师是系统的用户,而系统管理员是系统管理者,虽然系统管理者也是一个用户,但并不影响本系统的功能。如下图1所示。
图1 系统结构图
2.1.2 登陆功能 登录表单通常是站点中受保护内容或不允许匿名用户进入的入口点,合法用户可以根据用户名和密码登录,而非法用户被拒之门外。因此安全性相对要求比较较高。
系统登录表单为E_index.jsp,该表单包含两个文本输入框、一个下拉菜单、一个“登录”按钮和一个“注册”按钮。用户输入用户名和密码并选择登录类型,单击“登录”按钮。系统验证数据有效性,并通过验证的数据查询数据库。如果找到匹配的数据,则显示登录成功的页面;否则提示用户输
4
入错误。单击“注册”按钮,则转到注册页面,进行新用户的注册。下拉菜单分为学生、教师和管理员来实现用户权限的管理。
2.1.3 注册功能 学生可以直接通过点击E_index.jsp的“注册”按钮,进行注册。教师则要在管理员端进行注册。
用户注册的基本流程如下: 用户填写注册表单后提交。
程序根据用户提交的数据查找数据库,查询该用户名是否被占用,如果存在,给出提示;如果不存在,检查数据的合法性。如果正确,则将用户信息存储到数据库,并给出用户注册成功的提示。 2.1.4 出题、选题功能 教师可以登录教师客户端,完成添加、删除毕业设计题目的管理。学生登录学生客户端,可以完成选择题目的操作。每位学生只能选择一个题目。如用户,已经选过题目,再次进行选题操作,将给出提示“您已经选过题目”。
2.1.5 作业管理功能 学生提交作业到指定文件目录,教师下载作业,进行批改后,上传到相应文件夹。每个作业的标题被做成一个超链接的形式,点击他们即可跳转页面进行作业的下载。
2.1.6 文档上传、下载 学生,教师可以上传文档,实现资源共享,管理员对文档进行分类和管理,管理员对文档具有删除的权限。该模块负责所有用户的文档上交工作,登陆后上传的文档(在指定时间前上传)将会被保留在相应的文件夹中。师生下载文档(这里的信息包括新闻公告、规章制度、设计安排、推荐范文、表格下载、优秀论文、课题的发布等):该模块负责分页列出网站所有的信息,包括标题、类型、来源部门字段及发布日期,每条文档的标题被做成一个超链接,点击它们就能跳转页面进行文档下载。
2.1.7 消息处理功能 主要负责各个用户之间相互发送消息使用。用户可输入对方的用户名发送消息给对方。当学生选题成功后,学生和教师可以通过发送消息,直接进行联系,方便师生间讨论毕业设计内容。同时提供消息查询:该模块提供了信息查询功能,输入待查找的内容时间可以快速地找到符合条件的信息,并输出查询结果。 2.1.8 公告信息功能
信息管理:该模块负责分页罗列管理员曾发布过且未删除的信息,并可以对该条信息进行删除此信息除系统管理员外其他用户不具有对该信息的处理权限(除教师有发布选题、删除的权限外)。 信息录入和修改:管理员录入一条信息所需要的内容,包含标题、关键字、类型、发布日期等,同时从登录块得到用户名,这些信息将被写入数据库中保存。该模块还负责编辑状态下的更新,这时,它将根据取得的Info_ID字段值对页面控件初始化。
2.2 技术方案
MyEclipse做前后台以及页面设计,后台数据库采用的是MYSQL数据库。
浏览器:Netscape7.0,Opera7,Internet Explorer 6.0 sp1以及其它支持xhtml 1.0标准的移动设备。
3 系统总体设计
3.1系统开发关键技术与开发环境
J2EE技术,系统基于J2EE的分布式多层应用体系架构进行构建,包括客户层、Web层、业务层和数据层。应用逻辑按照功能和既定的市场需求预测目标划分为不同的组件,包括分布在Web服务器上的实现界面显示和流程控制的Web组件和部署在应用服务器上的JavaBean及EJB组件等。[1]
MYSQL技术,使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。[18] 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 。[16]
5
为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
支持多线程,充分利用CPU资源 。
优化的SQL查询算法,有效地提高查询速度 。
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。[20]
提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 提供用于管理、检查、优化数据库操作的管理工具 。[17]
可以处理拥有上千万条记录的大型数据库。
J2EE的优势,J2EE为搭建具有可伸缩性、灵活性、易维护性的系统提供了良好的机制[6] 高效的开发: J2EE允许把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。[21] 支持异构环境:J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件,因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与32EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。[7] 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端Unix与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来各种应用的需要。[26] 稳定的可用性:一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为Internet是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在Windows环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris, IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间,这是实时性很强商业系统理想的选择。[19]
3.2框架设计
3.2.1 框架设计 本系统采用的是基本的B/S结构模式开发,其具体的框架如下图2所示。
图2 结构模式图
6
3.2.2系统功能特点 操作简单、界面友好:完全控件式的页面布局,使得所有的录入工作更简便;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。[27]
即时可见:对操作的处理(包括上传、修改、删除等)将立即在页面的对应栏目显示出来,达到\"即时发布、即时见效\"的功能。
功能完善:包括常见网站的管理的各个方面:录入、浏览、删除、修改、检索等各个方面,完整地实现了系统对各项工作的管理要求。
方便移植:针对不同的学院,只需要稍作修改就可以开发出适合本学院特点的毕业设计管理系统。[23]
3.3 总体功能模块图
工作流程为:用户登录通过权限判断,游客只能浏览首页内容,注册用户除了可以完成游客的操作外,还可以阅读和查询新闻、下载相关资料、进入学生(或教师)管理模块进行上传、修改和删除等操作。注册用户除系统管理员外只能对自己录入的内容进行删改操作。系统管理员具有最高权限,包括审核注册用户信息、发布信息等。如图3所示。
图3 总体功能模块图
3.4数据库设计
数据库模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如树、表等);数据库模型的分类:分层模型、关系模型、网络模型和对象模型。
本课题选择的关系模型,关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。关系数据模型具有下列优点[11]:
关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。对数据的检索结构也是关系(即表)。所以其数据结构简单、清晰,拥护易懂易用。 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。[29]
所以,关系数据模型诞生以后发展迅速,深受拥护的喜爱,这也是本课题选取关系数据模型的原因。
7
[28]
当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路件对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
本系统用到用户基本信息表, 用户详细信息表, 管理员信息表,新闻通知等信息表,用户之间互发的消息表,选题信息表和用户上传文档表来实现模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序和更新等操作。
3.5 本章小结
本章主要运用软件工程的基本方法,介绍了毕业设计管理系统的功能需求,并对系统进行了详细的介绍和分析,给出了系统各个功能模块的主要功能和设计指标,使整个系统的设计思路更加清晰,使用户和软件测试等人员对系统有了更加深刻的理解。为系统的具体实现和代码的编写工作做了很好的铺垫。
4 详细设计
详细设计的目的是为了确定应该怎样具体地实现符合要求的系统,在这个阶段的设计中我们应该对所要开发的系统有一个更加详细的描述,以方便在编码的过程中能把它直接翻译成程序语言书写的程序。
4.1 系统整体界面设计
经过需求分析和系统设计之后,我们就可以对系统的界面进行详细的设计。首先我们应该设计好系统界面布局的整体框架,不错,要想进入本毕业设计管理系统,前提条件你必须是该系统的用户,进入系统前必须经过系统用户登陆界面进行验证之后才可进入,进入系统后就可以看到系统的整体框架了。进入系统后的显示界面如图4所示。
网站头部用户信息左侧菜单栏内容显示 图4 系统界面图
8
登陆进系统后可清晰的看到,整个系统界面由框架分为了四个部分,其功能说明如表1所示。 区 域 1 2 3 4
名 称 网站头部 用户信息 导航显示 内容显示
说 明
主要起一个辅助和显示美化的作用 主要用于显示用户姓名和所在位置 主要用于显示导航模块中的功能 主要用于显示系统各功能模块中的内容
对应文件 Head.jsp Title.jsp menu.jsp main.jsp
4.2 系统框架设计
由于本系统是在Java语言的基础上使用SSH框架技术来进行的开发,在开发本系统编码之前,我们把网站中可能使用到的文件夹创建出来,放到整个系统的相应路径之下,这样可以方便以后的开发工作,规范网站的整体架构。本系统在MyEclipse中开发的项目名称为:project,在MyEclipse中的系统项目结构如图5所示。
图5 系统项目结构图
各包和文件夹的使用功能说明如下:
在src路径下存放的是系统开发的所有程序代码。 com.bysj.libs:存放基础公共类(如过滤器等); com.bysj.lib.util:工具类; com.bysj.db:操作数据库类;
com.bysj.controls:存业务逻辑类;
com.bysj.beans:存放系统交互式页面对应的Java bean对象。 在WebRoot路径下中存放的是系统开发的整个界面文件及配置文件等。 css文件夹:存放页面的css样式文件;
9
images文件夹:存放系统需要用到的所有图片文件; student文件夹:存放系统的所有学生页面。 Teacher文件夹:存放系统的所有教师页面。 admin文件夹:存放系统的所有管理员页面。 系统中还有四个极为核心的配置文件,它们分别是: web.xml:用来配置servlet的文件; log4j.properties:实现日志的配置文件; E_index.jsp:用户登陆页面;
其中web.xml配置文件存放在WEB-INF目录下,该文件中定义了大部分的Servlet的配置信息,包括名称、路径、初始化参数和启动装入优先级Servlet的映射等。[24]
log4j.properties配置文件 引用Log4j.jar。Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言 分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。[9]
4.3 系统结构和流程图
4.3.1 学生模块的结构 学生在注册通过管理员审核后,登录系统进行相关操作,包括根据自己的导师进行毕业设计(论文)的选题或是自选课题,也可以浏览本站的所有信息,包括公告、工作安排等、下载文章、往年优秀论文范文以及系统本站提供的其它资料下载等。修改自己的基本资料和密码,以及上传和管理自己的文档资料,还可以给自己的导师留言等。其具体结构如下图6所示。
图6 学生模块结构图
4.3.2 教师模块的结构 教师用户同样需要注册,并通过管理员审核后方可登录本系统进行操作。具体包括如下操作:
10
可以给自己所带的学生出毕业设计(论文)的课题,供学生选择。以及审核学生的选题情况。 可以浏览本站的所有信息。
可以查看自己学生的信息,以及文档上交情况。 上交自己的文档和修改本人的资料、密码等。 可以给自己的学生进行留言,并查阅自己的留言。 其具体如下图7所示。
图7 教师模块结构图
4.3.3 管理员模块的结构 管理员拥有系统的最高权限,其权限包括对学生的管理、管理教师注册信息、个人信息维护、监督学生和教师的各种文档上交情况、发布学院最新消息和其他信息的添加、删除和更新,上传、下载相关文件及管理等权限。
4.4 系统模块详细设计
4.4.1系统模块详细设计概要 由前面的系统分析和系统设计我们已知,本系统是围绕以用户为中心来对信息进行有效的管理,而所有的这些管理操作其实都是在对相应的数据进行操作,基本上实现的也就是对数据的增加、查询、修改和删除这四项操作。所以在此所谓的系统模块详细设计就是指的对这四项功能模块实现的设计。因为系统的每个模块几乎都要进行反复的增、删、改、查操作,所以设计好这四项操作功能模块就显得尤为重要了。 4.4.2注册模块详细设计
注册模块功能
注册模块的功能主要就是对一系列基本信息的录入,如要添加用户时就要把其相关信息录入到系统中。在设计录入操作时,我们要求数据能够正确的保存到数据库中,因此就要对录入的数据进行有效验证,在此分为两个步骤:首先在页面由JS脚本程序对数据进行验证;若页面验证通过则再到数据库中进行一次验证,看录入信息是否与数据库中的信息发生冲突,若没有冲突则可正确的录入。
注册模块流程,如图8所示。
11
图8 注册模块流程图
4.4.3查询模块详细设计
查询模块功能
查询模块的功能主要就是对保存在数据库中的相关信息进行查找,然后把查找出来的信息通过页面显示出来供用户查看和维护。
查询模块流程,如图9所示。
图9 查询模块流程图
12
4.4.4修改模块详细设计
修改模块功能
修改模块就是当某些信息发生变化时,我们就要对其保存在数据库中的信息进行相应的修改,从而保证数据的时效性。其实修改模块的设计是在录入模块的基础上进行了一些改动,也就是当你查找出某条信息时想对其进行修改,单击其对应的一个“修改”链接,就会跳转到一个修改界面,此时也就相当于对数据再次进行一次录入了。
修改模块流程,如图10所示。
图10 修改模块流程图
4.4.5删除模块详细设计
删除模块功能
删除模块的功能就是对系统中无效的信息从数据库中给删除掉。该功能模块较为简单,并不需要过多的设计。我们只需在相关信息栏的操作字段下单击“删除”链接,然后弹出一个确认框,单击“确
[22]
定”按钮则会从数据库中删除该条数据信息,单击“取消”按钮则会返回原界面。
删除模块流程,如图11所示。
13
图11 删除模块流程图
4.5 数据库的设计和构建
数据库设计是项目开发中的系统设计中非常重要的一个关键环节,之所以强调数据库的重要性,是因为数据库设计就像在建设高楼大厦的根基一样,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比较大的问题,会遇到非常大的困难,大量工作将会重新进行。
在本系统中所需要设计的数据库表如下表2所示。 序号 1 2 3 4 5 6 7
数据库表 User User_info admin Infomation Massage Xuanti up_docunment
数据库表存储内容 存储用户基本信息 存储用户详细信息 存储管理员信息 存储新闻通知等信息 存储用户之间互发的消息
存储选题信息 存储用户上传的文档
下面将主要介绍关键数据表的数据库设计的详细说明。存储后台用户基本信息的数据库表User如5.1所示。
14
表3 用户基本信息表User
序号 1 2 3 4 5 6 7 8 9 10 11 12 13
字段名 User_ID Username password realname sex department question answer validate regtime timeover usertype lastlogin
字段类型 numeric(9) Varchar(16) Varchar(32) Varchar(10) char(2) Varchar(20) Varchar(50) Varchar(50) Varchar(2) datetime(8) Datetime(8) Varchar(10) Datetime(8)
表4 用户详细信息表User_info
序号 1 2 3 4 5 6 7 8 9 10 11
字段名 User_id Username class number telephone mobilephone email teacher title Zhicheng specialty
字段类型 numeric(9) Varchar(16) Varchar(20) varchar(10) Varchar(16) numeric(16) Varchar(20) Varchar(16) Varchar(50) Varchar(10) Varchar(20)
说明 ID 用户名 班级 学号 电话 手机 电子邮件 导师 所选课题 职称 专业
备注 主键 外键 学生项 学生项 学生项 学生项 教师项
说明 ID 用户名 用户密码 真实姓名 性别 所属学院 密码提示问题 密码提示问题答案
审核 注册时间 到期时间 等级权限 最后登陆时间
备注 主键,唯一,非空 唯一,非空
非空 非空 非空 默认锁定 非空 非空 非空
用户基本信息表保存的是后台用户的基本信息。其中“用户名”和“用户密码”是用于以后登陆,为了不引起混乱,要求“用户名”在表中唯一;姓名、电话、电子邮件等是用户的基本信息。
表5 管理员信息表admin
序号 1 2 3 4 5 6 7 8 9
字段名 Admin_id Admin_username Admin_password Admin_realname Admin_depart Admin_mail Admin_level Admin_validate Admin_regtime
字段类型 numeric(9) Varchar(16) Varchar(32) Varchar(10) Varchar(20) Varchar(50) Varchar(10) Varchar(2) Datetime(8)
说明 编号 用户名 管理密码 真实姓名 部门 邮箱 权限 验证 注册时间
备注 主键,唯一,非空 唯一,非空 非空 非空 非空 非空 默认已审 非空
该表是用于保存系统管理人员的基本信息的,其中“管理员用户名”和“管理密码”是管理人员
15
登陆系统进行管理的通行证,为了不引起混乱,“用户名”在表中是唯一的。
表6 公告信息表Infomation
序号 1 2
3 4 5 6 7 8
字段名 Info_id Info_title Info_content Info_from Info_class Info_time Info_upfilename Info_upfilepath
字段类型 numeric(9) Varchar(50) Varchar(2048) Varchar(16) Varchar(16) Datetime(8) Varchar(50) Varchar(100)
说明 编号 文章标题 文章内容 文章来源 文章分类 添加时间 上传文件名 文件路径
备注 主键,唯一,非空
非空 非空 非空 非空 非空
公告信息主要包括以下几个方面:学校关于毕业设计方面的规章制度、设计安排,以及推荐范文、表格下载和历年的优秀论文,和最新的公告和通知等方面内容。该项只有管理员才有权限进行添加。
表7 消息管理表Message
序号 1 2 3 4 5 6 7 8 9
字段名 M_id M_title M_content M_from M_to M_read M_time M_upfilename M_upfilepath
字段类型 numeric(9) Varchar(50) Varchar(200) Varchar(16) Varchar(16) Varchar(2) Datetime(8) Varchar(50) Varchar(100)
说明 编号 消息标题 消息内容 发送人 收信人 是否已读 发送时间 附件名 附件地址
备注 主键,唯一,非空
非空 非空 外键,非空 外键,非空 默认“未读”
非空
此表是用来纪录用户之间相互发送的消息等信息,便于用户间的联系。
表8 选题信息表Xuanti
序号 1 2 3 4 5
字段名 Xt_id Xt_title Xt_intr Xt_from Xt_addtime
字段类型 numeric(9) Varchar(50) Varchar(100) Varchar(16) Datetime(8)
说明 编号 选题标题 选题简介 来源 添加时间
备注 主键,唯一,非空
非空
外键,非空 非空
该表是用于纪录学院或教师所要求的论文的课题,供毕业生进行选择。
表9 上传文档表up_docunment 序号 1 2 3 4 5
字段名 file_id file_title file_url file_from file_addtime
字段类型 numeric(9) Varchar(50) Varchar(100) Varchar(16) Datetime(8)
说明 编号 文档标题 文档存放路径
来源 添加时间
备注 主键,唯一,非空
非空 非空 外键,非空 非空
该表是用于纪录用户上传文档的保存信息的。
16
4.6 本章小结
本章主要介绍了毕业设计管理系统的学生模块、教师模块和管理员模块的结构设计、讨论了整个系统的主要数据库结构参数及其构建和连接访问的实现的、系统的界面设计以及框架设计。着重讲述了该系统的主要功能模块的实现。
5 系统实现
5.1 用户登陆功能的实现
在一个系统中,用户登录验证是非常重要的,要考虑的问题也比较多,比如该用户是否存在、用户名和密码是否正确等等,在本系统中我们用如下代码进行用户登录的实现。 String userName = (String)request.getParameter(\"userName\"); String userPassword = (String)request.getParameter(\"userPassword\"); String UserType = (String)request.getParameter(\"userType\"); response.setContentType(\"text/html;charset=GBK\"); Jdbc jdbc = new Jdbc(); boolean falg = false;
falg = jdbc.Dlu(userName,userPassword,UserType); if (falg){ if(UserType.equals(\"1\")){
//执行查询方法 //判断用户身份
HttpSession session = request.getSession(true); session.setAttribute(\"userName\
String url=\"../student/S_window.jsp\";
RequestDispatcher rd =request.getRequestDispatcher(url); rd.forward(request, response); }else if(UserType.equals(\"0\")){
HttpSession session = request.getSession(true); session.setAttribute(\"userName\
String url=\"../teacher/main/S_window.jsp\";
RequestDispatcher rd =request.getRequestDispatcher(url); rd.forward(request, response); }else if(UserType.equals(\"2\")){
HttpSession session = request.getSession(true); session.setAttribute(\"userName\String url=\"../admin/main/S_window.jsp\";
RequestDispatcher rd =request.getRequestDispatcher(url);//页面跳转 rd.forward(request, response); } }else{
request.setAttribute(\"error\填写信息有误!\"); String url=\"../E_index.jsp\";
RequestDispatcher rd =request.getRequestDispatcher(url); rd.forward(request, response);
17
5.2 文件上传功能代码
文件的上传可以实现学生、教师的资源共享,同时学生也可以上传自己的作业,方便教师对作业进行管理。
request.setCharacterEncoding(\"GBK\"); HttpSession session = request.getSession(true);
String File_from = (String) session.getAttribute(\"userName\");
PageContext pagecontext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);
com.jspsmart.upload.SmartUpload su = new com.jspsmart.upload.SmartUpload(); su.initialize(pagecontext);
su.setAllowedFilesList(\"doc,txt\"); su.setDeniedFilesList(\"exe,bat,jsp\"); su.setMaxFileSize(50000000);
//允许上传文档的格式 //不允许上传文档的格式
su.upload();
com.jspsmart.upload.File myfile =su.getFiles().getFile(0); String filep =null; String filename1 = null; if(!myfile.isMissing()){ filep=myfile.getFileName(); System.out.println(filep); int size = filep.length();
String filepath =\"C:\\\\Java\\\\student\\\\\"+filep; System.out.println(filepath); jdbc.Uadd(upd);
//获取文件名
upd.File_addtime = DateUtil.getCurrentMilliTime();
//插入数据库
request.setAttribute(\"error\系统异常请通知管理员!\");
5.3 数据库连接
任何一种语言都可以连接数据库。java通过一种加JDBC的驱动程序来实现数据库的连接。JDBC相当于数据库和JAVA语言的接口。 private Connection con =null; public Connection getConnection(){ Class.forName(\"com.mysql.jdbc.Driver\"); con=(Connection)
DriverManager.getConnection(\"jdbc:mysql://localhost:3306/bysj?user=root&password=8888&useUnicode=true&characterEncoding=gb2312\");
5.4 查询数据功能
查询功能主要就是对保存在数据库中的相关信息进行查找,并在页面列出查询结果。
DBContent db = new DBContent(); Connection con = null; PreparedStatement ps = null; PreparedStatement ps1 = null;
18
ArrayList array = new ArrayList(); XuanTi xuanti = new XuanTi();
con = db.getConnection();
String sql1 = \"select Username,realname,department from user m,xuanti x where m.Username=x.xt_tea and xt_to ='\"
+ ausername+ \"'\";
ps1 = (PreparedStatement) con.prepareStatement(sql1); ResultSet rs1 = (ResultSet) ps1.executeQuery(); for (; rs1.next();) { User user = new User();
user.setUserName(rs1.getString(1)); user.setRealName(rs1.getString(2)); user.setDepartment(rs1.getString(3)); array.add(user);
5.5 删除数据功能
删除功能主要就是对保存在数据库中的相关信息进行删除。DBContent db = new DBContent(); Connection con = null;
PreparedStatement ps = null; Boolean falg1 = false; con = db.getConnection();
con.setAutoCommit(false);
String sql = \"delete from xuanti where Xt_id='\" + ausername + \"'\"; ps = (PreparedStatement) con.prepareStatement(sql); ps.execute(); con.commit(); falg1 = true;
5.6 修改数据功能
删除功能就是对保存在数据库中的相关信息进行修改操作。DBContent db = new DBContent(); Connection con = null; PreparedStatement ps = null; Boolean falg = false; con = db.getConnection();
con.setAutoCommit(false);
String sql = \"update user set question='\" + aquestion + \"' , answer= '\" + aanswer + \"' where username='\" + ausername + \"'\";
ps = (PreparedStatement) con.prepareStatement(sql); ps.execute(); con.commit(); falg = true;
19
总结
基于Web的高校毕业设计管理系统有着广阔的前景,必将对传统管理模式产生深远影响。本文从计算机学科的两个重要领域—计算机网络技术和数据库技术出发,分析了Web数据库及JSP技术在毕业设计管理系统中的应用。本文的主要工作如下:
1、探讨了运用软件工程的基本原理去分析和设计实现毕业设计管理系统的过程。并对系统的开发原理、功能设计和模块的设计做出系统的分析。
2、论文详尽介绍了毕业设计管理系统的总体框架和使用的主要技术、以及功能的实现。
3、本文通过理论联系实际,对B/S结构上的Web数据库的不同实现方法作了详尽的分析,同时使用JSP技术开发的一个毕业设计管理系统。
本文仅在我们工作的基础上对这一问题作了初步的探讨,怎样更好地利用网络资源,怎样使教师与学生、学生与学生、教师与教师间的交流更为方便、快捷,怎样在网上查询中引入多媒体技术、人工智能技术和最新的网络技术等等,这些问题还有待进一步研究。
20
因篇幅问题不能全部显示,请点此查看更多更全内容