sqlserver实验报告.docx

上传人:b****3 文档编号:3745735 上传时间:2022-11-25 格式:DOCX 页数:25 大小:299.47KB
下载 相关 举报
sqlserver实验报告.docx_第1页
第1页 / 共25页
sqlserver实验报告.docx_第2页
第2页 / 共25页
sqlserver实验报告.docx_第3页
第3页 / 共25页
sqlserver实验报告.docx_第4页
第4页 / 共25页
sqlserver实验报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

sqlserver实验报告.docx

《sqlserver实验报告.docx》由会员分享,可在线阅读,更多相关《sqlserver实验报告.docx(25页珍藏版)》请在冰豆网上搜索。

sqlserver实验报告.docx

sqlserver实验报告

《SQLServer高级数据库设计》课程综合性实验报告

开课实验室:

软件实验室一2008年4月21日

实验题目

信息管理系统的设计(学生信息管理系统)

一、实验目的:

使用SQLServer2000作为数据库管理系统,制作一个小型信息管理系统。

培养学生使用数据库独立完成小型项目的能力。

二、实验设备及环境:

1.硬件设备:

PC机一台

2.软件环境:

安装Windows操作系统,安装数据库管理系统SQLServer2000。

三、实验内容:

(1)需求分析:

1、经调查知整个学生档案管理的业务流程描述如下:

☆新生入校,先报道并进行注册登记,然后到财务部门缴费。

根据学生被录取的专业,持缴费单到所在系部或注册。

☆到系部注册后,根据所选专业分配到班级。

☆学期期末进行各科考试

☆考试结束后,由各系将每位同学的考试成绩及其他一些相关信息记录至每个同学的档案中

2、用户需求分析

☆该系统的操作者为系统管理员。

☆系统管理员:

入学时,负责对学生的分配信息进行录入、修改、增加、删除;学期末,负责对学生的考试信息和奖惩情况进行管理。

(2)概要设计:

1、由

(1)中的需求分析可得出该系统的业务流程图,如下所示

2、创建数据库

数据库名为xs,该数据库由七个数据表构成,分别为:

▲学生信息表(xsXJ):

学号、姓名、性别、政治面貌、出生日期、专业、班级、家庭住址、联系电话、备注。

其中,学号为该数据表的主键。

▲课程信息表(xsKC):

课程名称,所属专业

▲专业信息表(xsZY):

专业编号、专业名称。

其中,专业编号为该数据表的主键。

▲班级信息表(xsBJ):

班级编号、所属院系、辅导员、教室、人数。

其中,班级名称为该数据表的主键,用于记录学生所在班级的信息。

▲成绩信息表(xsCJ):

学号、姓名、专业、课程名称、成绩。

其中,学号和课程名称共同构成该数据表的主键。

▲用户表(xsYH):

用户名称、密码、用户ID。

用于系统对操作员的设置。

▲操作日记表(xsOD):

用户名、登陆日期、登陆时间。

用于记录系统的使用情况。

3、实体图和E-R图

经分析可提取出学生、课程、专业、班级这四个实体,实体图分别如下:

4、各表的结构

表1学生信息表(xsXJ)

字段名

类型长度

关键字

学号

字符,15

姓名

字符,20

性别

字符,5

政治面貌

字符,12

出生日期

日期型

专业

字符,20

班级

字符,20

家庭住址

字符,50

联系电话

字符,15

备注

字符,50

表2课程信息表(xsKC)

字段名

类型长度

关键字

课程名称

字符,20

所属专业

字符,20

表3专业信息表(xsZY)

字段名

类型长度

关键字

专业编号

字符,20

所属院系

字符,20

表4班级信息表(xsBJ)

字段名

类型长度

关键字

班级名称

字符,20

所属院系

字符,20

辅导员

字符,10

教室

字符,15

人数

字符,3

表5成绩信息表

字段名

类型长度

关键字

学号

字符,15

姓名

字符,20

专业

字符,20

课程编号

整形,IDENTITY

课程名称

字符,20

成绩

字符,3

表6用户表(xsYH)

字段名

类型长度

关键字

学号

字符,15

姓名

字符,20

用户密码

字符,15

用户ID

字符,20

 

(3)详细设计:

1、通过VB创建登陆界面:

输入用户名和密码后,单击“确定”按钮。

此时,程序通过与数据库的连接,查看用户名和密码是否匹配。

若匹配,则可以进入frmmain界面。

这里的“确定”和“退出”按钮创建的是一个按钮控件组,在程序中采用case来实现选择。

可以选中“记住密码”,方便下次的登陆。

若是新用户,通过“新用户注册”按钮进入frmNewUser界面,进行用户注册。

2、通过VB创建frmmain界面:

通过菜单进行选择,然后进入相应的界面,例如“学籍管理”→“添加学生学籍”,将进入学籍管理模块中的“添加学生学籍”的界面。

3、通过VB创建学籍管理界面:

整个界面主要由一个SSTAB控件构成,在“添加学生学籍”、“查询修改学生信息”、“注销学生学籍”中,创建了大量的控件数组,通过数组来实现数据的传送,这样避免了程序的冗繁。

同时,在form的操作中,使用了大量的字段绑定。

而且,在该模块的任何一个界面上,随时都可以单击“退出学籍管理”按钮,退回到frmMain模块。

学籍管理模块是整个系统的主要模块,具体功能的实现,下面做具体的做介绍:

□添加学生学籍:

该界面包括一个文本控件组,在单击“添加”按钮时,若信息没有输入完整,提示输入完整的信息。

若输入的学号在数据库中已经存在,提示“已经存在学号为**的学生,请重新输入。

”若添加成功,相应的也会显示添加成功的提示信息。

此时,该学生的信息已成功的添加到数据库中,在下面的datagrid控件中可以观察到。

这里调用了一个inputXJ_info函数以实现添加的功能。

“清空”按纽是为了一次性删除所输入的信息,避免一项一项地删除。

□查询修改学生学籍:

在查询的过程中,可以按学号或姓名进行精确查询,也可以按姓进行模糊查询。

所有的查找信息都出现在下面的datagrid控件中。

这里的“班级”、“专业”、“政治面貌”都进行了字段绑定。

实现修改功能时,调用了ChangeXj_info函数。

修改完毕以后,通过数据控件的refresh属性,实现对数据库的修改。

上一条和下一条按钮只是为了方便删除,当在第一条依然按下“上一条”时,出现已是第一条的提示;当在最后一条仍然按下“下一条”时,出现已经是最后条的提示。

□注销学生学籍:

模块用于实现对学生学籍的注销,可以在frame1中查找后再注销,也可以直接在frame2中一条一

条地进行注销。

查询的功能跟上面一个界面的一样,可以进行精确和模糊查询。

(4)编码(学籍管理模块的编码)

DimmiCountAsInteger

PrivateconnAsADODB.Connection

PrivatersXJAsADODB.Recordset

PrivatersZYAsADODB.Recordset

PrivatersBJAsADODB.Recordset

PrivatersZZAsADODB.Recordset

PrivatersAsADODB.Recordset

Dimprint_IDAsInteger

PrivateSubCommand7_Click()

SetDataGrid3.DataSource=rsXJ

DataGrid3.Refresh

EndSub

PrivateSubForm_Load()

Setconn=NewADODB.Connection

conn.ConnectionString="DRIVER=SQLServer;UID=sa;DATABASE=xs;WSID=B86;APP=MicrosoftDataAccessComponents;SERVER=B86"

conn.Open'连接数据源

Setrs=NewADODB.Recordset

rs.CursorLocation=adUseClient

rs.Open"xsXJ",conn,1,1

SetrsXJ=NewADODB.Recordset'设置连接学生学籍

rsXJ.CursorLocation=adUseClient

rsXJ.Open"xsXJ",conn,2,2

SetDataGrid1.DataSource=rsXJ

DataGrid1.Refresh

SetDataGrid2.DataSource=rsXJ

DataGrid2.Refresh

SetDataGrid3.DataSource=rsXJ

DataGrid3.Refresh

 

SetrsZY=NewADODB.Recordset'设置连接的专业

rsZY.CursorLocation=adUseClient

rsZY.Open"xsZY",conn,1,1

SettxtZhuanye.DataSource=rsZY

txtZhuanye.AddItem"专业名称"

SettxtXJZhuanye.DataSource=rsZY

txtXJZhuanye.AddItem"专业名称"

'SettxtXJdelINFO(3).DataSource=rsZY

'txtXJdelINFO(3).DataField="专业名称"

SetrsBJ=NewADODB.Recordset'设置连接的班级

rsBJ.CursorLocation=adUseClient

rsBJ.Open"xsBJ",conn,1,1

SettxtBanji.DataSource=rsBJ

txtBanji.AddItem"班级名称"

SettxtXJBj.DataSource=rsBJ

txtXJBj.AddItem"班级名称"

SettxtXJBanji.DataSource=rsBJ

txtXJBanji.AddItem"班级名称"

SettxtXJdelBJ.DataSource=rsBJ

txtXJdelBJ.AddItem"班级名称"

'SettxtXJdelINFO(4).DataSource=rsBJ

'txtXJdelINFO(4).DataField="班级名称"

SetText1(0).DataSource=rsXJ'绑定字段

SetText1

(1).DataSource=rsXJ

SettxtXJsex.DataSource=rsXJ

SettxtXJmianmao.DataSource=rsXJ

SettxtXJDate.DataSource=rsXJ

SettxtXJZhuanye.DataSource=rsXJ

SettxtXJBanji.DataSource=rsXJ

SetText1

(2).DataSource=rsXJ

SetText1(3).DataSource=rsXJ

SetText1(4).DataSource=rsXJ

Text3(0).DataField="学号"

Text3

(1).DataField="姓名"

txtXJsex.DataField="性别"

txtXJmianmao.DataField="政治面貌"

txtXJDate.DataField="出生日期"

txtXJZhuanye.DataField="专业"

txtXJBanji.DataField="班级"

Text3

(2).DataField="家庭住址"

Text3(3).DataField="联系电话"

Text3(4).DataField="备注"

Fori=0To9

SettxtXJdelINFO(i).DataSource=rsXJ

Next

txtXJdelINFO(0).DataField="学号"

txtXJdelINFO

(1).DataField="姓名"

txtXJdelINFO

(2).DataField="性别"

txtXJdelINFO(3).DataField="专业"

txtXJdelINFO(4).DataField="班级"

txtXJdelINFO(5).DataField="政治面貌"

txtXJdelINFO(6).DataField="出生日期"

txtXJdelINFO(7).DataField="家庭住址"

txtXJdelINFO(8).DataField="联系电话"

txtXJdelINFO(9).DataField="备注"

EndSub

PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)

OnErrorResumeNext

rsXJ.Close

rsBJ.Close

rsZY.Close

Me.Hide

EndSub

PrivateSubCommand1_Click()'退出系统

OnErrorResumeNext

rsXJ.Close

rsBJ.Close

rsZY.Close

conn.Close

UnloadMe

EndSub

PrivateSubcmdAdd_Click()

Fori=0To2

IfTrim(Text1(i).Text="")Then

MsgBox"请输入完整的信息!

",vbOKOnly+vbQuestion,"提示"

Text1(i).SetFocus

ExitSub

EndIf

Next

IftxtZhuanye.Text=""OrtxtBanji.Text=""ThenMsgBox"请选择学生的专业和班级!

",vbOKOnly+vbQuestion,"提示":

ExitSub

IftxtMianmao.Text=""ThenMsgBox"请选择学生的政治面貌!

",vbOKOnly+vbQuestion,"提示":

txtMianmao.SetFocus:

ExitSub

IfNot(OptmOrOptw)ThenMsgBox"请选择学生的性别!

",vbOKOnly+vbQuestion,"提示":

ExitSub

inputXS_info'写入到学生数据库

EndSub

SubinputXS_info()'添加学生学籍到数据库

DimtxtsqlAsString

txtsql="select*fromxsXJwhere学号='"&Trim(Text1(0).Text)&"'"

Setrs=NewADODB.Recordset

rs.CursorLocation=adUseClient

rs.Opentxtsql,conn,1,1

Ifrs.EOF=FalseThen

MsgBox"数据库中已经存在学号为:

"&Text1(0).Text&"的学生!

请重新输入!

",vbOKOnly,"警告"

cmdXJcls_Click'清空

Text1(0).SetFocus

Else

rsXJ.AddNew'添加到新记录

rsXJ.Fields(0)=Text1(0).Text

rsXJ.Fields

(1)=Text1

(1).Text

IfOptwThen

rsXJ.Fields

(2)="男"

Else

rsXJ.Fields

(2)="女"

EndIf

rsXJ.Fields(5)=txtMianmao.Text

rsXJ.Fields(6)=txtDate.Value

rsXJ.Fields(3)=txtZhuanye.Text

rsXJ.Fields(4)=txtBanji.Text

rsXJ.Fields(7)=Text1

(2).Text

IfTrim(Text1(3).Text="")Then

rsXJ.Fields(8)="空"

Else

rsXJ.Fields(8)=Text1(3).Text

EndIf

IfTrim(Text1(4).Text="")Then

rsXJ.Fields(9)="空"

Else

rsXJ.Fields(9)=Text1(4).Text

EndIf

rsXJ.Update

DataGrid1.Refresh

MsgBox"学生学籍已经成功加入到数据库中!

",vbOKOnly+vbInformation,"提示"

cmdXJcls_Click'清空

Text1(0).SetFocus

EndIf

EndSub

PrivateSubcmdXJcls_Click()

OnErrorResumeNext

Fori=0To4

Text1(i).Text=""

Next

Optm.Value=0:

Optw.Value=0

txtMianmao.Text=""

txtZhuanye.Text=""

txtBanji.Text=""

Text1(0).SetFocus

EndSub

PrivateSubcmdXJfind_Click()'查询

IfOpt1.ValueAndTrim(txtXuehao.Text="")ThenMsgBox"请输入学号!

",vbOKOnly+vbInformation,"提示":

txtXuehao.SetFocus:

ExitSub

IfOpt2.ValueAndTrim(txtName.Text="")ThenMsgBox"请输入姓名!

",vbOKOnly+vbInformation,"提示":

txtName.SetFocus:

ExitSub

IfCheck1.ValueAndtxtXJBj.Text=""ThenMsgBox"请选择班级!

",vbOKOnly+vbInformation,"提示":

txtXJBj.SetFocus:

ExitSub

xsXJfind_info'学籍查询模块

EndSub

SubxsXJfind_info()'学籍查询模块

DimtxtsqlAsString

IfOpt1.ValueThen

IfCheck1.ValueThen

txtsql="selcet*fromxsXJwhere学号='"&Trim(txtXuehao.Text)&"'"&"and班级='"&Trim(txtXJBj.Text)&"'"

Else

txtsql="select*fromxsXJwhere学号='"&Trim(txtXuehao.Text)&"'"

EndIf

Else

IfCheck1.ValueThen'按姓名进行模糊查询

txtsql="select*fromxsXJwhere姓名like'"&"%"&Trim(txtName.Text)&"%"&"'"&"and班级='"&Trim(txtXJBj.Text)&"'"

Else

txtsql="select*fromxsxjwhere姓名like'"&"%"&Trim(txtName.Text)&"%"&"'"

EndIf

EndIf

Setrs=NewADODB.Recordset

'rs.Close

rs.Opentxtsql,conn,1,1

Ifrs.EOF=FalseThen

rs.MoveFirst

SetDataGrid2.DataSource=rs

DataGrid2.Refresh

Fori=0To4

SetText3(i).DataSource=rs

Next

SettxtXJsex.DataSource=rs'绑定字段

SettxtXJmianmao.DataSource=rs

SettxtXJDate.DataSource=rs

SettxtXJZhuanye.DataSource=rs

SettxtXJBanji.DataSource=rs

Else

MsgBox"没有找到符合条件的记录!

请重新输入查询条件!

",vbOKOnly+vbInformation,"提示"

EndIf

EndSub

PrivateSubCommand2_Click()'显示全部

SetDataGrid2.DataSource=rsXJ

DataGrid2.Refresh

EndSub

PrivateSubcmdXJchange_Click()'修改

IfcmdXJchange.Caption="修改"Then

cmdXJchange.Caption="确认修改"

Fori=0To4

Text3(i).Enabled=True

Next

txtXJmianmao.Enabled=True

txtXJDate.Enabled=True

txtXJZhuanye.Enabled=True

txtXJBanji.Enabled=True

txtXJsex.Enabled=True

Else

cmdXJchange.Caption="修改"

changexj_info'修改学生信息

Fori=0To4

Text3(i).Enabled=False

Next

txtXJmianmao.Enabled=False

txtXJDate.Enabled=False

txtXJZhuanye.Enabled=False

txtXJBanji.Enabled=False

txtXJsex.Enabled=False

EndIf

EndSub

Subchangexj_info()

Fori=0To2

IfTrim(Text3(i).Text="")Then

MsgBox"请输入完整的信息!

",vbOKOnly+vbInformation,"提示"

ExitSub

EndIf

Next

rsXJ.Fields(0)=Text3(0).Text'修改数据

rsXJ.Fields

(1)=Text3

(1).Text

rsXJ.Fields

(2)=txtXJsex.Text

rsXJ.Fields(5)=txtMianmao.Text

rsXJ.Fields(6)=txtDate.Value

rsXJ.Fields(3)=txtXJZhuanye.Text

rsXJ.Fields(4)=txtXJBanji.Text

rsXJ.Fields(7)=Text3

(2).Text

IfTrim(Text3(3).Text="")Then

rsXJ.Fie

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

当前位置:首页 > 工程科技 > 能源化工

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

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