基于php毕业设计管理系统设计与实现(含源码)

获取项目源文件,联系Q:1415736481,可指导毕设,课设

基于WEB的毕业设计管理系统

 

摘要:本系统是针对现代高校计算机技术的发展,为了应对以往毕业生毕业设计中遇到的工作效率低,交互性差等问题而采用软件工程的设计思想设计的。本文的基础就是利用PHP技术与MySQL数据库和Apache服务器的结合,开发出的一个基于WEB技术的B/S结构的毕业设计管理系统。

首先,本文探讨了数据库运行的体系结构,介绍了浏览器/服务器模式的工作方式及特点;比较了主机/终端、客户机/服务器和浏览器/服务器等三种模式各自的优缺点。比较结果表明,浏览器/服务器模式继承了客户机/服务器模式的优点并克服了它的缺点,不受操作系统和硬件的制约,而且能防止“胖客户机”现象的发生,比较容易实现不同网络间的连接。浏览器/服务器模式是目前广泛使用的主体结构。因此,我们开发的本系统也将采用了浏览器/服务器模式。在此基础上,本文还探讨了实现WEB数据库的不同方法。

本次设计是应用LAMP技术实现网络环境下的本科毕业生毕业设计管理。利用VIM工具结合使用MySQL数据库,PHP等技术的工作原理及特点,并以此为理论技术依据阐述了基于WEB的毕业设计管理系统的结构设计和具体的实现过程。

 

关键词: B/S; C/S; 毕业设计管理系统; LAMP; Linux ; PHP; MySQL; Apache

 

 

 

 

 

 

 

 

 

 

 

 

Graduation Thesis Management System Based on Web

  

Abstract : This system is designed in allusion to the development of modern computer technology in universities and colleges. It adopts the design ideology of software engineering, in order to answer the problems that had been faced by the graduates in their graduation projects, such as low work efficiency, and poor interaction. The foundation of this text was combining the skill of PHP with Web Database, and exploiting a management system based on the skill of Web and the structure of B/S.

Firstly, this text discusses the system and structure run by database, introduces the working and characteristic of the B/S pattern, and also compares with three kind of patterns respective advantage and disadvantage among Mainframe/Terminal,Client/Server and Browser/Server. The result indicates that the mode of B/S inherits the merit of C/S, and conquers its shortcoming. This mode is not conditioned by OS and hardware, and also can prevent "the fat client" happening, even it can easily connect different networks. The mode of B/S is the main structure used widely at present. Therefore this system adopts the mode of browser/server. On this foundation, this text discusses the different ways to actualize Web Database.

This design applies LAMP technology to solve practice of graduation project management in the network environment. Using the tool of VIM and combining with MySQL Database, the working elements of PHP, etc. It takes this for the foundation of academic technique, and expatiates the structural design and the detailed process of carrying out the graduation project management based on Web.

 

Keyword: B/S ; C/S ; Graduation Thesis Management System; LAMP; Linux; PHP; MySQL ; Apache

 

 

 

 

 

 

 

 

1绪 论

1.1 系统开发背景及现状

随着计算机网络技术的发展,给信息时代的人们带来了很大的方便。如今在Internet上,你随处都可以看到很多的各类信息管理系统,如企业信息管理系统,电子商务系统,学校教务管理系统等各类信息管理系统的普及。而针对本科毕业设计的选题等相关事项,涉及到导师给出课题或学生自选课题,以及在各个阶段需要上交或是提交相关的文档资料等问题,目前主要还是由人为来处理操作,需要花费一定人力,这给整个工作带来了很多不便,而且容易出错。因此就需要一个对此流程进行管理的电子系统,使得此过程更加方便,更加透明,更加高效,以节省更多的人力和不必要的工作。

    而目前的此类系统或多或少的存在以下的问题:

    1、不清楚建立网站的目的或没有根据自己的目的详细策划网站的功能,只适应一时之需;结果页面的设计,包括系统内的链接和功能未能真正提供方便;

2、缺少一个针对有效管理本科毕业设计(论文)工作的基于Web技术的B/S的管理系统,所以很多的管理系统远远达不到标准,没能很好地发挥管理系统应有的效果;

3、现实还没有一个适合我校关于毕业设计管理工作的管理系统,或是直接针对我校的毕业设计管理工作而编写的管理系统。

通过对毕业设计管理工作的初步了解,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今毕业设计管理工作需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。

1.2 系统开发关键技术与开发环境

1.2.1 Linux操作系统简介[1]

Linux 是一个免费的类Unix操作系统,Linux操作系统是可以运行在许多不同类型的计算机上的一种操作系统的“内核”,它是提供命令行或者程序与计算机硬件之间接口的软件的核心部分。

1.2.2 Apache服务器简介[1]

Apache是世界使用排名第一的Web服务器软件,可以运行在几乎所有广泛使用的计算机平台上。因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

1.2.3 MySQL数据库简介[1]

MySQL是一个小型关系型数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

1.2.4 PHP语言简介[1]

PHP独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

1.3 全文体系

    第一章简述了系统的开发背景、发展现状及目的,介绍LAMP的相关技术。

    第二章介绍了基于Web的数据库技术的发展情况,并详细介绍了浏览器用及务器模式的工作方式及特点,同时详细还介绍了实现Web数据库的不同方法及PHP技术在性能方面的优越性。

    第三章讨论了运用软件工程的思想,做毕业设计管理的系统功能需求、以及整个系统的设计与分析。

    第四章主要介绍毕业设计管理系统的功能结构和具体实现,以及所采取的安全控制技术。

    第五章是结束语。总结了全文的主要思想,分析了今后继续努力的方向。

国际互联网技术日新月异,极大地推动了基于Internet的应用技术的发展。支持Web数据库访问的新技术也层出不穷。随着校园网的发展,基于Internet的各种教学管理系统、学生管理系统也在不断地深入和发展。本文所介绍的“基于Web的毕业设计管理系统的设计与实现”仅仅是高校管理信息系统的一个小模块,今后我们将进一步努力,不断地学习新知识,争取将这个系统做到更加完善。

 

2 基于Web的数据库技术分析

当计算机的应用开始从数值计算向数据库方面发展的时候,许多公司和机构都致力于建立一种完美的数据库运行的体系结构。网络的出现给计算机带来一次重大的改革,为了适应网络环境下的数据库应用,人们依据计算机的应用特点和应用功能的划分方式,提出了一系列应用框架—主机/终端模式、客户机/服务器模式以及随后的浏览器/服务器模式。在构造一个应用系统时,我们首先要考虑的是系统的体系结构,采用哪种结构取决于系统的网络环境、应用需求等因素。

 

2.1 数据库应用系统层次体系

2.1.1 终端/主机体系结构

这是一种早期处理数据所采用的模式,如图2.1所示,这种模式中,服务器存储所有数据,进行所有处理运算,资源也得到了充分的共享。但是用户界面不友好,主机负载过大。

  

图2.1  终端/主机体系结构

2.1.2 客户机/服务器体系结构[7]

传统的C/S结构是两层的,为了应用客户机/服务器这种体系结构,原来完全放在主机上的应用程序被分成了两部分:客户机端的应用程序和服务器端的应用程序,如图2.2所示。

 

图2.2  客户机/服务器体系结构

由于两层结构的C/S系统本身固有的缺陷,使得它不能应用于一些大型的、结构复杂的系统中,由此出现了三层结构的C/S系统,典型的数据库应用可分成三部分:即表示部分、应用逻辑部分和数据访问部分。与两层C/S结构相比,其应用逻辑部分被明确地划分出来。在硬件实现上,有两种方式:

1、客户位于客户机上,应用服务器和数据库服务器位于同一主机上。这种方式在主机具有良好性能的前提下,能保证应用服务器和数据库服务器之间的通信效率,减少客户和应用服务器之间网络上的数据传输,使系统具有好的性能。如图2.3所示。

 

2、客户位于客户机上,应用服务器和数据库服务器位于不同主机上。这种方式更加灵活,能够适应客户机数目的增加和应用处理负荷的变动。在增加新的应用逻辑时,可以追加新的应用服务器。系统规模越大,这种方式的优点体现得越明显。如图2.4所示。

两种方式在复杂应用下,使系统达到高性能的关键是应用服务器和数据库服务器间的数据通信效率,它对于应用服务器和数据库服务器位于不同主机上的第二种方式来说尤为重要。

三层C/S模式的功能:

1、客户:是应用的用户接口部分,负责用户与应用程序的交互。它接受用户的输入请  求,将结果以适当的形式返回用户,常以图形用户界面(GUI)表现出来。客户的GUI界面应当易于生成和修改,并尽量与其他两层保持独立,以适应应用的变化。

2、应用服务器:是应用逻辑处理的核心,是具体业务的实现。它与客户间的数据交往应尽量简洁,客户将请求信息发送给应用服务器,应用服务器返回数据和结果。

3、数据库服务器:以传统的基于SQL的DBMS实现,它接收应用服务器提出的SQL请求,完成数据的存储、访问和完整性约束等。

2.1.3 浏览器/服务器体系结构[7、8]

    在典型的客户机服务器体系中,那种为客户安装前端应用程序的方法已不再现实。于是基于浏览器/服务器模式的系统应运而生,它继承了客户机/服务器模式的所有优点而克服了它的缺点。防止了“胖客户机”现象的产生,非常容易实现不同网络间的连接。

浏览器/服务器的工作原理和过程:

在浏览器/服务器模式中,客户端的标准配置是浏览器,WEB服务器成为应用处理的标准配置,数据处理仍然由数据库服务器完成。图2.5为浏览器/服务器模式构成及数据处理方式。浏览器/服务器模式是三层分布结构,即浏览器—Web服务器—数据库服务器。

 

一般情况下的工作流程为:

1、用户输入所要启动的主页URL(统一资源定位),浏览器将生成一个HTTP请求并把它发送到指定的web服务器。

2、服务器把主页发回给浏览器,浏览器将其显示在屏幕上。

3、用户阅读相关信息,可继续查找有关信息,向浏览器发出请求。

4、浏览器发送一个请求给相应的服务器,并把由URL标识的文档/文件返回屏幕。

5、服务器收到请求后,查看本站点是否有该文档:若有,则把该文档放入响应信息中返回浏览器。

6、浏览器收到响应,查看头文件格式,判断是否能直接显示。若能就显示出来,否则,调用对应的帮助应用程序或外挂程序处理。

7、浏览器等待用户的下一条指令,而服务器准备接受来自浏览器的下一条请求。

2.1.4 C/S结构与B/S结构比较[13]

    与C/S相比,B/S在许多方面体现了很大的优势,主要体现在以下几个方面:

1、开发和维护成本

C/S开发和维护成本较高,对不同的客户端要开发不同程序,编程工作量大,对于B/S,只需在客户端安装通用的浏览器,所有的维护和升级工作都是在服务器上执行的,不需对客户端进行任何改变,故而大大降低了开发和维护成本。

2、客户端任务

C/S的客户端具有显示和处理数据的功能,任务过重,B/S的客户端把事务逻辑部分分给了服务器,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,任务大大减轻。

3、采用的标准

C/S所采用的标准只在内部统一,其应用通常是专用的。B/S所采用的标准是开放的、非专用的,保证了其应用的通用性和跨平台性。

4、灵活性

C/S系统模块中每一部分的变动均要影响到其它模块的变动,系统升级困难,灵活性差。B/S各层之间相互独立,任何一层的改变不影响其它层的功能,系统改进非常容易,灵活性好。

5、安全性

C/S系统中的客户机直接与服务器相连,非法用户可以很容易地通过应用程序侵入系统,并对服务器数据库进行操作,这给系统的安全性带来极大的隐患。B/S系统在客户机和服务器之间增加了一层Web服务器,是两者不在相连,客户机无法直接对数据库操作,可有效地防止用户的非法入侵。

6、移植性

C/S系统对不同工具开发的应用程序,一般来说互不兼容,难以移植到其它平台上运行,移植性差。B/S系统在客户端安装的是通用浏览器,不存在移植性问题。

7、用户界面风格

C/S用户的界面由客户端应用程序决定,用户界面各不相同。B/S只需在客户端安装通用的浏览器就可以访问应用程序,浏览器的界面统一友好,易于使用。

通过以上对C/S和B/S的介绍和比较,B/S的优点非常明显,因此,本系统将采用B/S模式来开发毕业设计管理系统。

 

2.2 Web数据库管理系统介绍

Web数据库管理系统是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器用民务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。更好的实现不同地域的其他人使用这些信息。

2.2.1 Web数据库管理系统工作原理[13、14、15]

    在WWW中,浏览器是用户可见的存在界面,在该界面中,用户输入信息,浏览器将该输入信息发送到服务器端。由服务器通过外部程序访问数据库,并将结果返回给浏览器。其工作原理如图2.6所示。

基于Web的数据库采用3层的客户端/服务器结构:第一层是浏览器,第二层是Web服务器,第三层包括一些应用程序及相关的数据库。浏览器作为用户输入查询条件和显示查询结果的交互界面,用户可以通过填写表单或输入关键字的方式来与Web交互。当用户单击表单上的按钮时,表单中的数据便被发送到Web服务器。Web服务器负责用户输入信息的接收,它将数据传送至要被处理的脚本或应用程序,并在数据库中查询数据。最后,Web服务器将返回结果插入到HTML页面,传送至浏览器以响应用户。

 

2.2.2 利用WWW访问数据库的优点

与传统方式相比,通过WWW访问数据库的优点在于:

1、借用浏览器软件,无需开发数据库前端;如果能够通过WWW来访问数据库,我们就不需要开发客户端的程序,使用的数据库应用都可以通过浏览器来实现,界面统一,降低了成本,能使广大用户很方便地访问数据库信息.

2、标准统一,开发过程简单:HTML是WWW信息的组织方式,是一种国际标准,使用的www服务器与浏览器均遵循这个标准。使用HTML标准,开发者甚至只需学习HTML一种语言,使用者只需学习一种界面—浏览器界面。

3、交叉平台支持,几乎在各种操作系统上都有现成的浏览器可供使用,为一个www服务器书写的HTML文件,可以被所有平台的浏览器所浏览,实现了跨平台操作。 实现www数据库的方法有很多,如中间件技术、JAVA技术、下载到客户端访问技术、ASP技术、ASP.NET技术、PHP技术等。

 

2.3 本章小结

本章首先介绍了数据库运行的三种不同的体系结构,即主机/终端结构、客户机/服务器结构、浏览器/服务器结构,并详细介绍了浏览器/服务器的工作原理、工作流程及其在性能方面的优势。随后,介绍了Web数据库管理系统的概念,描述了其工作原理。

 

3 系统分析与设计

系统分析和设计是信息系统开发的一个重要环节。本章将主要介绍一个基于WEB的B/S结构的毕业设计管理系统的功能需求、总体框架、以及系统开发原理等做系统的分析研究,并介绍系统所拥有的特点。

 

3.1 系统功能需求

该系统一般包括对选题的发布、更新、删除,学生毕业设计文档信息、导师文档信息的上传(在指导时间前才可提交)和相关信息的发布、查询、更新、输出等功能。如果人工直接操作的话,工作量将十分庞大,特别是,如果学生人数有几千或上万时,人工操作将变得相当繁杂。用计算机可使人们从繁重而又单调的工作中解脱出来,仅用一些简单的操作便可及时准确地获得需要的信息。毕业设计管理系统是一个为适应当前毕业设计管理工作的需求而设计开发的软件系统。该系统的前台采用的是VIM开发系统,后台数据库采用的是MySQL数据库。

对系统功能的规定:该系统的角色是学生、教师(导师)和系统管理员。学生和教师是系统的用户,而系统管理员是系统管理者,虽然系统管理者也是一个用户,但并不影响本系统的功能。

该系统的分析可以用UML来描述,如下图3.1所示。

 

3.2 系统功能特点

1、操作简单、界面友好:完全控件式的页面布局,使得所有的录入工作更简便;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。

2、即时可见:对操作的处理(包括上传、修改、删除等)将立即在页面的对应栏目显示出来,达到"即时发布、即时见效"的功能。

3、功能完善:包括常见网站的管理的各个方面:录入、浏览、删除、修改、检索等各个方面,完整地实现了系统对各项工作的管理要求。

4、方便移植:针对不同的学院,只需要稍作修改就可以开发出适合本学院特点的毕业设计管理系统。

 

3.3 系统设计

3.3.1 系统开发原理

PHP结构是一个三层系统:UI层、业务逻辑层和数据层,如图3.3所示。

 

UI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。

业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web表单、XML Web服务和组件服务组成。其中Web表单是PHP应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web表单交互生成的信息和数据的基础。

数据层是通过PHP操纵数据为事务逻辑层提供数据服务,如存储数据操作结果、返回数据检索结果等。

3.3.2 系统功能设计

本系统的主要功能结构如下:

该毕业管理系统可以在Windows XP 或Linux操作系统平台上运行,Web服务器为Apache,数据库服务器为MySQL,开发工具采用的BlueFish和Vim。图3.4给出系统的功能结构图。其工作流程为:用户登录通过权限判断,游客只能浏览首页内容,注册用户除了可以完成游客的操作外,还可以阅读和查询新闻、下载相关资料、进入学生(或教师)管理模块进行上传、修改和删除等操作。注册用户除系统管理员外只能对自己录入的内容进行删改操作。系统管理员具有最高权限,包括审核注册用户信息、发布信息等。

 

 

 

 

 

3.3.3 系统总体设计

本系统的用户通过首页,进入登陆页面,通过用户身份验证(系统根据用户权限)进入不同的管理页面,用户通过管理页面进行具体的操作。如图3.5所示:

 

 

 

3.4 系统功能概述

系统的主要功能是通过几个功能模块来实现的。具体的设计过程如下:

1、系统登录:该模块负责将用户分为学生、教师和管理员来实现用户权限的管理。

2、信息发布模块主要包括以下:

(1)信息浏览(这里的信息包括新闻公告、规章制度、设计安排、推荐范文、表格下载、优秀论文、课题的发布等):该模块负责分页列出网站所有的信息,包括标题、类型、来源部门字段及发布日期,每条新闻的标题被做成一个超链接,点击它们就能跳转页面进行信息阅读。

(2)信息阅读:在其他页面中点击标题链接即进入信息阅读页面,此时,每条信息的详细信息将被取出,包括内容、标题、关键字等,并按照相对固定的格式放置在页面的不同区域,所有信息使用大致相同的页面布局,只是各字段对应的内容不同而已。

(3)信息查询:该模块提供了信息查询功能,输入待查找的内容及选定分类信息可以快速地找到符合条件的信息,并输出查询结果。

(4)信息管理:该模块负责分页罗列管理员曾发布过且未删除的信息,并可以对该条信息进行删除、修改。此信息除系统管理员外其他用户不具有对该信息的处理权限(除教师有发布选题的权限外)。

(5)信息录入和修改:管理员录入一条信息所需要的内容,包含标题、关键字、类型、来源部门、发布日期等,同时从登录模块得到用户名,这些信息将被写入数据库中保存。

3、文档上传:该模块负责所有用户的文档上交工作。每个用户注册后有自己单独的文件夹,登陆后上传的文档(在指定时间前上传)将会被保留在此文件夹中。

4、消息处理:主要负责各个用户之间相互发送消息使用。用户可输入对方的用户名发送消息给对方。

5、用户注册:包括学生和教师的注册(需在指定时间段内注册或是直接由管理员添加)。

 

3.5 本章小结

本章主要运用软件工程的基本方法,介绍了毕业设计管理系统的功能需求,并对系统进行了详细的介绍和分析,给出了系统各个功能模块的主要功能和设计指标,使整个系统的设计思路更加清晰,使用户和软件测试等人员对系统有了更加深刻的理解。为系统的具体实现和代码的编写工作做了很好的铺垫。

 

4 系统功能实现

  《基于WEB的毕业设计管理系统》的任务是对学校毕业设计管理中的工作进行集中处理,使教师与教师之间,教师与学生之间能更快、更方便的交流,取代原来的电话(或Email)通知和联系,材料纸的发送等诸多不便,也使学院能更好、更快的发布最新的关于毕业设计(论文)的相关信息和通知,及监督学生毕业设计(论文)的完成情况和文档上交情况。该系统主要内容包括: 用户注册(包括学生和教师)、教师出题、学生选题、文档上交、相互留言等。通过这个系统,可以使广大师生从繁杂琐碎的事情中解脱出来,专心投入毕业设计(论文)的工作中去,提高整个毕业设计工作的工作效率。

 

4.1 系统结构和流程

4.1.1 学生模块结构

学生在注册通过管理员审核后,登录系统进行相关操作,包括根据自己的导师进行毕业设计(论文)的选题或是自选课题,也可以浏览本站的所有信息,包括公告、工作安排等、下载设计表格、往年优秀论文范文以及系统本站提供的其它资料下载等。修改自己的基本资料和密码,以及上传和管理自己的文档资料,还可以给自己的导师留言等。

其具体结构如下图4.1所示:

 

4.1.2 教师模块结构

   教师用户同样需要注册,并通过管理员审核后方可登录本系统进行操作。具体包括如下操作:

1、可以给自己所带的学生出毕业设计(论文)的课题,供学生选择。以及审核学生的选题情况。

2、可以浏览本站的所有信息,包括通知、工作安排、规章制度等信息。

3、可以查看自己学生的信息,以及文档上交情况。

4、上交自己的文档和修改本人的资料、密码等。

5、可以给自己的学生、其他教师和管理员进行留言,并查阅自己的留言。

其具体如下图4.2所示:

 

4.1.3 管理员模块结构

    管理员拥有系统的最高权限,其权限包括对注册用户进行审核、查看所有用户的资料信息、对总体选题情况进行查询(包括总体选题情况、已选情况和未选情况)、监督学生和教师的各种文档上交情况、审核学生申请、发布学院最新消息和其他信息的添加、删除和更新,上传相关表格等,还可以对“系统内容进行设置”、和“数据库备份”等管理权限。

其具体结构如下图4.3所示:

 

 

4.2 数据库设计和构建

数据库设计是项目开发中的系统设计中非常重要的一个关键环节,之所以强调数据库的重要性,是因为数据库设计就像在建设高楼大厦的根基一样,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比较大的问题,会遇到非常大的困难,大量工作将会重新进行。

   在本系统中所需要设计的数据库表如下表4.1所示。

序号

数据库表

数据库表存储内容

1

User                                                                                                       

存储用户注册信息

2

Student

学生用户详细信息

3

Teacher

教师用户详细信息

4

admin

存储管理员信息

5

Message

存储用户之间互发的消息

6

Subject

存储课题信息

7

Upfile

存储用户上传的文档

8

Mark

存储学生的成绩

       

 

表4.2 注册用户基本信息表 User

序号

字段名

字段类型

说明

备注

1

user_ID

Varchar(8)

ID

主键,唯一,非空

2

user_passwd

Varchar(20)

用户密码

非空

3

question

Varchar(40)

密码提示问题

 

4

answer

Varchar(40)

密码提示答案

 

5

sex

enum(‘男’,‘女’)

性别

非空

6

email

Varchar(30)

电子邮箱

非空

7

tel_num

Varchar(11)

电话号码

非空

8

college

Varchar(30)

所在学院

非空

9

major

Varchar(30)

所在专业

非空

10

degree

Varchar(10)

职称

非空

11

address

Varchar(30)

住址

非空

 

表4.3 学生用户详细信息表 Student

序号

字段名

字段类型

说明

备注

1

student_ID

Varchar(8)

ID

主键,唯一,非空

2

student_name

Varchar(10)

学生姓名

外键

3

sex

enum(‘男’,‘女’)

性别

非空

4

college

Varchar(30)

所在学院

非空

5

major

Varchar(30)

所学专业

非空

6

Class

Varchar(20)

所在班级

非空

 

表4.4 教师用户详细信息表 Teacher

序号

字段名

字段类型

说明

备注

1

teacher_ID

Varchar(8)

ID

主键,唯一,非空

2

teacher_name

Varchar(10)

教师姓名

外键

3

sex

enum(‘男’,‘女’)

性别

非空

4

college

Varchar(30)

所在学院

非空

5

major

Varchar(30)

所学专业

非空

6

degree

Varchar(10)

职称

非空

 

注册用户基本信息表保存的是后台用户的基本信息。其中“用户ID”和“用户密码”是用于以后登陆,为了不引起混乱,要求“用户ID”是本人的学生ID或教师编号在表中唯一;电话、电子邮件、所在学院、所学专业等是用户的基本信息。

表4.5 管理员信息表 Admin

序号

字段名

字段类型

说明

备注

1

Admin_id

 Varchar(8)

ID

主键,唯一,非空

2

Admin_passwd

Varchar(20

管理密码

非空

 

表4.6 消息管理表 Message

序号

字段名

字段类型

说明

备注

1

M_ID

Int(11)

编号

主键,唯一,非空

2

M_title

Varchar(100)

消息标题

非空

3

M_content

Varchar(5000)

消息内容

非空

4

M_from

Varchar(8)

发送人

外键,非空

5

M_to

Varchar(8)

收信人

外键,非空

6

M_read

Varchar(8)

是否已读

默认“未读”

7

M_time

Timestamp

发送时间

非空

 

表4.7 选题信息表 Subject

序号

字段名

字段类型

说明

备注

1

subject_ID

Varchar(8)

编号

主键,唯一,非空

2

subject_title

Varchar(50)

选题标题

非空

3

teacher_ID

Varchar(8)

导师编号

非空

4

student_ID

Varchar(8)

学生ID

 

5

 status

Varchar(10)

论文状态

非空

6

Audit

Varchar(8)

编辑状态

非空

 

表4.8 上传文档表 Upfile

序号

字段名

字段类型

说明

备注

1

upfile_ID

Int(11)

编号

主键,唯一,非空

2

upfile_name

Varchar(100)

文档标题

非空

3

upfile_path

Varchar(50)

文档存放路径

非空

4

upfile_from

Varchar(8)

发件人

外键,非空

5

upfile_time

timestamp

添加时间

非空

6

upfile_size

Varchar(10)

文档大小

非空

7

upfile_to

Varchar(8)

收件人

 

 

表4.9 学生成绩信息表 Mark

序号

字段名

字段类型

说明

备注

1

    teacher_ID

Varchar(8)

导师编号

非空

2

 student_ID

Varchar(8)

学生编号

非空

3

mark

Varchar(8)

论文成绩

非空

4

content

Varchar(5000)

导师评语

非空

 

4.3 主要功能分析与实现

4.3.1 用户登陆

    在一个系统中,用户登录验证是非常重要的,要考虑的问题也比较多,比如该用户是否存在、用户名和密码是否正确等等,在本系统中我们用如下代码进行用户登录的实现。

if(strlen($user_ID)=="8")

{

  if($degree == '学生')

  {

  $sql = "select * from $Student where student_ID='$user_ID'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num==0)

  {

    echo "<script>alert('此用户不存在,请检查!');history.back();</script>";

    exit();

  }//if

  else

  {

  $sql = "select * from $Student where student_ID='$user_ID' and sex='$sex'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num==0)

  {

    echo "<script>alert('性别不符,请检查!');history.back();</script>";

    exit();

  }//if

 

  $sql = "select * from $Student where student_ID='$user_ID' and college='$college' and major='$major'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num==0)

  {

    echo "<script>alert('所在学院或所学专业不符,请检查!');history.back();</script>";

    exit();

  }//if

  }//else

  }//if

 

  if($degree == '教师')

  {

  $sql = "select * from $Teacher where teacher_ID='$user_ID'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num==0)

  {

    echo "<script>alert('此用户不存在,请检查!');history.back();</script>";

    exit();

  }//if

  else

  {

  $sql = "select * from $Teacher where teacher_ID='$user_ID' and sex='$sex'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num==0)

  {

    echo "<script>alert('性别不符,请检查!');history.back();</script>";

    exit();

  }//if

 

  $sql = "select * from $Teacher where teacher_ID='$user_ID' and college='$college' and major='$major'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num==0)

  {

    echo "<script>alert('所在学院或专业不符,请检查!');history.back();</script>";

    exit();

  }//if

  }//else

  }//if

 

  $sql = "select * from $User where user_ID='$user_ID'";

  $count = mysql_query($sql);

  $num = mysql_num_rows($count);

  if($num!=0)

  {

    echo "<script>alert('此用户已经注册,请检查!');history.back();</script>";

    exit();

  }//if

  else

    if($user_ID!="" && $user_passwd!="" && $sex!="" && $email!="" && $tel_num!="" && $degree!="" && $address!="")

{

      $QUERY=mysql_query("INSERT INTO $User VALUES ('$user_ID','$user_passwd','$question','$answer','$sex','$email','$tel_num','$college','$major','$degree','$address')");

      if($QUERY)       //注意

      {

        if($degree == '学生')

        {

        $SQL = "SELECT student_name FROM $Student WHERE student_ID='$user_ID'";

        $QUERY = mysql_query($SQL);

        $row = mysql_fetch_array($QUERY);

        $student_name = $row['student_name'];

        echo "<p align=\"center\"><b><big>学生: $student_name 感谢您的注册!<br><font color='red'><a href='index.php'>点此返回登录</a></font></big></b></p>";

        }//if'学生'

        else

        {

        $SQL = "SELECT * FROM $Teacher WHERE teacher_ID='$user_ID'";

        $QUERY = mysql_query($SQL);

        $row = mysql_fetch_array($QUERY);

        $teacher_name = $row['teacher_name'];

        echo "<p align=\"center\"><b><big>教师:$teacher_name 感谢您的注册!<br><font color='red'><a href='index.php'>点此返回登录</a></font></big></b></p>";

        }//else'教师'

      }//if

    }//if

    else

    {

       echo "<script>history.back();</script>";

    }//else

}//if

else

{

  echo "<script>history.back();</script>";

}//else

}//if

4.3.2 文件上传

在开发PHP项目时,经常遇到要上传文件的情况,出于安全考虑,我们不但要对上传文件的扩展名进行判断,同时还要避免上传文件的重名现象等问题,所以在本系统中采用如下代码进行实现。

$upload_file=$_FILES['upload_file']['tmp_name'];

/*存储文件名称*/

$upload_file_name=$_FILES['upload_file']['name'];

/*上传文件大小*/

$upload_file_size = $_FILES['upload_file']['size'];

 

if($upload_file)

{

  $file_size_max = 2*1024*1024;            //2M限制文件上传最大容量

  $store_dir = "/var/www/gms/UPLOADS/";   //上传文件的存储位置

  $accept_overwrite = 1;                   //是否允许覆盖相同文件

 

  if($upload_file_size > $file_size_max)

  {

    echo "<script>alert ('对不起,您的文件容量太大!');history.back();</script>";

    exit();

  }//if

 

  if(file_exists($store_dir.$upload_file_name)&& !$accept_overwrite)

  {

   echo "<script>alert ('存在相同文件名的文件!');history.back();</script>";

   exit();

  }//if

 

  if(!move_uploaded_file($upload_file, $store_dir.$upload_file_name))

  {

    echo "<script>alert ('文件上传失败,请重新上传!');history.back();</script>";

    exit();

  }//if

  else

  {

    $from = $_COOKIE['cookie_user_ID'];

    $time = date("Y-m-d H:i:s");

    $sql = "insert into $Upfile (upfile_name,upfile_size,upfile_path,upfile_from,upfile_time) value ('$upload_file_name','$upload_file_size','$store_dir','$from','$time')";

    $query = mysql_query($sql) or die ('连接错误!');

    if($query)

    {

    echo "<script>alert ('文件上传成功!');</script>";

    echo "<html><meta http-equiv=\"refresh\" content=\"0; url=send.php \"></html>";

    exit();

    }//if

  }//else

}//if

else

{

  echo "<script>alert ('没有发现文件!');history.back();</script>";

  exit();

}//else

 

 

4.4 安全控制技术

Web 窗体框架包含一组验证服务器控件,这些控件提供易用但功能强大的方法检查输入窗体的错误,并在必要时向用户显示消息,这样可以提高用户输入数据的正确性和可靠性,避免因为输入错误数据而使系统出现不必要的错误。

同时Web服务器不仅要为用户设置登录密码,以限制用户查看、运行和操作PHP页面的方式,还应对目录有访问控制,可限制特定人对特定目录的访问,如某特定学生只能访问存放有自己文档的目录。采用Session和Cookies等技术对非登陆用户进行了相应的处理。屏蔽了直接输入地址访问系统的后台管理页面以及通过外部链接地址访问本系统的后台管理页面。尤其是非注册用户将只能浏览网站首页内容,而不能浏览其他内容或下载相关资料。

 

4.5 本章小结

本章主要介绍了毕业设计管理系统的学生模块、教师模块和管理员模块的结构设计,以及讨论了整个系统的主要数据库结构参数及其构建和连接访问的实现。着重讲述了该系统的主要功能模块的代码实现,并介绍了系统主要采用的安全控制技术。

 

5 结束语

基于Web的高校毕业设计管理系统有着广阔的前景,必将对传统管理模式产生深远影响。本文从计算机学科的两个重要领域—计算机网络技术和数据库技术出发,分析了Web数据库及PHP技术在毕业设计管理系统中的应用。本文的主要工作如下:

1、探讨了数据库应用系统所经历的主机/终端—客户机/服务器—浏览器/服务器模式,重点讨论了B/S结构的工作原理及其特点,分析了实现Web数据库的不同方法,其中有中间件技术(CGI和API), Java技术、客户端下载、ASP技术、PHP技术,客观的分析了它们的优缺点。经讨论分析可知,PHP技术无论是在操作的可行性和方便性方面,还是在性能上,都是一种实现Web数据库的很好方法。

2、探讨了运用软件工程的基本原理去分析和设计实现毕业设计管理系统的过程。并对系统的开发原理、功能设计和模块的设计做出系统的分析。

3、论文详尽介绍了毕业设计管理系统的总体框架和使用的主要技术、以及功能的实现。

本文通过理论联系实际,对B/S结构上的Web数据库的不同实现方法作了详尽的分析,同时使用PHP技术开发的一个毕业设计管理系统。

本文仅在我们工作的基础上对这一问题作了初步的探讨,怎样更好地利用网络资源,怎样使教师与学生、学生与学生、教师与教师间的交流更为方便、快捷,怎样在网上查询中引入多媒体技术、人工智能技术和最新的网络技术等等,这些问题还有待进一步研究。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

致 谢

本文是在我的导师帖军副教授的悉心指导下完成的。

衷心感谢我的导师帖军副教授,导师渊博深厚的学识,敏锐的眼光,精辟的见解,创新的开拓精神,严谨认真的治学风范,勤奋谦逊的工作态度,以及忘我的工作精神是我终身的学习楷模,导师对我耐心的指导和严格的要求使我的学习有了不断提高和许多收获,并将继续激励我在今后的工作中克服困难,迎接挑战。真诚的向尊敬的导师致以崇高的敬意!

本人的论文得以完成,与所有的授课老师以及全体同学的启发和帮助是密不可分的,在此向他们表示衷心的谢意!

特别要感谢我的家人对我学习期间的理解、支持与鼓励!

计算机技术和网络技术日新月异地飞速发展,人们总是处在不断学习阶段,再加上作者水平有限,所以本文肯定存在不少错误和不尽如人意之处,欢迎广大老师和同学批评指正,在此深表感谢。

 

参考文献

[1] 杨明华 谭励 于重重 等编著. LAMP网站开发黄金组合[M].电子工业出版社.2008.06  P15-p22

[2] 设计动态网站的最佳方案:Apache+PHP+MySQL[J]. 计算机工程与设计. 中国期刊全文数据库. 2007.04

[3] STERLING HUGHES 等著.徐牧 贾东升 付清朝 许斌 等译.PHP经典实例[M]. 中国电力出版社出版. 2003.06

[4] 张亚飞 编著.飞思科技产品研发中心监制. CSS开发王[M]. 电子工业出版社,2008.06

[5] 吴雪 等编著. JavaScript实例自学手册[M]. 电子工业出版社, 2008.01

[6] 一种新型校园数据管理架构设计[J]. 武善玉; 李云鹤.  微计算机信息.  2008.18

[7] [美] G.B.戴维斯, M.H.奥尔森著. 陈培久,龙连文,黄梯云等译. 管理信息系统概念基础结构与研制[M]. 哈尔滨工业大学出版社. 1989.3  P124-150

[8] 史嘉权.数据库系统概论[M].北京:清华大学出版社.2006  P55-67

[9] PHP、Apache、MySQL的整合配置技巧[J].计算机与网络.中国期刊全文数据库. 2004.17

[10]基于PHP和MySQL技术的导航系统[J]. 情报杂志. 中国期刊全文数据库. 2004.12

[11]Web系统移植的PHP+MySQL设计研究[J].计算机系统应用.中国期刊全文数据库 . 2008.08

[12] PHP+MySQL注入漏洞分析与研究[J]. 光盘技术. 中国期刊全文数据库. 2008.10

[13] 郑人杰等编著.软件工程[M].清华大学出版社.1999 P40-62

[14] [美] Hugb E. Wiliams & David Lane 著. 0’Reilly Taiwan编译. PHP & MySQL Web 数据库应用开发指南[M]. 东南大学出版社出版. 2006.11  P132-153

[15] 潘爱民编著.COM原理与应用[M].清华大学出版社.1999  P30-46

[16] 使用PHP对信息进行加密传输的研究.刘丽萍; 张力宏; 张兰兰. 情报科学.  2009.09

[17][美] Hugb E. Wiliams & David Lane 著. 0’Reilly Taiwan编译. PHP & MySQL Web 数据库应用开发指南[M]. 东南大学出版社出版, 2006.11

[18] Apache+ PHP+MySQLLinux下的安装与配置[J]. 计算机与信息技术.中国期刊全文数据库.  2007.09

[19] 基于Linux+Apache+PHP+MySQL的OA系统页面校验技术[J]. 烟台师范学院学报(自然科学版). 中国期刊全文数据库. 2005.01

 

 

 

 

 

 

 

 

 

 

附 录

系统部分界面:

1、用户登陆界面

 

 

2、用户注册界面

 

3、学生用户管理界面首页

 

 

4、学生用户信息查询界面

 

5、学生用户信息及附件发送界面

 

 

6、教师用户添加论文信息界面

 

7、教师用户成绩评定界面

 

展开阅读全文

没有更多推荐了,返回首页