ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:3.82MB ,
资源ID:4745498      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4745498.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书管理系统项目文档.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书管理系统项目文档.docx

1、图书管理系统项目文档图书管理系统项目文档实验人员:08382047 网络工程 黄忠08382044 网络工程 刘光林数据库设计部分是应用系统中非常重要的一个环节,数据库设计的优劣将直接影响应用系统的运行的效率。所以图书管理系统数据库的设计师图书管理系统中首要完成的工作。本系统开发平台Visual Studio 2010,Microsoft SQL Server 2008,Windows 7,编程语言为C#。一、 图书管理系统功能分析图书管理系统可以供学校,书店等的管理员使用,用于日常的读者管理,图书管理,借书,还书等操作,另外还可以供读者查询图书信息及其借阅情况等。本系统主要功能包括登录,图书

2、查询、借阅查询、读者管理、图书管理、借阅管理等功能模块。1、 登录功能图书管理系统可供读者和管理员使用,所以需要设置登录者的身份,并赋予不同身分的登录者以不同的权限,读者只能查看借阅情况和图书馆藏情况,管理员分三类:读者管理员、图书管理员、超级管理员。读者管理员只能进行读者管理操作,图书管理员只能进行图书管理操作,超级管理员可以进行图书查询、借书查询、读者管理、图书管理、借书管理、还书管理、数据备份等操作。2、 读者管理读者主要有借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、联系方式和备注属性。借书证号是唯一的,借书量不能超过10。只有读者管理员和超级管理员才能进行读者管理,包括添

3、加,修改,删除。在修改读者信息时,不能修改借书证号和借书量,删除读者信息时,如果该读者借过书尚未归还则不能删除读者。3、 图书管理图书主要有ISBN、书名、作者、出版社、出版年月、价格、复本量、库存量、分类号、内容提要和封面等属性。每一种图书的ISBN都是唯一的,库存量不能大于复本量。只有图书管理员和超级管理员才能进行图书管理,其操作包括添加图书、修改图书、删除图书。添加新书时,系统自动生成每本图书的ID及在借情况,再借情况默认为否。删除图书时如果该图书已经借出则不允许删除图书记录。4、 图书查询用户可以根据图书ISBN、书名、作者、出版社进行模糊查询,查询结果将分页显示。5、 借书管理借书管

4、理只有超级管理员才能进行。用户可以输入读者的借书证号查看其借书记录,确认读者没有在借相同的ISBN的书,然后输入要借的图书的ISBN、图书ID,判断图书是否存在、是否再借等情况、如果可借则完成结束操作,借书时间登记为系统当前时间,规定还书期限为60天,同时系统自动将读者的借书量加1,图书库存量减1,图书的再借情况为再借。6、 借书查询一读者身份登录系统时,用户点击借书查询模块可以查看自己的借书情况。以管理员身份登录时,用户输入读者的借书证号也可以查看该读者的结束情况。7、 还书管理还书操作只能由超级管理员来进行。输入读者的借书证号即可查看读者的现有的借书记录。用户输入图书ID后单击还书按钮即可

5、进行还书操作,与此同时,系统自动将读者的借书量减1,图书库存量加1,图书在借情况为否,并根据删除的图书记录自动生成一条还书记录。8、 数据备份超级管理员可以指定一个后缀名为.bak的备份文件,然后将图书管理数据库的所有数据备份为该文件。二、 图书管理系统数据库设计通过以上的功能分析,现阶段可以进行图书管理数据库的设计。1、 图书管理数据库的E-R模型通过理解图书管理系统所要实现的功能,可以得出图书管理数据库包括以下实体:管理员、读者、图书、在借情况。 管理员的属性:角色名、密码、备注; 读者的属性:借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、备注、联系方式; 图书的属性:ISBN

6、、书名、作者、出版社、出版年月、价格、复本量、库存量、分类号、内容提要、封面照片; 在借情况的属性:图书ID、是否在借。其E-R模型如下图:2、 图书管理数据库的逻辑结构设计在图书管理的各个实体中,管理员命名为Administrator,主码为“角色名”,读者命名为TReader,主码为“借书证号”,图书命名为TBook,主码为“ISBN”,在借情况命名为TBLend,主码为“图书ID”。实体集“读者”和“图书”之间通过联系“借阅(命名为TLend)”表示借阅关系,通过联系“归还(命名为HLend)”表示归还关系。所以由以上E-R模型可得到如下关系模式:Administrator(角色名,密码

7、,备注)TReader(借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、备注、联系方式)TBook(ISBN、书名、作者、出版社、出版年月、价格、复本量、库存量、分类号、内容提要、封面照片)TBLend(图书ID,ISBN,是否借出)TLend(借书证号,ISBN,图书ID,借出时间,应还时间)HLend(编号,借书证号,ISBN,图书ID,借书时间,还书时间)3、 图书管理数据库的物理结构设计从以上关于图书管理数据库的逻辑结构设计的讨论可知,可以在图书管理数据库中创建读者信息表TReader,其包含的字段有:借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、备注、联系方式。

8、其中,“借书证号”可以用学号表示,是8位定长字符型数据,使用char(8);“密码”记录读者的登录密码,可以是20位不定长字符型数据,吃用varchar(20);“姓名”一般不超过4个中文字符,所以可以是8位定长字符型数据,使用char(8);“性别”只有“男”、“女”两个值,所以可以使用bit类型,1表示“男”,0表示“女”;“出生日期”是日期时间类型数据,使用date;“专业”使用12位定长字符型数据,使用char(12);“借书量”是整形数据,使用int;“照片”存储读者的照片信息,使用varbinary(MAX);“备注”记录读者的额外信息,使用varchar(500);“联系方式”记

9、录读者的E-mail、电话、住址等信息,使用XML片段的方式存储。 综上分析可得TReader表结构: 读者信息表(TReader)结构字段名类型与宽度是否主键是否允许为空借书证号Char(8)是否密码Varchar(20)否否姓名Char(8)否否性别Bit否否出生日期Datetime否否专业Char(12)否否借书量Int否否照片Varbinary(MAX)否是备注varchar(500)否是联系方式XML否是 同理可得出其他表的表结构: 图书信息表(TBook)结构字段名类型与宽度是否主键是否允许为空ISBNChar(18)是否书名Char(40)否否作者Char(16)否否出版社Cha

10、r(30)否否出版年月Char(10)否是价格Float否否复本量Int否否库存量Int 否否分类号Char(18)否是内容提要Varchar(200)否是封面照片Varbinary(MAX)否是 借阅表(TLend)结构字段名类型与宽度是否主键是否允许为空借书证号Char(8)否否ISBNChar(18)否否图书IDChar(10)是否借书时间Datetime否否应还时间Datetime否否 还书记录表(HLend)结构字段名类型与宽度是否主键是否允许为空编号Int是否借书证号Char(8)否否ISBNChar(18)否否图书IDChar(10)否否借书时间Datetime否否还书时间Dat

11、etime否否 图书在借表(TBLend)结构字段名类型与宽度是否主键是否允许为空图书IDChar(10)是否ISBNChar(18)否否是否在借Bit否否三、 图书管理系统的数据库及表的创键通过以上讨论,现在可以创建图书管理系统所需的数据库及其表,T-SQL语句如下: 创建数据库create database MBOOKonprimary(NAME=MBOOK,FILENAME=D:dataMBOOK.mdf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=2MB)LOG ON(NAME=MBOOK_log,FILENAME=D:dataMBOOK_log.ldf,SIZ

12、E=1MB,FILEGROWTH=10%); 创建表 创建TReader表use MBOOKgocreate table TReader(借书证号 char(6) not null primary key,密码 varchar(20)not null,姓名 char(8) not null,性别 bit not null,出生时间 datetime not null,专业 char(12) not null,借书量 int not null default 0,照片 varbinary(MAX) null,备注 varchar(200) null,联系方式 xml null) 创建TBook表

13、create table TBook(ISBN char(18) not null primary key,书名 char(40) not null,作译者 char(16) not null,出版社 char(30) not null,出版年月 char(10) null,价格 float not null,复本量 int not null,库存量 int not null,分类号 char(18) null,内容提要 varchar(200) null,封面照片 varbinary(MAX) null) 创建TLend表create table TLend(借书证号 char(8) not

14、 null,ISBN char(18) not null,图书ID char(10) not null primary key,借书时间 datetime not null,应还时间 AS 借书时间+5) 创建HLend表create table HLend(编号 int not null identity(1,1) primary key,借书证号 char(6) not null,ISBN char(18) not null,图书ID char(10) not null,借书时间 datetime not null,还书时间 datetime not null) 创建TBLend表crea

15、te table TBlend(图书ID char(10) not null primary key,ISBN char(18) not null,是否借出 bit not null) 创建Administrator表create table Administrator(角色名 char(20) not null primary key,密码 varchar(20) not null,备注 varchar(100) null)四、 图书管理数据库表数据的完整性约束1、 图书管理数据库列的完整性图书管理数据库列的完整性包括:列的数据类型需要与定义的一致,列的为空性,默认值,列的内容是否符合要求等

16、。解决列的内容是否符合要求使用CHECK约束。在TReader表中,“借书量”的值必须大于等于0小于等于10;TBook表中库存量必须小于等于复本量。如下:use MBOOKgoalter table TReaderadd check(借书量=0 AND 借书量=5)goalter table TBookadd constraint CK_TBook check(库存量0begin insert into TBlend values(firstID,in_ISBN,0)set firstID=firstID+1set count=count-1endend2、 图书借阅功能根据读者的借书证号、

17、图书的ISBN、图书ID,以及实际的图书管理情况向图书管理数据库的TLend添加借书记录,读者的借书量和图书的库存量要相应的变化。思路如下图:命令如下:set out_str=图书库存量为0return 0end/* 判断是否借过该书 */if in_ISBN in(select ISBN from TLend where 借书证号=in_ReaderID)beginset out_str=该读者已经借过该书return 0end/* 判断是否已经被借 */if exists(select* from TLend where 图书ID=in_BookID)beginset out_str=该图

18、书ID存在return 0endbegin tran /*开始一个事务*/*插入借书记录*/INSERT INTO TLend (借书证号,ISBN,图书ID,借书时间)values(in_ReaderID,in_ISBN,in_BookID,GETDATE()if ERROR0beginrollback transet out_str=执行过程中遇到错误return 0end/*修改借书量*/update TReader set 借书量=借书量+1 where 借书证号=in_ReaderIDif ERROR0beginrollback transet out_str=执行过程中遇到错误re

19、turn 0end/*修改库存量*/update TBook set 库存量=库存量-1 where ISBN=in_ISBNif ERROR0beginrollback transet out_str=执行过程中遇到错误return 0end/*修改图书借出情况*/update TBlend set 是否借出=1 where 图书ID=in_BookIDif ERROR=0begincommit transet out_str=借书成功return 0endelseif ERROR0beginrollback transet out_str=执行过程中遇到错误return 0endend3、

20、 同步删除图书借出情况功能在TBook表中删除一条图书记录时,同时删除TBLend表中与该书相关的记录。该功能使用在TBook表中定义删除触发器的方法实现。触发器名称为Book_delete,触发器类型为DML,在对TBook表进行了DELETE操作后激活。如下:use MBOOKgocreate trigger TBook_delete on TBookafter deleteasdelete from TBlend where ISBN=(select ISBN FROM deleted)4、 图书归还功能当读者归还图书时,即删除借阅表TLend中的一条记录时,读者信息表中该读者的借书量减

21、1,图书信息表中该书的库存量加1,图书在借情况的是否借出为否,还书记录表添加一条该读者的还书记录。该功能用在TLend表定义触发器的方法实现,触发器名称为TLend_delete,触发器类型为DML,在对TLend进行操作后激活。如下:create trigger TLend_delete on TLendafter deleteasbegindeclare ReaderID char(6),ISBN char(18),BookID char(10),LTime datetimedeclare cur_return cursorforselect 借书证号,ISBN,图书ID,借书时间 fro

22、m deletedopen cur_returnfetch next from cur_return into ReaderId,ISBN,BookID,LTimewhile fetch_status=0beginupdate TReader set 借书量=借书量-1 where 借书证号=ReaderIDupdate TBook set 库存量=库存量+1 where ISBN=ISBNupdate TBlend set 是否借出=0 where 图书ID=BookIDinsert into HLend(借书证号,ISBN,图书ID,借书时间,还书时间)values (ReaderID,I

23、SBN,BookID,LTime,getdate()fetch next from cur_return into ReaderID,ISBN,BookID,LTimeendclose cur_returndeallocate cur_returnend5、 统计借书次数功能图书管理员输入读者的借书证号,可以统计读者总共借过多少次书,包括借过归还和在借的。使用用户自定义的函数实现,函数名为L_count。使用借书证号作为参数,名称为ReaderID,通过查询借阅表TLend和还书记录表HLend得到借书次数总数。如下:use MBOOKgocreate function L_count(ReaderID char(6)returns intasbegindeclare count1 int,count2 int,sum_count intselect count1=count(借书证号)from TLendwhere 借书证号=ReaderIDselect count2=count(借书证号)from HLendwhere 借书证号=ReaderIDset sum_count=count1+count2return sum_countend六、 界面截图:登录界面:图书查询:借书查询:借书管理:还书管理:读者管理:图书管理:数据备份:

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

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