图书借阅管理系统报告.doc_第1页
图书借阅管理系统报告.doc_第2页
图书借阅管理系统报告.doc_第3页
图书借阅管理系统报告.doc_第4页
图书借阅管理系统报告.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 广东技术师范学院天河学院广东技术师范学院天河学院 数据库原理及应用 课程设计报告 题题 目:目: 图书馆管理系统图书馆管理系统 设设 计计 者者 :陈达馨:陈达馨 20130415433022013041543302 梁晓敏梁晓敏 20130415433192013041543319 郑郑 畅畅 20130415433512013041543351 专业:专业: 计算机科学与技术计算机科学与技术 班级:班级: 计科计科 133133 班班 指导教师:指导教师: 蔡柳萍蔡柳萍 所属系部:所属系部: 计算机系计算机系 20142014 年年 1212 月月 2020 日至日至 2525 日日 II 摘摘 要要 目前,我国的科技水平高速发展,计算机作为今天使用最广的 现代化工具已深入到各个领域,并且正在成为未来社会信息社 会的重要支柱。在这样的大背景下,现代图书馆的管理方式,资源 建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理 和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理, 而是全面实行计算机管理。 本系统使用 Microsoft Visual Studio 2010 开发工具和 SQL SERVER 2005 数据库,一方面使用 SQL 语句来完成数据库后台操作, 另一方面运用 VS 语言来实现 前台网页的操作,将这两方面 结合起来,在网页中展示整个图书管理系统的数据操作。此系统功 能分为面向读者和面向管理员两部分,其中读者可以进行查询书籍 及查询借还情况等操作,管理员可以完成图书和读者的添加,删除, 删除,修改,统计,用户管理和备份与恢复。 关键词关键词: :图书图书,Microsoft,Microsoft VisualVisual StudioStudio 2010,SQL2010,SQL SERVERSERVER 2005,2005,数据库设计,图书管理系统数据库设计,图书管理系统 III 目录目录 摘 要.II 目录III 一 实验概述.1 1. 开发背景.1 2. 意义.1 二 需求分析.2 1.1 系统目标 .2 1.2 需求定义 .2 1.3 功能需求3 三 概要设计.4 1.思路设计框架4 2.E-R 图 4 2.1 局部 ER 模式 .4 四、 数据库设计.4 4.1 表结构:确定表结构。4 4.2 存储过程.10 五.应用系统设计(前台)16 5.2 登录界面 .17 5.2.2 管理员界面.20 5.3.2 图书借阅界面.27 5.4 数据库权限界面 .28 六 总结31 0 1 1实验概述实验概述 1.1.开发背景开发背景 随着我国市场经济的迅速发展和人们生活水平的不断提高,图 书馆藏书的树木逐渐增大,这也挑战了图书管理方面的技术,以前 的人工管理方式已经不再适应现在的环境,取而代之的是先进的图 书管理系统,通过使用 SQL SERVER 2005 创建的图书管理系统可以 让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。 图书管理工作面对大量的可模块化处理的信息,是当今信息革命的 一个重要阵地。我们小组开发图书管理信息系统就是采用现代化的 信息管理方式代替手工管理方式,提高图书管理工作效率,作到信 息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社 会服务。 2.2.意义意义 该系统具有管理员管理图书和读者管理图书的功能,一方面管理 员可以查询所管理的用户的信息和增加,修改,删除用户,并且可 以添加新的图书信息。另一方面读者可以查询自己的基本信息和修 改登录密码,对已借的书籍可以实现续期的操作和购买图书操作。 1 2 2需求分析需求分析 1.11.1 系统目标系统目标 图书管理信息系统是典型的信息管理系统(MIS),其开发主要包 括后台数据库的建立和维护以及前端应用程序的开发两个方面。对 于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对 于后者则要求应用程序功能完备,易使用等特点。 系统开发的总体任务是实现各种信息的系统化,规范化和自动 化。 1.21.2 需求定义需求定义 图书馆管理系统开发。系统开发的总的设计目标是实现图书管 理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。 本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、 图书、借阅、查询、删除和管理员的信息等。本系统结构分为读者 信息管理、图书信息管理,读者管理可以浏览读者的信息,可以对 读者信息进行维护。图书管理可以浏览图书的信息,可以对图书信 息进行维护。借阅管理可以显示当前数据库中书籍借阅情况,可以 对借阅信息进行维护。本系统主要解决的问题是利用关键字对数据 库进行查询。本系统的宗旨是提高图书管理工作的效率,减少相关 人员的工作量,使学校的图书管理工作真正做到科学、合理的规划, 2 系统、高效。 1.31.3 功能需求功能需求 1、完成馆藏全部图书的查询和统计等功能。 2、完成管理员管理用户信息的查询,添加,修改,删除的操作。 3、完成管理员管理图书的添加,进库,修改,查询,删除等操 作。 4、完成读者对个人信息的查询,对图书信息的查询,对借还情 况的查询和修改密码等功能。 5、安全查询模块分创建备份,数据备份和数据恢复,作用分别 为创建备份设备,将数据库进行备份,对已删除的数据进行恢复。 3 3 3概要设计概要设计 1.思路设计框架思路设计框架 系统功能模块图 图 3.1.1 读者信息管理 图书信息管理 图书类别管理 查询管理的用户 登录界面 图书馆管理系统 图书管理员模块 读者模块 读者信息查询 借还图书信息 修改个人密码 登录界面 图书归还管理 图书借阅管理 4 2.E-R 图图 2.1 局部局部 ER 模式模式 读者表(读者编号,姓名,性别,出生日期,年龄,电话,注册日 期,证件类型,证件号码,押金,借书数量,职业) 0 读者编号姓名 证件号码 押金 密码 年龄 职业 注册日期 电话 借书数量 证件类型 读者表 出生日期 图 3.2.1 图书表(图书编号,类别编号,书名,作者,译者,出版社,出版 日期,价格,库存数量) 图书编号类别编号书名作者 价格 译者 库存数量 出版日期 出版社 图书表 图 3.2.2 管理员表(管理员编号,密码,姓名,性别,年龄,电话,证件号 性别 1 码,工作日期) 管理员编 号 密码姓名性别年龄 证件号码 电话 工作日期 管理员表 图 3.2.3 订购表(图书编号,管理员编号,订购数量,订购日期,折扣) 借阅表(借阅编号,图书编号,管理员编号,读者编号,借阅日期, 归还日期,是否归还) 库存表(图书编号,管理员编号,现存数量) 图书分类表(类别编号,图书类名,可借天数,预期罚金) 2 借书押金 职业 密码 读者编号 姓名性别 借阅编号图书编号 出生日期 电话 读者信息 管理员编号 注册日期 读者编号 年龄 借阅日期 罚款金额 证件类型 证件号码 归还日期 押金 分类类别名称 借阅 是否归还 管理 类别编号 可借天数 证件号码 工作日期图书信息 密码 管理员信息 管理 作者 姓名 管理员编号 电话性别 年龄 出版 图书编号 译者 图书编号 折扣 订购 库存数量 书名 管理员编号出版社 订购数量 订购日期 价格 类别编号 图 3.2.4 3 4 4、数据库设计数据库设计 4.14.1 表结构表结构: :确定表结构确定表结构。 新建一个数据库-library create database library .1 涉及的表涉及的表 图书表图书表 属性属性类型类型大小大小能否为空能否为空约束约束 图书编号varchar13否主键 类别编号Int否外键 书名varchar40否 作者varchar20否 译者varchar20否 出版社varchar50否 出版日期Datetime否 价格money否 库存量 int否 图 图书分类表图书分类表 属性属性类型类型大小大小能否为空能否为空约束约束 类别编号int否主键 图书类名varchar20否 可借天数Int否 预期罚金Money否 图 读者表读者表 属性属性类型类型大小大小能否为空能否为空约束约束 读者编号 var char13否主键 姓名varchar10否 密码 varchar20否 性别char2否 年龄Int否 4 出生日期datetime否 证件类型char10否 证件号码Varchar20否 注册日期datetime否 电话varchar13否 押金Money否 借书数量Int否 职业 Char10 否 图 借阅表借阅表 属性属性类型类型大小大小能否为空能否为空约束约束 借阅编号Int否主键 图书编号Varchar13否外键 管理员编号Varchar20否外键 读者编号Varchar13否外键 借阅日期Datetime否 是否归还Varchar2否 归还日期Datetime否 图 管理员表管理员表 属性属性类型类型大小大小能否为空能否为空约束约束 管理员编号Varchar20否主键 姓名Varchar10否 密码Varchar20否 性别char2否 年龄Int否 电话varchar13否 证件号码Varchar20否 工作日期datetime否 图 订购表订购表 属性属性类型类型大小大小能否为空能否为空约束约束 图书编号Varchar10否主键 管理员编号Varchar20否 订购数量Int否 5 订购日期Datetime否 折扣Float是 图 库存表库存表 属性属性类型类型大小大小能否为空能否为空约束约束 图书编号Varchar13否主键 管理员编号Int否 现存数量Int否 图 .2 建表的建表的 SQLSQL 语句语句 1.create table 读者表 (读者编号 varchar(13) not null primary key, 姓名 varchar(10) not null, 密码 varchar(20) not null, 性别 char(2) not null check(性别=男 or 性别=女) default 男, 出生日期 datetime not null, 年龄 int not null, 电话 varchar(13) not null, 注册日期 datetime not null, 证件类型 char(10) not null, 证件号码 varchar(20) not null, 押金 money not null, 借书数量 int not null check(借书数量 between 1 and 7), 6 职业 char(10) null ) 2.create table 图书表 (图书编号 varchar(13) not null primary key, 类别编号 int not null foreign key references 图书分类表(类 别编号), 书名 varchar(40) not null, 作者 varchar(20) not null, 译者 varchar(20) not null, 出版社 varchar(50) not null, 出版日期 datetime not null, 价格 money not null, 库存数量 int not null ) 3.create table 管理员表 (管理员编号 varchar(20) not null primary key, 密码 varchar(20) not null, 姓名 varchar(10) not null, 性别 char(2) not null check(性别=男 or 性别=女) default 男, 年龄 int not null, 电话 varchar(13) not null, 7 证件号码 varchar(20) not null, 工作日期 datetime not null ) 4.create table 借阅表 (借阅编号 int not null primary key, 图书编号 varchar(13) not null foreign key references 图书表 (图书编号), 管理员编号 varchar(20) not null foreign key references 管理 员表(管理员编号), 读者编号 varchar(13) not null foreign key references 读者表 (读者编号), 借阅日期 datetime not null default getdate(), 归还日期 datetime not null default getdate(), 是否归还 varchar(2) not null ) 5.create table 图书分类表 (类别编号 int not null primary key, 图书类名 varchar(20) not null, 可借天数 int not null default 30, 预期罚金 money null) 6.create table 库存表 8 (图书编号 varchar(13) not null primary key, 管理员编号 int not null, 现存数量 int not null) .3 数据库中表截图数据库中表截图 图 4.1.3 .4 约束:约束: 1 1、图书表、图书表 图书编号列设置主键约束; 2 2、图书分类表图书分类表 9 类别编号列设置主键; 3 3、读者表读者表 读者编号列设置主键约束; 性别列设置 check 约束,取值范围为“男”或“女”,设置默认 值约束,默认值设为“男” ; 4 4、借阅表借阅表 借阅编号列合为设置主键约束; 图书编号列设置外键约束,同图书表的主键图书标号列相关联; 管理员编号列设置外键约束,同管理员表的主键管理员编号列相 关联; 读者编号列设置外键约束,同读者表的主键读者编号列相关联; 5 5、 管理员表管理员表 管理员编号列设置主键约束; 6.6. 订购表订购表 图书编号列设置主键约束; 7.7.库存表库存表 图书编号列设置主键约束; 4.2.2 存储过程存储过程 .1 图书查询存储过程图书查询存储过程 为了方便在首页根据图书类型和书名来查询用户所要查询的图书, 创建一个存储过程“p_tscx”: 10 create proc p_tscx a varchar(20),b varchar(30) as if exists(select* from 图书表 a,图书类型表 b where 图书类型 =a and 书名=b) begin select* from 图书表 a,图书类型表 b where 图书类名=a and 图书名称=b and a.类型编号=b.类型编号 select 这是你需要查询的书籍 end else select请输入书籍名称 .2 新建用户存储过程新建用户存储过程 为了方便新建用户并给用户分配权限,创建一个存储过程 “p_addgrant”: create proc p_addgrant a varchar(20),b varchar(20),c varchar(20),d varchar(20) as if a 11 begin exec sp_addlogin a,b select 提示=创建登录用户成功! if c请选择 begin exec sp_grantdbaccess a exec sp_addrolemember d,a end end end else select 提示=用户名或密码不能为空 4.2.3 删除用户存储过程删除用户存储过程 为了方便删除不用的用户,创建一个存储过程“p_dellogin”: create proc p_dellogin a varchar(20) as exec sp_droplogin a 12 select 删除用户成功! 4.2.4 添加管理员存储过程添加管理员存储过程 为了方便添加管理员,创建一个存储过程“p_tjgly” create proc p_tjgly a varchar(20),b varchar(20),c varchar(10),d char(2),e varchar(13),f datetime as if exists(select * from 管理员表 where 管理员编号=a) select 警告=该账号已存在 else begin insert 管理员表 values(a,b,c,d,e,f) select 成功=添加成功 end 4.2.5 添加读者存储过程添加读者存储过程 为了方便添加读者,创建一个存储过程“p_tjdz” create proc p_tjdz a varchar(13),b varchar(20),c varchar(10),d char(2),e datetime,g varchar(13),h datetime,j int 13 as if exists(select * from 读者表 where 读者编号=a) select 警告=该账号已存在 else begin insert 读者表 values(a,b,c,d,e,g,h,j) select 成功=添加成功 end 4.2.6 添加借阅记录存储过程添加借阅记录存储过程 为了方便添加借阅记录过程,创建一个存储过程“p_tjjyjl” create proc p_tjjyjl a int,b varchar(13),c varchar(20),d char(13),e datetime,f varchar(15) as if exists(select * from 借阅表 where 借阅编号=a) select 警告=该记录已存在 else begin insert 借阅表 values(a,b,c,d,e,f) 14 select 成功=添加成功 End 4.3 权限设置权限设置 我们所设计的图书管理系统根据实际情况会用到两类用户,一 类是管理员,一类是读者,管理员拥有所有的权限,故管理员使用系 统自带的 Sa 登陆,管理数据库,而读者只允许查看与个人信息和借 阅图书信息。 授予读者查看个人信息的权限命令:(此命令需到后台数据库 执行,前台创建用户时只可给予固定的服务器角色) 15 五五.应用系统设计应用系统设计(前台前台) 5.1 图书检索界面图书检索界面 用户不需登录就可以查询图书馆已有的书籍,只要输入查询的 书的类型和书名即可查询想要的书籍的信息 图 5.1.1 代码如下:代码如下: Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim aa As String = “exec p_tscx “ + 16 DropDownList1.Text + “,“ + TextBox1.Text + “ Dim ad As New SqlDataAdapter(aa, cn) 数据集 Dim dess As New DataSet ad.Fill(dess, “abc“) GridView1.DataSource = dess.Tables(“abc“) GridView1.DataBind() End If End Sub 5.2 登录界面登录界面 5.2.1 用户登录界面用户登录界面 用户要根据个人的学号和密码登录图书管理系统,当登录成功后, 才能查看自己的个人信息以及进行一些图书管理操作。 17 图 5.2.1 代码如下:代码如下: Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 连接数据库,执行命令, Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;uid=“ + TextBox1.Text + “;pwd=“ + TextBox2.Text cn.Open() If cn.State = ConnectionState.Open Then If RadioButtonList1.SelectedItem.Text = “管理员“ Then Dim da As SqlDataReader Dim ba As String = “select * from 管理员表 18 where 管理员编号=“ + TextBox1.Text + “ Dim cmd As New SqlCommand cmd.CommandText = ba cmd.Connection = cn da = cmd.ExecuteReader() If da.HasRows = True Then da.Read() Response.Redirect(“gly.aspx“) Else Response.Write(“管理员表中不存在该用户! “) End If Else Dim dy As SqlDataReader Dim ba As String = “select * from 读者表 where 读者编号=“ + TextBox1.Text + “ Dim cmd As New SqlCommand cmd.CommandText = ba cmd.Connection = cn dy = cmd.ExecuteReader() If dy.HasRows = True Then dy.Read() 19 Response.Redirect(“dz.aspx“) Else Response.Write(“读者表中不存在该用户! “) End If End If End If End Sub 5.2.2 管理员界面管理员界面 图 5.2.2 20 添加管理员代码: Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim ba As String = “exec p_tjgly“ + TextBox1.Text + “,“ + TextBox2.Text + “,“ + TextBox3.Text + “,“ + TextBox4.Text + “,“ + TextBox5.Text + “,“ + TextBox6.Text + “ Dim ad As New SqlDataAdapter(ba, cn) Dim dess As New DataSet ad.Fill(dess, “abc“) GridView2.DataSource = dess.Tables(“abc“) GridView2.DataBind() Dim aa As String = “exec p_xstjgly “ + TextBox1.Text + “ Dim dd As New SqlDataAdapter(aa, cn) Dim dset As New DataSet dd.Fill(dset, “ss“) GridView1.DataSource = dset.Tables(“ss“) 21 GridView1.DataBind() End If 添加读者代码: Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim da As String = “exec p_tjdz “ + TextBox1.Text + “,“ + TextBox2.Text + “,“ + TextBox3.Text + “,“ + TextBox4.Text + “,“ + TextBox5.Text + “,“ + TextBox7.Text + “,“ + TextBox8.Text + “,“ + TextBox10.Text + “ Dim ad As New SqlDataAdapter(da, cn) 数据集 Dim dess As New DataSet ad.Fill(dess, “abc“) GridView2.DataSource = dess.Tables(“abc“) GridView2.DataBind() Dim aa As String = “exec p_xstjdz “ + 22 TextBox1.Text + “ Dim dd As New SqlDataAdapter(aa, cn) Dim dset As New DataSet dd.Fill(dset, “ss“) GridView1.DataSource = dset.Tables(“ss“) GridView1.DataBind() End If 5.35.3个人图书管理系统界面个人图书管理系统界面 .1 个人信息界面个人信息界面 当读者成功登录后就跳转到读者界面,该页面可以查看借阅记录和 个人信息 23 图 5.3.1 查看借阅记录代码: Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim da As String = “select * from 借阅表“ Dim cmd As New SqlCommand cmd.CommandText = da cmd.Connection = cn cmd.ExecuteNonQuery() 24 Dim ad As New SqlDataAdapter(da, cn) Dim dset As New DataSet ad.Fill(dset, “qq“) GridView1.DataSource = dset.Tables(“qq“) GridView1.DataBind() End If 查看个人信息代码: Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim da As String = “select * from 读者表 where 读者编号= “ + TextBox1.Text + “ Dim cmd As New SqlCommand cmd.CommandText = da cmd.Connection = cn cmd.ExecuteNonQuery() Dim ad As New SqlDataAdapter(da, cn) Dim dset As New DataSet 25 ad.Fill(dset, “qq“) GridView1.DataSource = dset.Tables(“qq“) GridView1.DataBind() End If 修改个人密码: Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim da As String = “exec p_xgdz “ + TextBox1.Text + “,“ + TextBox2.Text + “,“ + TextBox3.Text + “ Dim cmd As New SqlCommand cmd.CommandText = da cmd.Connection = cn cmd.ExecuteNonQuery() Dim aa As String = “exec p_xstjdz “ + TextBox1.Text + “ Dim ad As New SqlDataAdapter(aa, cn) 26 Dim dset As New DataSet ad.Fill(dset, “zz“) GridView1.DataSource = dset.Tables(“zz“) GridView1.DataBind() Response.Write(“修改完毕“) End If .2 图书借阅界面图书借阅界面 图书借阅界面可以查看当前读者所借阅的图书的信息 图 5.3.2 代码如下:代码如下: Dim cn As New SqlConnection cn.ConnectionString = “server=USER- 27 20141219TLSQLEXPRESS;database=library;integrated security=true“ cn.Open() If cn.State = ConnectionState.Open Then Dim da As String = “exec p_tjjyjl “ + TextBox1.Text + “,“ + TextBox2.Text + “,“ + TextBox3.Text + “,“ + TextBox4.Text + “,“ + TextBox5.Text + “,“ + TextBox6.Text + “ Dim ad As New SqlDataAdapter(da, cn) 数据集 Dim dess As New DataSet ad.Fill(dess, “abc“) GridView2.DataSource = dess.Tables(“abc“) GridView2.DataBind() Dim aa As String = “exec p_xsjyj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论