数据库课程设计图书管理系统.docx

上传人:b****4 文档编号:4158148 上传时间:2022-11-28 格式:DOCX 页数:28 大小:2.36MB
下载 相关 举报
数据库课程设计图书管理系统.docx_第1页
第1页 / 共28页
数据库课程设计图书管理系统.docx_第2页
第2页 / 共28页
数据库课程设计图书管理系统.docx_第3页
第3页 / 共28页
数据库课程设计图书管理系统.docx_第4页
第4页 / 共28页
数据库课程设计图书管理系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

数据库课程设计图书管理系统.docx

《数据库课程设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书管理系统.docx(28页珍藏版)》请在冰豆网上搜索。

数据库课程设计图书管理系统.docx

数据库课程设计图书管理系统

第1章绪论

1.1系统开发背景介绍

现在随着人们生活质量的提高,人们对图书的需求越来越来丰富,并且需要图书的数量也日趋增加。

随着人们对图书需求的增加,图书管理者对图书的管理就日趋的困难,传统的纯手工记录图书记录已经发挥不了它原有的功能,反之,还会影响图书管理的功能,使用效率极低。

在这样的人们对图书需求日趋增加的情况下,电子记录管理图书就被广泛应用起来。

所以图书管理系统就应用而生。

1.2系统开发工具

系统运行平台:

Windows7。

系统前台开发平台即:

VisualBasic6.0。

系统后台开发平台即数据库管理系统软件:

SQLServer2000。

1.3系统主要内容简介

本系统主要是针对图书管理中出现的一些问题提供一些解决方法,并且应运计算机信息管理系统结合。

其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

前台我们采用功能强大的可视化开发软件VB开发设计主界面,利用SQLServer做为后台数据库。

主要分成登录信息管理、管理员信息管理、借阅/还书信息管理、借阅者信息管理、图书信息管理等功能模块。

 

第2章需求分析

2.1总体需求

这一章将介绍本系统的各个部分的需求。

2.2管理员的需求分析

管理者基本信息,包括管理者编号,管理者姓名,登陆密码,电话号码。

其中本系统中还包含管理者信息的修改,增加,删除等功能。

并且这个系统管理员经过登陆窗口才可进入。

管理员在整个系统中起到统筹全局的功能,管理员可以对系统中各个部分起到控制的作用,可以增加、修改、删除借阅者信息,增加、修改图书信息,并且可以查询借阅与还书情况,在本系统中贯穿整个系统。

2.3借阅/还书的需求分析

借阅基本信息包括借阅者信息,借阅者已借阅书籍,借书日期,借书编号等信息。

还书基本信息包括借阅者编号,借阅者还书的编号,并且附带有查询功能,查看借阅者借阅的图书是否过期。

2.4借阅者的需求分析

借阅者基本信息包括借阅者借阅卡号,借阅者姓名,借阅者学号,所在院校,电话号码等基本信息。

其中本系统中还包含借阅者的增添与删除,可以实现新生入学借阅的增加,毕业生的借阅信息的删除功能。

2.5图书信息的需求分析

图书基本信息包括图书编号,图书姓名,图书作者,图书ISBN,图书种类,图书数量等基本信息。

本系统中增加了图书库存管理功能,可以查看图书所在库存的状态,看是否可以借阅。

并且增加了图书增加功能,图书修改功能,图书查询功能,可以查询图书在库各种信息,与借阅者的联系也一目了然。

 

2.6实际功能

 

 

图2-1.图书管理系统结构图

 

第3章概念结构设计

3.1E-R图简介

实体-联系图(Entity-RelationDiagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。

通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。

ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。

构成E-R图的基本要素是实体、属性和联系,其表示方法为:

实体型:

用矩形表示,矩形框内写明实体名;

属性:

用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;

联系:

用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型

在E-R图中要明确表明1对多关系,1对1关系和多对多关系。

1对1关系在两个实体连线方向写1;

1对多关系在1的一方写1,多的一方写N;

多对多关系则是在两个实体连线方向各写N,M。

实体与属性之间并没有形式上可以截然划分的界限,但可以给出两条准则:

(1)作为“属性”不能再具有描述的性质;

(2)“属性”不能与其他实体具有联系。

 

3.2本系统的E-R图

管理员

ID

密码

工作时间

编号

借阅者

图书

借阅卡编号

年级

学号

姓名

电话

编号

名称

作者

ISBSN

种类

数量

操作

管理

借阅

返还

借书日期

图书期限

 

mn

 

nm

nm

nm

 

图3-1.图书管理系统总E-R图

 

第4章数据库设计

4.1数据库表

图书管理数据库含7个表,它们分别为:

图书表(Book);日期限定表(DataResrict);年级表(Grade);学院表(Institute);管理员表(Lidrarian);借阅者表(Borrower);书种表(Title)。

我们来看一下表的结构:

4.1.1图书表

图书表包括图书编号、书名、状态、借阅卡号、被借阅时间属性,各个属性的类型、长度、约束条件如表示

 

表4-1.图书表

 

4.1.2日期限定表

日期限定表包括书种、天数属性,各个属性的类型、长度、约束条件如表示

 

表4-2.日期限定表

4.1.3年级表

年级表包括年级编号、名称属性,各个属性的类型、长度、约束条件如表示

 

表4-2.年级表

4.1.4学院表

学院表包括学院编号、名称属性,各个属性的类型、长度、约束条件如表示

表4-4.学院表

4.1.5管理员表

管理员包括编号、ID、密码、工作时间、电话属性,各个属性的类型、长度、约束条件如表示

 

表4-5.管理员表

 

4.1.6借阅者表

借阅者包括借阅卡编号、学院编号、年级编号、姓名、学号、电话、已借书数目等属性,各个属性的类型、长度、约束条件如表示

 

表4-6.借阅者表

 

4.1.7书种表

书种表包括书名、作者、ISBSN、种类、数目等属性,各个属性的类型、长度、约束条件如表示

 

表4-7.书种表

 

第5章数据库的实现与程序

5.1登陆界面设计

输入“用户名”,“密码”,点击“确认”进入主题框;

图5-1登陆

该登陆界面代码如下所示:

源代码:

PublicOKAsBoolean

PrivateSubcmdCancel_Click()

OK=False

Me.Hide

EndSub

PrivateSubcmdLogin_Click()

'检验数据的有效性

IfTrim(txtUserName.Text="")Then

MsgBox"请输入用户名!

"

txtUserName.SetFocus

ExitSub

ElseIfTrim(txtPassword="")Then

MsgBox"请输入密码!

"

txtPassword.SetFocus

ExitSub

Else

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECT*FROMLibrarianWHEREId='"+txtUserName+"'ANDPassword='"+txtPassword+"'"

Setrst=myDbOper.querySQL(sql)

If(Notrst.EOF)Then

OK=True

Me.Hide

FrmMain.Show0

Else

MsgBox"用户名和密码错误,请重新输入."

EndIf

rst.Close

'关闭连接

myDbOper.DB_DisConnect

EndIf

EndSub

PrivateSubForm_Load()

EndSub

PrivateSubLabel1_Click()

EndSub

 

5.2管理员管理设计

管理员窗口的设计主要包括“修改”、“添加”、“删除”,“刷新”等功能。

添加管理员是依照窗口的信息依次填写,点击“提交”即可;

图5-2进入管理员信息栏

图5-3.添加管理者

该管理者添加的代码如下:

源代码:

PrivateSubcmdExit_Click()

Me.Hide

EndSub

PrivateSubcmdSubmit_Click()

'检验数据的有效性

IfTrim(txtId)=""Then

MsgBox"请输入登录Id"

ExitSub

EndIf

IfTrim(txtPwd)=""Then

MsgBox"请输入登录密码"

ExitSub

EndIf

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECT*FROMLibrarianWHEREseq='"+Trim(txtSeq)+"'"

Setrst=myDbOper.querySQL(sql)

Ifrst.EOF=TrueThen

Withrst

.AddNew

!

seq=Me.txtSeq

!

id=Me.txtId

!

Password=Me.txtPwd

!

onJobTime=Me.txtTime

!

telephone=Me.txtPhone

.Update

EndWith

MsgBox"信息添加成功."

Else

MsgBox"该编号已经存在,请重新输入."

EndIf

rst.Close

'关闭连接

myDbOper.DB_DisConnect

EndSub

PrivateSubForm_Load()

EndSub

PrivateSubFrame1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

EndSub

PrivateSubLabel1_Click()

EndSub

PrivateSubtxtId_Change()

EndSub

PrivateSubtxtPwd_Change()

EndSub

 

删除图书管理员是在管理员列表中点击要删除的那一行,点击“删除”即可;

图5-4删除管理者

 

修改管理员首先在管理员列表中点击要修改的管理员信息,在编辑区填写要修改的信息,点击“修改”即可;

 

图5-5修改管理者

图5-6刷新管理员列表

 

该管理者的修改、删除代码如下所示:

源代码:

 

PrivateSubcmdAdd_Click()

FrmAddManager.Show1

EndSub

PrivateSubcmdDelete_Click()

DimtmpSeqAsString

IfAdodc1.Recordset.BOF=TrueThen

MsgBox"请选择记录"

ExitSub

EndIf

p=Adodc1.Recordset.AbsolutePosition

tmpSeq=Trim(Adodc1.Recordset.Fields(0))

'确认删除

IfMsgBox("是否删除当前行?

",vbYesNo,"确认")=vbYesThen

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECT*FROMLibrarianWHEREseq='"+Trim(txtSeq)+"'"

Setrst=myDbOper.querySQL(sql)

If(Notrst.EOF)Then

Withrst

.DeleteadAffectCurrent

.Update

EndWith

Else

MsgBox"发生错误,请重新操作."

EndIf

Refresh_DataList

Ifp-1>0Then

Adodc1.Recordset.Move0

Adodc1.Recordset.Movep-1

EndIf

EndIf

EndSub

PrivateSubcmdEdit_Click()

'检验数据的有效性

IfTrim(txtId)=""Then

MsgBox"请输入登录Id"

ExitSub

EndIf

IfTrim(txtPwd)=""Then

MsgBox"请输入登录密码"

ExitSub

EndIf

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECT*FROMLibrarianWHEREseq='"+Trim(txtSeq)+"'"

Setrst=myDbOper.querySQL(sql)

If(Notrst.EOF)Then

rst!

id=Me.txtId

rst!

Password=Me.txtPwd

rst!

onJobTime=Me.txtTime

rst!

telephone=Me.txtPhone

rst.Update

MsgBox"信息修改成功."

Else

MsgBox"发生错误,请重新输入."

EndIf

rst.Close

'关闭连接

myDbOper.DB_DisConnect

Refresh_DataList

EndSub

PrivateSubcmdExit_Click()

Me.Hide

EndSub

PrivateSubcmdRefresh_Click()

Refresh_DataList

EndSub

PrivateSubDataGrid1_Click()

IfAdodc1.Recordset.BOF=TrueThen

MsgBox"请选择记录"

ExitSub

EndIf

'保存光标位置

p=Adodc1.Recordset.AbsolutePosition

'读取当前记录的各列数据

Me.txtSeq=Trim(Adodc1.Recordset.Fields(0))

Me.txtId=Trim(Adodc1.Recordset.Fields

(1))

Me.txtPwd=Trim(Adodc1.Recordset.Fields

(2))

Me.txtTime=Trim(Adodc1.Recordset.Fields(3))

Me.txtPhone=Trim(Adodc1.Recordset.Fields(4))

Refresh_DataList

'恢复光标位置

Adodc1.Recordset.Move0

Adodc1.Recordset.Movep-1

EndSub

PrivateSubRefresh_DataList()

'刷新管理员列表

Adodc1.RecordSource="SELECT*FROMLibrarianORDERBYseq"

Adodc1.Refresh

EndSub

PrivateSubForm_Load()

EndSub

PrivateSubFrame1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

EndSub

PrivateSubLabel4_Click()

EndSub

 

5.3借阅/还书管理设计

借阅图书时首先要输入“借书卡号”,点击“确定”,就会出来借阅者的一些的基本信息,再在“借书登记栏”中输入书刊编号查询,如果在库是,点击“提交”即可;

图5-7借阅

借阅其代码如下;

源代码:

PrivateSubcmdExit_Click()

Me.Hide

EndSub

PrivateSubcmdEnter_Click()

'检验数据的有效性

IfTrim(txtBorrId)=""Then

MsgBox"请输入借书卡号"

ExitSub

EndIf

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECTb.StudentNum,b.name,i.Institute,g.Grade,b.teleNumber,b.borrowBookNum"_

+"FROMBorrowerb,Institutei,Gradeg"_

+"WHEREb.InstituteID=i.InstituteIDANDb.GradeID=g.GradeID"_

+"ANDBorrowerId='"+txtBorrId+"'"

Setrst=myDbOper.querySQL(sql)

If(Notrst.EOF)Then

Withrst

lblStuNum.Caption=.Fields(0)

lblName.Caption=.Fields

(1)

lblInstitute.Caption=.Fields

(2)

lblGrade.Caption=.Fields(3)

lblPhone.Caption=.Fields(4)

EndWith

Refresh_DataList1

Else

MsgBox"用户不存在,请重新操作."

EndIf

rst.Close

'关闭连接

myDbOper.DB_DisConnect

EndSub

 

PrivateSubcmdQuery_Click()

'检验数据的有效性

IfTrim(txtBookId)=""Then

MsgBox"请输入书刊编号"

ExitSub

EndIf

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECTb.BookIDas书刊编号,b.nameas名称,b.loanas状态,"_

+"t.authoras作者,t.isbsnasisbsn,t.typeas类型,b.BorrowDateas借书日期"_

+"FROMBookb,TitletWHEREb.name=t.nameANDb.BookID='"_

+Trim(txtBookId)+"'"

Setrst=myDbOper.querySQL(sql)

If(Notrst.EOF)Then

Refresh_DataList2(sql)

Else

MsgBox"该书刊不存在,请重新操作."

EndIf

rst.Close

'关闭连接

myDbOper.DB_DisConnect

EndSub

PrivateSubRefresh_DataList1()

DimsqlAsString

sql="SELECTbo.BookIDas书刊编号,bo.nameas名称,bo.BorrowDateas借书日期"_

+"FromBorrowerb,Bookbo"_

+"WHEREb.BorrowerID=bo.borrowerIDandb.BorrowerID='"_

+Trim(txtBorrId)+"'"

Adodc1.RecordSource=sql

Adodc1.Refresh

SetDataGrid1.DataSource=Adodc1

DataGrid1.ReBind

EndSub

PrivateSubRefresh_DataList2(sqlAsString)

Adodc2.RecordSource=sql

Adodc2.Refresh

SetDataGrid2.DataSource=Adodc2

DataGrid2.ReBind

EndSub

PrivateSubcmdSubmit_Click()

'检验数据的有效性

IfTrim(txtBorrId)=""Then

MsgBox"请输入借书卡号"

ExitSub

EndIf

IfTrim(txtBookId)=""Then

MsgBox"请输入书刊编号"

ExitSub

EndIf

DimnowDateAsNewBookDate

DimmyDbOperAsNewDbOperation

DimrstAsADODB.Recordset

DimsqlAsString

Dimupdate1_sqlAsString

Dimupdate2_sqlAsString

'建立连接

myDbOper.DB_Connect

'定义查询语句

sql="SELECTloanFROMBookWHEREBookId='"+Trim(txtBookId)+"'"

Setrst=myDbOper.querySQL(sql)

IfTrim(rst.Fields(0))="在库"Then

'更新数据库表

update1_sql="UPDATEBookSETloan='借出',borrowerID='"_

+Trim(txtBorrId)+"',BorrowDate='"_

+nowDate.getDate+"'WHEREBookID='"_

+Trim(txtBookId)+"'"

myDbOper.executeSQL(update1_sql)

update2_sql

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

当前位置:首页 > PPT模板 > 商务科技

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

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