学生管理系统开发与设计Word文档下载推荐.docx
《学生管理系统开发与设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生管理系统开发与设计Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

120
第一章引言
随着国家加强对教育的投入,九年义务制的基本普及,社会上对高学历、高能力人才的急切需求,随着国民经济的稳定增长,全国各级院校容纳着越来越多的学生.随着学生数量的剧增,对学生的管理面对着严峻的考验,传统的手工操作理已经跟不上管理的步伐.而计来自5Q设计算机的普及和应用给计算机智能化管理带来最根本的保障。
众所周知,计算机管理可以大大的提高工作效率,加强部门之间的沟通配合,节省大量的纸张浪费。
由此带来的经济效益是非常客观的。
因此,开发一个适合的学生管理系统是非常重要的。
开发小组应严格遵守软件工程的指导思想,制定详细的需求分析方案,与用户做热情而有效的探讨,以用户为工作中心。
除此之外,开发小组应具备良好的关系数据库背景,扎实的DELPHI编程基础,熟悉ORACLE操作,熟悉局域网的组建等。
第二章C/S应用模式的讨论
现在计算机碰到了和我们人类相同的问题:
需要分工合作。
为实现多台计算机的分工合作,就要将这些计算机连接起来构成一个计算机网络,网络中各计算机之间能够互相传送数据信息。
在一个计算机网络中,如果一些计算机扮演客户(称为客户机、Client),另一些计算机扮演服务者(称为服务器、Server),客户机通过计算机网络向服务器提出计算请求,服务器经过计算,将结果返回给客户机,这样的计算机网络称为客户/服务器计算机网络。
客户/服务器体系结构的关键在于功能的分布,一些功能放在客户机(称为前置机)上运行,另一些功能放在服务器(称为后端机)上执行。
这样能减少计算机系统的各种瓶颈问题.。
客户/服务器系统的一般结构如下:
(网络)
客户/服务器式DBS是在客户/服务器计算机网络上运行的DBS。
有一个数据库服务器管理数据库,应用程序则运行在客户机上,当需要对数据库进行操作时,就向数据库服务器发送一个请求,数据库服务器收到请求后执行相应的数据库操作,并将结果返回给客户机上的应用程序。
在客户/服务器式DBS中,数据库应用的功能分成两部分:
1)前端部分:
由一些应用程序构成。
例如:
格式处理,报表输出,数据输入,图形界面等。
。
实现前端处理和用户界面。
2)后端部分:
包构存取结构,查询优化,并发控制,恢复等系统程序,完成事务处理和数据访问控制。
前端
…
网络
(SQL+应用程序接口)
后端
前端和后端间的界面是SQL语句或应用程序。
前端部分由客户机完成,后端部分由数据库服务器完成。
功能分布的结果减轻了服务器的负担,从而使服务器有更多精力完成事务处理和数据访问控制,支持更多的用户,提高系统的效率。
服务器的软件系统是一个DBMS。
采用C/S模式的设计能够使相关的学生部门各司其职,很好的保护了各部门数据的的安全性。
如果采用单机版(单层结构)的开发模式,则开发小组要分别开发出针对各个部门的程序,部门之间的数据同步、交互的效率很差。
更容易产生数据的不一致,而且会造成开发小组的负担很重,维护困难。
而C/S模式的设计方案在近10多年来不但得到了广泛来自5Q设计的应用,而且取得了相当的成功。
从开发周期和技术难度等方面来考虑,采用C/S模式的设计方案对于我们现在的学习水平来说是比较适合的。
第三章设计过程要点论述
3.1软件工程指导思想
软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,指导开发小组进行整个软件开发周期合理规划的一门学科。
软件工程的传统途径是生命周期方法学。
从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,每个阶段都有相对独立的任务,然后逐步完成每个阶段的任务。
前一个阶段的完成是开始进行后一个阶段工作的前提和基础,而后一个阶段任务的完成通常是使前一个阶段提出的解法更进一步具体化。
一般说来,软件生命周期由软件定义,软件开发和软件维护三个时期组成,每个时期又进一步分成若干个阶段。
软件定义时期通常进一步分成三个阶段,即问题定义、可行性研究和需求分析。
软件开发时期由下述四个阶段组成:
总体设计、详细设计、编码和单元测试,综合测试。
软件维护的主要任务是使软件持久的满足用户的需要。
具体的说,当软件在使用过程中发现错误时应该加以改正,特别是当软件环境改变、用户有新的需求提出的时候。
本小组恪守软件工程的原则,指导本系统开发设计。
3.2调研与分析
经过深入调查和分析得出,在现有技术水平和软硬件条件下,如何开发出一个行之有效的学生管理系统。
根据上面所提到的C/S应用模式,利用Oracle数据库管理系统,Delphi开发工具,若干台性能较好的PC机,通过网络连接,对于这个系统而言,我们发现在技术上是不成问题的。
当然系统在开发出来后,在良好运行状况下,其隐含的经济效益是不言而喻的。
在大、中专院校中,经常与学生打交道的部门主要有:
教务处、学生处、各院系、后勤管理中心。
一个学生从录取到离校的过程中,各院系要负责管理学生的档案和学籍,学生可能发生留级、转系、退学、休学的情况,即学籍异动处理。
院系负责对学生档案管理、学籍管理、奖惩管理,教务处要负责对学生的成绩管理,学生处要负责对学生的考勤管理,后勤管理中心及其下辖的各楼生管要负责对学生的物品管理,住宿管理,水电费用管理,住宿违纪管理,卫生评比管理,来客管理。
系统要完成尽可能多的智能化操作和各种查询要求。
基于此的数据流程图可以很方便的体现出各种需求操作。
因此,积极的与用户交流、分析,并得出详尽的数据流程图是至关重要的一步。
本人所负责的考勤管理系统的数据流程图如下:
考勤表的录入相关流程图如下:
考勤销假相关的流程图如下:
考勤查询相关的流程图如下:
3.3数据库后台设计与处理
一个好的数据库设计方法应该能够在合理的期限内,以合理的工作量产生一个有实用价值的数据库结构。
这里的“实用价值”是指满足用户关于功能、性能、安全性、完整性及发展需求等发面的要求,同时又服从于特定的DBMS的约束,并且可用简单的数据模型来表示。
设计方法应具有足够的灵活性和通用性,不仅能够为具有不同经验的人所使用,而且能够为受不同数据模型及不同DBMS限制的人所使用。
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。
DBMS是数据库系统的核心组成部分。
对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。
DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。
根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。
Oracle数据库可以很好的用于关系型数据库管理系统中。
所谓的关系型是指实体集是用二维表格结构表示,而用外键来表示实体间联系的数据模型。
关系模型有两个显著的特点:
一是其数据结构简单(只用二维表格),二是有扎实的理论基础。
关系模型的提出和应用在数据库发展史上是一个重要的里程碑.。
根据数据流程图、数据文件、数据字典,可以得出该系统的表结构,并用Oracle的应用格式把它表现出来。
在对表的形式进行了规范化定义时,要遵循规范化模式,称为范式。
在这五种范式中,一般只用前三种,对于常用系统就足够了。
而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
简单的介绍前三种范式。
第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。
这个去掉重复项的过程就称之为规范化处理。
在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。
因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。
第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。
即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。
也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键字数据元素的现象,必须加以消除。
此外,在这过程中要注意好表的主键、外键、用户自定义约束的条件,在模式分解过程中要尽量的保持函数依赖和无损联接。
遵循上述说明,就可以设计出一个良好的关系数据库模式。
Oracle8I支持面向对象和关系型数据库,它可以从成千上万的用户分布式联机事物处理到拥有数万字节的决策支持数据仓库,Oracle8I为客户/服务器和Web企业类开发应用掀开了新章篇。
Oracle的特点主要有:
1)支持大型数据库和多用户的高性能事务处理。
它支持大量用户同时在同一数据库上实现各种数据应用,并使数据争用最小,保证数据一致性。
2)具有可移植性、可兼容性和可连接性。
3)先进性:
Oracle是数据库领域的排头兵,从最早的关系型数据库到Oracle8I,其技术都处于领先地位。
考虑到高校学生众多,数据量大等特点,我们选用Oracle数据库管理系统来作为后端数据库服务器。
在上述论述下,Oracle相关表情况如下:
学生档案表:
字段名
字段类型
字段长度
XHXX
NUMBER
10
XMXX
VARCHAR2
8
XBXX
4
CSNY
DATE
默认
HJXX
JTDZ
80
LXDH
20
RXNF
BZXX
100
考勤表:
字段类型与长度
Xhxx(学号)
NUMBER(10)
Xmxx(姓名)
VARCHAR2(8)
Kqlx(考勤类型)
VARCHAR2(4)
kqzs(考勤周数)
NUMBER
(2)
Xqjx(星期几)
VARCHAR2(6)
Kqsj(考勤时间)
VARCHAR2(20)
Jsxx(旷课节数)
NUMBER(2,1)
Szxn(所在学年)
NUMBER(4)
Bjxx(班级)
VARCHAR2(30)
Kqbz(考勤备注)
Xbxx(系别)
学生年度考勤表:
kkzs(旷课总数)
zzcl(政策处理)
VARCHAR2(10)
3.4应用系统开发工具
本小组采用Delphi的开发工具。
Delphi类可以粗略地分成两部分:
一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);
另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。
在Delphi中,每一个类的祖先都是Tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。
这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。
实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。
组件在Delphi程序的开发中是最显眼的角色。
大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。
但也有一些组件不在组件面板上,例如Tform和Tapplication(典型的非可视组件)。
组件是Tcomponents派生出来的子类,可以流的形式存放在DFM文件中,具有事件和Publish属性。
窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额。
在实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。
图形组件与窗口组件并列,是另一大类组件。
图形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件。
图形组件的基类是TgraphicControl,在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。
使用图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。
在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗。
非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。
最后要说明一下,常说的控件实际上是一种组件。
也就是说组件这个概念要大于控件,控件在内涵上包含于组件中。
控件由Windows系列操作系统提出并使用,而组件是Borland和其它厂商在对Windows控件做了必要的扩展之后提出来的概念,它们是在不同时期由不同的厂商提出的概念。
用Delphi开发数据库应用,重点是和各种数据库组件打交道,能和数据库挂钩的组件对象有5种,它们是:
Session(数据库会话)、Database(数据库)、Dataset(数据集)、DataSource(数据源)、Datacontrol(数据控制组件,也叫data-controls即数据感知组件)。
其中前面4种统称为数据访问(DataAccess)组件。
Delphi包含了可以用来访问Microsoft公司的ActiveXDataObjects(ADO)格式数据库的组件。
ADO是Micrsoft公司关于各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解决办法。
ADO的对象模型是所有数据访问接口对象模型中最简单的一种。
Microsoft公司用来访问ADO数据的应用程序界面技术是OLEDB。
OLEDB是一种底层编程接口,用来访问许多不同类型的数据源,其中包括消息、文件系统以及其他一些非传统的数据源。
OLEDB是一个由ComponentObjectModel(COM)接口组成的集合,用来隐藏创建数据访问服务过程中的细节。
OLEDB提供了访问任何数据资源的方法,包括相互关联的数据库和相互不关联的数据库、Email和文件系统、文本和图形以及用户定义的数据对象。
Delphi的ADO组件无需依靠BDE而是使用ADO技术,提供了可以通过数据控制组件访问数据的新方法。
唯一的要求是在使用ADO组件时必须运行ADO/OLEDB。
ADO组件的使用使得DELPHI在访问数据的类型和采用的技术方面都有了很大的突破。
由于ADO是Microsoft提出的一种用来访问数据库的通用引擎,Microsoft通过COM技术封装OLEDB成为ADO,为开发人员提供访问、编辑和修改各种不同数据源的统一的编程接口,让程序能够方便的处理各种数据。
在ADO引擎中,Microsoft提供了多种不同数据库的驱动程序,同时第三方的厂商也可以开发自己的数据库的ADO驱动程序。
和BDE相比,ADO具有以下的优点:
对于本地和远程的数据库访问都与具体的数据库无关;
安装方便(对于高版本的Windows而言,ADO就是操作系统的一部分),有着良好的技术支持和版本升级,由于ADO是Microsoft开发的,所以它对Microsoft的Access和SQLServer的数据访问有着非常好的支持,因此如果是基于Access和SQLServer的数据库应用程序的开发,那么采用ADO是很好的选择。
对于别的数据库,比如ORACLE,最好采用ORACLE提供的针对ORACLE数据库设计的ORACLEADO驱动程序,以达到最佳的数据访问。
目前ADO已经成为Windows平台上数据存取的事实标准。
通过对DELPHI的介绍和对ADO引擎的讨论,我们决定用ADO引擎来实现对后台数据库的访问。
在ADO面板上,封装了很多的ADO控件,其作用如下:
ADO控件名称
作用
ADOConnection
建立与数据库的连接
ADOTable
访问数据表
ADOQuery
执行特定的SQL命令
ADOStoredProc
访问存储过程
ADOCommand
ADODataSet
返回一个数据集
我们可以充分利用ADO控件,配合DELPHI其它的控件就可以很好的开发这个系统了。
在后台编写了大量的存储过程,为今后升级的方便性留下了巨大的扩展空间,由于只针对于后台服务器端,对于客户机而言,只要程序的接口不变,系统是能够保证正常运行的。
本考勤管理子系统的功能模块及简介如下:
3.5服务器、客户机的交互处理
随着计算机的普及,计算机网络正以前所未有的速度向世界上的每一个角落延伸。
目前校园网的建设是局域网中不可缺少的一部分,几乎所有的大、中专院校已建立起以光缆为传输介质的高速以太网的校园网络,并且获得了很大的成功。
我们可以在此基础上,搭建出本系统需要的运行环境。
首先,选择一架性能好的PC机充当服务器,并安装ORACLE8I服务端程序,假定该服务器的IP地址为192.168.168.88,其安装的ORACLE8I数据库的服务名为student,创建所需的数据表,索引。
在各管理部门(教务处、学生处、各院系、后勤管理中心、各公寓楼管理室)的计算机上安装ORACLE8I的客户端,并通过NET8Assistant的配置与服务器端正常通信。
其配置过程如下:
打开NET8Assistant配置界面,单击NET8配置下的服务命名,再单击编辑菜单下的创建项,在网络服务名内填上student,点击下一步按纽,选中TCP/IP(internet协议),点击下一步按纽,在主机名上可以填上服务器的主机名字,也可以填上服务器的IP地址,这里我们填上192.168.168.88,端口号默认为1521即可,点击下一步按纽,
在(ORACLE8I)服务名内填上student,点击下一步按纽,点击测试按纽,看到连接测试成功就表明服务器与客户机可以正常通信了,如果不成功的话,可能是网络延时造成,可以先选择后退按纽,等呆会儿再测试。
在测试成功的情况下,保存此网络服务名就可以了。
将开发好的程序安装到客户机上,此时该系统就可以很好的运行了。
3.6模块功能说明
本系统的功能模块可分为如下:
3.7测试报告
考勤管理登入界面测试报告:
后勤管理界面测试报告:
点击考勤管理的子菜单的考勤录入就是对学生的日常行为违规情况的登记,其主要介面如下:
根据相关权限的进入,进入的只能看到对其相关的系别的学生进行考勤录入。
比如说,你是以计算机系秘书的身份进入,就只能对计算机系的学生进去操作。
点击考勤管理子系统销假处理进入销假系统:
接下来可以点击子系统的考勤查询:
就可以对每个系统的各个学生进行查询:
具体可以通过按学号,姓名,班级,及其考勤时间。
也可以对查询到的相关记录进行打印。
点击子系统的政策处理查询,是用存储过程通过对学生考勤违规录入的相关记录,当考勤节数大于10节以上的就会触发过程生成对该学生的进行相关处理。
同时如果该学生销了假,也可以通过过程对该学生进行相关的处理,减去其所受的处分
点击帮助按钮,就会弹出一个帮助界面:
第四章不足与展望
鉴于开发小组的技术有限和时间有限,该系统存在着一定的问题。
数据加密技术可以保证信息系统的安全性和保密性,防止秘密数据被外部破译所采用的主要技术手段之一,也是网络安全的重要技术。
除了在法律上、管理上加强数据的安全保护外,在软硬件上也应该采取必要的措施。
数据加密技术主要分为数据传输、数据存储以及数据完整性的鉴别、密钥管理技术等。
其中,数据传输加密技术目的是对传输中的数据流加密,防止在传输过程中被窃取、伪造。
数据存储加密技术目的是防止在存储环节上的数据失密,可分为密文存储和存取控制两种。
数据完整性鉴别技术目的是对介入信息的传送、存取、处理的人的身份和相关的数据内容进行验证,达到保密的要求,一般包构口令、密钥、身份、数据等项的鉴别。
然而在整个系统的开发中,除了系统支持按部门的权限处理的控制外,没有再提供任何的安全保障。
特别是对用户输入密码的传输过程没有进行加、解密操作,这很容易泄露口令,使用户的安全性受到很大的挑战。
在后台存储的数据中,对于敏感的数据诸如用户的口令没有进行加密处理,如果数据库系统被入侵成功,入侵者就可以肆意修改该系统中。
另外,系统也没有提供安全日志纪录程序,无法清楚的了解授权用户、匿名访问者的举动,给系统安全造下了一定的隐患。
传统的C/S结构成功的背后却有着其架构上的缺陷。
其中最明显的问题表现在应用程序的伸缩性和维护性方面。
在这种模式中,一般把业务逻辑放在客户端和服务器端来实现,这两种方法各有优缺点,如果逻辑放在客户端实现,则相对而言,程序容易实现,而且可以充分利用客户端机器的性能。
但是,如果一个业务规则改变,则要重新安装所有的客户端程序,而且客户端程序比较庞大,安装复杂。
而如果业务逻辑都放在服务器断,如果更改了业务逻辑,客户端程序无需改变,但是采用这中方法,则可能造成服务器负担过重,而且有些功能很难实现。
随着多层体系结构的提出,C/S结构向多层体系结构的演化是必然的。
在多层体系结构中,由于服务器集中体现了业务逻辑(又称商业规则),客户程序可以把重点放在显示数据和与用户的交互上,不同的客户程序可以共享同一个中间层,而不必由每个客户程序单独实现商业规则。
致谢
在这段短暂而紧张的时间内,非常感谢林芳老师对我们小组