数据库学生学籍管理系统实验报告.docx

上传人:b****5 文档编号:28162466 上传时间:2023-07-08 格式:DOCX 页数:37 大小:286.49KB
下载 相关 举报
数据库学生学籍管理系统实验报告.docx_第1页
第1页 / 共37页
数据库学生学籍管理系统实验报告.docx_第2页
第2页 / 共37页
数据库学生学籍管理系统实验报告.docx_第3页
第3页 / 共37页
数据库学生学籍管理系统实验报告.docx_第4页
第4页 / 共37页
数据库学生学籍管理系统实验报告.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

数据库学生学籍管理系统实验报告.docx

《数据库学生学籍管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《数据库学生学籍管理系统实验报告.docx(37页珍藏版)》请在冰豆网上搜索。

数据库学生学籍管理系统实验报告.docx

数据库学生学籍管理系统实验报告

课程设计报告

 

《Oracle数据库应用与开发》

课程设计题目:

学生学籍管理系统

 

学生姓名:

班级:

专业:

指导教师:

院系:

2010年11月15日

绪论……………………………………………………………………………………………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)数据字典

主要涉及到以下几个表,分别为:

学生基本信息表,课程表,专业信息表,课程设置表,学生选课表,学生与专业之间的属于表以及管理人员的密码表。

以下是数据字典:

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

Sno

学生的学号

Sname

学生姓名

Ssex

性别

Ssbirth

学生的出生年月

Pno

专业编号

Pname

专业名称

Pnum

专业人数

Pdept

专业所在院系

课程表课程设置表

Cno

课程号

Cname

课程名

Cperiod

学时

Cno

课程号

Cname

课程名

Cperiod

学时

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

Sno

学生的学号

psenior

学期

cno

课程编号

grade

成绩

sno

学生的学号

pno

专业的编号

管理人员密码表

uname

管理人员的编号

upasw

管理人员的密码

(2)数据流图

第一层

学生名单

学生信息

成绩

统计表成绩单

第二层

学生信息成绩

班平均成绩升留级表

各科平均成绩

第三层

学生信息合格单新生信息

 

第四层

班级

学生信息

统计成绩

各科

 

第五层

学生信息升留级名单学生记录

 

2.功能需求:

(1)实现学生基本情况的录入,修改,删除等基本操作。

(2)对学生基本信息提供灵活的查询方式。

(3)完成一个班级的学期选课功能。

(4)实现学生成绩的录入,修改,删除等基本操作。

(5)能方便的对学生的个人学期成绩进行查询。

(6)具有成绩统计,排名等功能。

(7)具有留级,休学等特殊情况的处理功能。

(8)能输出常用的各种报表。

(9)具有数据备份和数据恢复功能。

二.数据库设计

1.概念结构设计

局部ER图

 

 

整体的ER图

 

 

 

 

 

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构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。

(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->cperiodcno->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

Char(10)

sname

Char(20)

ssex

Char

(2)

只可取男或女

sbirth

Char(20)

spasw

Char(10)

课程表c1

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

cno

Char(10)

cperiod

smallint

课程表c2

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

cname

Char(20)

cperiod

smallint

专业表p1

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

pno

Char(10)

pnum

smallint

Pnum>=0

psdept

Char(20)

专业表p2

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

pname

Char(20)

pnum

smallint

Pnum>=0

psdept

Char(20)

课程设置表pc

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

pno

Char(10)

psenior

Char(10)

cno

Char(10)

学生选课表sc

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

sno

Char(10)

psenior

Char(10)

cno

Char(10)

grade

smallint

grade>=0

学生与专业属于表sp

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

sno

Char(10)

pno

Char(10)

管理人员密码表u

列名

主码

候选码

外码

被参照表

允许空

数据类型

约束条件

uname

Char(20)

upasw

Char(10)

(2)视图,索引

a.索引:

本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。

在查询时即引用主索引即可。

表s的主索引列为:

sno

表c1的主索引列为:

cno

表c2的主索引列为:

cname

表p1的主索引列为:

pno

表p2的主索引列为:

pname

表sc的主索引列为:

(pno,psenior,cno)

表sp的主索引列为:

(sno,pno)

表u的主索引列为:

uname

b.视图:

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

三.系统功能设计

四.系统实现

1.程序的运行环境

类别

标准配置

最低配置

计算机硬件

Pentium(R)4CPU,128MB内存

Pentium(R)4CPU1.8GHZ,128MB内存

软件

操作系统

WindowsXPServicePack1,WindowsXPServicePack2,andWindows2000

Windows98

ODBC数据源

命名为wangjiaDSN的数据源,连接系统数据库wangjia

其他

2.系统开发环境

类别

标准配置

最低配置

计算机硬件

Pentium(R)4CPU,128MB内存

Pentium(R)4CPU1.8GHZ,128MB内存

软件

操作系统

WindowsXPServicePack1,WindowsXPServicePack2,andWindows2000

Windows98

数据库后台程序

MicrosoftSQLServer2000

前台开发程序

MicrosoftVisualBasic6.0

ODBC数据源

命名为wanjiaDSN的数据源,连接系统数据库wangjia

其他

3.数据库的创建和链接

本系统的前台开发工具为Microsoftvisualbasic6.0,除了一些常用的控件Commandbutton,Combobox,Textbox和Label外,这里还使用了控件ADO和DataGrid。

ADO用来链接数据库与前台开发程序,指定链接的数据源和要访问的数据,并通过绑定要使用的数据来显示所获得的数据。

DataGrid控件的作用是以表格的形式显示结果中的全部数据,但允许在表格中增加,删除和修改纪录。

具体的链接过程如下:

ADO(步骤)

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

Adodc。

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

(3)打开ADO的属性页,设置使用的ODBC数据资源的名称,(如果没有则新建一个)即我所使用的数据库wangjiaDSN;设置身份验证,包括用户名称和密码;设置纪录源,命令类型选择adCmdTable.(因为我所用到的记录源都是表,所以设置为该属性。

adCmdTable.表示的是数据源的属性是一个表名,表示其结果级是对该表执行无条件查询后得到的结果),表名或存储过程名则选择自己所要用到的表。

到此,便链接成功。

DataGrid(步骤)

(1)同ADO控件一样,选择选择“工程”菜单中的部件命令,打开部件对话框,在控件选项中选择MicrosoftDataGridControl6.0(OLEDB)复选框,单击确定,工具栏中会出现DataGrid数据控件的图标。

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

(3)打开DataGrid的属性页,设置标题名,列,列标题与其对应的数据段。

颜色,字体等可根据需要设定。

将DataGrid的Recordsource设置为该窗体对应的Adodc;另外可检索字段和删除字段,这样可以显示自己想要的字段,而不是将adodc所对应的内容全部显示出来。

到此,链接成功。

4.窗体及其所对应的源代码

登陆界面

源代码

OptionExplicit

DimstuflagAsBoolean'标记用户是否为学生

PublicLoginSucceededAsBoolean

PrivateSubcmdCancel_Click()

'设置全局变量为false

'不提示失败的登录

LoginSucceeded=False

Me.Hide

EndSub

PrivateSubcmdOK_Click()

'检查正确的密码

Dimnum1AsInteger

Dimnum2AsInteger

IfLen(txtUserName.Text)>0AndLen(txtPassword)>0Andstuflag=FalseThen'管理人员

Adodc1.Item(0).CommandType=adCmdText

Adodc1.Item(0).RecordSource="select*fromwjuserwhereuname='"&Trim(txtUserName.Text)&"'Andupasw='"&Trim(txtPassword.Text)&"'"

Adodc1.Item(0).Refresh

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

Else'学生

Adodc1.Item

(1).CommandType=adCmdText

Adodc1.Item

(1).RecordSource="selectsnamespaswfromwjstudentwheresname='"&Trim(txtUserName.Text)&"'Andspasw='"&Trim(txtPassword.Text)&"'"

Adodc1.Item

(1).Refresh

num2=Adodc1.Item

(1).Recordset.RecordCount

EndIf

Ifnum1<=0Andnum2<=0Then

MsgBox"无效的密码,请重试!

",,"登录"

txtPassword.SetFocus

SendKeys"{Home}+{End}"

Else

LoginSucceeded=True

Me.Hide

MDIForm1.Show

EndIf

EndSub

PrivateSubOption1_Click(IndexAsInteger)

IfIndex=0Then

Ifstuflag=FalseThen

stuflag=True

EndIf

Else

Ifstuflag=TrueThen

stuflag=False

EndIf

EndIf

EndSub

添加用户界面

源代码

PrivateSubCommand1_Click()'添加用户

Adodc1.Recordset.AddNew

EndSub

PrivateSubCommand2_Click()'更新

Adodc1.Recordset.Fields("uname")=Trim(Text1.Text)

Adodc1.Recordset.Fields("upasw")=Trim(Text2.Text)

Adodc1.Recordset.Update

MsgBox"添加成功!

",,"提示"

EndSub

用户密码修改界面

源代码

PrivateSubCommand1_Click()

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

IfLen(Text4.Text)<>0Then'查看输入用户是否存在

Adodc1.CommandType=adCmdText

Adodc1.RecordSource="select*fromwjuserwhereuname='"&Trim(Text1.Text)&"'"

Adodc1.Refresh

IfAdodc1.Recordset.RecordCount<=0Then

MsgBox"没有该用户!

请重新输入",,"提示"

Else

IfLen(Text1.Text)<>0Then'查看旧密码是否正确

Adodc1.CommandType=adCmdText

Adodc1.RecordSource="select*fromwjuserwhereupasw='"&Trim(Text4.Text)&"'"

Adodc1.Refresh

IfAdodc1.Recordset.RecordCount<=0Then

MsgBox"密码不正确,请重新输入!

",,"提示"

Else

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

IfLen(Text3.Text)<>0Then

IfText2.Text<>Text3.TextThen

MsgBox"您的输入不一致,请重新确认!

",,"提示"

Else

Adodc1.Recordset.Fields("upasw")=Trim(Text3.Text)

Adodc1.Recordset.Update

MsgBox"修改成功"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1