毕业设计(论文)基于vb学生信息管理系统的设计与实现【毕业论文】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)-基于VB学生信息管理系统的设计与
实现【毕业论文】
存档编号:
毕业论文(设计)
题目:基于VB学生信息管理系统的设计与实现
专业:计算机科学与技术
院系:计算机科学与技术学院
年级:计科Q0241
学号: 02414004
姓名:戴斌
指导教师:吴保荣
职称:副教授
湖北经济学院教务处制
目录
摘要 3
Abstract 3
第1章系统总体设计 5
1.1应用背景 5
5
1.3数据库技术的发展及特点 6
1.4项目目标 7
1.5解决方案设计10
第2章数据库设计12
2.1数据库的ER图12
2.2数据库与数据表的创建15
第3章技术细节18
3.1Recordset数据对象18
3.2Addnew方法19
3.3Delete方法20
3.4Move移动记录21
3.5MoveFirst、MoveLast、MoveNext和MovePrevious方法22 3.6Save方法,保存记录23
3.7Update方法24
3.8DataGrid控件介绍 24
第4章功能模块设计26
4.1登录窗口设计26
4.2 创建系统主控界面26
4.3 创建学生档案管理窗体27
4.4 创建学生成绩管理窗体29
4.5 学生交费管理窗体的制作30
4.6 课程管理窗体的制作31
4.7 制作系统权限维护窗体33
4.8 制作数据报表 33
结束语36
致谢37
参考文献:38
附录:39
摘要
学生信息管理系统是典型的信息管理系统 MIS ,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强、数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

本文结合学生信息管理的要求,对Access数据库管理系统、SQL语言原理、VB应用程序设计,VB数据库技术进行了较深入的学习和应用,主要完成对学生信息管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。

系统运行结果证明,本文所设计的学生信息管理系统可以满足学生和管理人员的需要。

本系统主要完成对管理,包括等个方面。

系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。

系统采用Microsoft Office中的Access 2000来设计数据库,并使用当前优秀的开发工具―6.0 ,它有着最为灵活的数据库结构,对数据库有着良好的支持。

Access 2000数据库技术的强大力量,提高了编程效率和可靠性。

关键词:学生信息管理 VB 6.0 数据库 ADO SQL语言 Access 2000 数据库组件
Abstract
Student's information management system is the typical information management system MIS , its development mainly includes the establishment and maintenance and head application procedure of the backstage database to develop two aspects.Build up a data consistency and integrity to the former request strong,the data safety good database.But then request applied procedure function to the latter complete, easy usage etc. characteristics.
This text combines a student the request of[with] the information management, managing system,SQL language principle to the Access database,VB application program design, the VB database technique carried on the more thorough study and application, the main completion managed the need of the system analysis to student's information,the function mold piece demarcation,the database mode analysis, and designed the database structure from here and applied procedure.The system circulates a result a certificate, the student design by this text information management the system can satisfy the demand between student and manager.
This system mainly completes the information-based management to student's information, including several aspects, such as student's file information,class information,each professional student's school fees information,student's result information and the course management information...etc..The system can complete to browse each kind of
information,search,increase,delete,modify etc. function.The system adopts the Access in the Microsoft Office 2000 to the design database, and use at present the excellent development tool-VB 6.0, it has the most vivid database structure, having a good support to the database application.
This design makes use of VB well 6.0,Access 2000 database technical strong strength, raise the plait distance efficiency and credibility.
Keyword: Student the information management VB 6.0 database ADO SQL language Accesses 2000 Database module
第1章系统总体设计
1.1应用背景
随着计算机的发展及网络技术的应用,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。

而在日常生活中信息技术的不断融入,在技术越来越先进的同时,应该从以前烦琐的事务中解放出来。

随着高校对招生规模的不断扩大,学生的数量急剧增加。

学籍信息是学校的一项重要的数据资源,学籍管理也是学校的一项常规性的重要工作。

而长期以来,学籍管理都是依赖人工进行的,面对如此众多的学籍信息,其工作量可想而知。

不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了学籍管理的某些不规范,使得学籍管理陷入“事倍功半”的地步。

面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。

通过这样的系统,可以方便地查询,统计和修改学生的基本情况,任课老师的情况,学生的课程开课情况和选课情况及成
绩,实现信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量,同时避免由于人为因素造成数据遗漏和误报等。

学生信息管理系统主要基于Visual Basic 6.0的开发和数据库Microsoft Access的相关知识。

下面分别对Visual Basic 6.0和数据库进行简单的介绍。

ual Basic的诞生及其发展
Visual意为可视化,指的是开发图形用户界面(GUI)的方法,而Basic指的是Beginner Symbol Instruction Code语言:Visual Basic就是基于Basic 的可视化程序设计语言。

Visual Basic在原来Basic语言的基础上进行了很大的扩展,其编程思想采用面向对象、事件驱动的编程机制,很好地把Windows 编程的复杂性封装起来,提供了一种所见即所得的程序设计方法。

Visual Basic最早是1991年Microsoft公司推出的,当时是Visual Basic 1.0,虽然刚推出的版本缺陷很多,但经过Microsoft公司的不断努力,随后又相继在1992年、1993年、1995年和1997年推出了2.0~5.0的版本,1998年推出了6.0。

整个过程中功能得到了不断完善和扩充,特别是Visual Basic 6.0较之以前的版本其功能和性能都大大增强了,尤其是数据库管理⒈网络应用方面更胜一筹。

ual Basic的主要特点
⑴面向对象的可视化程序设计。

传统的结构化语言,如BASIC、Pascal和C等都是采用面向过程的编程方法。

在这些方法中,代码和数据具有很大的分离性,因此这样的程序有很多缺陷,如程序的可读性、可维护性很差。

Visual Basic采用了面向对象的程序设计方法
(OOP),这种方法是把程序和数据封装在一个类中,类的实例就是对象。

每个对象都是可视化的。

设计程序时只需用现有的工具根据要求直接拖出所需的对象,并为每一个对象设置属性。

程序员的工作紧编写针对对象要完成那些功能的程序。

因而程序设计的效率可大大提高。

⑵事件驱动的编程机制。

传统的程序设计是一种面向过程的设计方式,程序总是按事先设计好的流程进行,而不能将后面的程序放在前面执行,当然用户就不能随意改变、控制程序的流向,这很不符合人类的思维习惯。

事件驱动是非常适合图形用户的编程方式,在图形用户界面的应用程序中,程序员只要编写响应用户动作的代码,每个动作之间不一定有联系,这样的应用程序代码较短,当然程序既易编写又易维护。

⑶支持多种数据库的访问。

数据库的访问特性允许对包括SQL Server和其他数据库在内的大部分数据库格式建立数据库和前端应用程序。

利用数据控件或ODBC能访问的数据库系统Microsoft Access、Microsoft FoxPro、dBASE、Paradox等,也可访问Microsoft Excel、Lotus 1-2-3等多种表格。

⑷支持动态链接库(DLL)、动态数据交换(DDE)与对象连接和嵌入(OLE)。

⑸完备的Help联机帮助功能。

1.3数据库技术的发展及特点
数据库技术是计算机和信息科学增长最迅速的重要领域之一。

数据库从20世纪60年代中期产生,距今仅30多年的时间,但其发展速度之快,使用范围之广是其他技术所达不到的。

数据库已从第一代的网状,层次数据库和第二代的关系数据库,发展到第三
代以面向对象模型为主要特征的数据库,数据库技术与网络通信技术,人工智能技术,面向对象程序设计技术,并行计算技术等的互相渗透,互相配合,成为当前数据库技术发展的主要特征。

数据模型是数据库系统的核心和基础技术。

因此数据模型的进展决定了数据库的发展,数据库发展阶段的划分一般就以数据模型的发展作为主要依据和标志。

其中,第三代数据库以更加丰富的数据模型和更强大的功能为特征,来满足传统数据库难以支持的对多媒体数据类型和使用Internet等新的应用要求。

1990年美国加州大学伯克利分校教授M.Stonebraker与另外5名学者发表了题为“第三代数据库系统宣言”的论文,对第三代数据库管理系统的基本特征进行了论述。

他们指出,第三代数据库系统具有以下特征:
①支持面向对象数据模型
②保持第二代数据库系统所具有的高效,安全,方便等特点。

③具有开放性,支持SQL语言以及多种网络标准协议等普遍承认的计算机标准
④支持多种硬件平台,易于得到扩充和增强。

1.4项目目标
开发本系统的总体任务是实现学生信息管理的系统化和自动化,帮助管理员更好更高效地完成学生信息管理工作。

本系统要完成的功能如下图:图1.1系统流程图
案管理模块
管理人员通过此模块来管理学生信息,包括浏览、查询、添加、修改和删除
功能。

在进行学生信息的添加时,系统会自动检测所添加的学生信息中学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。

在进行学生信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生信息的删除。

在进行学生信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。

理模块
管理人员通过此模块来管理课程信息,包括浏览、查询、添加、修改和删除功能。

在进行课程信息的添加时,系统会自动检测所添加的课程在课程表中是否已经存在,如果存在,会提示用户该课程已经存在。

在进行课程信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行课程信息的删除。

费管理模块
管理人员通过此模块来管理学生交费信息,包括浏览、查询、添加、修改和删除功能。

在进行学生交费信息的添加时,系统会自动检测所添加的学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。

在进行学生交费信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生交费信息的删除。

在进行学生交费信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来
实现,也可以先将错误学号信息删除再添加正确的学生交费信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。

理模块
管理人员通过此模块来管理班级信息,包括浏览、查询、添加、修改和删除功能。

在进行班级信息的添加时,系统会自动检测所添加的班级在班级表中是否已经存在,如果存在,会提示用户该班级已经存在。

在进行班级信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行班级信息的删除。

理模块
管理人员通过此模块来管理学生成绩信息,包括浏览、查询、添加、修改和删除功能。

在进行学生成绩信息的添加时,系统会自动检测所添加的学生号在学生表中是否已经存在,如果存在,会提示用户该学生已经存在。

在进行学生成绩信息的删除时,要首先弹出提示窗口让用户确认是否删除,只有在用户确认后才能够进行学生成绩信息的删除。

在进行学生成绩信息的修改时,不准用户修改学号,因为学号作为数据库中学生表的主键是不同学生的唯一标识,不准修改学号可以防止不经意将学号改错;如果确实要修改学生号,可以通过数据库管理员来实现,也可以先将错误学号信息删除再添加正确的学生成绩信息,这样在删除时会弹出提示窗口让用户确认是否删除,给用户以提示,防止意外错误。

1.5解决方案设计
系统功能设计
本系统使用Visual Basic 6.0作为开发语言,将数据库存储到Access数据库。

使用ADO连接数据库。

根据项目目标可以得到如下的结构图。

图1.2系统结构图
块功能分析
本系统包括如下功能模块:
1.系统管理模块
图1.3系统管理模块图
2.班级信息管理模块
图1.4班级信息管理模块图
3.学生档案管理模块
图1.5学生档案管理模块图
4.学生成绩管理模块
图1.6学生成绩管理模块图
5.课程信息管理模块
图1.7课程信息管理模块图
6.学生交费管理模块
图1.8学生交费管理模块图
第2章数据库设计
2.1数据库的ER图
1)学生档案数据的管理,包括学号、姓名、性别、班级、出生年月、家庭住址和入学时间。

案数据实体图
2)班级信息数据的管理,包括年级、班级、年制、班主任和备注。

息实体图
3)课程种类数据的管理,包括课程名称和教材。

类数据实体图
4)学生成绩数据的管理,包括学号、学期、类型、课程名称和分数。

绩数据实体图
5)课程信息数据的管理,包括年级、专业、年制、学期和课程名称。

息数据实体图
6)管理人员数据的管理,包括username、password、admin、readonly、qx1、qx2、qx3和qx4。

员数据实体图
7)学费数据的管理,包括年级、专业、年制、学期和学费。

据实体图
8)学生交费数据的管理,包括学号、学期、交费、欠费、日期和操作员。

费数据实体图
2.2数据库与数据表的创建
本系统数据采用Access数据库,使用VisData或在Access环境下创建数据库Stud.mdb文件。

该数据库包括学生档案表、班级信息表、各专业学生学费表等,该数据库包括8个不同专题的表,各表包含的字段含义如下。

1.学生档案表(Student)用与记录学生的基本档案
表1.1 学生档案表
字段名类型大小说明学号文本10 学生学号姓名文本8 学生姓名性别文本 2 学生性别班级文本10 班级出生年月日期/时间家庭住址文本30
入学时间日期/时间学生入学时间
2.班级信息表(Class)用于记录学校所有班级信息,数据表结构如下:表1.2 班级信息表
字段名类型大小说明年级文本16 班级文本20 年制文本8 学习年限班主任文本8 备注文本
3.课程种类表(KindCourse)用于记录所有开设课程种类,数据表结构如下:
表1.3 课程种类表
字段名类型大小说明课程名称文本20 记录课程名称教材文本30 所使用教材
4.学生成绩表(Score)用于记录学生各科考试成绩,数据表结构如下:表1.4 学生成绩表
字段名类型大小说明学号文本10 学生学号学期文本50 类型文本16 期中/期末课程名称文本
20 分数数字单精度型考试成绩
5.课程信息表(allCourse)用来保存不同年级、专业、学制、学期开设的课程,数据表结构如下:
表1.5 课程信息表
字段名类型大小说明年级文本16 专业文本12 专业类别年制文本8 学习年限学期文本50课程名称文本20 开设课程
6.管理人员表(User)用来保存合法管理员信息,数据表结构如下:
表1.6 管理人员表
字段名类型大小说明Username 文本20 用户名
Password 文本20 密码Admin 文本 2 是否为管理员
Readonly 文本 2 是否只读用户qx1 文本 2 是否有系统管理权限qx2 文本 2 是否有档案管理权限qx3 文本 2 是否有交费管理权限qx4 文本 2 是否有成绩管理权限
7.学费表 Tuition 用来记录不同年级不同专业学费情况,数据表结构如下:表1.7 学费表
字段名类型大小说明年级文本16 专业文本50 年制文本20 学习年限学期文本40 学费货币应缴纳学费
8.学生交费情况表(Studtuition)用来记录学生在校期间缴纳学费情况,数据表结构如下:
表1.8 学生交费情况表
字段名类型大小说明学号文本10 学期文本50 交费货币已缴纳学费欠费货币欠费额日期日期/时间记录时间操作员文本10 添加记录人员
第3章技术细节
3.1Recordset数据对象
Recordset对象是数据记录的集合,而数据记录有事字段的集合,因此利用
Recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了,所以说Recordset对象是存取数据库数据最重要的源头,在数据库的程序设计中,Recordset对象堪称为重要的对象。

字段的集合构成数据记录,记录的集合构成数据表。

在VB中与数据表对应的对象称为Recordset(数据记录集合)对象。

利用Recordset对象,在程序中就可以存取所有数据记录的每一个字段的数据了。

打开Recordset时,当前记录位于第一个记录(如果有),并且BOF和EOF 属性被设置为False。

如果没有记录,BOF和EOF属性设置是Ture。

假设提供者支持相关的功能,可以使用MoveFirst、MoveLast、MoveNext 和MovePrevious方法以及Move方法、AbsolutePosition、AbsolutePage和Filter属性来重新确定当前记录的位置。

仅向前Recordset对象只支持MoveNext 方法。

当使用Move方法访问每个记录(或枚举Recordset)时,可使用BOF和EOF属性查看是否移动已经超过了Recordset的开始或结尾。

Recordset对象可支持两类更新:立即更新和批更新。

使用立即更新,一旦调用Update方法,对数据的所有更改将被立即写入基本数据源。

也可以使用AddNew和Update方法将值的数组作为参数传递,同时更新记录的若干字段。

如果提供者支持批更新,可以使提供者将多个记录的更改存入缓存,然后使用UpdateBatch方法在单个调用中将他们传送给数据库。

这种情况应用于使用AddNew、Update和Delete方法所做的更改。

调用UpdateBatch方法后,可以使用Status属性检查任何数据冲突并加以解决。

3.2Addnew方法
创建可更新Recordset对象的新记录。

基本语法为
Recordset.AddNew FieldList, Values
其中,参数FieldList可选,表示新记录中字段的单个名称、一组名称或序号位置。

Values可选,表示新记录中字段的单个或一组值。

如果Fields是数组,那么Values也必须是有相同成员数的数组,否则将发生错误。

字段名称的次序必须与每个数组中的字段值的次序相匹配。

通过adAddNew使用Supports方法可验证是否能够将记录添加到当前的Recordset对象。

在调用Recordset方法后,新记录将成为当前记录,并在调用Update方法后继续保持当前记录。

如果Recordset对象不支持书签,当移动到其他记录时将无法对新记录进行访问。

是否需要调用Requery方法访问新记录则取决于所使用的游标类型。

Addnew方法的行为取决于Recordset对象的更新模式以及是否传送Fields 和Values参数。

在立即更新模式(调用Update方法时提供者会立即将更改写入基本数据源)下,调用不带参数的AddNew方法可将EditMode属性设置为adEditAdd。

提供者将任何字段值的更改缓存在本地。

调用Update方法可将新的记录传递到数据库并将EditMode属性重置为adEditNone。

如果传送了Fields和Values参数,则立即将新记录传递到数据库(无须调用Update),且EditMode属性值没有改变(adEditNone)。

在批更新模式(提供者缓存多个更改并只在调用UpdateBatch时将其写入基本数据源)下,调用不带参数的AddNew方法可将EditMode属性设置为adEditAdd。

提供者将任何字段值的更改缓存在本地。

调用Update方法可将新的
记录添加到当前记录集并将EditMode属性重置为adEditNone,但在调用UpdateBatch方法之前提供者不将更改传递到基本数据库。

如果传送了Fields 和Values参数,则将新记录发送给提供者以便缓存;需要调用UpdateBatch方法将新记录传递到基本数据库。

如果Unique Table动态属性被设置,并且Recordset是对多个表执行JOIN 操作的结果,那么,AddNew方法只能将字段插入到由Unique Table属性所命名的表中。

3.3Delete方法
Delete方法删除当前记录或记录组。

语法为
recordset.Delete AffectRecords
参数AffectRecords确定Delete方法所影响的记录数目,该值可以是表常量之一。

表AffectRecords取值
常量说明AdAffectCurrent 默认。

仅删除当前记录
AdAffectGroup 删除满足当前Filter属性设置的记录。

要使用该选项,必须将Filter属性设置为有效的预定义常量之一AdAffectAll 删除所有记录AdAffectAllChapters 删除所有子集记录使用Delete方法可将Recordset对象中的当前记录标记为删除。

如果Recordset对象不允许删除记录将引发错误。

使用立即更新模式将在数据库中进行立即删除,否则记录将标记为从缓存删除,实际的删除将在调用UpdateBatch方法时进行。

(使用Filter 属性可查看已删除的记录)。

从已删除的记录中检索字段值将引发错误。

删除当前记录后,在移动到其他
记录之前已删除的记录将保存为当前记录。

一旦离开已删除记录,则无法再次访问它。

如果在事务中嵌套删除,可用RollbackTrans方法恢复已删除的记录。

如果处于批更新模式,则可用CancelBatch方法取消一个或一组挂起删除。

如果因与基本数据冲突而导致删除记录失败(如记录已被其他用户删除),则提供者向Errors集合返回警告但不终止程序执行,只有在所有提出请求的记录上发生冲突时才会产生运行时错误。

如果UniqueTable动态属性被设置,并且Recordset是对多个表执行JOIN 操作的结果,那么,Delete方法将仅删除UniqueTable属性所命名的表中的行。

3.4Move移动记录
移动3.4Recordset对象中的当前记录的位置。

recordset.Move NumRecords,Start
其中,参数NumRecords为带符号长整形表达式,指定当前记录位置移动的记录数。

Start可选,字符串或变体形,用于计算书签,也可为表列出的BookmarkEnum值之一。

常量说明AdBookmarkCurrent 默认。

从当前记录开始
AdBookmarkFirst 从首记录开始AdBookmarkLast 从尾记录开始所有Recordset对象都支持Move方法。

如果NumRecords参数大于零,则当前记录位置将向前移动(向记录集的末尾)。

如果NumRecords小于零,则当前记录位置向后移动(向记录集的开始)。

如果Move调用将当前记录位置移动到首记录之前,则当前记录放置在记录集(BOF为True)的首记录之前。

在BOF属性已经为True时试图向后移动将产
生错误。

如果Move调用将当前记录位置移动到尾记录之后,则当前记录放置在记录集(EOF为True)的尾记录之后。

在EOF属性已经为True时试图向前移动将产生错误。

从空的Recordset对象调用Move方法将产生错误。

如果传送Start参数,则移动相对于该书签的记录(假定Recordset对象支持书签)。

如果没有指定,则移动相对于当前记录。

如果使用CaheSize属性在本地缓存来自提供者的记录,则在传送将当前记录位置移动到当前缓存的记录组之外的NumRecords参数时,从目标记录开始检索新的记录组。

CaheSize属性决定新检索记录组的大小,而且标记录是检索到的第一个记录。

如果Recordset对象是仅向前的,则用户仍然可以传送小于零的NumRecords 参数(只要目标在已缓存记录的当前集合中)。

如果Move调用将当前记录位置移动到第一个已缓存记录的前一个记录,将产生错误。

因此可使用记录缓存,他在支持仅向前滚动的提供者上支持完全滚动。

由于缓存的记录将加载到内存,因此应避免不必要地缓存过多记录。

即使仅向前Recordset对象支持这种方式的向后移动,在任何仅向前的Recordset对象上调用MovePrevious方法将产生错误。

3.5MoveFirst、MoveLast、MoveNext和MovePrevious方法
在指定Recordset对象中移动到第一个、最后一个、下一个或前一个记录并使该记录成为当前记录。

语法:
recordset. MoveFirst | moveLast | MoveNext | Moveprevious。

相关文档
最新文档