数据库课程设计 图书管理系统.pdf
数据库大作业数据库大作业信息科学与工程学院信息科学与工程学院20162016 年年 1212 月月图书信息管理系统图书信息管理系统姓姓名:汤江波名:汤江波班班级:电气级:电气 T1501T1501学学号:号:0505指导老师:韩华指导老师:韩华目录目录1.1.绪论绪论-错误!未定义书签。背景介绍背景介绍-错错误误!未定义书签。未定义书签。开发背景的选用及介绍开发背景的选用及介绍-错错误误!未定义书签。未定义书签。2.2.需求分析需求分析-错误!未定义书签。系统需求系统需求-错错误误!未定义书签。未定义书签。功能需求功能需求-错错误误!未定义书签。未定义书签。3.3.概念设计阶段概念设计阶段-4 4实体实体 E-RE-R 图图-错错误误!未定义书签。未定义书签。4.4.逻辑结构设计阶段逻辑结构设计阶段-6 6E-RE-R 图转换为关系模型图转换为关系模型-6数据字典数据字典-65 5 数据库实施与维护数据库实施与维护-7 7创建数据库、数据表创建数据库、数据表-76.6.应用程序设计应用程序设计-8 8图书管理员管理处理图书管理员管理处理-8图书查询图书查询-12用户登录用户登录-17背景设置背景设置-227.7.心得体会心得体会-24248.8.参考文献参考文献-24241.1.绪论绪论背景介绍背景介绍随着社会的发展,人们对于知识的需求也在不断地增长。书籍作为人们获取并增长知识的主要途径,使得图书馆在人们生活中占有了一定位置。但是近几年来,随着书量的不断增长,造成了书库空间极度不足,图书挤压,管理不善。这些都直接影响了读者对图书馆藏书的充分利用。这时图书馆就特别需要开发一套书刊租借管理系统,通过该系统来提高图书馆的管理效率,从而减少管理方面的工作流和成本。?一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。因此有一个智能化、系统化、信息化的图书管理系统十分重要的。充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱。方便友好的图形界面、简便的操作、完善的数据库管理。将会使得图书馆系统极大限度的应用于现代化图书管理中。开发背景的选用及介绍开发背景的选用及介绍 SQL Server 2008 R2 SQL Server 2008 R2 的简介的简介SQL 是英文(Structured?Query Language)的缩写,意思为结构化查询语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通。SQL 被作为关系型数据库管理系统的标准语言。SQL 语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如 Oracle,Sybase,MicrosoftSQL Server,Access 等都采用了 SQL 语言标准。SQL 语言有以下几个优点:1.非过程化语言SQL 是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL 允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL 的集合特性允许一条 SQL 语句的结果作为另一条 SQL 语句的输入。SQL 不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有 SQL 语句使用查询优化器,它是RDBMS 的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。2.统一的语言 SQL 可用于所有用户的 DB 活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的 SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。3.所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL 语言,用户可将使用 SQL 的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL 编写的程序都是可以移植的。的简介的简介VB 就是 Visual Basic 的意思,是一种常用的编程开发工具。它的基础是编程语言Basic,Visual Basic 简单点来说就是微软为了更好的让人们学习编程,应用上 Basic 开发语言的一套工具,简称就是 VB。VB 的面世使原本极其复杂困难的编程、软件开发的工作变得简单。VB 是 Basic 语言软件开发者的首选,是学习 Basic 语言编程必须要接触而且是经常接触的一款整合型技术编译器。2.2.需求分析需求分析系统需求系统需求图书管理系统的主要功能是用于查询各项图书的基本信息(包括图书的编号、书名、作者、价格等),用户对图书的借阅,归还以及修改用户密码等操作。借阅信息用罚款户修改密码用户信息借书还书图书信息管理系统管理员图书信息游图书查询客图 1-1 图书信息管理系统的需求分析功能需求功能需求1.系统管理。系统管理功能是在该系统运行结束后,用户通过选择“系统管理”-“退出”命令能正常退出系统,回到Windows 环境。2.管理员登录。管理员可以方便进行图书管理,用户管理。图书管理包括图书信息的查询,添加,修改,删除。用户管理包括用户信息的添查询,添加,修改和删除。3.背景设置。设置背景和背景音乐。这是一个辅助功能,目的是让操作者能在一个轻松、愉快的环境下使用图书管理系统。4.图书查询。未注册用户读者也可以浏览所有的图书信息,但是无法借阅。5.帮助。关于中显示有关图书管理系统的信息。6.用户登录。用户通过卡号和密码进行登录。登录后用户可进行图书的借阅,归还,超期罚款,修改密码和借阅信息的查询等操作。3.3.概念设计阶段概念设计阶段图书管理系统用户功能用借缴修户借还阅纳改登书书信罚密陆息款码游客功能图管书理查员询登陆管理员功能添加删改用户用户或或图书图书实体实体 E-RE-R 图图管理员实体管理员实体 E-RE-R 图图系统系统 E-RE-R 图图账户密码管理员卡号余额借 书 数量罚款姓名性别用户单位类型登录密码级别借书时间借阅编号库存书名还书时间图书信息类型出版社价格作者4.4.逻辑结构设计阶段逻辑结构设计阶段 E-R E-R 图转换为关系模型图转换为关系模型图书信息(编号,书名,作者,价格,出版社,类型,库存)读者(卡号,姓名,性别,类型,登录密码,罚款,借书数量,余额,级别,单位)借阅(编号,卡号,借书时间,还书时间)管理员(账户,密码)数据字典数据字典表 4-2-1 图书信息表表中列名编号书名作者价格出版社类型库存表 4-2-2 用户表表中列名卡号姓名性别类型数据种类及长度char(10)nchar(10)nchar(10)nchar(10)可否为空Not nullnullnullNull数据种类及长度char(10)nchar(20)nchar(20)floatnchar(20)nchar(20)int可否为空Not nullNot nullNot null NullNullNot nullNot null登录密码罚款借书数量余额级别单位表 4-2-3 借阅表表中列名编号卡号借书时间还书时间表 4-2-4 管理员表表中列名账户密码varchar(10)floatintfloatnchar(20)nchar(10)nullnullnullnullnullnull数据种类及长度char(10)char(10)datetimedatetime可否为空Not nullNot nullNot nullnull数据种类及长度nchar(10)nchar(10)可否为空Not nullNot null5.5.数据库实施与维护数据库实施与维护创建数据库,数据表创建数据库,数据表创建创建bookbook数据库数据库创建图书信息表创建图书信息表创建用户表创建用户表创建借阅表创建借阅表创建管理员表创建管理员表6.6.应用程序设计应用程序设计图书管理员管理处理图书管理员管理处理管理员处理流程图管理员处理流程图开始管理员登录否否判断是是管理员界面选择操作图书管理用户管理结束退出管理员处理功能实现管理员处理功能实现管理员登录管理员登录输入管理员账户以及密码,按登录键登录,或者按 Enter 键快捷登陆,返回键返回Public try As Integer 登录次数Private Sub Command1_Click()If Text1=ThenMsgBox 请输入管理员账户,登录Exit SubEnd IfIf Text2=ThenMsgBox 请输入密码,登录Exit SubEnd Ifsqlstr=select*from 管理员 where 账户=&Trim(Text1)&and 密码=&Trim(Text2)&=sqlstrWithIf Not.EOF ThenUnload MeElseMsgBox 账户或密码输入错误,请重新输入。,vbOKOnly+vbExclamation,警告Text1=Text2=try=try+1If try 2 ThenMsgBox 三次输入错误,系统将关闭,登录EndElseExit SubEnd IfExit SubEnd IfEnd WithEnd SubPrivate Sub text2_keypress(keyascii As Integer)If keyascii=13 ThenCommand1_ClickEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub管理员页面管理员页面管理员界面有对图书和用户的添加,查询,修改,删除操作。Private Sub books_add_Click()End SubPrivate Sub books_dq_Click()End SubPrivate Sub books_qur_Click()End SubPrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub users_add_Click()End SubPrivate Sub users_dq_Click()End SubPrivate Sub users_qur_Click()End Sub添加图书添加图书/用户用户对图书的添加操作和对用户的添加操作的实质是相同的,只是表现的形式不同,这里以对图书的添加为例。当所有信息都输入后,执行添加操作,则会显示添加完成。如果信息不完整,则会显示请输入完整信息,同时将鼠标键入空信息栏。注意:编号设置为主键,故不能添加相同的编号信息修改,删除图书修改,删除图书/用户用户对图书的修改,删除操作和对用户的操作的实质是相同的,只是表现的形式不同,这里以对图书的修改和删除操作为例。首先,你可以通过图书编号对图书信息查询,然后改动你所需要改动的信息。对图书的删除只需按删除按钮即可删除图书查询图书查询图书查询流程图图书查询流程图开始图书查询选择操作退出编号查询书名查询作者查询类型查询图书查询功能实现图书查询功能实现管理员中的图书查询操作与此相同,如将二者合一,同时,对图书的查询操作和对用户的操作的实质是相同的,只是表现的形式不同,故不再重复对用户的查询操作。在查询操作中,可以选择按编号,书名,作者和类型四种方式查询,可以选择自己输入也可下拉菜单查询,查询结果显示在下方结束Option Explicit在模块级别中使用,强制显式声明模块中的所有变量。Public sqlstr As String窗体载入时初始化 4 个组合框,通过 ADO 数据控件获取各数据记录表Private Sub Form_Load()initbhinitsminitzzinitlxEnd Sub在组合框 cbobh 的列表中列出所有的编号Sub initbh()=select编号 from 图书信息While Not编号)WendEnd Sub在组合框 cbosm 的列表中列出所有的书名Sub initsm()=select书名 from 图书信息While Not书名)WendEnd Sub在组合框 cbozz 的列表中列出所有的作者Sub initzz()=select作者 from 图书信息While Not作者)WendEnd Sub在组合框 cbolx 的列表中列出所有的类型Sub initlx()=select distinct 类型 from 图书信息While Not类型)WendEnd Sub选择Private Sub cbobh_click()=TrueEnd SubPrivate Sub cbosm_click()=TrueEnd SubPrivate Sub cbozz_click()=TrueEnd SubPrivate Sub cbolx_click()=TrueEnd Sub查询Private Sub Command1_Click()querybooks调用 querybooks 子过程End Sub根据选择的条件查询图书信息Sub querybooks()sqlstr=select 编号,书名,作者,价格,出版社,类型,库存 _&from 图书信息 _&where If=True Thensqlstr=sqlstr&编号=&Trim&End IfIf=True Thensqlstr=sqlstr&书名=&Trim&End IfIf=True Thensqlstr=sqlstr&作者=&Trim&End IfIf=True Thensqlstr=sqlstr&类型=&Trim&End Ifsqlstr=sqlstr&order by 编号=sqlstrIf=0 ThenMsgBox 没有查找到满足条件的数据!,vbExclamation,提示ElseSet=Adodc1(0).Width=1000(1).Width=2000(2).Width=1000(3).Width=1000(4).Width=1300(5).Width=1000(6).Width=1000End If=共查询到&条记录End SubPrivate Sub Command2_Click()Unload MeEnd Sub用户登录用户登录用户登录流程图用户登录流程图开始用户登录否否判断密码用户功能界面功能选择用户登录功能实现用户登录功能实现结束我要借书我要还书借阅信息超期罚款修改密码退出登录我要借书我要借书用户可以通过选择书的编号进行借阅,借阅之后会在借阅表中产生借阅信息。根据用户不同,借书数量不同,老师为 10 本,学生为 5 本,当库存不足时会显示库存不足,这时借阅会失败。我要还书我要还书用户可以通过选择书的编号进行还书,还书之后会在借阅表中产生还书信息借阅信息借阅信息将借阅表中的信息显示出来超期罚款超期罚款当借阅的时间超过规定时间(教师为90 天,学生为60 天),便会产生超期罚款,超期时间,每天罚款元修改密码修改密码用户可在此进行密码修改,当新密码和确认密码不相同时,确认按钮则会变成不可以状态,且确认密码右侧会有“两次密码不同,请确认密码”的提示,只有当新密码和确认密码相同时,确认按钮才会变成可用状态Private Sub Command1_Click()If Text1=ThenMsgBox 请输入账户,登录Exit SubEnd IfIf Text2=ThenMsgBox 请输入密码,登录Exit SubEnd IfIf Text3=ThenMsgBox 请输入新密码,登录Exit SubEnd Ifsqlstr=select*from 用户 where 卡号=&Trim(Text1)&and 登录密码=&Trim(Text2)&=sqlstrWithIf Not.EOF Then.Fields(登录密码)=Trim(Text4).UpdateMsgBox 密码修改成功!Text1=Text2=Text3=Text4=Unload MeElseMsgBox 账户或密码输入错误,请重新输入。,vbOKOnly+vbExclamation,警告Text1=Text2=Text3=Text4=Exit SubEnd IfEnd WithEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Text4_Change()=FalseIf Trim(Text4)=Trim(Text3)Then=两次密码相同=TrueElse=两次密码不同,请确认密码Exit SubEnd IfEnd SubPrivate Sub text4_keypress(keyascii As Integer)If keyascii=13 ThenCommand1_ClickEnd IfEnd Sub背景设置背景设置Private Sub Form_Load()窗体居中显示(0).Enabled=True(1).Enabled=False(0).Enabled=True(1).Enabled=False准备播放音乐IsMusicOn=False=&/歌曲的位置=mini播放器界面模式=100音量,0-100=100播放次数MsgBox 欢迎使用中南大学图书馆管理系统End SubPrivate Sub Form_Unload(Cancel As Integer)退出时检查并关闭音乐If IsMusicOn=True ThenEnd IfEnd SubPrivate Sub Frame1_DragDrop(Source As Control,X As Single,Y As Single)End Sub背景图片控制Private Sub Light_Click(Index As Integer)Light(Index).Enabled=FalseIf Index=0 Then打开背景图片=TrueLight(1).Enabled=TrueEnd IfIf Index=1 Then关闭背景图片=FalseLight(0).Enabled=TrueEnd IfEnd Sub背景音乐控制Private Sub Music_Click(Index As Integer)Music(Index).Enabled=FalseIf Index=0 Then打开背景音乐IsMusicOn=True播放Music(1).Enabled=TrueEnd IfIf Index=1 Then关闭背景音乐IsMusicOn=False关闭Music(0).Enabled=TrueEnd IfEnd Sub7.7.心得体会心得体会1.这次课程设计使我熟悉了系统设计的整体步骤。系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、功能实现及调试测试六大步骤。其中,让我感触最深的是需求分析阶段,在这两个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。还有功能实现阶段,在此阶段,我们通过所学知识,以及利用课本和网上的资料,将理论付诸实践,将设计出来的虚构的东西变成实实在在的一个程序,必须懂得如何高效利用身边的资源。2.这次课程设计加深了我对数据库系统概论相关知识和SQL Server2008 R2 和相关功能的理解。例如对建立基本表,对控件的使用还有对 SQL 语言和 VB 语言的运用等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了很多新的知识。3.当然,在实习的过程中也存在一些问题。由于需求分析阶段的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利。4.我们做任何事,无论是课程设计还是其他的一些事,都会遇到一些困难,在这时候,千万不能有退却的想法,一定要迎难而上,只要你坚持做下去,困难终会被克服,这是本次课程设计给我的最大体会。8.8.参考文献参考文献 1 王小玲 安剑奇,数据库技术与应用(SQL Server 2008 版);中国水利水电出版社2 王小玲 安剑奇,数据库技术与应用(SQL Server 2008 版)实践教程;中国水利水电出版社