1、数据库课程设计图书管理系统第1章绪论1.1系统开发背景介绍现在随着人们生活质量的提高,人们对图书的需求越来越来丰富,并且需要图书的数量也日趋增加。随着人们对图书需求的增加,图书管理者对图书的管理就日趋的困难,传统的纯手工记录图书记录已经发挥不了它原有的功能,反之,还会影响图书管理的功能,使用效率极低。在这样的人们对图书需求日趋增加的情况下,电子记录管理图书就被广泛应用起来。所以图书管理系统就应用而生。1.2系统开发工具系统运行平台:Windows7。系统前台开发平台即:VisualBasic6.0。系统后台开发平台即数据库管理系统软件:SQLServer2000。 1.3系统主要内容简介本系统
2、主要是针对图书管理中出现的一些问题提供一些解决方法,并且应运计算机信息管理系统结合。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。前台我们采用功能强大的可视化开发软件VB开发设计主界面,利用SQLServer做为后台数据库。主要分成登录信息管理、管理员信息管理、借阅/还书信息管理、借阅者信息管理、图书信息管理等功能模块。第2章需求分析2.1总体需求这一章将介绍本系统的各个部分的需求。2.2管理员的需求分析管理者基本信息,包括管理者编号,管理者姓名,登陆密码,电话号码。其中本系统中还包含管理者信息的修改,增加,删除等功能。并且这个系统管理员经过登陆窗口才可进入。管理员在整个
3、系统中起到统筹全局的功能,管理员可以对系统中各个部分起到控制的作用,可以增加、修改、删除借阅者信息,增加、修改图书信息,并且可以查询借阅与还书情况,在本系统中贯穿整个系统。2.3借阅/还书的需求分析借阅基本信息包括借阅者信息,借阅者已借阅书籍,借书日期,借书编号等信息。还书基本信息包括借阅者编号,借阅者还书的编号,并且附带有查询功能,查看借阅者借阅的图书是否过期。2.4借阅者的需求分析借阅者基本信息包括借阅者借阅卡号,借阅者姓名,借阅者学号,所在院校,电话号码等基本信息。其中本系统中还包含借阅者的增添与删除,可以实现新生入学借阅的增加,毕业生的借阅信息的删除功能。2.5图书信息的需求分析图书基
4、本信息包括图书编号,图书姓名,图书作者,图书ISBN,图书种类,图书数量等基本信息。本系统中增加了图书库存管理功能,可以查看图书所在库存的状态,看是否可以借阅。并且增加了图书增加功能,图书修改功能,图书查询功能,可以查询图书在库各种信息,与借阅者的联系也一目了然。2.6 实际功能 图2-1. 图书管理系统结构图第3章概念结构设计3.1 E-R图简介实体-联系图(Entity-RelationDiagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。ER图提供了表示实体
5、(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型在E-R图中要明确表明1对多关系,1对1关系和多对多关系。1对1关系在两个实体连线方向写1;1对多关系在1的一方写1,多的一方写N;多对多关系则是在两个实体连线方向各写N,M。实体与属性之间并没有形式上可以截然划分的界限,但可以给出两
6、条准则:(1)作为“属性”不能再具有描述的性质;(2)“属性”不能与其他实体具有联系。3.2 本系统的E-R图管理员ID密码工作时间编号借阅者图书借阅卡编号年级学号姓名电话编号名称作者ISBSN种类数量操作管理借阅返还借书日期图书期限 m n n m n m n m 图3-1. 图书管理系统总E-R图 第4章数据库设计4.1数据库表图书管理数据库含7个表,它们分别为:图书表(Book);日期限定表(DataResrict);年级表(Grade);学院 表(Institute);管理员表(Lidrarian);借阅者表(Borrower);书种表(Title)。我们来看一下表的结构:4.1.1图
7、书表图书表包括图书编号、书名、状态、借阅卡号、被借阅时间属性,各个属性的类型、长度、约束条件如表示表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借阅者表借阅者包括借阅卡编号、学院编号、年
8、级编号、姓名、学号、电话、已借书数目等属性,各个属性的类型、长度、约束条件如表示表4-6. 借阅者表4.1.7书种表书种表包括书名、作者、ISBSN、种类、数目等属性,各个属性的类型、长度、约束条件如表示表4-7. 书种表第5章数据库的实现与程序5.1登陆界面设计输入“用户名”,“密码”,点击“确认”进入主题框;图5-1登陆该登陆界面代码如下所示:源代码: Public OK As BooleanPrivate Sub cmdCancel_Click() OK = False Me.HideEnd SubPrivate Sub cmdLogin_Click() 检验数据的有效性 If Trim
9、(txtUserName.Text = ) Then MsgBox 请输入用户名! txtUserName.SetFocus Exit Sub ElseIf Trim(txtPassword = ) Then MsgBox 请输入密码! txtPassword.SetFocus Exit Sub Else Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT * FROM Librarian WHERE I
10、d= + txtUserName + AND Password= + txtPassword + Set rst = myDbOper.querySQL(sql) If (Not rst.EOF) Then OK = True Me.Hide FrmMain.Show 0 Else MsgBox 用户名和密码错误,请重新输入. End If rst.Close 关闭连接 myDbOper.DB_DisConnect End If End SubPrivate Sub Form_Load()End SubPrivate Sub Label1_Click()End Sub5.2管理员管理设计管理员
11、窗口的设计主要包括“修改”、“添加”、“删除”,“刷新”等功能。添加管理员是依照窗口的信息依次填写,点击“提交”即可;图5-2进入管理员信息栏图5-3. 添加管理者该管理者添加的代码如下:源代码:Private Sub cmdExit_Click() Me.HideEnd SubPrivate Sub cmdSubmit_Click() 检验数据的有效性 If Trim(txtId) = Then MsgBox 请输入登录Id Exit Sub End If If Trim(txtPwd) = Then MsgBox 请输入登录密码 Exit Sub End If Dim myDbOper A
12、s New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT * FROM Librarian WHERE seq= + Trim(txtSeq) + Set rst = myDbOper.querySQL(sql) If rst.EOF = True Then With rst .AddNew !seq = Me.txtSeq !id = Me.txtId !Password = Me.txtPwd !onJobTime = Me.txtT
13、ime !telephone = Me.txtPhone .Update End With MsgBox 信息添加成功. Else MsgBox 该编号已经存在,请重新输入. End If rst.Close 关闭连接 myDbOper.DB_DisConnectEnd SubPrivate Sub Form_Load()End SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End SubPrivate Sub Label1_Click()End SubPrivate Sub txtId_C
14、hange()End SubPrivate Sub txtPwd_Change()End Sub删除图书管理员是在管理员列表中点击要删除的那一行,点击“删除”即可;图5-4删除管理者 修改管理员首先在管理员列表中点击要修改的管理员信息,在编辑区填写要修改的信息,点击“修改”即可;图5-5修改管理者图5-6 刷新管理员列表该管理者的修改、删除代码如下所示:源代码:Private Sub cmdAdd_Click() FrmAddManager.Show 1End SubPrivate Sub cmdDelete_Click() Dim tmpSeq As String If Adodc1.Rec
15、ordset.BOF = True Then MsgBox 请选择记录 Exit Sub End If p = Adodc1.Recordset.AbsolutePosition tmpSeq = Trim(Adodc1.Recordset.Fields(0) 确认删除 If MsgBox(是否删除当前行?, vbYesNo, 确认) = vbYes Then Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SEL
16、ECT * FROM Librarian WHERE seq= + Trim(txtSeq) + Set rst = myDbOper.querySQL(sql) If (Not rst.EOF) Then With rst .Delete adAffectCurrent .Update End With Else MsgBox 发生错误,请重新操作. End If Refresh_DataList If p - 1 0 Then Adodc1.Recordset.Move 0 Adodc1.Recordset.Move p - 1 End If End IfEnd SubPrivate Su
17、b cmdEdit_Click() 检验数据的有效性 If Trim(txtId) = Then MsgBox 请输入登录Id Exit Sub End If If Trim(txtPwd) = Then MsgBox 请输入登录密码 Exit Sub End If Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT * FROM Librarian WHERE seq= + Trim(txtSeq) +
18、 Set rst = myDbOper.querySQL(sql) If (Not rst.EOF) Then rst!id = Me.txtId rst!Password = Me.txtPwd rst!onJobTime = Me.txtTime rst!telephone = Me.txtPhone rst.Update MsgBox 信息修改成功. Else MsgBox 发生错误,请重新输入. End If rst.Close 关闭连接 myDbOper.DB_DisConnect Refresh_DataListEnd SubPrivate Sub cmdExit_Click()
19、Me.HideEnd SubPrivate Sub cmdRefresh_Click() Refresh_DataListEnd SubPrivate Sub DataGrid1_Click() If Adodc1.Recordset.BOF = True Then MsgBox 请选择记录 Exit Sub End If 保存光标位置 p = Adodc1.Recordset.AbsolutePosition 读取当前记录的各列数据 Me.txtSeq = Trim(Adodc1.Recordset.Fields(0) Me.txtId = Trim(Adodc1.Recordset.Fie
20、lds(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.Move 0 Adodc1.Recordset.Move p - 1End SubPrivate Sub Refresh_DataList() 刷新管理员列表 Adodc1.RecordSource = SELECT * FROM L
21、ibrarian ORDER BY seq Adodc1.RefreshEnd SubPrivate Sub Form_Load()End SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End SubPrivate Sub Label4_Click()End Sub5.3 借阅/还书管理设计借阅图书时首先要输入“借书卡号”,点击“确定”,就会出来借阅者的一些的基本信息,再在“借书登记栏”中输入书刊编号查询,如果在库是,点击“提交”即可;图5-7 借阅借阅其代码如下;源代码:Private S
22、ub cmdExit_Click() Me.HideEnd SubPrivate Sub cmdEnter_Click() 检验数据的有效性 If Trim(txtBorrId) = Then MsgBox 请输入借书卡号 Exit Sub End If Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT b.StudentNum,b.name,i.Institute,g.Grade,b.teleNumb
23、er,b.borrowBookNum _ + FROM Borrower b,Institute i,Grade g _ + WHERE b.InstituteID=i.InstituteID AND b.GradeID=g.GradeID _ + AND BorrowerId= + txtBorrId + Set rst = myDbOper.querySQL(sql) If (Not rst.EOF) Then With rst lblStuNum.Caption = .Fields(0) lblName.Caption = .Fields(1) lblInstitute.Caption
24、= .Fields(2) lblGrade.Caption = .Fields(3) lblPhone.Caption = .Fields(4) End With Refresh_DataList1 Else MsgBox 用户不存在,请重新操作. End If rst.Close 关闭连接 myDbOper.DB_DisConnectEnd SubPrivate Sub cmdQuery_Click() 检验数据的有效性 If Trim(txtBookId) = Then MsgBox 请输入书刊编号 Exit Sub End If Dim myDbOper As New DbOperati
25、on Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT b.BookID as 书刊编号,b.name as 名称,b.loan as 状态, _ + t.author as 作者,t.isbsn as isbsn,t.type as 类型,b.BorrowDate as 借书日期 _ + FROM Book b , Title t WHERE b.name=t.name AND b.BookID= _ + Trim(txtBookId) + Set rst = m
26、yDbOper.querySQL(sql) If (Not rst.EOF) Then Refresh_DataList2 (sql) Else MsgBox 该书刊不存在,请重新操作. End If rst.Close 关闭连接 myDbOper.DB_DisConnectEnd SubPrivate Sub Refresh_DataList1() Dim sql As String sql = SELECT bo.BookID as 书刊编号,bo.name as 名称,bo.BorrowDate as 借书日期 _ + From Borrower b,Book bo _ + WHERE
27、b.BorrowerID=bo.borrowerID and b.BorrowerID= _ + Trim(txtBorrId) + Adodc1.RecordSource = sql Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.ReBindEnd SubPrivate Sub Refresh_DataList2(sql As String) Adodc2.RecordSource = sql Adodc2.Refresh Set DataGrid2.DataSource = Adodc2 DataGrid2.ReBin
28、dEnd SubPrivate Sub cmdSubmit_Click() 检验数据的有效性 If Trim(txtBorrId) = Then MsgBox 请输入借书卡号 Exit Sub End If If Trim(txtBookId) = Then MsgBox 请输入书刊编号 Exit Sub End If Dim nowDate As New BookDate Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String Dim update1_sql As String Dim upda
29、te2_sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT loan FROM Book WHERE BookId= + Trim(txtBookId) + Set rst = myDbOper.querySQL(sql) If Trim(rst.Fields(0) = 在库 Then 更新数据库表 update1_sql = UPDATE Book SET loan=借出,borrowerID= _ + Trim(txtBorrId) + ,BorrowDate= _ + nowDate.getDate + WHERE BookID= _ + Trim(txtBookId) + myDbOper.executeSQL (update1_sql) update2_sql
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1