获取项目源文件,联系Q:1415736481,可指导毕设,课设
The Teachers' File Management System of
Nanyang Institute of Technology
Software Engineering Major Ji Likun
目 录
1 绪 论... 1
1.1 项目研究意义... 1
1.2 相关研究状况... 1
1.3 本文结构... 2
2 开发工具及相关技术... 2
2.1 常用开发工具... 2
2.1.1 Dreamweaver简介... 2
2.1.2 PHPED简介... 3
2.2 运行环境... 3
2.2.1 PHP. 3
2.2.2 Apache. 3
2.2.3 MySQL. 4
2.2.4 集成开发环境的搭建... 4
2.3 相关技术... 4
2.3.1 PHP的工作原理... 4
2.3.2 JavaScript语言... 5
2.3.3 CSS样式... 5
2.4 B/S结构简介... 5
3 系统需求分析... 6
3.1 系统运行环境需求分析... 6
3.1.1 硬件环境... 6
3.1.2 软件环境... 6
3.2 系统用例需求分析... 6
3.2.1 系统边界的定义... 6
3.2.2 用例模型... 7
3.2.3 主要用例描述... 8
3.3 系统功能需求分析... 9
3.4 系统性能需求分析... 10
3.5 系统数据需求分析... 11
4 系统概要设计... 11
4.1 系统网络架构设计... 11
4.2 系统功能模块分析... 12
4.3 系统使用流程分析... 13
4.4 系统实体E-R图... 14
4.5 数据库表的设计和创建... 15
5 系统详细设计与实现... 18
5.1 网站界面设计... 18
5.2 用户登录窗口... 18
5.3 系统主界面... 21
5.4 管理员列表... 23
5.5 教务处管理员页面... 24
5.6 教师基本信息页面... 25
5.7 添加教师档案信息页面... 28
5.8 密码修改... 29
5.9 教师日志系统页面... 30
5.10 数据库备份... 31
结束语... 33
参考文献... 34
附录... 35
致谢... 37
教师档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教师档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件人事档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间过长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对教师信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高教师信息管理的效率,也是各高校的科学化、正规化管理,与世界接轨的重要条件。
因此,为学校开发这样的管理软件成为很有必要的事情,随后我们将采用软件工程的生命周期开发方法,以开发一套教师档案人事管理系统为例,详细叙述其开发过程和所涉及到的问题及解决方案。
在欧美这些发达国家,在90年代就已经完全实现校园数字化管理,各国都在加快自身信息化建设进程,随着计算机技术的高速发展以及网络技术逐步深入,出现了基于C/S及简单的B/S的管理信息系统,极大地改善了工作环境,提高了工作效率,C/S结构在异构化网络中存在着较多的问题,在日常维护和资源使用中开销较大、部署麻烦,而简单B/S结构的系统功能很难满足需要,随着信息网络技术的进步以及当前电子政务普及推广和纵深发展,基于B/S结构的信息系统得到了巨大的发展,越来越多的高校建立了各类基于B/S的校园信息管理系统,此类系统较好地实现了系统内部开放式的、多平台兼容的与Internet对接的操作和维护[1]。
我国在计算机这方面起步晚,于90年代后期才真正开始计算机的应用。虽然起步晚,但是随着计算机的大众化普及,信息化建设现正取得到政府高度重视,信息化建设现正在进展如火如荼,但是目前国内各种高校信息管理系统很多是委托软件开发企业或自行研发,仍然存在着较多的问题:
(1)软件企业很难做到精确的需求分析,而且他们往往采用现成的通用模板,做不到为用户量身定制;
(2)软件厂商只了解开发当时的需求,缺乏对系统灵活性和扩展性的考虑,用户只能采用开发时确定的思路和工作流程来处理信息,对管理流程中产生的变化缺乏弹性;
(3)高校自行开发的系统在技术方面相对落后,功能、后期维护及安全性方面存在着一定的缺陷;
(4)各部门单独维护一套数据,缺乏兼容和共享,同时极易造成信息的冗余和一致性问题。
因此,有必要建立有效,统一的教师档案管理系统,实现教师档案业务的共享操作,保持数据的一致性、完整性、时效性,实现信息资源的共享,使规范的管理透过现代化的信息系统深入人事的业务和管理流程,理顺工作关系,提高工作效率。故未来高校管理各子系统之间应该实现信息共享,形成一个综合信息系统,分级按权限分配给用户使用[2]。为学校开发这样的管理软件成为很有必要的事情,随后我们将采用软件工程的生命周期开发方法,以开发一套教师档案人事管理系统为例,详细叙述其开发过程和所涉及到的问题及解决方法。
本次毕业设计论文主要包括五个部分的内容。
第一章绪论主要介绍了本课题研究的的目的和意义,国内外发展的现状,以及本课题要解决的问题。
第二章开发工具及相关技术,主要对软件开发的过程、策略和方法的介绍,以及对进行本课题研究所用到的工具软件和运行的环境,所用到的技术,所用到的结构的介绍。
第三章需求分析,主要对系统的运行环境、系统用例、系统的功能、系统的性能需求分析,以及对系统数据需求的相关知识。
第四章系统概要设计,通过第三章的需求分析,然后对系统进行概要设计,包括了系统网络结构设计,系统各个功能模块的分析,系统使用流程的分析,系统用到的实体E-R图,和系统数据库中表的设计和创建。
第五章系统详细设计与实现对系统的设计和实现进行详细的介绍,各个模块界面都用了文字截图和代码进行描述。
Dreamweaver是美国Adobe公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。Dreamweaver是一个可视化的网页设计和网站管理工具,支持最新的Web技术,包含HTML检查、HTML格式控制、HTML格式化选项、HomeSite/BBEdit捆绑、可视化网页设计、图像编辑、全局查找替换、全FTP 功能、处理Flash和Shockwave等富媒体格式和动态HTML、基于团队的Web创作。在编辑上你可以选择可视化方式或者你喜欢的源码编辑方式[3]。
PHPED 的综合性能是最好的,启动速度很快,提供的功能也是最多的,包括语法加亮、函数补全、工程管理、代码模版、自动代码补全、可视化的数据库管理、内置 DAV、CVS、FTP、WEBSERVER、DEBUGGER,以及 JS 代码列表,常见 HTML 标签集,另外PHPED 还支持插件技术。虽然zde有它所有的调试功能,但是phped更方便,比如调试时将鼠标放在变量上就可以直接看到变量的值,而且调试窗口的分布较细致和合理,而且支持外部脚本调试,zed虽然也能实现,但设置起来比较麻烦一点。
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。它可以比 CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快[4]。
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[5]。
通过互联网直接下载WAMP集成开发环境。Wamp就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问php的安装问题了,WAMP一切都搞定了,这个软件在win平台上使用的较多。
Wamp Server并不仅仅是一个软件包,它会在工具栏中安装一个界面,帮助你启动、监控、关闭各项服务。使用Wamp Server的一大优势在于:你再也无需亲自修改配置文件了。同时,它还能创建一个目录,所有文件都将储存在这个名为“www”的根目录下。
一个完整的PHP系统由以下几个部分构成:
操作系统:网站运行服务器所使用的操作系统。PHP不要求操作系统的特定性,其跨平台的特性允许PHP运行在任何操作系统上,例如,Windows、Linux等。
服务器:搭建PHP运行环境时所选择的服务器。PHP支持多种服务器软件,包括Apache、IIS等。
PHP包:实现对PHP文件的解析和编译。
数据库系统:实现系统中数据的存储。PHP支持多种数据库系统,包括MySQL、SQL Server、Oracle及DB2等。
浏览器:浏览网页。由于PHP在发送到浏览器的时候已经被解析器编译成其他的代码,所以PHP对浏览器没有任何限制。
如图2-1所示,图中完整地展示了用户通过浏览器访问PHP网站系统的全过程,从图中可以更加清晰地了解它们之间的关系。
图2–1 PHP的工作原理
JavaScript是目前Web应用程序开发者使用最为广泛的客户端脚本编程语言,它不仅可用来开发交互式的Web页面,更重要的是它将HTML、XML和Java applet、flash等功能强大的Web对象有机结合起来,使开发人员能快捷生成Internet或Intranet上使用的分布式应用程序。另外由于Windows对其最为完善的支持并提供二次开发的接口来访问操作系统各组件并实施相应的管理功能,JavaScript成为继.bat(批处理文件)以来Windows系统里使用最为广泛的脚本语言[6]。
JavaScript脚本语言由于其效率高、功能强大等特点,在表单数据合法性验证、网页特效、交互式菜单、动态页面、数值计算等方面获得广泛的应用,甚至出现了完全使用JavaScript编写的基于Web浏览器的类Unix操作系统JS/UIX和无需安装即可使用的中文输入法程序JustInput,可见JavaScript脚本编程能力不容小觑。
CSS是Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。由于允许同时控制多重页面的样式和布局,CSS 可以称得上 WEB 设计领域的一个突破[7]。作为网站开发者,你能够为每个 HTML 元素定义样式,并将之应用于你希望的任意多的页面中。如需进行全局的更新,只需简单地改变样式,然后网站中的所有元素均会自动地更新。
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新[8]。
处理器:Inter Pentium 166 MX或更高
内存:256MB以上
显卡:SVGA显示适配器
其他为常规硬件配置,对显卡、声卡都无特别要求。
操作系统:windows7/Linux
数据库: MySQL
服务器: Apache
开发语言:PHP
浏览器: IE6或chrome
其他辅助软件:Dreamweaver,Word,Photoshop 等。
教师档案管理系统是教育单位不可缺少的部分,对于学校的决策层和管理层来说都是至关重要的,所以教师档案管理系统应该为用户提供充足的信息和快捷的查询方式。在此之前,学院的管理方式存在着许多缺点和漏洞,例如:效率低、保密性差。另外时间一长,将产生大量的文件和数据,这给文件的查找、更新和维护都带来了不少的困难,教师档案管理系统将有效地解决这些问题。
系统边界用来划分系统外部的参与者用例和内部的参与者用例,所以根据对系统的需求特点进行分析,可定义出系统边界,通过用例图表示,如图3-1所示,从图中能够看出本系统面向普通教师与管理人员,其主要分为信息浏览与管理两个部分,并给出主要用例。
图3–1 系统边界
系统主要由两大部分组成:一是信息管理部分,主要用来让管理人员对教师各项信息及用户进行管理;二是信息浏览部分,主要让普通教师来使用。因此对这两者分别建立用例模型。
此由学校的管理员或者专门的教务人员使用。管理员只要登录系统,就可完成以下操作:
a.对教师各项信息的维护
b.对用户管理,其中包括添加用户,删除用户,修改用户权限等
c.对修改以后的系统浏览
根据分析可得到其用例模型,如图3-2所示:
图3–2 管理者用例图
此由普通教师使用,没有管理的权限,只要登录系统浏览和修改本人的基本信息资料:
a.浏览信息
b.修改信息
根据分析可以的到用例模型如图3-3所示:
图3–3 信息浏览者用例图
在用例模型建立以后,需要对每个用例都进行描述,以用户管理用例作为例子进行描述。
a.打开管理界面
[管理员]:打开“用户信息”功能。
[系统]:显示用户管理界面。
b.增加用户
[管理员]:在添加用户界面内选择“添加用户”功能。
[系统]:显示用户信息添加页面。
c.填写用户登录信息
[管理员]:填写名称、密码等信息,限定权限。
[系统]:显示并且记录管理员输入的信息。
d.验证用户管理信息
[管理员]:管理员填写完新用户所有信息之后,要求系统验证信息合理性。
[系统]:检验用户名称不为空并且不重复,密码不为空。
e.提交
[管理员]:所有验证通过之后,管理员进行提交。
[系统]:保存该用户,并记录该用户所有的信息。
管理员成功登录管理系统。
如果用例执行顺利,那么新用户的信息都会被存储;否则系统状态应保持与用例执行前一样。
该用例事件流结构可用活动图描述,如图3-4所示:
图3–4添加用户活动图
设计教师档案信息管理系统的功能要求:实现用户身份管理:注册、更改、删除;实现用户身份验证。实现用户访问控制,设计某种访问策略,可以按照对目标系统的访问权限组织用户组,并且根据用户组进行用户角色的权限分配和控制[9]。
本系统的主要用户是所有的教师和管理人员,系统管理人员起着决定性的作用。系统设计了两种权限。系统设置页面主要用于设置搜索与系统的使用权,只有管理员可以使用搜索,禁用,启用,删除功能,教师只能查看自己所添加的资料信息,不能对其进行相应的管理操作。数据维护具有完善的数据管理维护功能。系统包括数据初始化、数据备份、数据导入和导出。
通过实际调查,根据南阳理工学院目前应用要求,人数规模以及设计的预期估计的应用需求,对一些成功案例进行分析借鉴后,本系统应具有以下功能特点:
根据以上系统功能要求,系统将以B/S模式提供界面友好,运行稳定,提供同时在线人数较多的浏览窗口。
本系统可以实现许多性能特性,如:实用性、灵活性、可扩展性、易维护性、可靠性等等。
实用性是衡量一个应用系统好坏的重要指标。是否与业务紧密结合,是否具有严格的业务针对性,是系统成败的关键。本系统是在对各大高校教师档案如何进行管理的基础上实现的,其实现的功能可以有效的记录教师的各种档案,充分体现了它的实用性。 简单明了的页面布局使得教师档案的录入、查询、修改和删除更为简便,详尽的教师档案可以根据各种基本资料查询;另外,还对教师的基本档案和各项个人研究进行统计、管理,使得教师的档案井然有序,并可用报表的形式表示出来。
本系统提供了灵活的查询模块可将教师的基本资料、教学情况、科研成果用列表的形式简单明了的显示出来,达到提高查询效率、界面直观的效果。
随着系统应用的普及和推广,系统功能的扩展将是不可避免的,因此,提高系统的可扩展性、可维护性是提高整个系统性能的必然要求。本系统采用模块化的设计思想,在结构上具有良好的可伸缩性,使用者可根据实际管理需要扩展模块。
本系统采用多层架构设计,使系统结构更清楚,分工更明确,对教师档案的定时的后期维护更有利。
整体的系统安全性是本系统中必须考虑的重点要求。在该系统设计中,安全、可靠将作为第一要素。同时,利用细分的权限管理,拒绝非法用户进入系统和合法用户的越权操作,避免系统遭到恶意破坏,防止系统档案被窃取和篡改。此外,还有良好的用户身份认证体制和灵活的密码更改模块;同时用户权限也可以通过管理员灵活修改。
为保证系统数据的安全性,防止出现数据丢失、数据随意改变、死机等现象,需要对数据库的使用权限做出划分,不同身份的人员进入系统后使用不同的数据资源。
在权限管理方面,根据实际操作情况,对后台数据库不用做严格的权限控制,只要通过前台数据库对用户登录权限进行严格划分和控制就可以了。不是管理员的用户不能对数据进行修改、删除和新增等操作。
社会向信息时代迅速发展的同时也有潜在危机,即对信息技术的依赖程度越高,系统失效可能造成的危害和影响也就越大。因此,采用良好的操作系统和数据库,确保数据的一致性和完整性,并使系统免受病毒感染,确保系统运行的可靠性具有重要意义。
本系统对教师档案进行统计及管理工作,提高了管理质度,减轻管理人员的工作量,提高了档案管理的效率。
除了具备以上几点特性,系统还应具备长期持续稳定工作的能力,保证系统内部不出现杂乱现象
数据库需求分析调查的重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的需求。
信息需求:指用户需要从数据库中获得信息的内容与性质,即在数据库中需要存储哪些数据。
处理要求:指用户需要完成什么处理能力。明确用户对数据有什么样的处理要求从而明确数据之间的关系。
该系统的功能集中表现为对教师信息的录入、更新、删除、查询、统计,因此需求集中表现为对“数据”的需求。
概念结构设计是将分析得到的用户需求抽象为概念模型的过程,它是整个数据库设计的关键。
本系统是在现有校园网络架构的基础上构建的,网络架构完全符合三层体系结构 B/S 模式,客户端在各自 PC 端通过用户利用网络进行访问登录,获得系统相应权限后应用本系统。Web 服务器响应客户提出的请求进行处理及与数据库交换数据,并将处理结果通过网络返回浏览器的客户端。根据系统需要、硬件建设情况和B/S 模式自身的特点,教师档案信息系统采用B/S体系结构,结合PHP技术,应用在服务器端和客户端。整个信息管理系统的实现主要分为三个部分:PHP界面、Web服务器和数据库,是一个三层结构。B/S 模式教师用户、教务管理员和系统管理员使用,其业务主要是数据的查询、资料修改和导出。数据集中存放,数据库服务器设立在学校网络中心,B/S 模式客户端通过浏览器登陆和操作。
表示层由PHP界面组成,用以实现 Web 界面显示和调用组件,业务逻辑和数据的访。为了便于维护、升级和实现分布式应用,在实现过程中,将业务逻辑层和数据访问层分离开,PHP界面不直接调用数据访问层,而是通过业务逻辑层调用数据库。需要用 Web处理的、满足大多数访问者请求的功能。界面采用 B/S 结构,例如教师可以通过浏览器查看修改资料;管理人员通过浏览器对资源数据进行管理与维护以及查询统计。这样客户端比较灵活,可充分发挥各种模式的优越性。
系统模块分析可以根据模块独立原理对软件结构进行精化。为了合理的分解,得到尽可能高的内聚、尽可能松散的耦合,最终要的是,为了得到一个易于实现、易于测试和易于维护的软件结构,应该对模块进行再分解或合并。
本系统包括三个模块:用户基本档案模块、用户管理模块、数据管理模块。本系统主要管理教师的档案,其中管理员可以拥有最高的权限,教务处管理员拥有所在院系的教师档案管理的权限,普通的教师用户只有管理自己基本信息档案的权限。如图4-1所示:
图4–1 系统模块分析图
用户基本档案模块主要是对教师信息录入和修改,录入主要是用来记录教师的各种信息主要分为三个部分:基本情况、学历情况、工作信息等。基本情况需要填写姓名、性别、身份证号等信息。这些是一个教师的最基本的情况,也是必须填写的。学历情况要求填写毕业的时间,毕业的学校以及所学的专业。工作经历包括三个部分:职称职务及其评定时间、培训经历和获奖情况等。备注中可以就其他没有说清楚的问题加以补充说明。
用户管理模块与用户基本档案模块有一些交叉的部分,比如说用户基本档案模块也可以对教师的基本信息进行修改等操作,基本方法与与用户基本档案模块很相似。可以说用户管理模块就是用户基本档案模块的补充和延伸。但是在功能方面,用户管理模块增加了对用户权限的管理,把用户基本档案模块单独列出来,可以大大提高管理员管理信息的效率,增强系统的可用性。
用户管理模块的修改功能主要是对教师的进行修改、删除等操作。此模块以教师的姓名作为关键字对教师的整体信息一一列举。点击详细按钮就会跳到教师相信信息页面,教师的基本情况、学历情况、工作成绩等信息可以任意做修改和补充。点击删除按钮就会弹出一个对话框让管理员确认是否真的删除,点击是就会删除信息,若选择否则信息不会被删除。此外该模块为了提高管理员修改信息的效率还提供了以姓名为关键字的检索,可以快速的查找,提高工作效率。管理员账号可以对其他各个帐户进行管理。主要有禁用启用账号、添加账号、删除账号等几个功能。
数据管理模块主要是对数据的操作,保证数据的安全性。可以对单独的查询结果,或者全部的结果以Excel表格的形式导出,也可以对数据库做整体的备份。备份后的数据库,还可以重新导入。
系统在使用过程中,首先必须登录系统,在没有登录系统的时候,非法打开后台页面则会弹出提示尚未登录,然后跳回到登录界面。当用户登录时候,根据登录时选择的身份来判断分配用户的权限。不用身份的用户权限是不一样的,这样保证了系统的安全性。
系统提供用户名和密码管理以及权限设置,大量使用信息隐蔽性设计,把一些复杂的内部逻辑关系隐蔽起来,例如那个功能模块对象对应那些动态表和静态表,适当的使用数据库加密技术,以提高系统的安全性。
用户在登录后,根据自己的权限,来进行相应的操作。在登录后,会显示登录的身份信息。操作完毕后,可以选择退出登录,来释放资源。退出登录按钮有确认机制,防止误操作带来的不便。
为了更清楚地说明系统框架,对本系统有一个整体上的初步认识,就给出了系统使用流程图。在用户输入的登录信息后,先根据用户选择的身份,来从相应的数据库中读取信息,判断信息是否匹配,当信息匹配后,再根据权限进入相对应权限的页面。如图4-2所示:
图4–2 系统使用流程图
数据库的概念设计做充分需求分析,对所有涉及到的数据都要求有所考虑,并充分考虑不同来源的数据是否有矛盾、是否有冗余、数据量大小、每个数据项名称、类型、长度、取值范围,数据项之间关系以及数据项要求的操作及操作频度等,这也是十分艰巨而繁琐却有必要的工作步骤[10]。E-R 模型的组成元素有实体、属性、联系。E-R 模型用 E-R 图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述[11]。
根据前面对系统做的需求分析和模块的分析设计,就可以作出能够满足用户需求的各种实体以及它们之间的关系,然后规划出本系统中使用的数据库实体分别为系统管理员实体、教务处管理员实体和教师实体。
系统管理员实体记录了管理员的编号,账号和密码信息。系统管理员就有最高的权限,可以对其他的用户的信息和用户的权限进行管理。如图4-3所示:
图4–3 系统管理员实体
教务处管理员实体主要记录了用户的账号、密码、编号、状态以及所管理的院系信息,如图4-4所示。不同的教务处管理员分别管理不同的院系,也就是说一个教务处管理员实体只能管理自己的院系,而不能对其他的院系进行管理,所以在查询的教师信息的时候,只能查询到自己院系的教师的档案信息,对查询到的档案信息进行修改和删除管理。
图4–4 教务处管理员E-R图
教师实体包括了教师用户所有详细的信息,其中包括编号、姓名、性别、出生日期、政治面貌、家庭住址、手机、固话、邮箱、学历、学位、毕业时间、毕业院校、所学专业、参加工作时间、职务、职称、所在院系、获奖情况、备注等属性。简单概括为下如图4-5所示:
图4–5 教师实体
根据教师档案管理系统的功能要求和实体E-R图的分析,系统数据库中各个表的设计结果如下面表中所示。每个表格表示在数据库中的一个表。
管理员信息表,用于记录管理员的账号密码。管理员的ID是自动生成的,不能手动修改,并且作为主键约束使用。用户名和密码都不能为空。如下表4-1所示:
表4–1 管理员信息表
教务处管理员信息表,记录了教务处管理员的账户密码,而且还记录了教务处管理员所在的院系和状态。不同院系的管理员,只能管理自己所在院系的教师档案,也只能查看自己所在院系所有的教师档案列表,对其他院系的教师档案不能进行操作,从而保证数据的安全性。教务处管理员的状态,标示这当前这个教务处管理员可用不可用,当属性为1时候表示可用,当为0时候标示禁用,当被禁用的管理员登陆的时候,则会提示状态禁用。如表4-2所示:
表4–2 教务处管理员信息表
院系信息表,用于记录院系信息。根据南阳理工学院的实际情况,院系设置默认有18 个院系,分别为机械与汽车工程学院、计算机与信息工程学院、电子与电气工程学院、土木工程学院、建筑与城市规划学院、艺术设计学院、经济与管理学院、外国语学院、数理学院、音乐学院、文法学院、生物与化学工程学院、张仲景国医学院、软件学院、国际教育学院、教育学院、成人教育学院、体育教学部和政治理论教学部。把院系信息单独成表,就是为了方便后期对院系信息的维护管理,例如学校新增院系时候,方便添加。教务处院系表如表4-3所示:
表4–3 教务处院系表
教师用户登录表,用于记录教师用户登录的账号和密码,教师用户需要先注册会登录,注册时候需要提供唯一的身份证号,另外还有账号的状态位,标示账号目前的状态。状态有0和1两种类型。其中1表示启用,而0则表示禁用,被禁用的用户是不能登录系统的。表中的用户ID号是主键,而身份证号码是外键,教师用户在注册的时候,需要填写自己的身份证号,然后根据教师信息表中的身份证号所对应的ID号,来创建教师用户登录信息,所以这个表中的身份证号受教师信息表中的身份证号约束。密码在数据库中存储都以MD5的方式加密处理,保证数据的安全性。教师用户登录表如表4-4所示:
表4–4 教师用户登录表
教师基本档案表,详细记录教师的基本档案信息。包括了姓名,性别,生日,身份证,照片,政治面貌,民族,手机等个人的基本资料,也包括了院系,工作时间,主要成就等工作的档案信息。其中ID是自动生成的,ID和身份证号与教师用户登录表中的ID和身份证号一一对应。而姓名,性别,身份证等重要信息为必填项,不允许为空。教师信息表如表4-5所示:
表4–5 教师信息表
成功的网站,是技术、艺术、形象与业务的有机组合。因此,在设计中以其结构组织、页面风格、层次关系等表现出业务流程,以先进的网页技术与高超的平面设计水平展示主题,以合理的结构层次和准确的链接关系表达主题结构[12]。
这次设计,主页主要以浅蓝色为主要色调,蓝色有镇定情绪的作用,富有理智感,浅蓝色清新自然,配以橙色的标题,让人感觉到温暖。
主体的框架以浅蓝色为主色调,跟首页搭配,以富有科技感的配图,和南阳理工学院的标志logo相互衬托,加电脑键盘图点缀,电脑则代表现代科技。灰白色菜单栏象征着宽阔的视野和内涵,和广博的学术储备,如此结合更易体现教师档案管理系统的用途和意义。
网站界面设计中,优化也很重要。网站优化的基本思想是:通过对网站功能、结构、布局、内容等关键要素的合理设计,使得网站的功能和表现形式达到最优效果,可以充分表现出网站的人性化和网络营销功能,坚持以用户导向。
网站设计对用户优化的具体表现是:以用户需求为导向,设计方便的网站导航,网页下载速度尽可能快,网页布局合理并且适合保存、打印、转发,网站信息丰富、有效,有助于用户产生信任。
网站设计对运营维护优化的含义是:充分体现网站的网络营销功能,使得各种网络营销方法可以发挥最大效果,网站便于日常信息更新、维护、改版升级,便于获得和管理注册用户资源等。
用户登录模块是进入学校管理系统的入口,主要用于验证身份,确保数据的安全性。在该页面中,用户可以通过输入正确的账号和密码,选择登录的身份后,输入验证码,就可以成功进入系统。不同身份进入系统后,所拥有的权限是不一样的。保证登陆窗口的正确性与在错误发生时的容错与纠错性[13]。当输入的信息有误时,系统会根据输入的不同的错误信息,给以不同的提示。
在用户输入登录信息后,就需要对数据库进行连接,所有数据库的信息和对数据库的操作都封装在函数中。
function Db($arrParams = array('host'=>'localhost', 'user'=>'root', 'pwd'=>'root', 'db'=>'tms'))
{
$this->_host = $arrParams['host'];
$this->_user = $arrParams['user'];
$this->_pwd = $arrParams['pwd'];
$this->_db = $arrParams['db'];
$this->_open($this->_db);
}
function login($array,$table,$url)
{
$db=new Db();
$users=array_keys($array);
$user=$db->fetchRow("SELECT ".$users[1]." FROM ".$table." where '$users[0]'='$array[v_username]'");
if($user[v_password]==$array[v_password])
{
echo "";
echo "";
}
else
{
echo "";
echo '';
}
}
function close()
{
mysql_close();
}
?>
在登录的时候,还需要输入验证码。验证码是设置一个随机数的种子,然后当验证码看不清时,可以通过鼠标点击,触发点击事件来刷新验证码。登录后,会把用户的登录信息记录在session中,方便以后的查询操作。登录界面如图5-1所示:
图5–1登录页面
新用户可以通过教师注册,来实现登录。在点击教师注册的时候,弹出一个单独的页面,用户注册教师用户。注册的时候,填写的内容格式有一定的限制,鼠标放上去会给以响应的提示,比如用户名密码和身份证号码的位数。如下图5-2所示:
图5–2 教师注册页面
在点击登录按钮后,可以判断用户名,密码,验证码是否为空,如有空的或密码错误,就会提示后返回到登录页面。不同的错误给以相应的提示,方便用户修改。
登录界面验证代码:
//global $user;
session_start();
include("main/db.php");
$db=new Db();
$userName=$_POST['userName'];
$userPwd=$_POST['userPwd'];
$type=$_POST['type'];
$code=$_POST['code'];
$userPass=md5($userPwd);
if($_POST['userName']==""){
echo "";
echo "";
}else if($_POST['userPwd']==""){
echo "";
echo "";
}else if(!isset($userName)){
echo "";
echo "";
}else if(!isset($userPwd)){
echo "";
echo "";
}else if(!isset($type)){
echo "";
echo "";
}else if(!isset($code)){
echo "";
echo "";
}else if($_SESSION['VCODE']!=$code){
echo "";
echo "";
}
?>
系统的主界面,使用了框架设计,上方显示学校logo和标题,同时显示了登录的账号和退出系统的选项。标题居中大方美观。如图5-3所示:
图5–3主框架页面
主页面显示了当前的时间,注重用户体验的细节,不但温馨,而且给用户带来了便利。在用户登录后显示当前的用户账号信息,可以直接明了呈现给浏览者。同时退出系统的按钮位置也很显眼,方便用户的操作。在点击退出系统时候,后弹出一个确认的对话框,以防止误操作带来的不便。
左下框架是导航栏,在导航栏是实现了菜单的动态显示,不同权限的用户登录上来,看到的导航栏是不一样的,但是代码却实现了复用。
动态实现显示导航代码:
导航栏还实现了子菜单的缩放,点击后可以收起子菜单,再点击就可以重新显示出来。这里用到了javascript语句的控制,先判断当前导航栏的状态,点击后再修改收缩状态。导航栏上面还显示了当前登录用户的身份,不同身份具有的权限不一样,所以菜单也是不一样的。右侧是内容页面,点击左侧菜单后,所有的内容显示到右侧的框架中,方便快捷。导航栏缩放效果。如下图5-4所示:
图5–4 导航栏
导航栏点击收放功能实现:
function expand(el)
{
childObj = document.getElementById("child" + el);
if (childObj.style.display == 'none')
{
childObj.style.display = 'block';
}
else
{
childObj.style.display = 'none';
}
return;
}
src="../images/menu_icon.gif" width=9> |
|
管理员拥有系统的最高权限,可以教务处管理员增删查改和权限的分配,还可以对教师用户进行增删查改操作,同时可以维护系统的数据,对系统的数据库进行备份等操作。管理员具有的权限比较大,相对来说管理员的数量不会太多,所以并没有对管理员页面对分页处理。如图5-5所示:
图5–5管理员页面
管理员可以在查看用户列表的时候,对其他用户进行删除操作,当删除后,则不能再等了本系统。在添加管理员的时候,需要输入两次密码确认,防止误操作。输入框后面的“*”号表示不能为空,当有输入框为空时候提交信息,则会弹出对话框提示。
添加管理员时候,需要实时判断数据的合理性,并给以响应的图片的提示,这里用到了ajax的动态显示技术。主要代码为:
//ajax判断 数据合法性
function outputsetmsg($msg)
{
/*echo "";*/
if("0"==$msg)
{
echo "";
exit();
}
else
{
echo "";
exit();
}
}
教务处管理员是分院系的。教务处管理员是由超级管理员分配的权限,教务处管理员列表只有管理员才能查看,教务处管理员列表记录了教务处管理员的账号和所管理的院系,超级管理员可以对教务处管理员设定权限,启用和禁用,删除的操作[14]。
启用后教务处管理员的状态位,修改为1,当被管理员禁用后,状态位修改为0,此时这个教务处管理员不具有登录的权限。点击删除后,同样会弹出确实的对话框,防止误操作。如图5-6所示:
图5–6 教务处管理员页面
实现管理员列表主要代码:
教务处管理员 | 院系 | 操作 |
{ ?>
else { ?>
|
||
在添加管理员的时候,不但要输入账号和两次密码,还要添加所管理的院系。所以教务处管理员只能管理自己的院系,也只能查看自己的院系的教师列表,对自己院系的教师列表进行操作。如图5-7所示:
图5–7添加教务处管理员页面
教师用户列表,显示了所有的教师用户的基本信息,点击详细资料,可以查看教师的全部资料,管理员可以对教师的权限和资料进行修改,教师用户只能看到自己的资料。
全选和反选按钮,可以方便批量操作,同时对多个用户进行操作。实现代码如下:
function TogSel(str)
{
var ems = document.getElementsByName(str);
for(i=0; i < ems.length; i++)
{
ems[i].checked=!ems[i].checked;
}
}
function checkAll(str)
{
var a = document.getElementsByName(str);//取得选择框
var n = a.length;//获取选择框的长度
for (var i=0; i a[i].checked = true;//将全选框的选择状态赋给下面的选择框 } 由于教师用户的数量比较多,所以对教师用户信息进行了分页操作。可以很明显的看到当前的页数,和所有的页数。可以方便的点击首页,上一页,下一页,尾页进行页面操作,也可以快速的选择页面进行跳转。如图5-8所示: 图5–8 教师用户管理页面 教师档案查询和数据导出功能很重要。在点击查询后,可以对输入的关键字进行检索,多条件的查询来搜索数据,方便查找。关键字可以用姓名,性别,身份证号码,和所在的院系等。如图5-9所示: 图5–9 查询与导出 查询条件拼接代码: if($_POST['search']) { $search_name=$_POST['search_name']; $search_sex=$_POST['search_sex']; $search_idcard=$_POST['search_idcard']; $search_area=$_POST['search_area']; if($search_name){ $swhere.=" and a.name like '%".$search_name."%'"; } if($search_sex){ $swhere.=" and a.sex='".$search_sex."'"; } if($search_idcard){ $swhere.=" and a.idcard;='".$search_idcard."'"; } if($search_area){ $swhere.=" and a.area='".$search_area."'"; } $sql="SELECT a.id as id,a.name as name,b.name as aname, a.* FROM teacher a ,area b,education c where a.area=b.id and a.education=c.id $swhere order by a.id "; 数据导出可以对查询后或者全部的数据进行导出。导出时以当前的系统时间命名。在PHP中,有专门的导出Excle的专用类库,直接调用系统的导出功能就可以把数据导出在表格中。 数据导出功能实现代码: //输出的文件类型为excel header("Content-type:text/html;charset=UTF-8"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachement;filename=TeacherReport_".date("Ymd").".xls"); //报表数据 $ReportArr = array( ); //填充数据 $ReportArr[]=array("姓名","性别","出生日期","身份证号码","政治面貌","地区","所在单位","手机","固话","电子邮箱","学历","学位","毕业时间","毕业院校","参加工作时间","职务","职称","职称评定时间","现任职","培训经历","获奖情况"); foreach($teacher as $k=>$v) { $ReportArr[]=array($v['Name'],$v['sex'],$v['birth'],$v['idcard'],$v['partisan'],$v['areafname'].$v['areaname'],$v['company'],$v['phone'],$v['tel'],$v['email'],$v['education'],$v['degree'],$v['graduation_time'],$v['graduation_school'],$v['work_time'],$v['post'],$v['title'],$v['title_time'],$v['office'],$v['train'],$v['award']); } $ReportContent = ''; $num1 = count($ReportArr); for($i=0;$i<$num1;$i++){ $num2 = count($ReportArr[$i]); for($j=0;$j<$num2;$j++) { //ecxel都是一格一格的,用\t将每一行的数据连接起来 $ReportContent .= ''.$ReportArr[$i][$j].' '."\t"; } //最后换行 $ReportContent .= " } //用的utf-8 最后转换一个编码为gb $ReportContent = mb_convert_encoding($ReportContent,"utf-8","utf-8"); //输出即提示下载 echo $ReportContent; //sleep(2); //程序暂停10s //header('location:list_teacher.php'); exit(); 教师信息列表里面显示教师的基本的信息,包括教师的姓名,性别,身份证号码和院系等。信息后面有详细资料和删除的快捷按钮。点击删除就可以直接删除数据。点击详细资料后,可以进入详细资料的页面。根据选中的用户的ID,在数据库中检索,找到想要的数据,并把用户的全部资料显示出来,并可以进行修改。 详细资料页面和添加教师档案页面是一样的,在显示的时候,先做判断,如果不是新增加数据的话,会从数据库里面读取数据,当点击保存的时候,会直接在数据库里面修改数据。而新增档案会直接在数据库里面添加新一条记录。具体的添加档案信息实现在下一节中详细介绍。 添加教师档案的时候,所有带红色“*”号标示的,表示为必填项,必须进行填写,否则会有输入不完整无法保存数据的提示。而且有的内容受到格式的限制,比如身份证的数字位数必须是18位。 用户不但可以保存信息,还可以选择保存头像图片,图片的格式和大小都有限制,当超出限制时,会有提示,并返回到编辑界面。如图5-10所示: 图5–10 添加教师档案 头像添加验证代码: //处理上传图片 $picName1=""; $uploadmsg=0; if (is_uploaded_file($_FILES['photo']['tmp_name'])) { //exit($_FILES['pic']['tmp_name']); $upfile=$_FILES["photo"]; $pname=substr($upfile["name"],-4,4); $type=$upfile["type"]; $tmp_name=$upfile["tmp_name"]; $size=$upfile["size"]; $error=$upfile["error"]; switch ($type) { case 'image/pjpeg': $alow="OK"; break; case 'image/jpeg': $alow="OK"; break; case 'image/gif': $alow="OK"; break; case 'image/x-png': $alow="OK"; break; case 'image/bmp': $alow="OK"; break; } if ($alow&&$error==0) { $radom=rand(1,100000); $picName1='photo'.$radom.$pname; move_uploaded_file($tmp_name,'../images/photo/'.$picName1); $uploadmsg=1; } if($picName1==''){ echo ""; exit(); } } 在其中的所有时间,比如在毕业时间,在获得鼠标点击的时候,自动弹出一个日历框,可以对时间进行选择,在选择了时间之后,自动生成时间的格式。日历框的生成是专门定义了一个日历的方法在Calendar.js中,方便多次使用。如图5-11所示: 图5–11 时间的输入界面 密码的修改在使用过程中也很重要,这也涉及到数据安全方面。如果你非常轻易地想出以abcd、123456、asdf等这些简单的字符作为密码,显然也最容易被别人猜到,因此它们的安全性是最差的[15]。 要想设置一个安全性足够高的密码,请务必注意以下几点: a.不要使用过于简单的密码,如"1111"、"abcd"等; b.不要使用自己的公开信息作为密码,如生日、电话号码、邮箱名、用户名等; c.最好使用数字、字母、下划线的组合,并且长度至少超过6位; d.可以考虑把与自己相关的一些信息组合起来拼成一个密码,比如真名叫王小明,身份证最后三位是037,住所的邮编是100081,可以考虑把密码取为类“wxm_037_081”等形式。 密码修改页面,需要对密码输入两次,防止输入错误,再输入的同时可以对输入的密码判断,判断密码长度是否符合规定,两次输入的密码是否一致,并且长度必须大于等于6位。 密码修改主要代码:
session_start(); include("../main/function.php"); include("../main/islogin.php"); if($_POST['submit']) { $pwd = get_value('oldpass','post'); $pwd2 = get_value('newpass','post'); $pwd3 = get_value('confirmpass','post'); $sql = "select * from admin where password='".md5($pwd)."' and username='".$_SESSION['userName']."'"; if( $pwd2!=$pwd3 || strlen( $pwd2)<6 || strlen( $pwd2)>12 ) { alert('两次输入的新密码不正确,请重新输入!',''); } else { if(mysql_num_rows( mysql_query($sql) ) ) { $sql="Update admin set password='".md5($pwd2)."' where username='".$_SESSION['userName']."'"; mysql_query($sql) or die(mysql_error()); alert('密码修改成功!',''); } Else { alert('旧密码不正确,请重新输入!',''); } } echo "";*/ if($_POST['submit']) { $array=array("username"=>$_SESSION['user'],"password"=>md5($_POST['newpass'])); $where="username='".$_SESSION['user']."'"; update($array,$where,"admin"); echo ""; echo ""; } else { echo "更新失败,请重试!"; } } ?> 在教师用户的权限页面里面还有个人日志系统,可以随时记录工作记录和日志信息,提高工作的效率。在输入日志后,可以自动记录输入日志的时间日期。如下图5-12所示: 图5–12 个人日志页面 所谓备份,就是通过特定的办法,讲数据库的必要文件复制到转储设备的过程.其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。 在教师档案使用的过程中,难免有些误操作,这是就可以通过恢复备份来解决。而作为管理员,在使用系统的过程中,就要保证系统的安全性,稳定性。管理员有责任从以下三个方面维护数据库的可恢复性; 而这次设计,在充分考虑了这些因素后,添加了数据库备份的功能。及时备份,数据无价。通过MySql提供的方法,实现这一功能。数据库自动备份在网站根目录db的文件夹里面。如图5-13所示: 图5–13 数据库备份 数据库备份功能实现代码:
session_start(); include("../main/function.php"); include("../main/ShowPage.class.php"); include("../main/islogin.php"); $db=new Db(); $mysqlstr = "C:\\\Program Files\\phpStudy\\MySQL\\bin\\mysqldump -uroot -hlocalhost -proot --opt -B tms > ../db/backup/".$_POST[b_name]; exec($mysqlstr); echo ""; ?> 数据库恢复功能的代码实现:
include("../main/function.php"); include("../main/ShowPage.class.php"); include("../main/islogin.php"); $db=new Db(); $mysqlstr = "C:\\\Program Files\\phpStudy\\MySQL\\bin\\mysql -uroot -hlocalhost -proot teacher < ../db/backup/".$_POST[r_name]; exec($mysqlstr); echo ""; ?> 结束语 本系统以教师档案管理功能为基础,涵盖了教师管理等方面,基本可以适应一个学校现代化网络教学的需要。系统设计是通过PHP和MySQL创建的功能比较完善的教师档案管理系统。采用PHP语言完成了功能模块的设计,系统中我们实现用户身份管理:添加、更改、删除;实现用户身份验证:页面身份验证;实现用户访问控制:设计某种访问策略,可以按照对目标系统的访问权限组织用户组,并且根据用户组进行用户角色的权限分配和控制。采用MySQL 创建了与系统相适应的数据库,并实现与系统连接,实现了用户界面下对数据库的操作。总的来说,本次系统的设计基本完成了设计任务,达到了设计要求,良好的完成了本次毕业设计要求的各项功能。 本次毕业设计,就要画上一个句号了。可是,对我来说,这次设计的本身所产生的影响,还远远没有结束,我从本次毕业设计中学到了许多课本上没有的知识。从设计任务书的下达到今天基本实现任务书中的设计要求,通过自己的学习和努力;通过各位老师的指导和教育,使我不仅仅在知识水平和解决实际问题的能力上有了很大的提高。还从思想的深处体会到,要把自己的所学变成现实时所将面对的种种难题。 在老师们的关心和帮助下,我渐渐的开始了设计。根据李蕊老师的建议,我找来了数据库设计与建设的相关书籍和资料,从最基本的问题入手开始一个个的解决我心中的疑惑。 这是一个漫长的学习过程。随着时间的推移,我开始慢慢的掌握了设计时所需要的知识。我也终于明白了大学学习的意义和作用。扎实的基本功和良好的学习习惯,能使自己在学习新知识有更深刻的认识力和更快的领会力。 同时老师对毕业设计的重视也是我能完成设计的一个重要条件。为了保证我们毕业设计的正常进行,学院抽调了优秀的老师指导我们进行毕业设计,提供良好的设备给我们,在软硬件上支持我们进行毕业设计,并且不时地询问我们毕业设计的进展情况。为我们这次设计的正常开展提供了必要的物质基础。 关于本次设计的课题要求,我的设计实现了其各项的功能。但还有许多的功能由于时间和自身因素无法得以实现,这是本次设计的遗憾之处,以后业余时间我会进一步完善系统的其他功能。不过,它已经启发了自己的思维,提高了我的动手能力,这是我在课本中学不到的。它也为我以后工作奠定了坚实的基础。从本次毕业设计中我学到了许多课本上没有的知识。通过各位老师的指导和教育,使我不仅仅在知识水平和解决实际问题的能力上有了很大的提高。还从思想的深处体会到,要把自己的所学理论变成现实还将面对很多困难。
";
选择备份的依据是:丢失数据的代价与确保数据不丢失的代价之比.还有的时候,硬件的备份有时根本就满足不了现实需要,比如误删了一个表,又想恢复该表的时候,数据库备份就变得重要了。
(1)使数据库的失效次数减到最少,从而使数据库保持最大的可用性;
(2)当数据库失效后,使恢复时间减到最少,从而使恢复的效益达到最高;
(3)当数据库失效后,确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可恢复性。