数据库系统实验报告.docx
- 文档编号:30167282
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:35
- 大小:586.18KB
数据库系统实验报告.docx
《数据库系统实验报告.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
数据库系统实验报告
数据库系统开发实验
图书管理系统开发实验报告
姓名:
班级:
2011年12月1日
系统需求分析
图书管理系统项目的任务范围
本系统可以完成图书基本信息管理与查询,如可以对书籍编号、书名、书籍类别、出版社、出版日期、作者、内容简介、藏书地、数量等信息进行查询、添加、修改和删除等操作。
可以完成读者基本信息管理与查询,如可以对用户名、姓名、性别、读者类别、工作地点、住址、电话等信息进行查询、添加、修改和删除等操作
可以完成借阅基本信息管理与查询,如可以对借阅编号、用户名、姓名、书籍编号、书名、借书日期、还书日期等信息进行查询、和修改
描述项目的功能性需求
图书管理系统的功能是:
管理员可以通过本系统进行借还书、查询等操作,可以对读者借书情况进行查询、管理借阅者、查看图书等。
系统设计
系统整体设计:
整个项目包括1个数据库,3张关系表,2张自由表,12个表单,12个程序文件,2个背景文件,一个图标文件,一个菜单文件。
其中数据库为:
大学生图书借阅管理数据库,包含五张表:
读者信息表,管理员密码表,普通用户密码表,书籍基本信息表,图书借阅信息表
表单有:
系统界面,登陆后(主界面模块),图书登录,密码修改,添加普通用户,添加管理员(密码模块)用户信息查询,借阅信息查询,图书查询(信息查询模块)借阅信息管理,图书信息管理,读者信息管理(信息管理模块)共12个表单,四个模块。
菜单文件为:
系统菜单。
数据库设计:
数据库共五个表,分别为读者信息表,管理员密码表,普通用户密码表,书籍基本信息表,图书借阅信息表
其中读者信息表与图书借阅信息表为一对多关系,书籍基本信息表与图书借阅信息表为一对一关系。
*注:
加下划线的字段为主键
书籍基本信息(书籍编号,书名,书籍类别,出版社,出版日期,作者,简介,藏书地,数量)
读者基本信息(用户名,姓名,性别,读者类别,工作地点,住址,电话)
图书借阅信息(借阅编号(自动)、书籍编号,用户名,姓名,借阅编号,书名,借书日期,还书日期)
E-R图
系统实施
小组成员共5人,分别为*********工作分工如下:
*****:
将E-R模型转换为关系模型,最后将其范式提升到第三范式。
确定整个系统分为主界面,密码模块、信息查询模块,信息管理模块四个模块。
完成了主界面模块和信息查询管理模块的表单制作及其代码编写。
制作了报表
***:
分析问题后,建立E-R模型,完成了系统的密码模块和信息查询模块的表单制作和代码编写,在整个程序制作基本完成后,对表间关系进行了优化,保证了数据的并发性。
完成了实验报告
***:
制作了数据库以及其中包含的五个表。
***888:
在整个系统完成后进行了测试与错误更正,提出了很多宝贵的意见。
程序代码与演示:
一、登录界面
代码:
PrivateSubCommand1_Click()
Form1.Show
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
EndSub
PrivateSubTimer1_Timer()
DimnAsInteger
IfLabel1.Left+41.125>180Then
Label1.Left=10-41.125
Else
Label1.Left=Label1.Left+1
EndIf
EndSub
登录
代码:
PrivatemyconnAsNewADODB.Connection
PrivatemyrecordAsNewADODB.Recordset
Privatemyconn2AsNewADODB.Connection
Privatemyrecord2AsNewADODB.Recordset
PrivateSubCommand1_Click()
IfOption1.Value=FalseAndOption2.Value=FalseThen
MsgBox"请选择用户类型"
ExitSub
EndIf
IfOption1.Value=TrueThen'普通用户进入
Dimstr1AsString
str1="select*frompasswhereunamelike'"+Text1.Text+"';"
Setmyrecord=myconn.Execute(str1)
IfText2.Text=""Then
MsgBox"密码不能为空!
",vbCritical,"错误提示"
ExitSub
ElseIfmyrecord.BOF=TrueThen
MsgBox"用户名错误!
",vbCritical,"错误提示"
ExitSub
ElseIfmyrecord.Fields("upassword").Value<>Val(Text2.Text)Then
MsgBox"密码错误!
",vbCritical,"错误提示"
ExitSub
EndIf
Form3.Caption="尊敬的"+Text1.Text+"您好,您已进入图书管理系统"
Form1.Hide
Form3.Show
myconn.Close
Setmyconn=Nothing
UnloadForm2
ExitSub
EndIf
IfOption2.Value=TrueThen'管理员进入
Dimstr2AsString
str2="select*frommanagepasswheremnamelike'"+Text1.Text+"';"
Setmyrecord2=myconn2.Execute(str2)
IfText2.Text=""Then
MsgBox"密码不能为空!
",vbCritical,"错误提示"
ExitSub
ElseIfmyrecord2.BOF=TrueThen
MsgBox"用户名错误!
",vbCritical,"错误提示"
ExitSub
ElseIfmyrecord2.Fields("mpassword").Value<>Val(Text2.Text)Then
MsgBox"密码错误!
",vbCritical,"错误提示"
ExitSub
EndIf
Form3.Caption="尊敬的管理员"+Text1.Text+"您好,您已进入图书管理系统"
Form1.Hide
Form3.Show
myconn2.Close
Setmyconn2=Nothing
UnloadForm2
ExitSub
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
Form2.Show
EndSub
PrivateSubCommand3_Click()
UnloadMe
myconn.Close
Setmyconn=Nothing
myconn2.Close
Setmyconn2=Nothing
EndSub
PrivateSubCommand4_Click()
UnloadLabel5
UnloadMe
EndSub
PrivateSubForm_Load()
Setmyconn=NewADODB.Connection
myconn.ConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=library;DataSource=LENOVO-PC"
myconn.Open
Setmyrecord=NewADODB.Recordset
myrecord.Open"pass",myconn,adOpenDynamic,adLockBatchOptimistic
Setmyconn2=NewADODB.Connection
myconn2.ConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=library;DataSource=LENOVO-PC"
myconn2.Open
Setmyrecord2=NewADODB.Recordset
myrecord2.Open"managepass",myconn2,adOpenDynamic,adLockBatchOptimistic
EndSub
PrivateSubText2_Click()
IfText1.Text=""Then
MsgBox"用户名为空!
",vbCritical,"错误提示"
EndIf
EndSub
登陆后:
代码:
PrivateSubForm_Load()
IfForm1.Option1=TrueThen
manager.Visible=False
upass.Visible=False
EndIf
EndSub
PrivateSubquit_Click()
IfMsgBox("您确定要退出吗?
",vbYesNo,"提示")=vbYesThen
End
EndIf
EndSub
PrivateSubreadermanager_Click()
form5.Show
EndSub
PrivateSubreturnbokk_Click()
Form9.Show
EndSub
PrivateSubsearchbook_Click()
Form7.Show
EndSub
PrivateSubsearchborrow_Click()
Form6.Show
EndSub
PrivateSubselect_Click()
form4.Show
EndSub
PrivateSubupass_Click()
Form12.Show
EndSub
借书:
还书:
单击删除,完成还书
代码:
PrivateSubCommand8_Click()'后一条
IfNotmyrecord.EOFThen
myrecord.MoveNext
Ifmyrecord.EOFThen
MsgBox"已是最后一条,再次单击将回到最后一条",vbOKOnly,"提示"
EndIf
Else
myrecord.MoveFirst
EndIf
showdata
EndSub
PrivateSubCommand9_Click()'最后一条
myrecord.MoveLast
showdata
EndSub
PrivateSubForm_Load()
Setmyconn=NewADODB.Connection
myconn.ConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=library;DataSource=LENOVO-PC"
myconn.Open
Setmyrecord=NewADODB.Recordset
myrecord.Open"borrow",myconn,adOpenDynamic,adLockBatchOptimistic
IfNotmyrecord.EOFAndNotmyrecord.BOFThen
myrecord.MoveFirst
Else
MsgBox"借阅信息为空"
ExitSub
EndIf
showdata
EndSub
图书信息管理:
代码:
PrivateSubCommand1_Click()'添加
Adodc1.Recordset.AddNew
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command6.Enabled=False
Command7.Enabled=False
Command8.Enabled=False
Command9.Enabled=False
Command4.Enabled=True
Command5.Enabled=True
Text1.SetFocus
EndSub
PrivateSubCommand10_Click()'退出
UnloadMe
EndSub
PrivateSubCommand2_Click()'删除
DimansAsInteger
ans=MsgBox("确定要删除吗?
",vbYesNo,"提示")
Ifans=vbYesThen
Adodc1.Recordset.Delete
EndIf
MsgBox"删除成功"
EndSub
PrivateSubCommand3_Click()'修改
IfText1.Text=""Then
MsgBox"图书编号不能修改为空",vbCritical,"提示"
ExitSub
EndIf
CallCommand8_Click
CallCommand7_Click
MsgBox"修改成功!
"
EndSub
PrivateSubCommand4_Click()'保存
IfText1.Text=""Then
MsgBox"图书编号不能为空",vbCritical,"提示"
ExitSub
EndIf
Adodc1.Recordset.Update
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command6.Enabled=True
Command7.Enabled=True
Command8.Enabled=True
Command9.Enabled=True
Command4.Enabled=False
Command5.Enabled=False
MsgBox"保存成功!
"
EndSub
PrivateSubCommand5_Click()'取消
Adodc1.Recordset.CancelUpdate
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command6.Enabled=True
Command7.Enabled=True
Command8.Enabled=True
Command9.Enabled=True
Command4.Enabled=False
Command5.Enabled=False
EndSub
PrivateSubCommand6_Click()'首记录
Adodc1.Recordset.MoveFirst
EndSub
PrivateSubCommand7_Click()'上一条
IfNotAdodc1.Recordset.BOFThen
Adodc1.Recordset.MovePrevious
IfAdodc1.Recordset.BOFThen
MsgBox"已是第一条,再次单击回到最后一条",vbOKOnly,"提示"
EndIf
Else
IfAdodc1.Recordset.EOFThen
MsgBox"当前记录为空",vbCritical,"提示"
ExitSub
EndIf
Adodc1.Recordset.MoveFirst
EndIf
EndSub
PrivateSubCommand8_Click()'下一条
IfNotAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.BOFThen
MsgBox"已是第一条,再次单击回到最后一条",vbOKOnly,"提示"
EndIf
Else
IfAdodc1.Recordset.BOFThen
MsgBox"当前记录为空",vbCritical,"提示"
ExitSub
EndIf
Adodc1.Recordset.MoveLast
EndIf
EndSub
PrivateSubCommand9_Click()
Adodc1.Recordset.MoveLast'尾记录
EndSub
PrivateSubForm_Load()
EndSub
读者信息管理:
代码:
PrivateSubCommand1_Click()'添加
IfText1.Text=""Then
MsgBox"学号不能为空",vbCritical,"提示"
ExitSub
EndIf
Adodc2.Recordset.AddNew
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command6.Enabled=False
Command7.Enabled=False
Command8.Enabled=False
Command9.Enabled=False
Command4.Enabled=True
Command5.Enabled=True
Text1.SetFocus
EndSub
PrivateSubCommand10_Click()'退出
UnloadMe
EndSub
PrivateSubCommand2_Click()'删除
DimansAsInteger
ans=MsgBox("确定要删除吗?
",vbYesNo,"提示")
Ifans=vbYesThen
Adodc2.Recordset.Delete
MsgBox"删除成功"
Adodc2.Recordset.MoveFirst
EndIf
EndSub
PrivateSubCommand3_Click()'修改
IfText1.Text=""Then
MsgBox"学号不能修改为空",vbCritical,"提示"
ExitSub
EndIf
CallCommand8_Click
CallCommand7_Click
MsgBox"修改成功"
EndSub
PrivateSubCommand4_Click()'保存
Adodc2.Recordset.Update
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command6.Enabled=True
Command7.Enabled=True
Command8.Enabled=True
Command9.Enabled=True
Command4.Enabled=False
Command5.Enabled=False
MsgBox"保存成功"
DimunumberAsInteger
unumber=MsgBox("如果您还没注册为普通用户,现在想注册,请单击确定,注册后,可以普通用户身份登录",vbYesNo,"提示")
Ifunumber=vbYesThen
Form11.Show
EndIf
EndSub
PrivateSubCommand5_Click()'取消
Adodc2.Recordset.CancelUpdate
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command6.Enabled=True
Command7.Enabled=True
Command8.Enabled=True
Command9.Enabled=True
Command4.Enabled=False
Command5.Enabled=False
EndSub
PrivateSubCommand6_Click()'首记录
Adodc2.Recordset.MoveFirst
EndSub
PrivateSubCommand7_Click()'前一条
IfNotAdodc2.Recordset.BOFThen
Adodc2.Recordset.MovePrevious
IfAdodc2.Recordset.BOFThen
MsgBox"已是第一条,再次单击回到最后一条",vbOKOnly,"提示"
EndIf
Else
IfAdodc1.Recordset.EOFThen
MsgBox"当前记录为空",vbCritical,"提示"
ExitSub
EndIf
Adodc2.Recordset.MoveLast
EndIf
EndSub
PrivateSubCommand8_Click()'后一条
IfNotAdodc2.Recordset.EOFThen
Adodc2.Recordset.MoveNext
IfAdodc2.Recordset.BOFThen
MsgBox"已是最后一条,再次单击回到第一条",vb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 报告