收藏 分销(赏)

数据库实验报告图书管理系统.doc

上传人:二*** 文档编号:4499218 上传时间:2024-09-25 格式:DOC 页数:23 大小:2.52MB
下载 相关 举报
数据库实验报告图书管理系统.doc_第1页
第1页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、(完整word版)数据库实验报告图书管理系统图书馆管理系统的设计一、实验背景:在数据库应用系统的编程中,管理人员需要经常从数据库中查询数据。复杂组合查询,特别是多种数据类型的复杂条件动态组合查询是一个设计难度大,但很能方便用户的功能模块,在系统开发时要尽量满足用户的需要,就必须考虑多类型-多条件综合模糊查询功能,提高应用系统的智能性。消费者在选择市场产品时往往面临数据量大、删选难、数据不全面等问题,多类型-多条件综合模糊查询正式基于此设计的。二、实验内容:以SQL SERVER2008为后台数据库,以Visual Basic为前台开发工具,完成一个以人事管理系统为实例或结合相关专业方向的查询界

2、面友好的多类型-多条件综合模糊查询应用模块的设计与开发,以满足用户复杂查询的需求,具体内容包括:1)数据库概念结构和逻辑结构的设计;2)通过SQL语句创建数据库;3)设计通用模块;4)设计窗体,达到界面简洁,友好的要求;5)编写代码,使程序能正确执行;6)调试美化,提高查询效率。三、需求分析图书馆是这样的部门,馆中收藏大量图书供读者借阅,其中图书可分成不同的类别,如自然科学类、社会科学类等;借阅者可分为老师和学生。不同的借阅者最多可借书的数量和期限不同,如教师最多可借10本,期限为3个月,学生最多可借2本,期限为1个月,无论是老师还是学生,借阅超期都要进行罚款处理。以上就是图书管理系统所要完成

3、的主要功能。四、概念结构设计经分析,本系统涉及到的实体只有读者和图书,二者之间存在借阅和罚款的联系,据此可画出此系统的E-R图。罚款金额读者借出日期 p m超期天数罚款借阅 处罚日期图书归还日期 q N 图书馆管理系统的E-R图其中读者与其属性关系,图书与其属性关系如下图读者类别读者姓名性别是否有超期借书证号 读者 读者实体与其属性书名条形码号作者图书编号出版社 图书借阅次数借阅状态类别出版日期 图书实体与其属性五、数据库表格(1) 图书表的结构(2) 读者表的结构(3) 借阅表的结构(4) 罚款表的结构(5) 密码表的结构六、用VB开发应用程序1配置数据源利用ODBC数据源管理器配置一个连接

4、到“图书馆”数据库的数据源,名为“图书管理”。2设计各个窗体1) 设计MDI主窗体从主窗体中可以打开各个功能的窗口,其中图书馆管理系统的主窗体如下图2) 设计登陆窗体(1) 设计界面如下图(2) 编写程序Private Sub Command1_Click()Dim str As StringDim micount As Integerstr = select 密码 from 密码表的结构 where 用户名= & Text1.Text & Adodc1.RecordSource = strAdodc1.RefreshIf Adodc1.Recordset.EOF = True ThenMsg

5、Box 用户名错误,请重新输入, vbExclamation, 警告Text1.Text = Text1.SetFocusElseIf Adodc1.Recordset.Fields(密码) = Text2.Text ThenMDIForm1.ShowUnload MeElseMsgBox 密码错误,请重新输入, vbExclamation, 警告Text2.Text = Text2.SetFocusEnd IfEnd Ifmicount = micount + 1If micount = 3 Then Unload MeEnd SubPrivate Sub cmdcancel_Click()

6、Unload MeEnd Sub3) 设计读者管理窗体(1) 设计界面(2) 编写程序Private Sub cmdadd_Click()Adodc1.Recordset.AddNewcmdadd.Enabled = Falsecmddel.Enabled = Falsecmdok.Enabled = Falsecmdcnacel.Enabled = TrueEnd SubPrivate Sub cmdcancel_Click()Adodc1.Refreshcmdadd.Enabled = Truecmddel.Enabled = Truecmdok.Enabled = Falsecmdcan

7、cel.Enabled = FalseEnd SubPrivate Sub cmddel_Click()X = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion)If X = vbYes ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset.MoveLastEnd IfElseAdodc1.RefreshEnd IfEnd SubPrivate Sub cmdfirst_Click()Adodc1.Record

8、set.MoveFirstcmdfirst.Enabled = Falsecmdpre.Enabled = Falsecmdnext.Enabled = Truecmdlast.Enabled = TrueEnd SubPrivate Sub cmdlast_Click()Adodc1.Recordset.MoveLastcmdfirst.Enabled = Truecmdpre.Enabled = Truecmdnext.Enabled = Falsecmdlast.Enabled = FalseEnd SubPrivate Sub cmdnext_Click()Adodc1.Records

9、et.MoveNextcmdfirst.Enabled = Truecmdpre.Enabled = TrueIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset.MoveLastcmdlast.Enabled = Falsecmdnext.Enabled = FalseEnd IfEnd SubPrivate Sub cmdok_Click()Adodc1.Recordset.Updatecmdadd.Enabled = Truecmddel.Enabled = Truecmdok.Enabled = Falsecmdcancel.Enabl

10、ed = FalseEnd SubPrivate Sub cmdpre_Click()Adodc1.Recordset.MovePreviouscmdnext.Enabled = Truecmdlast.Enabled = TrueIf Adodc1.Recordset.BOF = True ThenAdodc1.Recordset.MoveFirstcmdfirst.Enabled = Falsecmdpre.Enabled = FalseEnd IfEnd SubPrivate Sub Form_Load()cmdfirst.Enabled = Falsecmdpre.Enabled =

11、Falsecmdnext.Enabled = Truecmdlast.Enabled = Truecmdadd.Enabled = Truecmddel.Enabled = Truecmdok.Enabled = Falsecmdcancel.Enabled = FalseEnd Sub4) 设计读者查询窗体(3) 编写程序Private Sub Command1_Click()Dim str As Stringstr = select *from 读者表 where 读者表. & combol.Text & like & Text1.Text & %Adodc1.RecordSource =

12、 strAdodc1.RefreshEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()combo1.Text = Text1.Text = combo1.AddItem 性别combo1.AddItem 读者姓名combo1.AddItem 是否有超期End Sub5) 设计图书管理窗体、图书查询窗体6) 设计借阅管理窗体(1) 设计界面(2) 编写程序Private Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdlend_Click()Dim

13、 st1 As StringDim st2 As StringDim st3 As StringDim i As Integerst2 = select 读者类别,是否有超期from 读者表的结构 where 借书证号= & Trim(Text1) & Adodc2.RecordSource = st2Adodc2.Refresh有借书证号If Adodc2.Recordset.BOF = False Then读者是教师If Adodc2.Recordset.Fields( 读者类别 ) = t And Adodc2.Recordset.Fields(是否有超期) = n Then是否超过最多

14、的十本st1 = select *from 借阅表 where 借书证号= & Trim(Text) & Adodc1.RecordSource = st1Adodc1.RefreshIf Adodc1.Recordset.RecordCount = 10 Then MsgBox 教师借书数量达到最多,不能再借!ElseAdodc1.Recordset.AddNewAdodc1.Recordset.Fields(借书证号) = Text1Adodc1.Recordset.Fields(条形码号) = Text2Adodc1.Recordset.Fields(借出日期) = str(Date)A

15、dodc1.Recordset.Fields(归还日期) = NullAdodc1.Recordset.Update在图书表中写入借阅状态和借阅次数信息st3 = select * from 图书表 where 条形码号= & Trim(Text2) & Adodc3.RecordSource = st3Adodc3.RefreshAdodc3.Recordset.Fields(借阅状态) = 借出Adodc3.Recordset.Fields(借阅次数) = Adodc3.Recordset.Fields(借阅次数) + 1Adodc3.Recordset.UpdateEnd If读者是学生

16、ElseIf Adodc2.Recordset.Fields(读者类别) = s And Adodc2.Recordset.Fields(是否有超期) = n Then是否超过最多的三本str1 = select * from 借阅表 where 借书证号= & Trim(Text1) & Adodc1.RecordSource = st1Adodc1.RefreshIf Adodc1.Recordset.RecordCount = 3 ThenMsgBox 学生借书量达到最多,不能再借!ElseAdodc1.Recordset.AddNewAdodc1.Recordset.Fields(借书

17、证号) = Text1Adodc1.Recordset.Fields(条形码号) = Text2Adodc1.Recordset.Fields(借出日期) = str(Date)Adodc1.Recordset.Fields(归还日期) = NullAdodc1.Recordset.Update在图书表中写入“借阅状态”和“借阅次数”信息st3 = select * from 图书表 where 条形码号= & Trim(Text2) & Adodc3.RecordSource = st3Adodc3.RefreshAdodc3.Recordset.Fields(借阅状态) = 借出Adodc

18、3.Recordset.Fields(借阅次数) = Adodc3.Recordset.Fields(借阅次数) + 1Adodc3.Recordset.UpdateEnd IfElse: If Adodc2.Recordset.Fields(是否有超期) = y Then MsgBox 该读者有超期书,不能再借书End IfEndEnd SubPrivate Sub cmdreturn_Click()Dim sst As StringDim sstt As StringDim sst3 As Stringsst = select * from 借阅表 where 条形码号= & Text2

19、& Adodc1.RecordSource = sstAdodc1.Refreshsstt = select*from读书表where借书证号= & Adodc1.Recordset.Fields(借书证号) & Adodc2.RecordSource = ssttAdodc2.Refresh先还书,再罚款Adodc1.Recordset.Fields(归还日期) = DateAdodc1.Recordset.UpdateMsgBox 还书成功在图书表中写入该书的“在库”信息sst3 = select * from 图书馆where 条形码号= & Text2 & Adodc3.RecordS

20、ource = sst3Adodc3.RefreshAdodc3.Recordset.Fields(借阅状态) = 在库Adodc3.Recordset.UpdateIf Adodc2.Recordset.Fields(读者类别) = t ThenIf Date - Adodcl.Recordset.Fields(借出日期) 90 ThenMsgBox 有超期罚款fm_punish.ShowEnd IfElseIf Adodc2.Recordset.Fields(读者类别) = s ThenIf Date - Adodcl.Recordset.Fields(借出日期) 30 ThenMsgBo

21、x 有超期罚款fm_punish.ShowEnd IfEnd IfEnd SubEnd Sub7) 设计罚款管理窗口(1)设计窗体(3) 编写程序Private Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdpunish_Click()Dim pcount As IntegerDim i As IntegerDim sum As Singlesum = 0If Adodc3.Recordset.BOF = False Thenpcount = Adodc3.Recordset.RecordCountEnd IfFor i = 1 To pc

22、ountsum = sum + Adodc3.Recordset.Fields(超期天数) * 0.1向罚款表中添加记录Adodc1.Recordset.AddNewAdodc1.Recordset.Fields(借书证号) = Adodc3.Recordset.Fields(借书证号)Adodc1.Recordset.Fields(条形码号) = Adodc3.Recordset.Fields(条形码号)Adodc1.Recordset.Fields(处罚日期) = DateAdodc1.Recordset.Fields(超期天数) = Adodc3.Recordset.Fields(超期天

23、数)Adodc1.Recordset.Fields(罚款金额) = Adodc3.Recordset.Fields(超期天数) * 0.1Adodc1.Recordset.UpdateAdodc3.Recordset.MoveNextNext iText2 = sum & 元End SubPrivate Sub cmdquery_Click()Dim str3 As Stringstr3 = select 读者表.借书证号,条形码号,读者姓名,借出日期,(month(getdate()-month(借出日期)-3)*30+day(getdate()-day(借出日期) as 超期天数 str3

24、 = str3 & from 读者表 inner join 借阅表 on 读者表.借书证号=借阅表.借书证号 str3 = str3 + where 借阅表.借书证号= & Text1 & and 读者表.读者类别=tand month (归还日期) - month(借出日期)3 str3 = str3 + or 读者类别 = sand month (归还日期)-month(借出日期) 1 Adodc3.RecordSource = str3 Adodc3.Refresh Text2.Text = End Sub七、实验心得与体会 通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据

25、库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计的过度,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,增强了自己在数据库中应用SQL语言的灵活性。 在学习过程中,我也上网查了不少资料,也看了一些别人设计的图书馆管理系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中从学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限的,我以后还会在这个领域不断的进行探索,掌握更多的知识。参考资料:基于 VB和SQL的数据库编程技术 刘志妩、马秀丽 清华大学出版社

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服