学生信息管理系统设计.docx
《学生信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计.docx(37页珍藏版)》请在冰豆网上搜索。
学生信息管理系统设计
学生信息管理系统设计
学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理学生学籍档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生学籍信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中将以开发一套学生信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
第一章绪论
1.1课题简介
高校学生信息的管理是一项既重要又繁琐的工作。
为更好的做好这项工作,提过工作效率,更好的为学校的发展和一线教学服务,决定:
结合我校实际情况,自行研制一个学生信息管理系统。
1.2课题目的及意义
由于现今的学生信息管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低。
因此为提高工作效率,减轻校方人员的工作负担,决定开发学生信息管理系统。
计算机已经成为我们学习和工作的得力助手:
今天,计算机的价格已经十分低廉,性能有了长足的进步。
它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:
首先,计算机可以代替人工进行许多繁杂的劳动;
其次,计算机可以节省许多资源;
第三,计算机可以大大的提高人们的工作效率;
第四,计算机可以使敏感文档更加安全等等。
为了解决传统学生信息的管理正面临着的这些问题,我所设计的学生信息管
理系统也就应运而生了。
1.3研究方法、发展趋势
本系统采用功能分析法即通过说明社会现象怎样满足一个社会系统的需要(即具有怎样的功能)来解释社会现象和CS模式共同完成。
现代教育技术特别是网络与多媒体技术的发展,对学习活动产生了具有深远意义的冲击,人们可以选择或者设计适合其学习特点的信息采集、加工与重组方式。
本系统采用CS模式,在某些方面还不是表现的很好,但未来有关学生信息管理的应该采用多层架构的系统,是真正适应教育信息化发展三大趋势的校园网络应用系统,全面支持Internet功能、远程访问功能,采用先进的CS和BS模式共同开发,支持有关学校信息交流、日常教学、教务管理等的各种应用,提供一个基于校园内联网中支持各种类型的学校应用产品的服务平台和开发平台,基本目标是在学校内部和外部建立起顺畅的信息通道,让信息技术成为推动教育生产力的有力工具,提高学校的管理水平和效率,同时充分利用全球的教育资源为学校的教育服务,克服目前大部分学校的校园网建设只起到宣传作用的通病。
第二章开发环境、工具介绍
该软件是在WindowsXPProfessional+VisualBasic6.0+SQLServer2000的环境下完成的。
下面就对这些开发工具进行介绍:
2.1VisualBasic6.0
微软公司的VisualBasic6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
利用VISUALBASIC程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序。
故而,实现本系统VB是一个相对较好的选择。
2.1.1VisualBasic的编程特点
VisualBasic语言的出现为Windows下的编程提出了一个新概念,利用VisualBasic的动态数据交换、对象的链接和嵌入、动态链接库、ActiveX技术可以很方便地设计出功能强大的应用程序。
利用VisualBasic语言编程有以下几个特点:
1)、可视化程序设计
在VisualBasic中开发的应用程序,不但有丰富的图形界面,同时由用户为开发图形界面添加的代码真是少而又少,因为在设计图形界面的过程中只需设置ActiveX控件的属性即可。
2)、强大的数据库和网络功能
随着VisualBasic语言的向前发展,它在数据库和网络方面的功能优势就愈加明显,利用VisualBasic中的ODBC——开放式的数据库访问技术可以很方便地开发出自己的数据库应用程序;利用VisualBasic自带的可视化数据管理器和报表生成器,完全可以在VisualBasic就完成数据库的开发工作。
3)、其他特性
在VisualBasic以前的版本中,由于仍然摆脱不了解释执行的代码运行机制,所以在相当的程度上制约了VisualBasic的发展。
从VisualBasic5.0版本开始,在VisualBasic中制作的应用程序都改变为编译执行,使得VisualBasic的代码效率有了很大的提高,同时执行的速度也加快了解30%(同VisualBasic4.0相比)。
当然在VisualBasic中还有其它特性,例如:
●面向对象的编程语言;
●结构化程序设计;
●事件驱动的程序设计:
在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。
从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。
在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。
事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。
这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。
●支持动态链接库;
●应用程序之间的资源共享;
●事件驱动的程序设计;
在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。
从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。
在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。
事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。
这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。
●支持动态链接库;
●应用程序之间的资源共享
2.1.2vb支持的数据库系统
VB支持对多格式的数据库的访问和维护,无论是Access还是Foxpro中创建的数据库,都可以用VB打开,对其进行查询、修改和删除等操作。
事实上,VB几乎支持对市面上所有数据库的访问。
VB可以访问的数据库可以简单的分为三类,即:
MicrosoftAccess格式数据库,外部数据库和ODBC数据库。
VB对多种数据库格式的支持,大大的增强了开发数据库应用程序的能力。
2.1.3数据库开发中的三大工具
VisualBasic在数据库应用程序的开发领域中,提供包含数据管理(DataManager),数据控件(DataControl)以及数据编程对象(数据访问对象(DAO)、远程数据对象(RDO)和ActiveX数据对象(ADO))等功能强大的工具,协助设计人员轻松的连接数据库文件,并访问其中的数据,在功能方面与其他一些专业数据库软件(如FoxPro,MicosoftAccess等)不相上下。
数据管理器(DataManager)是VisualBasical已有的老成员之一,拓本盛举有的Jet数据库引擎(DatabaseEngine)可以帮助VB程序元件立即维护数据库内容,并可通过输入查询或查找数据库信息,而不必再通过其他数据库软件另外去设计数据库。
数据控件是VB所提供的基本控件成员之一。
它使得设计者省下一堆程序代码编写的工作,能够轻松的设计及维护数据库内容。
数据控件可以通过一些属性的设置去链接某个数据库文件,但是它本身并无法显示数据库各个记录的内容,必须在搭配其他具有数据感知(DataAware)功能的控件对应并显示一个字段内容,以方便地进行记录的浏览及编辑工作。
VB提供的数据访问对象(DataAccessObject;DAO)让程序设计者拥有更大的发挥空间。
借助程序代码编写,直接控制Jet数据库引擎,配合数据库控件,能够开发出更具弹性且高效率的数据应用程序。
RDO是处理远程数据库的一些专门需要的对象集合。
使用RDO可以不用本地的查询机就能访问ODBC数据源,这无疑将大大提高应用程序的性能。
ADO是VB6.0中新增的对象,它是一个更简单的对象模型,它更好的集成了其它数据访问技术,并且对本地和远程数据库均有共同的界面,可以取代DAO和RDO。
ADO更易于使用。
我们在本系统中利用数据管理器创建了数据库及数据库表,并采用了ADO数据访问技术。
2.2SQLServer2000简介
SQLServer2000是微软公司最新版的大型数据库服务器,其性能指标在各方面都有赶超Oracle数据库的趋势。
用它可以方便地管理数据库和开发应用程序,它使用了最先进的数据库构架,与WindowsNT/2000平台紧密集成,具有完全的Web功能。
通过对高端硬件平台、网络和存储技术的支持,为WEB站和企业的应用最大限度地提供了可扩展性和高可靠性,能在Internet商业领域快速建立并应用。
此外,还增强了安全性,保护防火墙内外的数据。
支持基于角色的安全并拥有安全审计工具。
在经历了SQLServer6.5和7.0两个版本的尝试后,微软公司终于开始了大规模的业务。
记得在以前各种关于SQLServer的文章,都会将其定位成中小型应用方面,这种感觉被大家自然的延续到了2000版之中。
其实这是一种误解。
在过去的很长一段时间中,微软公司聘请了世界上最优秀的数据库专家以及专门搭建了信息量可谓空前的地理信息系统,励精图治,就是为了摘掉扣在自己头上的这顶帽子。
有了强大的性能和功能支持,再配合其一向为人称道的易用性,SQLServer可以说成为了开发者手中的一柄利器!
另外,目前国内的一些关于微软平台的数据库编程教程,喜欢使用Access作为数据库平台的案例,并展开相关的内容。
这其实对于开发真正的数据库应用并没有直接的帮助作用,只能使大家停留在应用的初级阶段。
SQLServer2000提供的非常傻瓜的缺省安装和使用模式,其上手难度并不比Access大。
另外,SQLServer2000可以兼顾小、中、大规模的应用,有着远远比Access强大的伸缩性。
2.2.1SQLServer数据库特点
概括起来,SQLServer2000数据库管理系统具有以下主要特点。
1)、丰富的图形管理工具,使系统管理、操作更为直观方便。
SQLServer企业管理器是一个基于图形用户界面(GUI)的集成管理工具,利用它可以配置管理SQLServer服务器、管理数据库和数据库对象、备份和恢复数据、调度任务和管理警报、实现数据复制和转换操作等。
此外,SQLServer2000还提供了SQL事件探查器、SQL查询分析器、SQLServer服务管理器和多种操作向导等图形界面管理工具,大大简化了用户操作,从而增强了系统的易用性。
2)、动态自动管理和优化功能。
即使SQLServer数据库管理员不做任何设置,SQLServer也能够在运行过程中根据环境配置和用户访问情况动态自动配置,以达到最优性能,从而减轻管理员工作。
3)、充分的Internet技术支持。
Internet网络发展到今天已经成为一条重要的信息发布渠道,SQLServer增强了对Internet技术支持,它除保留了前期版本中的数据库Web出版工具“Web助手”外,还增强了对XML和HTTP技术的支持,这使得电子商务系统能够通过XML等访问SQLServer数据库系统,也扩展了SQLServer在数据挖掘和分析服务领域的应用。
4)、丰富的编程接口工具,使用户开发SQLServer数据库应用程序更加灵活。
SQLServer提供了Transact-SQL、DB-LibraryforC、嵌入式SQL(ESQL)等开发工具,Transact-SQL与工业标准SQL语言兼容,并在其基础上加以扩充,使它更适合事务处理方面的需要。
此外,SQLServer2000还支持ODBC、OLEDB、ADO规范,可以使用ODBC、OLEDB、ADO接口访问SQLServer数据库。
5)、具有很好的伸缩性和可靠性。
SQLServer2000既能运行在Windows桌面操作系统下,又可运行在服务器操作系统(包括WindowsNT和Windows2000)下;既能运行在单CPU计算机上,又能运行在对称多处理系统下。
所以,它具有很好的伸缩性,能够满足从桌面应用到大型企业分布式应用到不同层次用户的要求。
6)、简单的管理方式。
SQLServer2000与MicrosoftWindows2000有机集成,所以可以使用Windows2000的活动目录(ActiveDirectory)功能对SQLServer进行集中管理,大大简化大型企业中的系统管理工作。
此外,与Windows2000的集成还使SQLServer能够充分利用操作系统所提供的服务和功能(如安全管理、事件日志、性能监视器、内存管理和异步I/O等),从而增强了SQLServer数据库系统的功能,并且只需要占用很少的系统资源。
2.3ADO对象概述
ADO对象能够存取到数据库的内容,首先要求数据库的驱动程序(ODBC驱动程序与OLEDB驱动程序)必须安装上,否则,ADO对象是无法存取数据库中内容,其原理示意图如下图所示:
图2-1ADO对象原理示意图
请注意:
上图中的“各种数据库所对应的驱动程序”即ODBC驱动程序与OLEDB驱动程序。
2.3.1利用ADO开发网络数据库应用程序
ADO(ActiveDateObjects,即ActiveX数据对象)是一个ASP内置的ActiveX服务器组件(ActiveXServerComponent)。
可把它与ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新、删除等操作,并可以把在用户端实现“网上实时更新显示”的最新Web数据库技术。
要执行ADO,服务器端必须安装WindowsNTServer和InternetInformationServer(IIS),而客户端只要有IE或NETSCAPE较新版本的浏览器即可。
利用ADO开发网络数据库应用程序有以下几个优点:
1)、支持客户机/服务器结构(Client/Server)与Web系统开发技术。
2)、内部有多个互相独立的对象模型。
3)、支持分批修改数据库内容。
4)、支持多种不同的数据控制指标形式。
5)、先进的Recordset数据高速缓存管理功能。
6)、允许在程序中使用多个Recordset对象或者多个分批修改区块传送。
7)、ADO属于Free_threaded对象,利用它可以开发出更有效的Web应用程序。
2.3.2ADO组件的主要对象及其功能
ADO组件又称为数据库访问组件,它提供了以下七种对象:
1)、Connection对象:
提供对数据库的连接服务。
2)、Command对象:
定义对数据库源操作的命令。
3)、Recordset对象:
由数据库服务器所返回的记录集。
Recordset对象的LockType属性的设置值如下表所示:
表2-1LockType属性的设置值
常量
值
说明
adLockReadOnly
1
默认值,只读。
无法更改数据
adLockPressimistic
2
保守式记录锁定(逐条)。
提供者执行必要的操作确保成功编辑记录,通常采用立即锁定数据源的记录的方式。
adLockOptimistic
3
开放式记录锁定(逐条)。
提供者使用开放式锁定,只在调用Updata方法时锁定记录。
adLockBatchOptimistic
4
开放式批更新。
用于与立即更新模式相反的批更新模式。
4)、Fields对象:
由数据库服务器所返回的单一数据字段
5)、Parametes对象:
表示Command对象的参数。
6)、Property对象:
单独的一个Property对象,提供属性功能。
7)、Error对象:
提供处理错误的功能。
使用ADO对象可以建立和管理数据库的连接,按数据库服务器的要求获得数据,执行更新、删除、添加数据等操作,获取ODBC的错误信息等。
2.3.3用来操控数据的SQL命令
SQL命令是发送给数据库并要求数据库操作的指令,它是专门为数据库设计的语言,比一般的计算机程序语言简单的多。
SQL命令主要分成两部分:
DDL(DataDefinitionLanguage)和DML(DataManipulationLanguage),其中DDL是建立数据表及数据列的指令群,而DML则是操作数据库记录的指令群,如数据库记录的添加、更新、删除、和查询等。
SQL命令,包括Select、Delete、Update、InsertInto、SelectInto等。
1)、筛选及排序记录的Select指令
基本句型一:
Select字段串列From数据表
基本句型二:
Select…From…Where筛选条件
基本句型三:
Select…From…OrderBy字段串列
SelectTop:
限定选取数据的条数
2)、删除数据记录的Delete指令
基本语法:
DeleteFrom数据表Where条件式
3)、更新数据记录的Update指令
基本语法:
Update数据表Set表达式
4)、增加数据记录的InsertInto指令
基本句型一:
InsertInto数据表(字段串列)Values(字段串列)
基本句型二:
InsertInto数据表(字段1,字段2,…,字段n)Select…
5)、建立新数据表的SelectInto指令
该指令与“InsertInto…Select…”指令的区别是,这个指令将建立另一个新的数据表,而InsertInto是增加数据记录到“现存的”数据表中。
2.4VB访问数据库过程
1)、定义数据库组件
DimconnAsNewADODB.Connection其中conn为连接对象
DimrecoAsNewADODB.Recordset其中reco为结果集对象
2)、打开数据库
对于SQL数据库,其连接语句为conn.Open"driver={sqlserver};server=
localhost;uid=sa;pwd=;database=student"。
而对于Access数据库,连接语句为
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=
"&App.Path+"\student.mdb"
3)、设定SQL语句,使用“Execute”命令,即可开始执行访问数据库的动作
4)、关闭结果集对象,断开与数据库的连接
reco.Close
conn.Close
第三章系统分析与设计
3.1系统功能分析
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量就需要有一个学生信息管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范管理、快速查询、修改、增加、删除等,从而减少管理方面的工作量。
设计内容为管理员或普通用户登录该系统进行五个模块操作:
1)、学生基本情况更新:
增加、修改、删除、查询(按学号)
2)、学生基本情况维护:
增加、修改、删除、打印、查询(按专业)
3)、学生成绩维护:
添加成绩、打印、查询(按学号、专业)
4)、密码修改:
修改所有用户密码(管理员)、修改自己密码(普通用户)
5)、数据维护:
对该系统数据库进行备份和还原
3.2系统结构图
本系统主要包括学生基本情况更新,学生基本情况维护、学生成绩维护、密码修改和数据维护5个大的模块,各个模块的具体功能如下图所示:
图3-1系统结构图
3.3系统E-R图
1)、用户(普通用户、管理员)实体图如下图所示:
图3-2用户(普通用户、管理员)实体图
2)、学生实体图如下图所示:
图3-3用户(普通用户、管理员)实体图
3)、学生选课关系图如下图所示:
图3-4用户(普通用户、管理员)实体图
3.4数据库设计
在系统设计过程中,首先要建立的就是数据库。
本数据库采用SQLServer2000来构造,共使用了3个表,它们分别是用户信息表(admin)、学生基本情况表(student)、学生成绩表(grade)。
1)、用户信息表(admin):
表结构如下表所示:
表3-1用户信息表
名称
字段名称
类型
长度
用户ID
id
int
4
用户名
name
char
6
用户密码
password
char
6
用户类型
type
char
10
注册时间
registdate
datetime
8
2)、学生基本情况表(student):
表结构如下表所示:
表3-2学生基本情况表
名称
字段名称
类型
长度
学号
sno
varchar
10
姓名
sname
char
10
性别
ssex
char
2
班级
sclass
varchar
50
出生年月
sbirthday
char
10
政治面貌
spa
varchar
8
地址
saddress
varchar
50
电话
sphone
varchar
11
Email
semail
varchar
20
3)、学生成绩表(grade):
表结构如下表所示:
表3-3学生基本情况表
名称
字段名称
类型
长度
学号
sno
int
2
课程名
cname
char
10
成绩
grade
char
2
学期
semester
char
8
第四章系统具体实现
本部分主要内容为本系统的各个运行界面以及主要界面的源代码
4.1模块设计
添加一个模块module1。
该部分主要包括一些公共变量的定义、main过程定义以及自动把备份的数据库文件还原到SQLServer2000中的代码设计。
代码如下:
PublicDeclareFunctionGetComputerNameLib"kernel32"Alias"GetComputerNameA"(ByVallpBufferAsString,nSizeAsLong)AsLong'获取主机名的定义
PublicAname,AsortAsString'状态栏上显示当前用户的名称和用户类型
PublicconnAsNewADODB