1、-学生档案管理系统 1 本科毕业论文 (科研训练、毕业设计 ) 题 目: 学生管理系统 学生档案管理 姓 名: 学 院:软件学院 系: 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日 -学生档案管理系统 2 学生管理系统 学生档案管理 摘 要 学生档案管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建 立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备 ,易使用等特点。经过分析 ,我们决定使用 PHP Chapter 2 introduc
2、ed some relevant technology and softwares of this project; Chapter 3 introduced the research and development process of this project; Chapter 4 covered the difficulties and the solutions during the developing process; reviewing analysis of the forecast, the defects and the key technics of this proje
3、ct; Finally Chapter 5 ended up with the summary of the thoughts and the gains of our team during the process. Keyword: PHP MYSQL DREAMWEAVER -学生档案管理系统 4 目 录 第一章 引 言 . 5 1.1 学生档案管理系统的主要功能 . 5 1.2 学生档案管理系统的目标 . 5 1.3 学生档案管理系统的设计要求 . 5 第二章 相关技术与软件介绍 . 6 2.1 Dreamweaver . 6 2.1.1 简介 . 6 2.2 PHP . 7 2.2.
4、1 简介 . 7 2.3 MySQL . 7 2.3.1 简介 . 7 第三章 项目开发流程 . 7 3.1 项目功能 . 7 3.1.1 学生注册模块功能 . 8 3.1.2 资料查询模块功能 . 8 3.1.3 管理员模块功能 . 8 3.2 开发环境的选择 . 8 3.3 系统安全性 . 9 3.3.1 安全性的一些概念及安全性设置 . 9 3.4 程序简单流程图 . 10 3.5 数据结构设计 .11 3.6 程序开发 . 12 3.6.1 程序设置模块 . 12 3.6.2 数据库的连接 . 13 3.6.3 部分页面函数 . 13 3.7 程序界面 . 16 第 四章 项目设计总结
5、和展望 . 16 4.1 界面设计 . 16 4.2 程序开发设计 . 17 4.2.1 用户权限的设置 . 17 4.2.2 数据库的访问 . 18 4.3 前景展望 . 18 4.4 缺陷与不足 . 18 4.5 关键技术 . 18 第五章 结束语 . 18 致谢 . 19 参考文献 . 19 -学生档案管理系统 5 第一章 引 言 本系统是根据现代化校园的发展而设计的基于 PHP 的学生档案管理系统,本系统可以方便老师、学生来学校查找学生的情况。实现全校学生信息在线查询。还可以对新来的学员信息进行信息录入 ,并由管理员负责审批通过。由于学生的情况复杂,可以实现信息修改,及时调整学员的基本
6、情况。 学生档案管理系统是一个教育单位不可缺少的部分 ,它的内容对于学校的决策者和管理者来说都至关重要 ,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式 管理文件档案,这种管理方式存在着许多缺点 ,如 :效率低、保密性差 ,另外时间一长 ,将产生大量的文件和数据 ,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高 ,计算机科学日渐成熟 ,其强大的功能已为人们深刻认识 ,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分 ,使用计算机对学生档案信息进行管理 ,具有着手工管理所无法比拟的优点 .例如 :
7、检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率 ,也是企业的科学化、正规化管理 ,与 世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情 ,在下面的各章节中我们将以开发一套学生档案管理系统为例 ,谈谈其开发过程和所涉及到的问题及解决方法。 1.1 学生 档案管理 系统的主要功能 学生 档案管理 系统主要的功能就是管理学生档案, 学生资料 在线 查询, 学生在线注册 等等 。 1.2 学生 档案管理 系统 的目标 信息管理数字化的优点是信息的更新速度快,查询方便,查询速度快,信息交流十分方便。学生 档案管理 系统的设计
8、目的前面已经说过,就是要实现信息管理的数字化,让老师 或管理员 可以方便的查询学生 资料 ,学生也 可以 注册自己的资料和在线 查询自己的信息 , 总之就是设计方便管理和交流的高速网上系统。 1.3 学生 档案管理 系统的设计要求 由于时间和人手的限制, 该 系统不可能做到很完善,我主要立足于系统的实用性, 安全 性,并且页面读取的时间要尽量短 -学生档案管理系统 6 实用性 数据的输入查询方便, 用户 能方便 的对数据进行输入和查询。 安全 性 对数据及时进行备份,有的功能只能由特定用户完成。 页面执行速度快 利用比较小型的数据库 MYSQL,使页面从数据库中读取速度快。 第二章 相关技术与
9、软件介绍 2.1 Dreamweaver 2.1.1 简介 Macromedia Dreamweaver MX 是一款专业的 HTML 编辑器,用于对 Web 站点、 Web 页和 Web 应用程序进行设计、编码和开发。无论您愿意享受手工编写 HTML 代码时的驾驭感还是偏爱在可视化编辑环境中工作, Dreamweaver 都会为您提供有用的工具,使您拥有更加完美的 Web 创作体验。 利用 Dreamweaver 中的可视化编辑功能,您可以快速地创建页面而无需编写任何代码。您可以查看所有站点元素或资源并将它们从易于使用的面板直接拖到文档中。您可以在 Macromedia Fireworks
10、中创建和编辑图像,然后将它们直接导入 Dreamweaver,或者直接在 Dreamweaver 中添加 Macromedia Flash 对象,从而优化您的开发工作流程。 Dreamweaver 还包括多种与编码相关的工具和功能,其中包括代码视图中的代码编辑工具(如代码加色和标签完成);有关 HTML、 CSS、 JavaScript、 CFML、ASP 和 JSP 的参考资料以及一个 JavaScript 调试器。 Macromedia 的可自由导入导出 HTML 技术可导入您手 工编码的 HTML 文档而不会重新设置代码的格式,您可以随后用您首选的格式设置样式来重新设置代码的格式。 Dr
11、eamweaver 现在包含并扩展了 Macromedia UltraDev 中的所有功能,以帮助您使用 ASP、 ASP.NET、 ColdFusion 标记语言 (CFML)、 JSP 和 PHP 等服务器语言来生成由动态数据库支持的 Web 应用程序。 Dreamweaver 可以完全自定义。您可以创建您自己的对象和命令,修改键盘快捷方式,甚至编写 JavaScript 代码,用新的行为、属性检 查器和站点报告来扩展 Dreamweaver 的功能。 -学生档案管理系统 7 2.2 PHP 2.2.1 简介 PHP 是能让你生成动态网页的工具之一。 PHP 网页文件被当作一般 HTML网
12、页文件来处理并且在编辑时你可以用编辑 HTML 的常规方法编写 PHP。 在 Internet 上 PHP 也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 IMAP, POP3;网管系统 SNMP;网络新闻 NNTP;帐号共用 NIS;全球信息网 HTTP 及 Apache 服务器;目录协议 LDAP 以及其它网络的相关 函数。 除此之外,用 PHP 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的系统平台上 ,再加上 它是免费的系统,使得成本与效益比,几乎等于无限大 . 2.3 MySQL 2.3.1 简介 MYSQL 是 “ 世界上最为流行的开放性数据
13、库 ” ,至少对于 MYSQL WEB 网站 会这样。最新的 MYSQL5.0 能够支持存储过程。如果你对存储过程还没有熟悉,那么你可以认为它们只是存储在数据库服务器端的 SQL 命令和程序逻辑的集合。这些存储过程可以被应用程序调用,使得不同技术水平的开发人员能够建立自己的SQL。存 储过程能够允许绝大部分的数据库访问逻辑与程序逻辑分离开来。使用存储过程的其中一个间接的 优点 是,程序的代码变得更加小巧和容易理解。存储过程的另 一优点 是, SQL 可以被预先编译,由此提高了程序的速度。因为存储过程包含程序逻辑,可以在数据库服务器端更多地执行更多的处理。同样,当执行一个 n-tier 程序时,
14、存储过程被用于将数据层与服务层分离开来。安全性也是存储过程的另 一优点 。当不能直接访问表格时,程序可以将执行优先级别分配给存储过程。不幸的是,在这时候 ,MYSQL 不支持 “ 授予执行 (GRANT EXECUTE)” 。这就 意味着除非程序具有访问表格的权限,否则调用访问相同表格的一个存储过程也是不行的。使用这一特性有点像在做一个很有趣的赌博。 第三章 项目开发流程 3.1 项目功能 -学生档案管理系统 8 3.1.1 学生注册 模块功能 提供 未注册学生实现 在线注册功能。 3.1.2 资料查询 模块功能 注册学生可在线 搜索 查询已登记学生信息 3.1.3 管理员 模块功能 超级用户
15、可在线添加一个数据库项目 ,审批待通过的学生信息,也可以在线删除一个数据库项目; 3.2 开发环境的选择 PHP 跟 Apache 服务器紧密结合的特性 ,用它 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的系统平台上 ,以及 在数据库方面的丰富支持,是它迅速走红的原因 ; 加上它不断的更新及加入新的功能;并且它几乎支持所有主流与非主流数据库;再以它能高速的执行效率,使得 PHP 在 1999 年中的使用网站超过了十五万 !它的源代码完全公开, 这也是我们选择它的一些原因。 最新的 PHP4 整个脚本程序的核心大幅改动,让程序的执行速度,满足更快的要求。在最佳化之后的效率,已较
16、传统 CGI 或者 ASP 等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。无论您接不接受 , PHP 都将在 Web CGI 的领域上,掀起巅覆性的革命。对于一位专职 Web Master 而言,它将也是必修课程之一。 特别是 在 Open Source 意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新的活力,使得 PHP 无论在 UNIX 或是 Win32, NT 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。面对快速发展的 Internet,这是长期规划的最好选择。 数据库是一种存储数据并对数据进行操作的工具。数
17、据库的作用在于组织和表达信息,简而言之,数 据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库( flat-file)和关系数据库( relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语, 像 记录、域等。 创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。 1 标识需要的数据; 2 收集被标识的字段到表中; 3 标识主关键字字段; 4 绘制一个简单的数据图表; 5 规范数据; 6 标识指定字段的信息; 7 创建物理表。 -学生档案管理系统 9 MYSQL 使用 CREATE D
18、ATABASE 可以创建新的数据库 . 数据库的修改分为:添加、编辑和删除记录。这三种操作均可由 PHP 创建的事件处理来完成,下面的章节将详细描述实现的具体方法。 MYSQL 中使用 UPDATE 命令来更新数据库的。 数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使
19、用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。 早期静态网页的运作方式是直接将内容回应给 USER,如下图 以 PHP为例,动态网页操作则必须是由 PHP Engine向 MYSQL数据库或者 FILE SYSTEM 共同作业,如下图 。 MYSQL 是一个 真正的多用户、多线程 SQL 数据库服务器。 MYSQL 是 以一个客户机 /服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。由于其源码的开放性及稳定性,且与网站流行编 程 语言 PHP 是一个完 美的结合, 现在很多站点都利用其当作后端数据库,使其获得了广泛应用。 因此 我们
20、选择这二者结合是必然的。 3.3 系统安全性 3.3.1 安全性的一些概念 及安全性设置 -学生档案管理系统 10 由于我们选取用的是 MYSQL,所以就了解了相关 MYSQL 的安全性概念以及相关的设置。 针对于 MYSQL,它的 管理员有责任保证数据库内容的安全性,使得这些数据记录只能被那些正确授权的用户访问,这涉及到数据库系统的内部安全性和外部安全性。 内部安全性关 心的是文件系统级的问题,即,防止 MySQL 数据目录( DATADIR)被在服务器主机有账号的人(合法或窃取的)进行攻击。如果数据目录内容的权限过分授予,使得每个人均能简单地替代对应于那些数据库表的文件,那么确保控制客户通
21、过网络访问的授权表设置正确,对此毫无意义。 外部安全性关心的是从外部通过网络连接服务器的客户的问题,即,保护MySQL 服务器免受来自通过网络对服务器的连接的攻击。你必须设置 MySQL 授权表( grant table),使得他们不允许访问服务器管理的数据库内容,除非提供有效的用户名和口令。 对于如何实现 两级安全性。 一、内部安全性 -保证数据目录访问的安全 MySQL 服务器通过在 MySQL 数据库中的授权表提供了一个灵活的权限系统。你可以设置这些表的内容,允许或拒绝客户对数据库的访问,这提供了你防止未授权的网络访问对你数据库攻击的安全手段,然而如果主机上其他用户能直接访问数据目录内容
22、,建立对通过网络访问数据库的良好安全性对你毫无帮助,除非你知道你是登录 MySQL 服务器运行主机的唯一用户,否则你需要关心在这台机器上的其他用户获得对数据目录的访问的可能性。 以下是你应该保护 的内容: 数据库文件 和日志文件。当然 更要重点考虑的日志文件安全性是诸如 GRANT和 SET PASSWORD 等的查询也被记载了,一般和更新日志包含有敏感查询的文本,包括口令( MySQL 使用口令加密,但它在已经完成设置后才运用于以后的连接建立。设置一个口令的过程设计象 GRANT 或 SET ASSWORD 等查询,并且这些查询以普通文本形式记载在日志文件中)。如果一个攻击者犹如日文件的读权
23、限,只需在日志文件上运行 grep 寻找诸如 GRANT 和 PASSWORD 等词来发现敏感信息。 二、外部安全性 -保证网络访问的安全 MySQL 的安全系统是很灵活的,它允许你以多种不同方式设置用户权限。一般地,你可使用标准的 SQL 语句 GRANT 和 REVOKE 语句做,他们为你修改控制客户访问的授权表,然而,你可能由一个不支持这些语句的老版本的 MySQL(在3.22.11 之前这些语句不起作用),或者你发觉用户权限看起来不是以你想要的方式工作。对于这种情况,了解 MySQL 授权表的结构和服务器如何利用它们决定访问权限是有帮助的,这样的了解允许你通过直接修改授权表增加、删除或修改用户权限,它也允许你在检查 这些表时诊断权限问题。 3.4 程序简单流程图