目 录
前 言 ................................................................................. 1 第一章 学生成绩管理系统 ................................................................ 2 1.1需求分析 .......................................................................... 2 1.1.1系统概述 ..................................................................... 2 1.1.2系统运行环境 ................................................................. 2 1. 1. 3 功能需求描述 ................................................................ 3 第二章 总体设计及流程图 ............................................................... 3 2.1开发与设计的总体思想 ............................................................... 3 2.2系统模块结构图 ..................................................................... 3 2.2.1模块设计 ....................................................................... 4 2.2.2界面设计 ....................................................................... 6 2.2.3数据库设计 .................................................................... 12 第三章 详细设计 ....................................................................... 15 3.1学生管理模块 ...................................................................... 15 3.2教师管理模块 ...................................................................... 20 3.3班级管理模块 ...................................................................... 29 3.4课程管理模块 ...................................................................... 31 3.5成绩管理模块 ...................................................................... 32 参考文献 ................................................................................ 40 前 言
几年的学习即将结束,经过几个月的努力,我所设计的“学生成绩管理系统”也已完成。以往学的都是理论性很强的知识,再加上实践机会不多,更增强了我对计算机科学的兴趣。在这段时间里,我增强了自己动手的能力,更重要的是似乎把握住了计算机的一些实质性的东西--终于能够用我所学的知识解决
一些实际应用的问题了。但我知道,数据库技术只是计算机科学的一个小小分支,计算机还有更广阔的领域有待我们去探索。
这次毕业设计是用Visul Basic语言设计的“学生成绩管理系统”,•这就要求对Visul Basic语言及数据库技术能够真正了解和熟练的掌握,并且能够灵活的运用。
当今的时代是信息的时代,数据库技术是数据管理的最新方法,也是信息管理中一项非常重要的新技术,数据库管理是帮助人们处理大量信息,实现科学化和现代化的强有力工具,数据库管理子系统已发展成为通用的系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序独立性、易于扩充、易于编制应用程序等优点,因而是近年来发展非常迅猛的计算机软件。数据库技术是数据信息管理技术的最新成果,被广泛应用于国民经济、文化教育、军事情报、科学计算、人工智能和计算机辅助设计领域,为计算机的应用开辟了广阔的天地。 第一章 学生成绩管理系统 1.1需求分析
考试成绩是学生在校期间的重要历史资料,学生成绩信息的管理(成绩的录入、查询、分类统计等)是各个学校面临的一个重要问题。该成绩管理系统主要是用于管理在校学生的考试成绩,对教、班级、学生、课程和成绩信息进行维护与管理。本系统要求运行稳定,图形用户界面符合用户的日常使用习惯,数据处理正确无误。 1.1.1系统概述
学生成绩管理系统主要完成学生成绩的管理,包括:
(1) 教师管理。主要完成教师的添加、修改、删除和查询。 (2) 班级管理。主要完成班级的添加、修改、删除和班级列表。 (3) 学生管理。主要完成对学生信息的添加、修改、删除和查询。
(4) 课程管理。主要完成对课程信息的维护,包括课程添加、修改、删除和查询功能。 (5) 成绩管理。主要完成成绩的添加、删改和成绩杳询。 1.1.2系统运行环境 1.硬件环境
处理器:Intel pentium166MX 或更高。 内存:32M以上。 硬盘空间:1GB以上。 显卡:SVGA显示适配器。 2.软件环境
操作系统:Windows98/XP/2000/ME 1.1.3 功能需求描述
该系统的功能需求有如下几个方面:
(1) 教师管理。主要用于对教师信息进得维护。功能包括新教师信息的添加、修改和删除已有的教师信息,对教师信息进行查询。
(2) 班级管理。主要用于对班级信息进行维护。功能包括对班级信息的添加、删改和班级列表。 (3) 学生管理。主要用于维护学生信息。功能包括对学生信息的添加、删改和查询。 (4) 课程管理。主要用于维护课程信息,功能包括课程的添加、删改和查询。 (5) 成绩管理。用于维护成绩信息,功能包括成绩的添加和查询。 第二章 总体设计及流程图
上面的需求分析已经对系统的功能需求、环境需求做了较为明确的阐述。根据上述需求,下面按照开发设计思想、功能模块、图形用户界面、数据库等方面阐述成绩管理系统的总体设计。 2.1开发与设计的总体思想
作为学校使用的成绩管理系统,能够满足成绩管理的基本功能需求,界面简单、操作简便是设计的一个重要考虑。 2.2系统模块结构图
依据需求分析结果,成绩管理系统的主要模块包括:教师管理、班级管理、学生管理、课程管理和成绩管理等功能,系统结构如图2-1所示。
2.2.1模块设计 1.教师管理模块
教师管理模块提供对教师信息的添加、修改、删除和查询功能。教师管理模块的功能树如图2-2所
示。
2.班级管理模块
该模块主要提供的功能包括添加新的班级信息、删改班级信息和班级列表功能。班级管理模块的功
能树如图2-3所示。
3.学生管理模块
该模块提供学生信息的添加、修改、删除和查询功能。学生管理模块的功能树如图2-4所示。
4.课程管理模块
该模块提供课程信息的添加、修改、删除和查询功能。课程管理模块的功能树如图2-5所示。
5.成绩管理模块
该模块提供成绩信息的添加、修改、删除和查询功能。成绩管理模块的功能树如图2-6所示。
2.2.2界面设计
界面设应计应遵循简洁美观、方便易用的基本原则,具体设计如下。 1.主窗体菜单设计
充分考虑界面易于操作的系统需求,主窗体使用简单和直观的菜单设计,提供学生管理、教师管理、班级管理、课程管理和成绩管理的菜单操作方式,主窗体菜单设计的效果图如图2-7所示。
图2-7 主窗体菜单设计的效果图
1.教师管理菜单设计
(1) 教师信息添加界面设计
教师信息添加界面使用文本框输入教师相关基本信息,使用组合列表框选择部门和性别。单击添加按钮保存教师信息,单击返回按钮返回主菜单。具体设计效果图如图2-8所示。
图2-8 具体设计效果图
(2) 教师信息修改删除界面设计
教师信息删改界面提供了组合列表框,用于选择部门和教师编号,教师编号组合列表框中的数据随部门组合列表值的变化而变化,选择教师编号,就会在下面显示出该教师的基本信息。具体设计效果图如图2-9所示。
图2-9 具体设计效果图
(3) 教师信息查询界面设计
教师信息查询界面使用三个单选按钮提供了三种查询方式:按部门查询、按职称查询和查询全部教师信息。
在按部门查询方式中,需要从后面的组合列表框中选择部门。按职称查询需要在后面的组合列表框中选择职称。单击查询按钮就会根据所选择的查询方式,从数据库中查找符合条件的数据,并显示到下面的表格中。具体设计效果图如图1-10所示。 2.学生管理界面设计
(1) 学生信息添加界面设计
学生信息添加界面使用文本框输入学生的姓名、学号、生日、电话、地址和备注信息。同时使用了两个组合列表框,分别用于选择班级和性别。组合列表框中的数据会在窗体加载的时候就进行初始化。具体设计效果图如图1-11所示。
(2) 学生信息删改界面设计
在学生信息删改界面中,在班级组合列表框中选择班级,该班级的所有学号会添加到学号组合列表框中,在学号组合列表框中选择学号,就会在下方显示该学生的基本信息。根据需要单击修改按钮来修改学生信息,也可以单击删除按钮来删除该学生的信息,或是单击返回按钮返回主菜单。具体设计效果图如图2-10所示。
图2-10 具体设计效果图
(3) 学生信息查询界面设计
学生信息查询办面提供了四种查询方式:全部、按班级查询、按学号查询和按姓名查询。提供了一个表格用于赤示查询结果。
3.课程管理界面设计
(1) 课程信息添加界面设计
课程添加界面提供了文本框,用于输入课程名称、课程编号、课程学时数和学分等课程基本信息。并且提供了两个组合列表框,分别用于选择课程类型和任课教师。这两个组合列表框的数据是在加载窗体的时候进行初始化的。
(2) 课程信息删改界面设计
课程信息删改界面提供了文本框,用于输入课程编号,单击查询按钮就会查找该课程编号所代表的课程信息,找到后将信息显示出来。修改和删除按钮用于完成修改和删除操作。具体设计效果图如图2-11所示。
图2-11 具体设计效果图
(3) 课程查询界面设计
课程查询界面使用单选按钮提供了四种查询方式:查询全部、按课程名称查询、按课程号查询和按课程类型查询。使用表格显示查询结果。 4.成绩管理界面设计
(1) 成绩录入界面设计
成绩界面使用文本框输入学生学号和课程成绩。使用组合列表框选择课程编号。使用表格显示查询结果。使用两个文本框显示学生姓名和课程名称。这两个文本框是不可编辑的。具体设计效果图如图2-12所示。
图2-12 具体设计效果图
(2) 成绩删改界面设计
在成绩删改界面中的文本框中输入学生学号,在组合列表框中选择课程编号,单击查询按钮就会查询相关课程的考试成绩,成绩信息赤示在下面的课程基本信息中。可以单击修改或删除按钮来完成成绩的修改和删除。具体设计效果图如图2-13所示。
图2-13 具体设计效果图
(3) 成绩查询界面设计
成绩查询界面提供了三种查询方式:按学号、按课程和按成绩查询。使用表格显示查询结果。 2.2.3数据库设计
根据系统功能设计的要求以及功能模块的划分,数据库表结构设计如下。 1.学生信息表
名称:学生信息表(见表2-1) 表名称标识:studentInfo
数据来源:学生管理模块进行录入。 2.教师信息表
名称:教师信息表(见表2-2) 表名称标识:teacherInfo
数据来源:教师管理模块进行录入。
表2-1 学生信息表
名称 字段名称 类型 学号 Stu_no 文本 姓名 Name 文本 班级编号 Class_no 文本 出生日期 Birthdate 数字 性别 Sex 文本 主键 非空Yes Yes
No Yes
No Yes
No Yes
No Yes
通信地址 Address 联系电话 TelNo 备注信息 Memo 表2-2 教师信息表
名称 字段名称 员工编号 Teacher_no 姓名 Name 部门 Department 出生日期 Birthdate 性别 Sex 通信地址 Address 联系电话 telNo 职称 title 备注信息 memo 3.班级信息表
名称:班级信息表(见表2-3) 表名称标识:classInfo
数据来源:班级管理模块进行录入。
表2-3 班级信息表
文本 文本 文本 类型 文本 文本 文本 /时间文本 文本 文本 文本 文本 No No
No No
No No
主键 非空Yes Yes
No Yes
No Yes
No Yes
No Yes
No No
No No
No Yes
No No
日期
名称 字段名称 班级编号 ClassNo 班级名称 className 4.部门信息表
名称:部门信息表(见表2-4) 表名称标识:departmentInfo 数据来源:数据库设计时录入。
表2-4 部门信息表
名称 字段名称 类型 部门编号 Dept_no 文本 部门名称 Dept_name 文本 5.课程信息表
名称:课程信息表(见表2-5) 表名称标识:courseInfo 数据来源:课程管理模块录入。
表2-5 课程信息表
名称 字段名称 序号 No 课程编号 Course_no 类型 文本 文本 主键 Yes No 类型 文本 主键 非空
Yes Yes
No Yes
非空
Yes
Yes
主键 非空
Yes Yes
No Yes
自动编号
课程名称 Course_name 文本 No Yes
课程类型 Course_type 文本 No Yes
学时数 Course_hours 数字 No Yes
学分 Score 数字 No Yes
授课教师 Teacher 文本 No Yes
6.成绩信息表
名称:成绩信息表(见表2-6) 表名称标识:scoreInfo 数据来源:成绩管理模块录入。
表2-6 成绩信息表
名称 字段名称 类型 主键 非空
编号 No 自动编号 Yes Yes
学号 Stu_no 文本 No Yes
课程号 Course_no 文本 No Yes
成绩 Score 数字 No Yes
第三章 详细设计
基于系统需求分析与系统总体设计的结论,本系统采用Visual Basic 6.0实现各模块的功能,下面按照功能模块的划分来分别阐述系统的详细设计和实现过程。 3.1学生管理模块 1.功能描述
为用户提供学生信息的添加、修改、删除和查询界面,完成学生信息的添加、修改、删除和查询功能。 2.窗体和源文件定义
该功能模块涉及到的窗体名称和文件名参见表3-1。 表3-1 窗体列表
窗体各称 窗体文件名 frmStudent frmStudent.frm frmUpdateStudent frmUpdateStudent.frm frmQueryStudent frmQueryStudent.frm Module1 Module1.bas 3.变量声明
‘窗体模块中的声明 Public sqlstr As String Public msgText As String ‘代码模块中的声明 Public dbpath As String Public connStr As String 4.函数与方法声明
该功能模块涉及到的函数/方法及其功能参见表3-2。 表3-2 主要函数与方法
窗体名称 函数/方法名 作用
用于学生信息添加
用于修改、删除学生信息
用于查询学生信息
用于定义全局变量和公用函数
作用
Frmstudent Sub initClass() 在组合列表框中列出所有班级
Sub initForm() 初始化窗体上的文本框和组合列表框
Private sub cmdOK_click() 在数据库中添加学生信息
frmUpdateStudent Sub initClass() 在组合列表框中列出所有班级
Sub initStudentNo() 在组合列表框中列出所有学号
Sub getStudentNo() 获取学生信息
Private Sub cmdDelete_click() 删除学生信息
Private sub cmdUpdate_click() 修改学生信息
frmQueryStudent Sub initClass() 在组合列表框中列出所有班级
Private Sub cmdOK_click() 查询学生信息
Module1 PublicFunctionExecuteSQL(ByVal SQL 执行SQL语句并返回结果集 As String,MsgString As String)As ADODB.Recordset
(1)frmStudent窗体:Sub initClass()
功能:主要用来完成学生信息添加窗体加载时对班级的初始化,从班级信息表中获取所有的班级名称并将其放置到窗体中的组合列表框中供用户选择。 输入:无。
(2)frmStudent窗体:Private Sub cmdOk_click()
功能:获取学生信息添加窗口中的输入数据,将学生信息添加到数据库中。 输入:信息添加窗口的输入和选择。 处理:
1) 2) 3) 4)
获取信息输入窗口中填写的数据。
执行查询得到结果集,然后调用结果集对象的addNew方法。 设置各个字段的值。
调用update方法更新结果集,完成学生信息添加。
输出:将数据写入学生信息表。
(3)frmUpdateStudent窗体:Sub initStudentNo()
功能:从数据库中读取所有的学号信息,并将其添加到组合列表框中。 输入:无。 处理:
1) 2) 3)
执行SQL语句,根据班级编号查询学号信息,得到结果集。 情况组合列表框。
遍历结果集,将所有学号添加到组合列表框中。
输出:带有学号信息的组合列表框。
(4)frmUpdateStudent窗体:Sub getStudentInfo() 功能:根据学号从数据库中查找学生信息并显示出来。 输入:学生学号。 处理:
1) 2)
执行SQL语句,根据学号查找学生信息,得到结果集。 取结果集中的每个字段的信息显示到窗体上。
输出:显示学生信息。
(5)frmUpdateStudent窗体:private sub cmdUpdate_Click()
功能:根据学生信息删改窗体中重新输入的数据修改数据库中的数据记录。 输入:删改窗体上输入的字段数据。 处理:
1)
得到用于数据更新的SQL语句。
2) 执行SQL语句,完成数据更新,根据执行结果的正确与否,给出相应提示。
输出:修改后的数据。
(6)frmUpdateStudent窗体: Private sub cmdDelete_Click() 功能:删除数据库中当前显示的学生信息。 输入:删改窗体上输入的字段数据。 处理:
1、 得到用于数据删除的SQL语句。
2、 执行SQL语句,完成数据删除,根据执行结果的正确否,给出相应提示。 输出:无
(7)Module1代码模块:public Function ExecuteSQL(ByValSQL As String ,MsgString AsString)As ADODB.Recordset 功能:执行SQL语句。 输入:SQL语句。 处理:
1) 2) 3)
建立数据库连接。
判断传递进来的SQL语句的类型并执行。
将执行后得到的结果集对象作为该函数的返回值返回。
输出:结果集对象。 3.2教师管理模块 1.功能描述
该模块提供教师信息的添加、修改、删除和查询界面,完成教师信息的添加、修改、删除和查询功能。 2.窗体和源文件定义
该功能模块涉及到的窗体名称和文件名参见表3-3。 表3-3 窗体列表
窗体名称 窗体文件名 frmAddTeacher frmAddTeacher.frm frmUpdateTeacher frmUpdateTeacher.frm frmQueryTeacher frmQueryTeacher.frm 3.变量声明
‘窗体模块中的声明 Public sqlstr As String Public msgText As String ‘代码模块中的声明 Public dbpath As String Public connStr As String 4.函数与方法声明
该功能模块涉及到的函数/方法及其功能参见表3-4。 表3-4 主要函数与方法
作用
用于教师信息添加
用于修改、删除教师信息
用于查询教师信息
窗体名称 函数/方法名 作用
在组合列表框中列出所有部门
Sub initDepartment()
名称
frmAddTeacher
Sub initForm()
初始化窗体上的文本框和组合
列表框
Private sub cmdOK_Click() 添加教师信息
在组合列表框中列出所有部门
Sub initDepartment()
名称
在组合列表框中列出所有教师
Sub initTeacherNo()
编号
frmUpdateTeacher
Sub getTeacherNo()
获取教师信息
Private sub cmdDelete_click() 删除教师信息
privatesubcmdUpdate_click() 修改教师信息
在组合列表框中列出所有部门
Sub initDepartment()
名称
frmQueryTeacher
Sub initTitles()
在组合列表框中列出所有的职
称
Private sub queryTeacher() 查询教师信息
(1) frmAddTeacher窗体:Sub initDepartment()
功能:主要用来获取所有的部门名称并将其放置到窗体中的组合列表框中供用户选择。 输入:无。
处理:
1) 得到查询部门名称的SQL语句。
2) 调用ExecuteSQL方法执行SQL语句并得到结果集。 3) 清空组合列表框。
4)
读取结果集中的所有数据并添加到列表框中。
输出:包含所有部门名称的组合列表框。 程序清单:
Sub initDepartment()
Dim rstDept As ADODB.Recordset
‘从数据库中读取所有部门并添加到组合列表框中 ‘方便录入时进行选择
sqlStr=”select dept_name from departmentInfo” set rstDept=ExecuteSQL(sqlStr,msgText) cboDept.Clear
If Not rstDept.EOF then Do while Not rstDept.EOF
cboDept.AddItem Trim(rstDept.Fields(0)) rstDept.MoveNext Loop
cboDept.ListIndes=0 Else
MsgBox “没有部门信息,请添加部门!”,vbOKOnly+vbExclamation, “警告”
Exit sub End If rstDept.close End Sub
(2) frmAddTeacher窗体:private sub cmdOK_Click()
功能:主要用来完成教师信息的添加,将窗体上填写的信息添加到数据库中。 输入:教师信息添加窗体上输入的数据。 处理:
1) 2) 3) 4)
获取信息输入窗口中填写的数据。
执行查询得到结果集,然后调用结果集对象的addNew方法。 设置各个字段的值。
调用update方法更新结果集,完成教师信息添加。
输出:将数据写入教师信息表
程序清单:与学生信息添加代码类似,请参考本书提供的源代码。 (3)frmUpdateTeacher窗体:private sub cmdUpdate_Click()
功能:主要用来完成教师信息的修改,将窗体上修改后的信息添加到数据库中。 输入:教师信息删改窗体上输入的数据。 处理:
1) 2)
获取信息输入窗口中填写的数据并得到SQL语句。 执行SQL语句完成数据修改。
输出:将修改后的数据写入教师信息表。 程序清单:
Private sub cmdUpdate_Click() Dim conn As ADODB.Connection sqlStr=
“UPDATE
teacherInfo
set
[birthdate]=#”&
txtBirth
& &
“#,[department]=’”&cboDept(0).Text
“’,[telno]=’”&txtTel.Text&”’,[title]=’”&txtTitle.Text&”’”& “where teacher_no=’” & txtNo.Text & “’”
on Error GoTo exitsub set conn=New ADODB.Connection conn.Open connStr conn.Execute sqlstr MsgBox “成功修改数据!!”
Exitsub:
Conn.close initDepartment
end sub
(4)frmUpdateTeacher窗体:private sub cmdDelete_Click() 功能:主要用来完成教师信息的删除。
输入:将窗体上显示的教师信息从数据库中删除。 处理:
1) 2)
获取信息输入窗口中填写的数据并得到SQL语句。 执行SQL语句完成数据删除。
输出:从教师信息表中删除数据。 程序清单:
Private sub cmdDelete_Click() Dim conn As ADODB.Connection
sqlStr= “DELETE FROM teacherInfo where teacher_no=’”&txtNo.Text& “’” on Error GoTo exitsub set conn=New ADODB.Connection conn.Open connStr conn.Execute sqlStr MsgBox “成功删除数据!!”
Exitsub: Conn.Close initDepartment End sub
(5)frmUpdateTeacher窗体:private sub queryTeacher() 功能:主要用来完成教师信息的查询。
输入:查询窗体上选择的查询方式和输入的查询信息。 处理:
1) 2) 3)
获取查询方式和查询关键字,得到SQL语句。 执行SQL语句得到结果集。
遍历结果集,将数据显示在表格中。
输出:满足查询条件的教师信息。 程序清单:
Private sub queryTeacher()
Dim rs As ADODB.Recordset Dim i As integer Dim j As integer
If optQuery(0).value=true Then
sqlStr=”select*from teacherInfo where department=’”&cbodept.Text & “’” end if
If optquery(1).value=true Then
sqlStr=”select*from teacherInfo where title=’”&cbotitle.Text& “’” End If
If optquery(2).value=true Then sqlStr=”select*from teacherInfo” End If
Set rs = ExecuteSql(sqlStr,msgText)
If rs.RecordCount=0 Then
MsgBox “没有查找满足条件的数据!”,vbExclamation, “提示” Else
fgTeacher.Rows=rs.RecordCount + 1 fgTeacher.Cols=8 ‘设定行高
For I = 0 to fgTeacher.Rows – 1 fgTeacher.RowHeight(i)=280 Next i
‘设定列的属性 fgTeacher.Row=0
for I = 0 to fgTeacher.Cols – 1 fgTeacher.Col=I ‘指定当前列为第I 列
fgTeacher.FixedAlignment(i)=4 ‘每列内容居中显示 select case I case 0
fgTeacher.ColWidth(i)=800 ‘设定列宽 fgTeacher.Text= “编号” case 1
fgTeacher.ColWidth(i)=800 ‘设定列宽 fgTeacher.Text= “姓名”
case 2
fgTeacher.ColWidth(i)=1000 ‘设定列宽 fgTeacher.Text= “出生日期”
case 3
fgTeacher.ColWidth(i)=500 ‘设定列宽 fgTeacher.Text= “性别” case 4
fgTeacher.ColWidth(i)=1000 ‘设定列宽 fgTeacher.Text= “地址” case 5
fgTeacher.ColWidth(i)=1000 ‘设定列宽 fgTeacher.Text= “电话” case 6
fgTeacher.ColWidth(i)=1000 ‘设定列宽 fgTeacher.Text= “职称” case 7
fgTeacher.ColWidth(i)=1000 ‘设定列宽 fgTeacher.Text= “所属部门” End Select
Next i I=1
While (Not rs.Eof) fgTeacher.Row=i
for j= 0 to fgTeacher.Cols – 1 fgTeacher.Col=j ‘设置当前列为第j列
fgTeacher.CellAlignment =4 ‘每列内容居中显示 Select Case j
Case 0
fgTeacher.Text= rs.Fields(“teacher_no”) Case 1
fgTeacher.Text=rs.Fields(“name”) Case 2
fgTeacher.Text=rs.Fields(“birthdate”) Case 3
fgTeacher.Text=rs.Fields(“sex”) Case 4
fgTeacher.Text=rs.Fields(“address”) Case 5
fgTeacher.Text=rs.Fields(“telno”) Case 6
fgTeacher.Text=rs.Fields(“title”) Case 7
fgTeacher.Text=rs.Fields(“department”) End Select Next j Rs.MoveNext i=i+1 Wend End If Rs.close End Sub
3.3班级管理模块 1.功能描述
该模块提供班级信息的添加、修改、删除和班级列表界面,完成班级信息的添加、修改、删除和列表功能。
2.窗体和源文件定义
该功能模块涉及到的窗体名称和文件名参见表3-5。 表3-5 窗体列表
窗体名称 窗体文件名 frmAddClass frmAddClass.frm frmUpdateClass frmUpdateClass.frm frmListClass frmListClass.frm 3.变量的声明
‘窗体模块中的声明 Public sqlstr As String Public msgText As String ‘代码模块中的声明 Public dbpath As String Public connStr As String 4.函数与方法声明
该功能模块涉及到的函数/方法及其功能参见表3-6。
表3-6主要函数与方法
窗体名称 函数/方法名 作用
用于班级信息添加
用于修改、删除班级信息
用于显示所有班级信息的列表
作用
frmAddClass Private sub cmdOK_Click() 添加班级信息
在组合列表框中列出所有班级编
Sub initClassNo()
号
frmUpdateClass
Sub getClassInfo() 获取班级信息
Private sub cmdDelete_click() 删除班级信息
Private sub cmdUpdate_click() 修改班级信息
frmListClass Private sub queryClass() 查询班级信息
3.4课程管理模块 1.功级描述
提供课程信息的添加、修改、删除和查询界面,完成课程信息的添加、修改、删除和查询功能。 2.窗体和源文件定义
该功能模块涉及到的窗体名称和文件名参见表3-7。 表3-7 窗体列表
窗体名称 窗体文件名 作用
frmAddCourse frmAddCourse.frm 用于课程信息添加
frmUpdateCourse frmUpdateCourse.frm 用于修改、删除课程信息
frmQueryCourse frmQueryCourse.frm 用于查询课程信息
3.变量声明
‘窗体模块中的声明 Public sqlstr As String
Public msgText As String ‘代码模块中的声明 Public dbpath As String Public connStr As String 4.函数与方法声明
该功能模块涉及到的函数/方法及其功能参见表3-8. 表3-8 主要函数与方法
窗体名称 函数/方法 作用
Sub initTeacher()
frmAddCourse
Private sub cmdOK_Click()
将所有教师姓名添加到组合列表框中
将课程信息添加到数据库
Sub initTeacher() 将所有教师姓名添加到组合列表框中
Sub getCourseInfo()
frmUpdateCourse
Private sub cmdUpdate_Click()
从数据库中获取课程信息
修改课程信息
Private sub cmdDelete_Click() 删除数据库中的课程信息
根据选择的查询方式和输入的查询条件查找
frmQueryCourse
Private sub querycourse()
满足条件的数据并在表格中显示
3.5成绩管理模块 1.功能描述
该模块提供成绩信息的录入、修改、删除和查询界面,完成成绩信息的录入、修改、删除和查询功
能。
2.窗体和源文件定义
该功能模块涉及到的窗体名称和文件名参见表3-9。 表3-9 窗体列表
窗体名称 窗体文件名 frmAddScore frmAddScore.frm frmUpdateScore frmUpdateScore.frm frmQueryScore frmQueryscore.frm 3.变量声明
‘窗体模块中的声明 Public sqlstr As String Public msgText As String ‘代码模块中的声明 Public dbpath As String Public connStr As String 4.函数与方法声明
该功能模块涉及到的函数/方法及其功能参见表3-10。 表3-10 主要函数与方法
窗体名称 函数/方法名 Sub initCourseNo()
frmAddScore
Private sub txtStuNo_KeyPress(KeyAscii As Integer)
作用
用于成绩信息添加
用于修改、删除成绩信息
用于查询成绩信息
作用
在下拉列表框中显示所有课程号
文本框响应回车键,如果输入学号后回车,就会查找并显示学生姓名
在组合列表框中选择课程编号,触
Private sub cboCourseNo_Click()
发click事件,查找显示课程名称
Private sub cmdOK_Click() 向数据库中添加成绩信息
Sub initCourseNo() 在下拉列表框中显示所有课程号
Sub getScoreInfo()
frmUpdateScore
Private sub cmdUpdate_click()
从数据库中查找成绩信息
修改成绩信息
Private sub cmdDelete_Click() 删除成绩信息
frmQueryScore Private sub cmdOK_Click() 查询成绩
(1)frmAddScore窗体:private sub txtStuNo_KeyPress(KeyAscii As Integer) 功能:相应键盘事件,如果是回车键,则按学号查询学生姓名。 输入:按键的ASCII码。 处理:
1) 2) 3)
判断按键是否为回车键。
如果为回车键,刚转3,否则退出。 查询学生姓名并显示出来。
输出:学生姓名。 程序清单:
Private sub txtStuNo_keypress(keyAscii As Integer) Dim rstStudent As ADODB.Recordset If KeyAscii=13 Then
sqlStr= “select name from studentInfo”
set rststudent=ExecuteSQL(sqlStr,msgText) If Not rstStudent.EOF Then
txtName=rstStudent.Fields(0)
Else
MsgBox “未找到学生的信息记录!”,vbOKOnly+vbExclamation, “警告” Exit sub
End If
rstStudent.Close
End If End sub
(2)frmAddScore窗体:private sub cmdOK_Click() 功能:将窗体中的成绩信息添加到数据库中。 输入:成绩添加窗体中填写的数据。 处理:
1) 2) 3) 4)
获取信息输入窗口中填写的数据。
执行查询得到结果集,然后调用结果集对象的addNew方法。 设置各个字段的值。
调用update方法更新结果集,完成成绩信息添加。
输出:将成绩信息写入数据库。 程序清单:
Private sub cmdok_click()
Dim rstScore As ADODB.Recordset
Dim stuNo As String Dim courseNo As String Dim score As String ‘获取数据
stuNo=Trim(txtstuNo.Text) courseNo=Trim(cboCourseNo.Text) score=Trim(txtScore.Text) If stuNo= “”or score= “”Then
MsgBox “请将信息补充完整”,vbOKOnly+vbExclamation, “警告”
Exit sub
End If ‘添加新记录
sqlStr=”select*from scoreInfo” set rstScore=ExecuteSQL(sqlStr,msgText) rstScore.AddNew
rstScore.Fields(“stu_no”)=stuNo rstScore.Fields(“course_no”)=courseNo rstScore.Fields(“course_score”)=score rstScore.Update rstScore.Close
MsgBox “成绩信息添加完成!”,vboOKOnly+vbExclamation, “警告” initForm
End sub
(3)frmUpdateScore窗体:sub getScoreInfo()
功能:根据课程编号和学号,从数据库中读取成绩信息、课程名和学生名。 输入:课程编号和学号。 处理:
1) 2) 3)
获取课程名称和学号,得到多表查询的SQL语句。 执行查询得到结果集。
从结果集中读取各个字段的值并显示出来。
输出:学生姓名、课程名称、考试成绩。 程序清单:
Sub getScoreInfo()
Dim rstScore As ADODB.Recordset
‘从数据库中读取成绩相关信息并添加到窗体中的输入框
sqlStr= “select name,course_name,coure_score from
courseInfo,studentInfo,scoreInfo”&“wherescoreInfo.course_no=’”&cbocourseNo.text & “’”& “AND
scoreInfo.course_no=courseInfo.course_no”&
“AND
scoreInfo.stu_no=studentInfo.stu_no”& “AND scoreInfo.stu_no=’”& txtStuNo.Text & “’” txtName=Trim(rstScore.Fields(“name”))
txtCourseName.Text=trim(rstScore.Fields(“dourse_name”)) txtScore.Text=Trim(rstScore.Fields(“course_score”)) Else
MsgBox “没找到符合条件的数据!”,vbOKOnly+vbExclamation, “警告” Exit sub
End If
rstScore.Close End sub
(4)frmQueryScore窗体:private sub cmdOk_Click() 功能:根据查询条件查找成绩信息。 输入:查询方式和关键字。 处理:
1) 2) 3)
获取查询方式和输入的关键字。
形成SQL语句,执行SQL语句得到结果集。 从结果集中读取全部数据,并在表格中显示出来。
输出:符合查询条件的课程成绩信息。 程序清单:
Dim sqlstr1 As String Dim sqlcond1 As String Dim sqlcond2 As String Dim sqlcond3 As String Dim sign As Boolean Sqlcond1= “” Sqlcond2= “” Sqlcond3= “” Sign=False
Sqlstr=”selectstudentInfo.stu_noasstuNo.studentInfo.name as stuName,”_
&“courseInfo.course_nameascourseName,scoreInfo.course_score as score”&_ “from studentInfo,courseInfo,scoreInfo WHERE” ‘检查是否已选择了查询条件
If chkOp(0).value<>1 And chkOp91).value<>1 And chkOp(2).value<>1 Then MsgBox “请选择查询条件!!!” Exit sub End if
‘获得子查询条件
If chkOp(0).value=1 Then
Sqlcond1= “studentInfo.stu_no=’”&Trim(txtstuNo.Text)& “’” End If
If chkOp(1).value=1 Then
Sqlcond2= “scoreInfo.course_no=’”&Trim(txtCourseNo.Text)& “’”
End If
If chkOp(2).value=1 Then
If cboOperator.Text<> “between” Then
Sqlcond3= “scoreInfo.course_score”&cboOperator.Text&Trim(txtscore1.Text) Else Sqlcond3=
“scoreInfo.course_score”&cboOperator.Text&
“”&Trim(txtScore1.Text)&
“AND”&Trim(txtScore2.Text) End If End If
If sqlcond1<> “”Then
Sqlstr=sqlstr&sqlcond1 Sign=true End If
If sqlcond2<> “”Then If Sign=True Then
Sqlstr=sqlstr & “ AND” & sqlcond2 Else
Sqlstr=sqlstr & sqlcond2 End If End If
If sqlcond3 <> “”Then If sign=True Then
Sqlstr=sqlstr & “ AND”& sqlcond3 Else
Sqlstr=sqlstr & sqlcond3 End If End If
sqlStr = sqlstr & “AND studentInfo.stu_no=scoreInfo.stu_no” _& “ AND courseInfo.course_no=scoreInfo.course_no” Set rs = ExecuteSQL(sqlStr,msgText) 参考文献
文献、资料名称 编著者 出版单位
VB6.0程序设计 Visual Basic6.0数据库程序设计 Vis ual Basic程序设计教程 Visual Basic编程实例与技巧:数据库编程. 清汉计算机工作室.Visual Basic 数据库开发实例 Visual Basic 6数据库处理 杨晶 王国荣 刘炳文 白鹏 许智 王道荣,林信成 北京:机械工业出版社,2004 北京:人民邮电出版社,1999 北京:清华大学出版社,2000 北京:电子工业出版社,2003 北京:机械工业出版社,2001 北京:中国铁道出版社,2001
因篇幅问题不能全部显示,请点此查看更多更全内容