学籍管理系统 数据库课程设计

更新时间:2024-05-24 11:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计报告

科 目: 设计题目: 学生学籍管理系统 专 业: 计算机系软件工程0402班 姓 名: XXXXX 学号: XXXXXXX

目 录

绪论……………………………………………………………………………………………2 数据库设计……………………………………………………………………………………2

1.需求分析……………………………………………………………………………..2 1.1数据需求…………………………………………………………………………..2 1.2功能需求…………………………………………………………………………..3 2.数据库设计…………………………………………………………………………..3 2.1概念结构设计……………………………………………………………………..4 2.2逻辑结构设计……………………………………………………………………..5 2.3物理结构设计……………………………………………………………………..6 3.系统功能设计………………………………………………………………………..8 4.系统功能实现………………………………………………………………………..9 4.1程序的运行环境…………………………………………………………………..9 4.2系统的开发环境…………………………………………………………………..9 4.3数据库的创建和链接……………………………………………………………..9 4.4运行界面及其对应的源代码…………………………………………………….10 5.实验总结…………………………………………………………………………….23 6.参考文献…………………………………………………………………………….23

1

绪 论

学生学籍管理是教育教学单位不可缺少的部分,它的内容对教学管理和学校的决策者都非常重要。给学校教学管理提供了很大的方便性,提高了工作效率。但是一直以来人们用传统人工的方式管理文件文档,这种管理方式效率低,保密性差,出错不易更改,同时也耗费了大量的人力财力,时间一长,将产生大量的文件数据,这对于查找,维护,更新都带来了很大的困难。

随着科学技术的不断发展,尤其是计算机软件水平的日益提高,使得以上问题得到了很好的解决。使用计算机可以方便的对大量数据进行增加,删除,更新等操作。它有着人工管理永远无法比拟的优点: 检索迅速,查找方便,可靠性大,存储量大,保密性好,寿命长,成本低等。例如:通过校园网,我们可以方便的进行学生信息查询,学生成绩的添加,以及最新的教务通知等。当然,这些都离不开数据库技术和网络技术的支持。数据库是数据管理的最新技术,是计算机计算机技术的重要分支,也是计算机领域发展最快的学科之一。学生学籍管理系统就是数据库在网络上应用。

综上,开发这样的一套软件十分必要。同时旧的人工管理机制必将被以计算机为基础的信息管理所取代,从而实现对数据的高效,长久,安全的管理。

数据库设计

一. 需求分析 1.数据需求: (1)数据字典

主要涉及到以下几个表,分别为:学生基本信息表,课程表,专业信息表,课程设置表,学生选课表,学生与专业之间的属于表以及管理人员的密码表。以下是数据字典:

学生基本信息表 专业信息表

Sno Sname Ssex Ssbirth 学生的学号 学生姓名 性别 学生的出生年月 Pno Pname Pnum Pdept 专业编号 专业名称 专业人数 专业所在院系 课程表 课程设置表

Cno 课程号 Cno 课程号 Cname 课程名 Cname 课程名 Cperiod 学时 Cperiod 学时

学生选课表 学生与专业的属于表

Sno psenior cno grade 学生的学号 学期 课程编号 成绩

sno pno 学生的学号 专业的编号 管理人员密码表 uname 管理人员的编号 upasw

2

管理人员的密码

(2)数据流图 第一层

学生名单 学 生 学生信息 教 师 学籍管理系统 成绩 统计表 成绩单 管理人员 学 生

第二层 学生信息 1 .录入 2 .查询 成绩 存储处理 学生记录 处理 本次考试成绩 历次考试成绩 3 .统计 4 .升留级 班平均成绩 处理 处理 升留级表 各科平均成绩

第三层 学生信息 合格单 新生信息 1.3录入存储学审计1.1 1.2是否新生 生信息各科成绩 学生信息 学生成绩

第四层

3

班级平均 班级 成绩3.1 学生信息 统计选择3.1 统计成绩 各科 各科平均

成绩3.3 第五层

学生信息 是 否 升 留 升留级名单 更 新 记 学生记录 录 4.2 级4.1 成绩标准

2.功能需求:

(1)实现学生基本情况的录入,修改,删除等基本操作。 (2)对学生基本信息提供灵活的查询方式。 (3)完成一个班级的学期选课功能。

(4)实现学生成绩的录入,修改,删除等基本操作。 (5)能方便的对学生的个人学期成绩进行查询。 (6)具有成绩统计,排名等功能。

(7)具有留级,休学等特殊情况的处理功能。 (8)能输出常用的各种报表。

(9)具有数据备份和数据恢复功能。 二.数据库设计 1.概念结构设计 局部ER图 姓名 性别 专业号 专业名 学号 出生年月 专业 学生

课程名 学时 课程号 课程 整体的ER图

人数 院系 4

专业号 专业名 人数 学号 姓名 性别 出生年月 属于 学生 密码 专 业 院系 专业号 课程号 设置 课程号 学号 成绩 学期 课程 选课 学期 课程号 课程名 学时

2. 逻辑结构设计

(1)ER图转换为关系模型

由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。

由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:

学生基本信息表: S (sno, sname, ssex, sbirth, spasw) 课程基本信息表: C (cno, cname, cperiord)

专业基本信息表: P (pno, pname, pnum, psdept)

对应的属性分别为:学号,姓名,性别,出生日期,登陆密码 课程编号,课程名,学期

专业编号,专业名,专业人数,所在院系

对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一部分。 以上ER图的三个联系为多对多,所以转换为关系模式为:

课程设置表:pc ( pno, psenior, cno) 与设置相连的实体有专业和课程,根据多对多的转换原则:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。

学生选课表:SC (sno, psenior, cno, grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即(sno,cno,psenior)。此外,选课表还有一个非主属性grade。

学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。

5

(2)关系模式的优化:

学生表 s (sno,sname,ssex,sbirth,spasw)

该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: sno -> sname, sno -> ssex, sno -> ssex, sno -> sbirth, sno -> spasw,其间不存在传递依赖,故学生表可达到3NCF.

课程表 C ( cno ,cname , cperiod)

该关系模式的码为cno, cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的部分函数依赖,可

以达到2NCF。另外,该关系模式的函数依赖为:cno->cname, cno->cperiod, cname ->cno ,cname -> cperiod. 因为cno -> cname,cname -> cperiod cno -> cperiod, 所以该关系模式中存在传递依赖,不能达到3NCF。故优化该表为:C1(cno,period),C2(cname,cperiod).从而两表都达到了3NCF。

专业表 P (pno,pname,pnum,pdept)

该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的部分函数依赖,故可达到2NCF。另外,此关系模式的函数依赖为:pno->pname, pno-> pnum, pno -> pdept , pname -> pno, pname-> pnum, pname -> pdept; 由于存在传递依赖:pno -> pname, pname->pnum, pno -> pnum., 所以未能达到3NCF。优化分解为:P1 (pno,pnum,pdept), P2 (pname,pnum,pdept) 明显,两表都达到了3NCF.

课程设置表PC(pno,psenior,cno),

该关系模式的码为:(pno,psenior,cno)为全码,所以可直接达到3NCF 学生选课表 SC(sno,psenior,cno,grade) 该关系模式的码为:(sno,psenior,cno),因为不存在非主性grade对码的部分函数依赖,所以可达到2NCF,由于不存在函数依赖(表中的函数依赖只有(sno,psenior,cno)-> grade)故也达到了3NCF

属于表 SP(sno,pno)

该关系模式的码(sno,pno)也是全码,所以也达到了3NCF 用户表 U(uname,upasw)

该表的码为uname,明显upasw对码uname是完全函数依赖的,从而达到2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表达到了3NCF 3. 物理结构设计 (1)基本表 学生表s 列名 sno sname ssex sbirth spasw 课程表 c1 列名 cno cperiod

6

主码 是 否 否 否 否 主码 是 否 候选码 否 否 否 否 否 候选码 否 否 外码 否 否 否 否 否 外码 否 否 被参照表 允许空 无 无 无 无 无 否 是 是 是 是 数据类型 Char(10) Char(20) Char(2) Char(20) Char(10) 数据类型 Char(10) smallint 约束条件 只可取男或女 约束条件 被参照表 允许空 无 无 否 是

课程表c2 列名 cname cperiod

专业表p1 列名 pno pnum psdept

专业表p2 列名 pname pnum psdept 主码 是 否 否 候选码 否 否 否 外码 否 否 否 被参照表 允许空 无 无 无 否 是 是 数据类型 Char(20) smallint Char(20) 约束条件 Pnum >=0 主码 是 否 否 候选码 否 否 否 外码 否 否 否 被参照表 允许空 无 无 无 否 是 是 数据类型 Char(10) smallint Char(20) 约束条件 Pnum >=0 主码 是 否 候选码 否 否 外码 否 否 被参照表 允许空 无 无 否 是 数据类型 Char(20) smallint 约束条件 课程设置表 pc 列名 pno psenior cno 主码 是 是 是 候选码 否 否 否 外码 否 否 否 被参照表 允许空 无 无 无 否 否 否 数据类型 Char(10) Char(10) Char(10) 约束条件 学生选课表sc 列名 sno psenior cno grade 主码 是 是 是 否 候选码 否 否 否 否 外码 否 否 否 否 被参照表 无 无 无 无 允许空 否 否 否 是 数据类型 Char(10) Char(10) Char(10) smallint 约束条件 grade>=0

学生与专业属于表sp 列名 sno pno 主码 是 是 候选码 否 否 外码 否 否 被参照表 允许空 无 无 否 否 数据类型 Char(10) Char(10) 约束条件

管理人员密码表u 列名 uname upasw 主码 是 否 候选码 否 否 外码 否 否 被参照表 允许空 无 无 否 否 数据类型 Char(20) Char(10) 约束条件

(2)视图,索引

a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。

7

表s的主索引列为:sno 表c1的主索引列为:cno 表c2的主索引列为:cname 表p1的主索引列为:pno 表p2的主索引列为:pname

表sc的主索引列为:(pno,psenior,cno) 表sp的主索引列为:(sno,pno) 表u的主索引列为:uname

b.视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取. 三.系统功能设计

学生学籍管理系统 欢迎界面 身份及密码验证 系统管理 信息维护 查 询 成绩统计 添加用户 密码管理 成绩维护 成绩查询 个人成绩 基本信息 信息查询 专业成绩 管理人员 学 生

添加

四.系统实现

成绩维护 基本信息维护 更新 删除 添加 更新 删除 8

1.程序的运行环境 类别 计算机硬件 软件 标准配置 Pentium (R) 4 CPU,128MB内存 操作系统 最低配置 Pentium (R) 4 CPU 1.8GHZ,128MB内存 Windows XP Service Windows 98 Pack 1, Windows XP Service Pack 2, and Windows 2000 ODBC数据源 其他

2.系统开发环境 类别 计算机硬件 软件 命名为wangjiaDSN的数据源,连接系统数据库wangjia 标准配置 Pentium (R) 4 CPU,128MB内存 操作系统 最低配置 Pentium (R) 4 CPU 1.8GHZ,128MB内存 Windows XP Service Windows 98 Pack 1, Windows XP Service Pack 2, and Windows 2000 Microsoft SQL Server 2000 Microsoft Visual Basic 6.0 数据库后台程序 前台开发程序 ODBC数据源 其他 命名为wanjiaDSN的数据源,连接系统数据库wangjia 3.数据库的创建和链接

本系统的前台开发工具为Microsoft visual basic 6.0 ,除了一些常用的控件Commandbutton,Combobox,Textbox和Label外,这里还使用了控件ADO和DataGrid。ADO用来链接数据库与前台开发程序,指定链接的数据源和要访问的数据,并通过绑定要使用的数据来显示所获得的数据。DataGrid控件的作用是以表格的形式显示结果中的全部数据,但允许在表格中增加,删除和修改纪录。具体的链接过程如下:

ADO(步骤)

(1)选择“工程”菜单中的部件命令,打开部件对话框,在控件选项中选择Microsoft ADO Data Control 6.0(OLEDB)复选框,单击确定,工具栏中会出现ADO数据控件的图标,其微帮助名称为:Adodc。

(2)在当前窗体上添加一个ADO控件。 (3)打开ADO的属性页,设置使用的ODBC数据资源的名称,(如果没有则新建一个)即我所使用的数据库wangjiaDSN;设置身份验证,包括用户名称和密码;设置纪录源,命令类型选择adCmdTable.(因为我所用到的记录源都是表,所以设置为该属性。adCmdTable.表示的是数据源的属性是一个表名,表示其结果级是对该表执行无条件查询后得到的结果),表名或存储过程名则选择自己所要用到的表。到此,便链接成功。

DataGrid(步骤)

(1)同ADO控件一样,选择选择“工程”菜单中的部件命令,打开部件对话框,在

9

控件选项中选择Microsoft DataGrid Control 6.0(OLEDB)复选框,单击确定,工具栏中会出现DataGrid数据控件的图标 。

(2)在当前窗体上添加一个DataGrid控件。

(3)打开DataGrid的属性页,设置标题名,列,列标题与其对应的数据段。颜色,字体等可根据需要设定。将DataGrid的Recordsource设置为该窗体对应的Adodc;另外可检索字段和删除字段,这样可以显示自己想要的字段,而不是将adodc所对应的内容全部显示出来。到此,链接成功。

4.窗体及其所对应的源代码 欢迎界面

登陆界面

源代码

Option Explicit

Dim stuflag As Boolean '标记用户是否为学生 Public LoginSucceeded As Boolean

Private Sub cmdCancel_Click() '设置全局变量为 false '不提示失败的登录 LoginSucceeded = False

10

Me.Hide End Sub

Private Sub cmdOK_Click() '检查正确的密码

Dim num1 As Integer Dim num2 As Integer

If Len(txtUserName.Text) > 0 And Len(txtPassword) > 0 And stuflag = False Then '管理人员

Adodc1.Item(0).CommandType = adCmdText

Adodc1.Item(0).RecordSource = \* from wjuser where uname='\& Trim(txtUserName.Text) & \ Adodc1.Item(0).Refresh

num1 = Adodc1.Item(0).Recordset.RecordCount

Else '学生 Adodc1.Item(1).CommandType = adCmdText

Adodc1.Item(1).RecordSource = \sname spasw from wjstudent where sname= '\ Adodc1.Item(1).Refresh

num2 = Adodc1.Item(1).Recordset.RecordCount End If

If num1 <= 0 And num2 <= 0 Then

MsgBox \无效的密码,请重试!\登录\ txtPassword.SetFocus

SendKeys \ Else

LoginSucceeded = True Me.Hide

MDIForm1.Show End If End Sub

Private Sub Option1_Click(Index As Integer) If Index = 0 Then

If stuflag = False Then stuflag = True End If Else

If stuflag = True Then stuflag = False End If End If End Sub

11

主界面

添加用户界面

源代码

Private Sub Command1_Click() '添加用户 Adodc1.Recordset.AddNew End Sub

Private Sub Command2_Click() '更新

Adodc1.Recordset.Fields(\Adodc1.Recordset.Fields(\Adodc1.Recordset.Update

MsgBox \添加成功!\提示\End Sub 用户密码修改界面

12

源代码

Private Sub Command1_Click()

Command2.Enabled = False '使取消按钮不可用

If Len(Text4.Text) <> 0 Then '查看输入用户是否存在 Adodc1.CommandType = adCmdText

Adodc1.RecordSource = \ Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \没有该用户!,请重新输入\提示\ Else

If Len(Text1.Text) <> 0 Then '查看旧密码是否正确 Adodc1.CommandType = adCmdText

Adodc1.RecordSource = \* from wjuser where upasw='\& Trim(Text4.Text) & \ Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \密码不正确,请重新输入!\提示\ Else

If Len(Text2.Text) <> 0 Then '确认密码并修改 If Len(Text3.Text) <> 0 Then

If Text2.Text <> Text3.Text Then

MsgBox \您的输入不一致,请重新确认!\提示\ Else

Adodc1.Recordset.Fields(\ Adodc1.Recordset.Update MsgBox \修改成功\提示\ End If End If End If End If

13

End If End If End If End Sub

Private Sub Command2_Click() '取消

Command1.Enabled = False '使修改按钮不可用 Adodc1.Recordset.CancelUpdate End Sub

Private Sub Command3_Click() Unload Me End Sub

学生密码修改界面

源代码

Private Sub Command1_Click() '修改

Command2.Enabled = False '使取消按钮不可用

If Len(Text4.Text) <> 0 Then '查看输入学号是否存在 Adodc1.CommandType = adCmdText

Adodc1.RecordSource = \ Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \没有该学号!,请重新输入\提示\ Else

If Len(Text1.Text) <> 0 Then '查看旧密码是否正确 Adodc1.CommandType = adCmdText

Adodc1.RecordSource = \* from wjstudent where spasw='\&

14

Trim(Text1.Text) & \ Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \密码不正确,请重新输入!\提示\ Else

If Len(Text2.Text) <> 0 Then '确认密码并修改 If Len(Text3.Text) <> 0 Then

If Text2.Text <> Text3.Text Then

MsgBox \您的输入不一致,请重新确认!\提示\ Else

Adodc1.Recordset.Fields(\ Adodc1.Recordset.Update MsgBox \修改成功\提示\ End If End If End If End If End If End If End If End Sub

Private Sub Command2_Click() '取消 Adodc1.Recordset.CancelUpdate

Command1.Enabled = False '使修改按钮不可用 End Sub

Private Sub Command3_Click() '退出 Unload Me End Sub

个人信息维护界面

15

源代码

Private Sub Command1_Click() '第一条 Adodc1.Recordset.MoveFirst End Sub

Private Sub Command2_Click() '上一条 Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF = True Then '如果已经移到了第一行之前,则指针定位在第一行 Adodc1.Recordset.MoveFirst End If End Sub

Private Sub Command3_Click() '下一条 Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF = True Then '如果已经移到了最后一行之后,则指针定位在最后一行

Adodc1.Recordset.MoveLast End If End Sub

Private Sub Command4_Click() '末一条 Adodc1.Recordset.MoveLast End Sub

Private Sub Command5_Click() '添加 Adodc1.Recordset.AddNew Command5.Enabled = False Command6.Enabled = False Command7.Enabled = True Command8.Enabled = True

16

End Sub

Private Sub Command6_Click() '删除 Dim res As Integer

res = MsgBox(\要删除此记录吗?\提示用户

If res = vbYes Then

Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If End If End Sub

Private Sub Command7_Click() '更新

Adodc1.Recordset.Fields(\Adodc1.Recordset.Fields(\Adodc1.Recordset.Fields(\Adodc1.Recordset.Fields(\Adodc1.Recordset.Update

Command5.Enabled = True '使添加和删除按钮可用 Command6.Enabled = True

Command8.Enabled = False '使取消按钮不可用 End Sub

Private Sub Command8_Click() Adodc1.Recordset.CancelUpdate

Command5.Enabled = True '使添加和删除按钮可用 Command6.Enabled = True

Command8.Enabled = False '使取消按钮不可用 End Sub

Private Sub Command9_Click() '退出 Unload Me End Sub

Private Sub Form_Load() '载入界面

Command8.Enabled = False '使取消按钮不可用 End Sub

成绩维护界面

17

源代码

Private Sub Command1_Click() '添加 Adodc1.Recordset.AddNew

Command1.Enabled = False '使添加,修改,删除按钮不可用 Command3.Enabled = False

Command6.Enabled = True '使添加退出可用 Command4.Enabled = True End Sub

Private Sub Command2_Click() Adodc1.Recordset.MoveFirst End Sub

Private Sub Command3_Click() '删除 Dim res As Integer

res = MsgBox(\要删除该纪录吗?\提示用户

If res = vbYes Then

Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If End If End Sub

Private Sub Command4_Click() '退出 Unload Me End Sub

Private Sub Command5_Click() '更新

18

Adodc1.Recordset.Fields(\Adodc1.Recordset.Fields(\Adodc1.Recordset.Fields(\Adodc1.Recordset.Update

Command1.Enabled = True '使添加和删除按钮可用 Command3.Enabled = True

Command6.Enabled = False '使取消按钮不可用 End Sub

Private Sub Command6_Click() '取消 Adodc1.Recordset.CancelUpdate Command1.Enabled = True Command3.Enabled = True End Sub

Private Sub Command7_Click() Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF = True Then Adodc1.Recordset.MoveFirst End If End Sub

Private Sub Command8_Click() Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If End Sub

Private Sub Command9_Click() Adodc1.Recordset.MoveLast End Sub 成绩统计

19

源代码:

Private Sub Command1_Click() If Len(Text1.Text) <> 0 Then

Adodc1.CommandType = adCmdText

Adodc1.RecordSource = \ Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \该学号不存在!请重新输入\提示\ Else '求平均分和最高分

Adodc1.RecordSource = \avg(grade) as [avggrade],Max(grade) as [high] from wjsc where sno='\ Adodc1.Refresh

Label4.Caption = Adodc1.Recordset.Fields(\ Label6.Caption = Adodc1.Recordset.Fields(\ Label4.Alignment = 2 '使文字居中 Label6.Alignment = 2

Adodc1.RecordSource = \psenior='\ grade <= 59 \ Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \该同学没有不及格的课程\提示\

20

End If End If End If End Sub

Private Sub Command2_Click() Unload Me End Sub

信息查询

源代码

Dim nameflag As Boolean '标记是否按姓名查询

Private Sub Command1_Click() '个人信息查询 Dim searchSQL As String

Adodc1.CommandType = adCmdText If nameflag = False Then

searchSQL = \ '按学号查询 Else

searchSQL = \按姓名查询 End If

Adodc1.RecordSource = searchSQL Adodc1.Refresh

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \不存在此纪录!请重新输入\警告\End If

21

End Sub

Private Sub Command2_Click() '退出查询信息窗体 Unload Me End Sub

Private Sub Option1_Click(Index As Integer) '选择查询标准 nameflag = False If Index = 0 Then

If nameflag = True Then nameflag = False End If End If

If Index = 1 Then

If nameflag = False Then nameflag = True End If End If End Sub

成绩查询

源代码

Private Sub Command1_Click() Dim str As String

Adodc1.CommandType = adCmdText

Adodc1.RecordSource = \* from wjsc where sno ='\& Trim(Text1.Text) & \psenior='\ '按学号查询 Adodc1.Refresh

22

If Adodc1.Recordset.RecordCount <= 0 Then

MsgBox \不存在此纪录!请重新输入\警告\End If End Sub

Private Sub Command2_Click() Unload Me End Sub 关于界面

六.设计总结

通过这次的实验,我对数据库在生活中的广泛应用有了更深的体会,同时也加深了对SQL2000的认识,了解了相关的VB知识,尤其对数据库与开发程序的链接有了进一步的认识。 这次课程设计我最大的收获并不是对书本知识的巩固,而是通过实验我的自学能力得到了很好的锻炼,实践能力也提高了不少。由于之前没有接触过VB,对这门语言很多知识都不了解,在实验的开始阶段进展很慢。但是通过网上查资料,与同学讨论,互相学习渐渐的掌握了一定的知识。后来的实验也就没有那么摸不着门路了。

当然,在这次课程设计中我还有很多没有解决的问题:不会使用存储过程返回结果给变量;也没能掌握两个表以上的查询功能,只能基于单表的查询,添加,删除等,以至功能不是很完善。对于这一点我有很大的遗憾,如果可以实现的话,相信我可以实现更加完善的功能。如实现对班级专业的成绩统计,实现灵活的成绩查询等等。

总结以上,这次课程设计,我收获很多,遗憾更大。不管怎样,今后我会更加努力学习这门课程,不断提高自己。 七,参考文献

SQL Server2000s实验指导书 西安科技大学出版 罗晓霞编著

数据库系统概论(第四版)高等教育出版社出版 王珊,萨师煊编著 数据库系统及其应用 电子工业出版社 雷景生主编

数据库技术及其在网络中的应用 清华大学出版社出版 王育平 于丽杰 韩晓军编著 Visual Basic应用与开发案例教程 清华大学出版社出版 徐立 吴明旺编著

23

本文来源:https://www.bwwdw.com/article/5uo7.html

Top