图书管理系统1.docx
《图书管理系统1.docx》由会员分享,可在线阅读,更多相关《图书管理系统1.docx(23页珍藏版)》请在冰豆网上搜索。
图书管理系统1
1.引言
书籍是人类不可缺少的精神食粮,图书管理已成为学校不可缺少的一部分。
目前学校图书馆的借阅工作部分还是手工管理,工作效率很低,并且不能及时了解图书的种类和学生们比较需求的图书等,不能更好的适应当前学生的借阅要求。
手工管理还存在着许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。
图书管理信息化是信息发展的必然趋势。
图书的管理直接关系到学生如何更好的使用图书,更充分的利用现有资源学习,提高自身素质。
针对当今的学校图书馆藏书越来越多,学生借书越来越频繁,图书管理较为繁琐,图书馆管理工作人员付出的工作时间越来越多,得到的效率却很低这个现状。
为提高工作效率,减轻图书馆工作人员的工作负担,决定开发学校图书馆管理系统软件,以帮助更好的实现图书馆的管理,让学生能更便捷的借阅图书,让老师能花最少的时间办理好借阅图书手续。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已经被人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有手工管理无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。
这些优点能够极大地提高图书管理的效率,也是企业、学校的科学化、正规化管理和与世界接轨的重要条件。
因此,开发这样一套管理系统已成为很有必要的事情。
2.需求分析与用例建模
2.1可行性分析
可行性分析的任务是明确应用项目开发的必要性和可行性。
必要性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。
我们从以下几个方面进行可行性分析。
1.经济可行性
此系统可由在校大学生开发的学校图书馆管理信息系统。
由于学校图书馆的借阅无商业利益,所以系统设计开发的周期要短,在短时间内完成,减少开发成本,提高开发效率,方便、简单、实用是作为系统开发的指导思想。
本系统完全能够在校园图书馆管理工作中发挥重要作用,而作为个人,能在软件开发能力方面得到锻炼和提高也是十分重要的,本系统在此不注重任何社会经济目标。
所以,从经济的角度来看,该系统可行。
2.技术可行性
开发者根据客户对系统功能、性能及实现该系统的制约因素,分析该项目开发在技术上可能承担的风险,在硬件软件配置以及开发技术均已可行的情况下,能够开发出易理解、易操作、易实现、易维护的系统。
因此该系统在技术上是可行的。
3.法律可行性
经过分析,该系统的开发没有违背国家相关法律,在知识产权方面也不能对他人构成侵权行为。
因此该系统在法律角度看是可行的。
4.可行性分析结论
通过以上可行性分析,图书管理系统的开发在经济上、技术上、法律上都是可行的,可以立即开发。
2.2系统功能需求分析
图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难,图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。
图书管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。
本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。
2.3系统非功能分析
为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的需求:
1.准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
系统应能及时而且准确地根据用户权限及所输入的信息做出响应。
准确性和及时性很大程度上决定了系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。
2.易用性
所开发的系统要能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。
3.安全性
系统要提供方便的手段供系统管理员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。
同时系统还要保证对数据库进行及时更新,保证数据一致性。
2.4用例模型
根据系统需求分析中客户对系统的功能要求,我们已经确定了系统和子系统的边界、执行者和用例。
该系统采用分层绘制用例图的方法建立系统的用例模型。
1.最高层用例图
根据客户对“图书管理系统”的整体业务功能要求,可以绘制如图2-1所示的最高层用例图。
图2-1图书管理系统最高层用例图
在最高层用例图中,实线方框表示系统边界,在系统边界内有6个用例。
系统内的“信息查询”和“借阅管理”依赖“读者管理”的读者信息和依赖“图示管理”的图书信息,“用户设置”依赖“系统管理”的用户管理信息。
系统外有3个人执行者:
“系统管理员”执行者参与“系统管理”、“读者管理”、“图书管理”用例的业务运作。
“图书管理员”执行者可以在“用户设置”用例中修改自己的登录密码、重新登录系统,还可参与“借阅管理”和“信息查询”用例的操作。
“读者”执行者也可以在“用户设置”用例中修改自己的登录密码、重新登录系统,还可参与“借阅管理”和“信息查询”用例的操作。
2.第2层用例图
“图书管理系统”内的用例还可以作为第二层用例图之一加以展开,由“系统管理”用例展开形成的“系统管理子系统”用例图如图2-2所示。
图2-2第2层用例图——系统管理子系统
在“系统管理子系统”用例图中,实现边框表示系统边界。
系统内有2个用例,即“用户管理”用例和“系统初始化”用例。
系统外有1个人执行者:
“系统管理员”执行者参与“用户管理”、“系统初始化”用例的操作,可以添加用户信息、修改用户信息、删除用户信息,对系统初始化。
由“读者管理”用例展开形成的“读者管理子系统”用例图如图2-3所示。
图2-3第2层用例图——读者管理子系统
在“读者管理子系统”用例图中,实现边框表示系统边界。
系统内有3个用例,“修改读者信息”、“删除读者信息”用例依赖“增加读者信息”用例添加的读者信息。
系统外有1个人执行者:
“系统管理员”执行者可以进行添加用户信息、修改用户信息、删除用户信息等操作。
“图书管理子系统”与“读者管理子系统”结构相同,因此不再一一说明。
由“图书管理”用例展开形成的“图书管理子系统”用例图如图2-4所示。
图2-4第2层用例图——图书管理子系统
“图书管理子系统”与“读者管理子系统”结构相同,因此不再一一说明。
由“借还管理”用例展开形成的“借还管理子系统”用例图如图2-5所示。
图2-5第2层用例图——借还管理子系统
在“借还管理子系统”用例图中,实现边框表示系统边界。
系统内有5个用例,“续借”依赖“借书”用例,“图书丢失处理”依赖“还书”用例。
系统外有2个人执行者:
“图书管理员”执行者可以进行对用户的借书、续借、还书、图书预约、图书挂失信息的处理等操作。
“读者”执行者乐意进行借书、续借、还书、图书预约、图书挂失等操作。
由“信息查询”用例形成的“信息查询子系统”用例图如图2-6所示。
图2-6第2层用例图——信息查询子系统
在“信息查询子系统”用例图中,实现边框表示系统边界。
系统内有2个用例,即“图书查询”和“读者查询”用例。
系统外有2个人执行者:
“图书管理员”执行者可以进行对图书、读者信息的查询等操作。
“读者”执行者可以进行对图书、读者信息的查询等操作。
由“用户设置”用例形成的“用户设置子系统”用例图如图2-7所示。
图2-7第2层用例图——用户设置子系统
在“用户设置子系统”用例图中,实现边框表示系统边界。
系统内有2个用例,即“修改密码”和“重新登录”用例。
系统外有2个人执行者:
“图书管理员”执行者可以对自己的密码进行修改以及重新登录等操作。
“读者”执行者可以对自己的密码进行修改以及重新登录等操作。
3.系统分析与对象类建模
3.1建立对象类
根据已经建立的用例图和用户业务需求,采用CRC卡的方法确定对象类及其属性和操作。
通过检查类的定义、分析问题的需求和运用该领域知识来完善和确定类的属性。
根据系统功能要求和系统设计需要完善和确定类的操作。
下面将“图书管理系统”中的对象类及其属性和操作的定义简介如下:
(1)图书
•类名:
图书。
•类的编号:
ABC010101。
•类的类型:
该类创建的对象为持久对象,存储在服务器上的数据库中,可以共享。
•功能:
对图书进行图书信息处理。
•属性:
图书编号,图书名,图书类别,作者,出版社,是否借出,是否预约,备注等。
•操作:
添加图书信息()、修改图书信息()、删除图书信息()、查询图书信息等。
(2)读者
•类名:
读者。
•类的编号:
ABC010101。
•类的类型:
该类创建的对象为持久对象,存储在服务器上的数据库中,可以共享。
•功能:
对读者进行读者信息处理。
•属性:
读者编号,姓名,密码,性别,班级,可借图书数目,已借图书数目,逾期罚款,备注等。
•操作:
添加读者信息()、修改读者信息()、删除读者信息()、查询读者信息等。
(3)借书
•类名:
借书。
•类的编号:
ABC0000001。
•类的类型:
该类创建的对象为持久对象,存储在服务器上的数据库中,可以共享。
•功能:
进行读者的借书信息处理。
•属性:
借书编号,读者编号,图书编号,借书日期,借书天数,续借天数,到期日期,逾期天数,罚金,备注等。
•操作:
借阅()、归还()等。
(4)图书预约
•类名:
图书预约。
•类的编号:
ABC00000001。
•类的类型:
该类创建的对象为持久对象,存储在服务器上的数据库中,可以共享。
•功能:
对读者预约图书信息处理。
•属性:
预约编号,读者编号,图书编号,预约日期,备注等。
•操作:
预约图书()。
(5)图书丢失
•类名:
图书丢失。
•类的编号:
ABC00000001。
•类的类型:
该类创建的对象为持久对象,存储在服务器上的数据库中,可以共享。
•功能:
对读者丢失图书信息处理。
•属性:
丢失编号,读者编号,图书编号,丢失日期,备注等。
•操作:
增加()、删除()等。
(6)管理员
•类名:
管理员。
•类的编号:
ABC010101。
•类的类型:
该类创建的对象为持久对象,存储在服务器上的数据库中,可以共享。
•功能:
对管理员进行管理员信息处理。
•属性:
编号,姓名,密码,备注等。
•操作:
添加管理员信息()、修改管理员信息()、删除管理员信息()等。
3.2类图
根据类与类之间的关系,可以得出该系统的类图如图3-1所示。
图3-1图书管理系统的对象类图
在该类图中可以看出,“读者”可以多次“借书”,而“借书”也可以由多个“读者”来完成;“读者”可能多次“图书丢失”,而“图书丢失”是一个“读者”的行为;“读者”可能多次“图书预约”,而“图书预约”也只能由一个“读者”进行;“图书”只能“图书丢失”一次,而“图书丢失”可以是多本“图书”丢失,“图书”只能被同时“图书预约”一次,而“图书预约”可能是多本“图书”预约,“图书”可以多次“借书”,而“借书”也可以是多本“图书”借出。
4.系统设计与动态交互模型
4.1系统功能设计
该图书管理系统主要包括系统管理子系统、读者管理模块、图书管理模块、图书借阅管理模块、信息查询模块、用户设置、退出模块六个部分,各部分主要功能如下:
系统管理模块:
该模块主要是实现对用户身份信息、用户信息的增加、修改、删除,以及系统初始化的功能,可将数据库中的数据按照编辑的要求来及时更新数据表。
该模块涉及的是Identify表、User表。
读者管理模块:
用于对读者信息的管理,如读者信息添加、读者信息修改、读者信息删除,可将数据库中的数据按照编辑的要求来及时更新数据表。
该模块涉及的是Reader表。
书籍管理模块:
用于书籍信息的管理,如新书入库、更新图书信息、删除图书信息,可将数据库中的数据按照编辑的要求来及时更新数据表。
该模块涉及的是Book表。
借阅管理模块:
该模块可以实现读者借书、还书、续借、预约、图书丢失处理等操作,可将数据库中的数据按照编辑的要求来及时更新数据表。
该模块涉及的是Bookout表、Losebook表、Bookorder表。
信息查询模块:
用于实现图书管理员、读者对图书和读者信息的查询操作。
该模块涉及的是Book表、Reader表。
用户设置模块:
用于图书管理员、读者对自己的密码进行修改,还可以重新登录系统
本图书管理系统的系统模块图如图4-1所示。
4.2顺序图
在图书管理系统中,主要涉及增、删、改、查四种操作,关于各种操作以下是对读者信息进行管理所用到的信息举例说明。
在添加读者信息时,系统管理员首先向读者数据库中增加读者信息,读者数据库中会构建新的读者信息,产生一个新的读者对象返回给读者数据库中,把该读者对象信息存储在读者数据库中,读者数据库将读者信息返回给系统管理员。
绘制“添加读者信息”用例的顺序图如图4-2所示。
图4-2“添加读者信息”用例的顺序图
在修改读者信息时,系统管理员首先向读者管理窗口录入读者编号,读者管理窗口向读者数据库中提取读者信息,读者数据库将读者信息返回给读者管理窗口,在读者管理窗口中,将需要修改的信息进行修改,然后将修改好的读者信息存储在读者数据库中,读者数据库再将修改信息通过读者管理窗口返回给系统管理员。
绘制“修改读者信息”用例的顺序图如图4-3所示。
图4-3“修改读者信息”用例的顺序图
在删除读者信息时,系统管理员首先向读者管理窗口输入所要删除的读者信息,读者管理窗口向读者数据库中查找该读者,若查找成功,核对该读者信息,通过读者管理窗口删除该读者信息,将删除信息通过读者管理窗口返回给系统管理员。
绘制“删除读者信息”用例的顺序图如图4-4所示。
图4-4“删除读者信息”用例的顺序图
在查询读者信息时,系统首先向读者查询窗口填写读者的查询条件,读者查询窗口向读者数据库中查询该读者,将查找到的读者信息通过读者查询窗口返回给图书管理员。
绘制“读者查询”用例的顺序图如图4-5所示。
图4-5“读者查询”用例的顺序图
在借书时,读者首先在借书窗口进行借书,借书窗口向图书管理员发送借书请求,图书管理员向读者数据库中输入该读者编号,读者数据库将该读者的信息返回给图书管理员,图书管理员核对该读者可以借书,然后向图书数据库中输入图书编号,图书数据库将该图书的信息返回给图书管理员,图书管理员核对该图书可以借出,然后向借书数据库中创建新的借书信息,删除该图书的预约信息,并标记该图书已借出,同时增加读者的已借图书数目,向读者返回借阅成功信息。
绘制“借书”用例的顺序图如图4-6所示。
图4-6“借书”用例的顺序图
在还书时,读者首先在还书窗口进行还书,还书窗口向图书管理员发送还书请求,图书管理员向借书数据库中输入借书编号、读者编号、图书编号,借书数据库将该借书的信息返回给图书管理员,图书管理员删除该借书信息,然后减少读者的已借图书数目,并标记该图书未借出,向读者返回还书成功信息。
绘制“还书”用例的顺序图如图4-7所示。
图4-7“还书”用例的顺序图
在图书预约时,读者首先在图书预约窗口进行预约,图书预约窗口向图书管理员发送预约请求,图书管理员向图书预约数据库中创建新的图书预约信息,图书预约数据库将预约成功信息返回给图书管理员,图书管理员通过图书预约窗口向读者返回预约成功信息。
绘制“图书预约”用例的顺序图如图4-8所示。
图4-8“图书预约”用例的顺序图
在图书丢失处理时,读者首先在图书预约窗口输入图书编号和读者编号,图书丢失处理窗口向图书管理员发送图书丢失请求,图书管理员向图书丢失数据库中创建新的图书丢失信息,图书丢失数据库将创建成功信息返回给图书管理员,图书管理员通过图书丢失处理窗口向读者返回处理成功信息。
绘制“图书丢失处理”用例的顺序图如图4-9所示。
图4-9“图书丢失处理”用例的顺序图
5.数据库设计
5.1关系模型
系统管理员(编号,姓名,密码,备注)
图书管理员(管理员编号,姓名,密码,备注)
图书(图书编号,图书名,图书类别,作者,出版社,是否借出,是否预约,备注)
读者(读者编号,姓名,密码,性别,班级,可借图书数目,已借图书数目,逾期罚款,备注)
借书(借书编号,读者编号,图书编号,借书日期,借书天数,续借天数,到期日期,逾期天数,罚金,备注)
图书预约(预约编号,读者编号,图书编号,预约日期,备注)
图书丢失(丢失编号,读者编号,图书编号,丢失日期,备注)
5.2E-R图
在图书管理系统中设计的实体有系统管理员、图书管理员、读者、图书。
该系统的E-R图如图5-1所示。
图5-1E-R图
数据结构
通过系统分析与设计,数据库中共有7个表,系统管理员表的结构,如表5-1所示。
表5-1系统管理员表
字段名
描述
类型
长度
是否为空
ID
编号
Int
5
Notnull
name
姓名
Varchar
30
null
code
密码
Varchar
20
Notnull
Bremark
备注
Varchar
50
null
图书管理员表的结构,如图5-2所示。
表5-2图书管理员表
字段名
描述
类型
长度
是否为空
UID
管理员编号
Varchar
20
Notnull
Uname
姓名名
Varchar
30
null
Ucode
密码
Varchar
20
Notnull
Bremark
备注
Varchar
50
null
图书信息表的结构,如图5-3所示。
表5-3图书信息表
字段名
描述
类型
长度
是否为空
BID
图书编号
Varchar
20
Notnull
Bname
图书名称
Varchar
50
null
Btype
图书类别
Varchar
30
null
Bpublish
出版社
Varchar
50
null
Bauthor
作者
Varchar
30
null
Bout
是否借出
bool
2
Notnull
Border
是否预约
bool
2
Notnull
Bremark
备注
Varchar
50
null
读者信息表的结构,如图5-4所示。
表5-4读者信息表
字段名
描述
类型
长度
是否为空
RID
读者编号
Varchar
20
Notnull
Rname
姓名
Varchar
50
null
Rcode
密码
char
20
Notnull
Rsex
性别
Varchar
30
null
Rclass
班级
Varchar
50
null
Rcount
可借书数目
Int
2
Notnull
Raccount
已借书数目
Int
2
Notnull
Rmoney
逾期罚款
Float
4
Notnull
Rremark
备注
Varchar
50
null
借书信息表的结构,如图5-5所示。
表5-5借书信息表
字段名
描述
类型
长度
是否为空
OID
借书编号
Varchar
10
Notnull
RID
读者编号
Varchar
20
Notnull
BID
图书编号
Varchar
20
Notnull
Outtime
借书日期
Datetime
16
Notnull
Otime
借书天数
Int
2
Notnull
Orenew
续借天数
Int
2
null
Oduetime
到期日期
Datetime
16
Notnull
Odate
逾期天数
int
2
null
Omoney
罚金
Float
8
null
Oremark
备注
Varchar
50
null
图书预约信息表的结构,如图5-6所示。
表5-6图书预约信息表
字段名
描述
类型
长度
是否为空
DID
预约编号
Varchar
10
Notnull
RID
读者编号
Varchar
20
Notnull
BID
图书编号
Varchar
20
Notnull
Ddate
预约日期
Datetime
16
Notnull
Dremark
备注
Varchar
50
null
图书丢失信息表的结构,如图5-7所示。
表5-7图书丢失信息表
字段名
描述
类型
长度
是否为空
LID
丢失编号
Varchar
10
Notnull
RID
读者编号
Varchar
20
Notnull
BID
图书编号
Varchar
20
Notnull
Losetime
丢失日期
Datetime
16
Notnull
Bremark
备注
Varchar
50
null
6.总结
这学期我们学习了《UML系统建模与分析设计》这门课,UML是一种通用建模语言,具有创建系统的静态结构和动态行为等多种结构模型的能力,具有可扩展性好通用性,适合各种多种多变结构系统的建模。
在最后两周的课程设计中,我们的主要任务是对自己所选的系统进行详细调查和可行性分析,使用UML作为面向对象的分析与设计工具,进行系统分析与设计,并绘制用例图、类图、顺序图以及数据库设计。
通过本次课程设计,我将平时上课所学知识更好地应用于实践。
经过两个星期的上机实践学习,使我对UML统一建模语言有了更进一步的认识和了解,想要学好它重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现自己的好多不足之处:
对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对象类的建立以及类与类之间的关系。
首先,对图书管理系统进行需求分析与用例建模,用例模型可以将需求规约变为可视化模型,确定系统的功能需求,它影响到开发工作的各个阶段和UML的各个模型。
然后是系统分析与对象类建模,类图展示系统中类的静态结构和类与类之间的联系,表示一个系统的逻辑结构。
接着是系统设计与建立动态模型,顺序图描述对象间的交互行为,注重对象间消息的发送和接收的顺序。
数据库设计主要是对数据库中的各个表进行设计,各个表的关系是通过E-R图来表现的。
通过对图书管理系统进行建模,该系统的功能要求、逻辑模型以及系统的如何进行操作都被很好地描述出来。
在这次课程设计中,我也遇到了一些问题,对类与类之间的关系不太明确,通过查看课本的所学知识,并向指导老师请教,我更深刻的懂得如何确定对象类以及建立类与类之间的关系。
这次的课程设计让我能够将所学的理论知识应用于实践中,收获很大,同时也感谢知道老师的认真指导。
参考文献
刁成嘉,UML系统建模与分析设计,北京:
机械工业出版社,2007
刁成嘉,UML系统建模与分析设计课程设计,北京:
机械工业出版社,2008
J.L.Whitten,L.D.Bentley,肖刚,孙慧译,《系统分析与设计方法》,北京:
机械工业出版社,2007