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

上传人:1888****888 文档编号:39097830 上传时间:2021-11-09 格式:DOC 页数:20 大小:992.01KB
收藏 版权申诉 举报 下载
数据库课程设计报告图书管理系统_第1页
第1页 / 共20页
数据库课程设计报告图书管理系统_第2页
第2页 / 共20页
数据库课程设计报告图书管理系统_第3页
第3页 / 共20页
资源描述:

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

1、 课 程 设 计 报 告课程名称 数据库课程设计 题 目 图书管理系统 指导教师 何玉洁、谷葆春、梁琦 设计起止日期 2011.11.162011.12.28 学 院 理学院 专 业 信息与计算科学 学生姓名 王佳颖 班级/学号 2009012620 成 绩 任务书题目图书借阅管理系统主要内容以及目标掌握SQL Server提供的常用功能,掌握存储过程、触发器的作用和编写方法,掌握在Visual Studio 2008环境下,使用.NET编写数据库应用程序的方法。具体内容:l 用图形化工具构建“图书借阅管理”数据库。l 用图形化工具或T-SQL语句创建“图书借阅管理”中的数据表及约束。l 编写

2、四个存储过程,其中至少有一个有输入参数。l 编写限制每个读者的借书数量不能超过5本以及判断图书是否过期归还的触发器。l 用.NET实现图书借阅管理系统的客户端编程。目标:让学生了解数据库后台和前台的实现过程。成果形式成果最终的主要形式是程序代码和课程设计报告。基本要求要求学生基本掌握在SQL Server环境下创建数据库及表的操作,基本掌握存储过程和触发器的概念好编写方法。基本掌握在Visual Studio.NET环境下,编写B/S架构的数据库应用程序的方法。主要参考文献1 何玉洁.数据库原理与应用教程(第2版).北京:机械工业出版社,2007。2 郑宇军等.SQL Server 2005+

3、Visual C#.北京:清华大学出版社,2007。3 茅健.ASP.NET 2.0 +SQL Server 2005 全程指南.北京:电子工业出版社,2008年。- 2 - 摘要关键字:图书借阅;图书信息;罚款,读者; 在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高图书借阅信息管理效率的目的

4、。采用数据库技术生成的图书馆管理系统会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。基于这个问题,开发了大学图书馆借阅系统,实现了借还书的方便、高效性、有效性和及时性。本文通过作者设计和开发一个小型图书馆管理系统的实践,阐述了图书管理软件中所应具有的基本功能、设计、实现。- 20 -目录任务书- 2 -摘要- 3 -目录- 4 -1.课程设计目的- 5 -2.课程设计课题介绍- 5 -3.课程设计基本要求- 5 -4.设计与实现- 5 -4.1系统需求分析- 5 -4.2系统设计- 6 -4.3界面设计- 7 -4.4关键代码-

5、 10 -5.系统测试- 17 -6.课程总结- 20 -参考文献- 20 -1.课程设计目的(1)服务器端学习掌握后台数据库管理系统SQL Server环境以及其中的基本管理技术,包括:l 创建数据库、创建表、数据的增删改查、数据的导入和导出;l 掌握触发器、存储过程的概念及创建方法。(2)客户端掌握在数据库前端开发环境(比如:Visual Studio 2008)中开发数据库应用程序的方法。2.课程设计课题介绍实现一个小型图书馆管理系统,包括新书入库,旧书出库,读者管理,读者借书,读者还书,罚款处理等基本功能。3.课程设计基本要求能够将新书基本信息录入“图书基本信息表”,并可从中删除相应图

6、书。对读者信息基本信息进行日常管理,如登记新读者,删除读者,修改读者信息。读者可以根据图书类别和书名查找自己要借阅的图书并借书,提供读者编号和图书编号两项信息还书。编写存储过程和触发器判断图书是否过期,若有过期或未还图书禁止该读者的借书功能4.设计与实现包括系统设计和界面设计,从而完成一个完整的图书馆管理系统4.1系统需求分析需求分析的目标是了解用户对开发的数据库应用系统的确切要求。需求分析是设计数据的起点,需求分析的结果是否正确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和使用。在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能

7、模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了四个部分:图书维护,人员信息管理,图书借阅管理,信息查询。能够实现以下功能: 进行新书入库、现有图书信息修改以及删除; 能够实现对读者基本信息的查询和编辑管理; 能够进行罚款信息的查询功能; 能够进行借阅信息的查询功能;4.2系统设计图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间)学生表 (学号,姓名,性别,班级,专业,所在系)教师表 (教师号,姓名,性别,所在系)读者表 (读者编号,学号,教师号)图书借阅表 (图书编号,读者编号,IS

8、BN号,借书日期,归还日期)罚款表(图书编号,读者编号,ISBN号,罚款日期,罚款额)4.3界面设计4.4关键代码-建表create table 图书基本信息表(图书编号 varchar(20) primary key,图书名称 varchar(40),作者 varchar(30),出版社 varchar(30),库存位置 varchar(30),ISBN号 varchar(12),出版日期 smalldatetime,图书价格 float,图书类型编号 int,类型名称 varchar(20),库存数量 int,入库时间 smalldatetime,)CREATE TABLE 学生表 (学号

9、 CHAR(10) PRIMARY KEY,姓名 NCHAR(5),性别 NCHAR(1),班级 NCHAR(10),专业 NVARCHAR(20),所在系 NVARCHAR(20),)CREATE TABLE 教师表 (教师号 CHAR(10) PRIMARY KEY,姓名 NCHAR(5),性别 NCHAR(1),所在系 NVARCHAR(20),)CREATE TABLE 读者表 (读者编号 CHAR(10) PRIMARY KEY,学号 CHAR(10),教师号 CHAR(10),FOREIGN KEY(学号) REFERENCES 学生表(学号),FOREIGN KEY(教师号) R

10、EFERENCES 教师表(教师号),)CREATE TABLE 图书借阅表 ( 图书编号 varchar(20),读者编号 CHAR(10),ISBN号 CHAR(20),借书日期 SMALLDATETIME DEFAULT GETDATE(),归还日期 SMALLDATETIME DEFAULT NULL,CHECK(归还日期 = 借书日期),PRIMARY KEY(图书编号,读者编号 ,借书日期),FOREIGN KEY(读者编号) REFERENCES 读者表(读者编号),FOREIGN KEY(图书编号) REFERENCES 图书基本信息表(图书编号)create table 罚款

11、表(图书编号 varchar(20),读者编号 varchar(20) ,ISBN号 char(12) ,罚款日期 smalldatetime,罚款额 float,foreign key(读者编号) references 读者表(读者编号)-插入数据 -向图书基本信息表中插入数据insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c001,婚姻法,陆黎明,机械工业出版社,小营校区,900-1-110,2010-09-13,55.00,1,政治,法律类,10,2011-01

12、-04);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c002,视读意识学,霍华德,安徽文艺出版社,小营校区,900-1-111,2010-05-03,25.00,2,哲学类,10,2011-01-05);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c003,记者眼中的外军,金葆,长征出版社,小营校区,900-1-112,2010-0

13、9-06,30.00,3,军事类,10,2011-01-06);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c004,中国近现代经济史,陈争平,清华大学出版社,小营校区,900-1-113,2010-09-12,35.00,4,经济类,10,2011-10-04);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c005,企业文化理论,王

14、水嫩,北京大学出版社,小营校区,900-1-114,2010-09-13,57.00,4,经济类,10,2011-01-04);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c006,中国古典诗歌英译理论,丛滋杭,国防工业出版社,清河校区,900-1-115,2010-09-10,53.00,5,文学类,10,2011-01-26);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型

15、名称,库存数量,入库时间) values(c007,计算机网络,陆黎,机械工业出版社,小营校区,900-1-116,2004-10-10,35.00,6,计算机类,10,2011-06-04);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c008,数据库系统教程,陆明,机械工业出版社,清河校区,900-1-117,2010-11-20,55.00,6,计算机类,10,2011-07-08);insert into 图书基本信息表(图书编号,图书名称,作者,出版社,

16、库存位置,ISBN号,出版日期,图书价格,图书类型编号,类型名称,库存数量,入库时间) values(c009,数值分析,陆军,机械工业出版社,小营校区,900-1-118,2010-03-02,55.00,7,数学类,10,2011-04-07);-向学生表中插入数据INSERT INTO 学生表 VALUES(s100001,王楠,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生表 VALUES( s100002,王二小,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生表 VALUES( s100003,小小,男,信计0902,信息与计算科学,理

17、学院)INSERT INTO 学生表 VALUES( s100004,张三丰,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生表 VALUES( s100005,范德萨,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生表 VALUES( s100006,孟安琪,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生表 VALUES( s100007,武汉,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生表 VALUES( s100008,陆逊,男,信计0902,信息与计算科学,理学院)INSERT INTO 学生

18、表 VALUES( s100009,吴永东,女,行政0901,行政管理,人文社科学院)INSERT INTO 学生表 VALUES( s1000010,赵武林,女,行政0901,行政管理,人文社科学院)INSERT INTO 学生表 VALUES( s1000011,赵武量,女,行政0901,行政管理,人文社科学院)-向教师表中插入数据INSERT INTO 教师表 VALUES(T0010001,李涵,女,计算机系)INSERT INTO 教师表 VALUES(T0010002,谷葆春,男,计算机系)INSERT INTO 教师表 VALUES(T0010003,邱均,男,计算机系)INSE

19、RT INTO 教师表 VALUES(T0010004,何玉洁,女,计算机系)INSERT INTO 教师表 VALUES(T0010005,梁齐,女,计算机系)INSERT INTO 教师表 VALUES(T0010006,李国成,男,数学系)INSERT INTO 教师表 VALUES(T0010007,谢冬秀,女,数学系)INSERT INTO 教师表 VALUES(T0010008于思源,男,数学系)INSERT INTO 教师表 VALUES(T0010009,王爱文,女,数学系)INSERT INTO 教师表 VALUES(T0010010, 俞思远,男,信息管理系)-向读者表中插

20、入数据insert into 读者表 (读者编号,学号,姓名,所在系)values(s100001,s100001,王楠,理学院);insert into 读者表 (读者编号,学号,姓名,所在系)values(s100002,s100002,王二小,理学院);insert into 读者表 (读者编号,学号,姓名,所在系)values(s100003,s100003,小小,理学院); insert into 读者表 (读者编号,学号,姓名,所在系)values(s100004,s100004,张三丰,理学院); insert into 读者表 (读者编号,学号,姓名,所在系)values(s1

21、00005,s100005,范德萨,理学院); insert into 读者表 (读者编号,学号,姓名,所在系)values(s100006,s100006,孟安琪,理学院); insert into 读者表 (读者编号,学号,姓名,所在系)values(s100007,s100007,武汉,理学院); insert into 读者表 (读者编号,学号,姓名,所在系)values(s100008,s100008,陆逊,理学院); insert into 读者表 (读者编号,学号,姓名,所在系)values(s100009,s100009,吴永东,人文社科学院);insert into 读者表

22、(读者编号,学号,姓名,所在系)values(s1000010,s1000010,赵武林,人文社科学院);insert into 读者表 (读者编号,学号,姓名,所在系)values(s1000011,s1000011,赵武亮,计算机学院); INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010001,T0010001,李涵,计算机系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010002,T0010002,谷葆春,计算机系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010

23、003,T0010003,邱均,计算机系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010004,T0010004,何玉洁,计算机系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010005,T0010005,梁齐,计算机系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010006,T0010006,李国成,数学系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010007,T0010007,谢冬秀,数学系)INSERT INTO 读者

24、表 (读者编号,教师号,姓名,所在系)VALUES(T0010008,T0010008,于思源,数学系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010009,T0010009,王爱文,数学系)INSERT INTO 读者表 (读者编号,教师号,姓名,所在系)VALUES(T0010010,T0010010,俞思远,信息管理系)-向图书借阅表中插入数据insert into 图书借阅表(图书编号,读者编号,ISBN号,借书日期,归还日期) values(c005,s100001,900-1-114,2011-01-12,2011-03-12);inse

25、rt into 图书借阅表(图书编号,读者编号,ISBN号,借书日期,归还日期) values(c006,s100002,900-1-115,2011-02-12,2011-05-12);insert into 图书借阅表(图书编号,读者编号,ISBN号,借书日期,归还日期) values(c007,s100002,900-1-116,2011-10-10,2012-01-10);insert into 图书借阅表(图书编号,读者编号,ISBN号,借书日期 ,归还日期,) values(c008,s100003,900-1-117,2009-11-20,2010-05-20,);-向罚款表中插

26、入数据Insert into 罚款表(图书编号,读者编号,ISBN号,罚款日期,罚款额) values(c008,s100003, 900-1-117,2010-02-21,3.5)-创建触发器-控制学生的图书借阅量在5本以内(包括5本)CREATE Trigger 学生图书借阅限制一 ON 图书借阅表 AFTER INSERTAS IF EXISTS (SELECT * FROM 图书借阅表 JOIN 读者表 ON 图书借阅表.读者编号 = 读者表.读者编号Join 学生表 on 读者表.学号=学生表.学号WHERE 归还日期 is NULL AND 借书日期 is not nullGROU

27、P BY 读者表.学号HAVING COUNT(ISBN号) 5)BEGINROLLBACKPRINT(您是学生,借书数目不能超过5本!)END-控制教师的图书借阅量在10本以内(包括10本)CREATE Trigger 教师图书借阅限制一 on 图书借阅表 AFTER INSERTAS IF EXISTS (SELECT * FROM 图书借阅表JOIN 读者表 ON 图书借阅表.读者编号 = 读者表.读者编号JOIN 教师表 ON 读者表.教师号 = 教师表.教师号WHERE 归还日期 is NULL AND 借书日期 is not nullGROUP BY 读者表.教师号HAVING C

28、OUNT(ISBN号) 10)BEGINROLLBACKPRINT(您是教师,借书数目不能超过10本!)END-控制学生不能借阅两本一样的书籍CREATE Trigger 学生图书借阅限制二 on 图书借阅表 AFTER INSERTAS IF EXISTS (SELECT * FROM图书借阅表 JOIN 读者表 ON 图书借阅表.读者编号 = 读者表.读者编号Join 学生表 on 读者表.学号=学生表.学号GROUP BY ISBN号HAVING COUNT(*) 2)BEGINROLLBACKPRINT(您是学生,不能借阅同样的两本书籍!)END-教师不能借阅两本一样的书籍CREATE

29、 Trigger 教师图书借阅限制二 on 图书借阅表 AFTER INSERTAS IF EXISTS (SELECT * FROM图书借阅表JOIN 读者表 ON 图书借阅表.读者编号 = 读者表.读者编号JOIN 教师表 ON 读者表.教师号 = 教师表.教师号GROUP BY ISBN号HAVING COUNT(*) 2)BeGINROLLBACKPRINT(您的身份是教师,不能借阅同样的两本书籍!)END-控制读者还书时如有罚款先交罚款,然后才能还书,若无罚款可直接还书CREATE Trigger 学生还书限制 ON 图书借阅表 AFTER DELETEAS IF EXISTS (S

30、ELECT * FROM 图书借阅表 JOIN 罚款表ON 图书借阅表.读者编号 = 罚款表.读者编号WHERE 罚款额 0)BEGINROLLBACKPRINT(您有未缴纳的罚款!请您先缴纳罚款)END-存储过程-新书入库CREATE PROC 新书入库in图书编号 varchar(20) primary key,in图书名称 varchar(40),in作者 varchar(30),in出版社 varchar(30),in库存位置 varchar(30),inISBN号 varchar(12),in出版日期 smalldatetime,in图书价格 float,in图书类型编号 int,i

31、n类型名称 varchar(20),in库存数量 int,in入库时间 smalldatetime,AS INSERT INTO 图书基本信息表 VALUES(in图书编号, in图书名称, in作者, in出版社, in库存位置,inISBN号, in出版日期, in图书价格, in图书类型编号, in类型名称, in库存数量, in入库时间)-罚款额计算create proc 罚款额计算 借书号 char(7), ISBN号 char(12),罚款额 numeric(5,1) as if exists(select * from 借书表 where DATEDIFF(day,借书日期,ge

32、tdate() 30 and 借书号 = 借书号 and ISBN号 = ISBN号 and 归还日期 is null ) -计算罚款额 set 罚款额= 0.1 * (select DATEDIFF(day,借书日期,getdate() - 30 from 借书表 where 借书号 = 借书号 and ISBN号 = ISBN号 and 归还日期 is null ) -调用罚款的存储过程 else set 罚款额 = 0-创建视图-创建学生读者视图CREATE VIEW 学生读者视图ASSELECT 读者号,姓名,性别,学生表.学号,班级,专业,所在系FROM 学生表 JOIN 读者表ON

33、 学生表.学号 = 读者表.学号-创建教师读者视图CREATE VIEW 教师读者视图ASSELECT 读者号,姓名,性别,教师表.教师号,所在系FROM 教师表 JOIN 读者表ON 教师表.教师号 = 读者表.教师号5.系统测试 6.课程总结这次课程设计使我熟悉了系统设计的整体步骤,系统设计大体可分为数据库的后台设计和前台设计两大步骤。其中,后台设计花的时间最长,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,否则,会在后续的工作中遇到很多的问题。这次课程设计加深了我对数据库系统概论相关知识和SQL SE

34、RVER相关功能的理解,例如对建立基本表、视图、存储过程、触发器等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了新的知识。比如在导入导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误。当然,在课设的过程中也存在一些问题。由于后台的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利。参考文献1 何玉洁.数据库原理与应用教程(第2版).北京:机械工业出版社,20072 茅健.ASP.NET 2.0 +SQL Server 2005 全程指南.北京:电子工业出版社,2008年3 耿肇英等.C#应用程序设计教程.北京:机械工业出版社,2007年4 王珊等.数据库系统概论(第四版).北京:高等教育出版社,2006年5 郑宇军等.SQL Server 2005+Visual C#.北京:清华大学出版社,2007

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!