一 开发背景
随着社会信息量的与日俱增,更多人开始关注知识的积累、能力的培养。作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。
在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果。因此往往是投入了大量的人力和财力却得不到高效的管理效率。为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
二 开发目标
高校图书馆管理系统管理系统
三 参考资料
四 设计原则
采用结构化的功能模块设计系统功能,可读性好,易于扩充。基本功能全面,系统可读性好,易于维护、更新,安全性好。
需求分析
进行系统设计,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活。随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化、规范化、标准化的水平。该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率。需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了四个部分:图书维护,人员信息管理,图书借阅管理,信息查询。能够实现以下功能:
进行新书入库、现有图书信息修改以及删除;
能够实现对读者基本信息的查询和编辑管理;
能够进行超期罚款功能;
能够进行借阅信息的查询功能;
设计图
(1)用于查询图书基本信息的视图定义如下: create view Bookview (索书号, 书名, 作者, 出版社, 图书状态) asselectBookNo,BookName,BookWriter,BookPublish,BookState from Book
(2)用于读者基本信息查询的视图定义如下: create view Readerview (读者姓名,类型,学院,专业,办证日期)
as select ReaName,ReaType,ReaDep,ReaPref,ReaDate from Reader
(3)用于显示当前借阅基本信息的视图定义如下: create view Borrowview (读者编号,书名,作者,借阅日期,到期日期)
as select ReaID,BookName,BookWriter,Outdate,YHdate from Borrow,Book where Borrow.BookID=Book.BookID and Borrow.Indate is null
(4)用于借阅历史信息查询的视图定义如下: create view Historyview (读者编号,书名,借阅日期,归还日期)
as select ReaID,BookName,Outdate,Indate from Borrow,Book where Borrow.BookID=Book.BookID and Borrow.Indate is not null (5)用于查询罚款信息的视图定义如下:create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态)
as select ReaID,BookName,Outdate,Indate,Fine,CLState from Borrow,Book where Borrow.BookID=Book.BookID and Fine is not null
1.当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的记录 create trigger Reader_delete on Reader for delete as delete Borrow from deleted
where Borrow.ReaID=deleted.ReaID
2.当在中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借” create trigger Borrow_insert1 on Borrow for insert as declare @BookID char(9) select @BookID=BookID from inserted update Book set BookState='不可借' where BookID=@BookID
(1)读者类别信息表的建立: create table ReaderType( LBID char(5) primary key, LBName char(20) not null, LBnum char(5) not null, LBbqx char(4) not null, LBqx char(3) not null, )
(2)管理员基本信息表的建立: create table Maneger( MID char(10) primary key, MName char(10) not null, MSex char(2), Mpwd char(8) not null, MAuth char(40) not null, MTeleph char(15), MAddre char(30), check(MSex ='男' or MSex ='女') )
(3)图书馆室基本信息表的建立: create table Room( RoomNo char(5) primary key, RoomMID char(10) not null, Roomnum char(5), RoomAddre char(20), foreign key(RoomMID) references Maneger(MID), )
总结与收获
组员感受:在本次作业中我体会到组队编程的好处如下;(1)每个人的工作量都大大下降;(2)组员有更多的时间花在自己负责的部分,可以进行更多的改进.但是也有一些不好的地方,如组员之间需要磨合,有时会成为组员消极怠工的借口,组员负责部分需要联合,有可能不是每个组员都熟练这一种语言。
这次作业使我充分了解到系统设计的整体步骤,了解了团队合作的益处。
在编写代码之前,首先要对需求进行分析,也就是知道自己要做什么,然后针对自己的构思,查找相关资料,认真分析,再根据需求进行编写,这帮助我们节省了很多时间。
这次团队作业,我们组员分工十分明确,每个人都完成了自己分内的任务,大大提高了编写代码的效率。
团队成员及博客地址:
罗松(队长)
宋栿尧:http://www.cnblogs.com/sfy1995/
李曌:http://www.cnblogs.com/darling1550lz/
阎德宽:http://www.cnblogs.com/yan1716/