软件工程课程设计--图书管理系统.doc
《软件工程课程设计--图书管理系统.doc》由会员分享,可在线阅读,更多相关《软件工程课程设计--图书管理系统.doc(40页珍藏版)》请在冰点文库上搜索。
软件工程项目报告
----图书管理系统
班级:
项目经理:
项目组成员:
模块
负责人
需求分析
用例图
代码设计
数据库设计
界面设计
目录
第一章绪论……………………………………………………………………………………………………………………
1.1项目背景…………………………………………………………………………………………………………….
1.2编写目的…………………………………………………………………………………………………………….
第二章需求分析…………………………………………………………………………………………………………..
2.1系统功能需求分析…………………………………………………………………………………………….
2.2主要参与者………………………………………………………………………………………………………..
2.3用例图………………………………………………………………………………………………………………..
2.4系统用例一览表…………………………………………………………………………………………………
2.5用例规约……………………………………………………………………………………………………………
2.7时序图………………………………………………………………………………………………………………..
第三章系统设计……………………………………………………………………………………………………………
3.1系统实体总类图以及介绍…………………………………………………………………………………
3.2相关数据库的设计……………………………………………………………………………………………
3.2.1E-R图……………………………………………………………………………………………………………
3.2.2数据库的设计……………………………………………………………………………………………….
3.3主界面设计………………………………………………………………………………………………………..
3.3.1登录/注册界面设计……………………………………………………………………………………...
3.3.2管理员操作页面…………………………………………………………………………………………
3.3.3读者用户管理界面………………………………………………………………………………………
3.3.4代码设计………………………………………………………………………………………………………
第四章结束语......................................................................................................................
第一章绪论
1.1项目背景
随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。
目前各行各业广泛使用专用系统,其用户群十分庞大,因此,设计开发好一个系统是十分重要。
近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。
本系统通过强大的计算机技术给图书管理人员和读者借、还书带来便利。
本系统除了图书馆内管理的一般功能除外,还包括网上在线查询图书信息、查询本人的借阅情况。
1.2编写目的
本系统最终将达到减少了人力与管理成本,提高信息准确度,改进管理和服务,建立高效的平台,提高信息处理速度和利用率,系统设计优良,界面设计精美、快捷,人性化设计,后台管理功能好、效率高,更简便、信息化程度更高的图书管理流程。
第二章需求分析
2.1系统功能需求分析
设计图书馆管理系统。
此系统要达到方便读者查找图书,阅读图书,而且也要方便图书馆管理员的管理工作。
管理员:
对图书的订购、摆放、添加、删除、查询、统计、修改图书信息。
对读者的信息进行安全管理,所谓安全管理也就是对读者的所有注册信息进行保密管理,也就是只有此管理员可以获取和查看读者的信息(读者本人也可以查看),其他人则无权查看与修改。
对读者的借还信息进行管理,即当读者借阅图书时将读者的借阅信息保存,同时将某图书被借阅的信息保存;当读者归还图书时可以及时将归还信息保存,实现消除该读者的借书信息,以方便读者继续借阅书籍。
读者进行借阅书籍时,只需要找到管理员即可获得自己想要阅览的书籍的信息,这样可以减少读者查询书籍的时间,而其余的工作则由管理员们来协调完成,这样提高了图书馆的工作效率,同时也让读者可以获得一个更好的读书方式。
读者除了借阅书籍以外,还可以对自己的注册信息进行修改,但是一旦注册成功,则只能修改个人密码,其他人则无权修改。
2.2主要参与者
1、图书馆管理员:
管理员要为每个读者建立借阅账户,并給读者发放不同类别的借阅卡(借阅卡可提供卡号、读者姓名),账户内存储读者的个人信息和借阅记录信息。
持有借阅卡的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书(系统审核符合续借条件)。
2、借阅者:
借阅图书时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。
然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。
最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。
归还图书时,输入读者借阅卡号和图书号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。
添加读者
2.3用例图
登录
删除读者
修改图书
修改个人信息
添加图书
查看借阅信息
删除图书
查看图书数目
删除借书信息
系统维护
添加借书信息
查看读者信息
图一管理员用例图
借阅图书
预约借读图书
注册
续借图书
归还图书
查看图书数目
查看借阅信息
修改个人信息
图二读者用例图
2.4用例描述
用例名称:
图书管理员
用例目的:
完成登记注册、统计查询、借书、还书等操作;
参与者:
数据库管理员
事件流:
第一步:
进入管理员登陆界面
讨论区成员:
选择相应的操作区
系统:
将管理员的增删改查权限显示出来即读者信息,图书信息,统计条件信息,读者情况,图书情况,统计结果;
加工名:
录入新读者
加工编号:
1.1
简要描述:
将新的读者信息登记到读者信息表中
输入数据流:
新读者数据,读者类别
输出数据流:
有效读者信息
加工逻辑:
输入读者信息
选择读者类别
执行SQL语句,将完整的读者信息写入读者信息表u
加工名:
读者信息修改
加工编号:
1.2
简要描述:
修改指定的读者信息(卡号、已借书本数不可修改)
输入数据流:
待修改的读者信息
输出数据流:
修改后的读者信息
加工逻辑:
输入读者编号
执行SQL语句,从读者信息表中找出该读者的详细信息
修改除借书卡号和已借书本数以外的信息
执行SQL语句,将修改后的读者信息写入读者信息表中u
加工名:
读者信息删除
加工编号:
1.3
简要描述:
将已归还全部图书的指定读者信息从读者信息表中删除
输入数据流:
待删除的读者信息,借书状况信息
输出数据流:
待删除的读者信息
加工逻辑:
输入读者借书卡号
执行SQL语句,从读者信息表中找出该读者的详细信息
IF该读者处于借阅状态的书本数>0THEN
提示“该读者还有未还的图书,暂时不能删除”
ELSE
执行SQL语句,将该读者的信息从读者信息表中删除
ENDIFu
加工名:
添加图书;
加工编号:
2.1;
简要描述:
将新购入的图书登记入库,便于读者随时借阅;
输入数据流:
新图书信息,图书类别;
输出数据流:
有效图书信息;
加工逻辑:
输入新图书信息
选择相应的图书类别
执行SQL语句,将新书信息写入图书信息表,记录登记人姓名,图书状态设置为“在库”加工名:
修改图书
加工编号:
2.2
简要描述:
将修改后的图书信息(图书编号和状态不能修改)重新写入图书信息表中;
输入数据流:
待修改的信息;
输出数据流:
修改的图书信息
加工逻辑:
输入图书编号
执行SQL语句,从图书信息表中查询该图书的详细信息
IF图书状态为“借阅中”THEN
提示“图书不在库,不能修改”
ELSE
执行SQL语句,将修改后的图书信息写入图书信息表
ENDIFu
加工名:
删除图书
加工编号:
2.3
简要描述:
将报废的或已经遗失的图书从系统中删除
输入数据流:
待删除信息,图书状态信息;
输出数据流:
删除的图书信息
加工逻辑:
输入图书编号
执行SQL语句,从图书信息表中查询该图书的详细信息
IF图书状态为“借阅中”THEN
提示“图书处在“借阅中”,暂时不能删除”
ELSE
执行SQL语句,将该图书信息从图书信息表中删除
ENDIFu
加工名:
查询图书
加工编号:
2.4
简要描述:
按设置的条件从图示信息表中查询满足条件的图书信息
输入数据流:
图书查询条件,图书信息;
输出数据流:
图书查询结果
加工逻辑:
输入查询条件
执行SQL语句,从图书信息表中查询满足条件图书的详细信息u
加工名:
借书管理
加工编号:
3.1
简单描述:
通过借书卡号和可借的图书编号完成图书借阅,并在相应的表中添加记录
输入数据流:
读者信息,图书信息,操作员姓名,预借信息
输出数据流:
已借数,借书信息,图书状态
加工逻辑:
执行SQL语句,分别从读者信息表和图书信息表读取指定的读者信息图书信息
IF读者借书限额已满THEN
提示“借书限额已满,暂时不能借阅新书”
ENDIF
IF图书状态为“借阅中”THEN
提示“该书目前不在库,不能借阅”
ENDIF
IF续借信息为真THEN
IF该读者的续借限额未满THEN
执行SQL语句,将借书信息表中相应记录的限还日期延长
返回借书界面,清空有关文本框
ELSE
提示“续借限额已满,不能再续借”
ENDIFELSE
执行SQL语句,读者信息表中该读者的已借书数增值
执行SQL语句,图书信息表中该书的状态更改为“借阅中”
执行SQL语句,将图书编号、书名、借书卡号、读者姓名、借书日期、限还日期、
当前操作员姓名等信息写入借书信息表中
返回借书界面,清空有关文本框
ENDIFu
加工名:
还书管理
加工编号:
3.3
简单描述:
归还读者借阅的图书,同时使读者的当前借书总数减值,使归还的图书
状态为“在库”,使相应的借书记录状态为“已还”。
输入数据流:
预还信息,操作员姓名,罚金金额
输出数据流:
已借数,图书状态,借书记录状态,还书信息
加工逻辑:
执行SQL语句,从借书信息表中查询指定的借书记录
IF过期金额==0AND损坏罚金==0THEN
执行SQL语句,向还书信息表中写入罚金信息为0的含操作员姓名的还书记录
ELSE
执行SQL语句,向还书信息表中写入罚金信息不为0的含操作员姓名的还书记录
ENDIF
执行SQL语句,将图书信息表中该图书状态更改为“在库”
执行SQL语句,将读者信息表中当前读者的当前借书总数减值
执行SQL语句,将借书信息表中相应的借书记录状态更改为“已还”
加工名:
图书总量统计
加工编号:
4.1
简单描述:
统计系统中的图书总量或按图书类别统计图书数
输入数据流:
总量统计条件,统计项信息
输出数据流:
图书总量信息
加工逻辑:
IF图书类别不为空
THEN
执行SQL语句,统计指定类别的图书数量ELSE
执行SQL语句,统计所有图书的总量ENDIF
2.4系统用例一览表
系统用例汇总
模块
用例名称
用例ID
说明
管理员相关
1.查看图书书目
UC-01
1.管理用户
2.管理图书
2.系统维护
UC-02
3.修改个人信息
UC-03
4.添加图书
UC-04
5.删除书目
UC-05
6.修改书目
UC-06
7.查看读者信息
UC-07
8.查看借阅信息
UC-08
9.添加读者
UC-09
10.删除读者
UC-10
11.添加借阅信息
UC-11
12.删除借阅信息
UC-12
读者相关
13.查看借阅信息
UC-13
14.查看图书书目
UC-14
1.注册登录
2.借阅图书
3.修改个人信息
15.预约借读图书
UC-15
16.修改个人信息
UC-16
17.借阅图书
UC-17
18.归还图书
UC-18
19.续借图书
UC-19
20.注册
UC-20
2.5用例规约
添加用户用例规约
用例编号
UC-09
用例名称
添加读者
用例描述
管理员增加读者的过程
参与者
管理员
前置条件
登录
后置条件
无
基本路径
1.参与者提出增加读者的请求
2.系统显示增加读者界面
3.参与者注册
4.管理员分配权限类型
5.系统保存用户数据
非功能需求
补充说明
添加图书用例规约
用例编号
UC-06
用例名称
添加图书
用例描述
管理员增加图书的过程
参与者
管理员
前置条件
登录
后置条件
无
涉众利益
基本路径
1.系统显示增加图书书目界面
2.系统保存用户数据
扩展点
字段列表
业务规则
非功能需求
补充说明
查看借阅信息用例规约
用例编号
UC-08、UC-13
用例名称
查看借阅信息
用例描述
管理员或读者查看借阅信息的过程
参与者
管理员、读者
前置条件
登录
后置条件
无
涉众利益
基本路径
1.用户登录
2.系统显示借阅信息界面
扩展点
字段列表
业务规则
非功能需求
补充说明
查看读者信息用例规约
用例编号
UC-07
用例名称
查看读者信息
用例描述
管理员或读者查看读者信息的过程
参与者
管理员、读者
前置条件
登录
后置条件
无
涉众利益
基本路径
1.用户登录
2.系统显示读者信息界面
扩展点
字段列表
业务规则
非功能需求
补充说明
查看图书书目用例规约
用例编号
UC-01、UC-14
用例名称
查看图书书目
用例描述
管理员或读者查看图书书目的过程
参与者
管理员、读者
前置条件
登录
后置条件
无
涉众利益
基本路径
1.用户登录
2.系统显示图书书目界面
扩展点
字段列表
业务规则
非功能需求
补充说明
添加借阅信息用例规约
用例编号
UC-011
用例名称
添加借阅信息
用例描述
管理员添加借阅信息的过程
参与者
管理员
前置条件
登录
后置条件
无
涉众利益
基本路径
1.管理员登录
2.系统显示借阅信息界面
扩展点
字段列表
业务规则
非功能需求
补充说明
注册用例规约
用例编号
UC-20
用例名称
注册
用例描述
用户注册的过程
参与者
读者
前置条件
无
后置条件
无
涉众利益
基本路径
1.用户匿名进入系统
2.系统注册登录界面
3.注册成功后。
系统保存数据信息并自动登录该用户。
扩展点
字段列表
业务规则
非功能需求
补说明
注册用户必须是本人真实信息!
2.6时序图
图1:
登陆时序图
图2:
注册更新个人信息时序图
图3:
添加图书时序图
图4:
修改图书时序图
图5:
删除图书时序图
图6:
系统维护时序图
图7:
添加读者时序图
图8:
删除读者时序图
图9:
查看借阅列表时序图
图10:
查看读者信息时序图
图11:
查看图书书目时序图
图12:
删除借书信息时序图
图13:
添加借书信息时序图
图14:
修改个人信息时序图
图15:
预约借阅图书时序图
图16:
归还图书时序图
图17:
借阅图书时序图
图18:
续借图书时序图
第三章系统设计
3.1系统实体总类图以及介绍
系统边界类
序号
名称
备注
BO-1
系统主界面
登录、注册、修改个人密码
BO-2
管理员界面
查看图书表、读者表、借还表,添加图书、读者,删除图书、读者,查找图书。
BO-3
读者界面
查看图书列表、借阅列表,借阅图书,归还图书、续借图书,预借图书,查看及修改个人信息等。
BO-4
图书列表界面
显示图书信息,添加、删除、修改、查询图书。
BO-5
读者列表界面
显示读者信息,添加、修改、删除、查询读者。
BO-6
借还列表界面
查看借还信息,续借图书等。
BO-7
修改个人信息界面
修改个人信息
系统实体类
序号
名称
备注
EN-1
图书
EN-2
管理员
唯一管理员
EN-3
读者
系统控制类
序号
名称
备注
CON-1
查看图书信息
图书列表
CON-2
查看读者信息
读者列表
CON-3
查看借还信息
借还列表
CON-4
添加图书信息
图书列表
CON-5
删除图书信息
图书列表
CON-6
修改图书信息
图书列表
CON-7
添加读者信息
读者列表
CON-8
删除读者信息
读者列表
CON-9
修改读者信息
读者列表
CON-10
预订借阅图书
借阅列表
CON-11
归还图书
借阅列表
CON-12
续借图书
借阅列表
CON-13
注册用户
系统主界面
CON-14
修改个人密码
系统主界面
3.2相关数据库的设计
经过对系统的需求分析,我们总结出,该系统数据库设计思路如下(以表格信息表示)。
3.2.1E-R图
联系方式
姓名
密码
管理员
作者
书名
管理
图书编码
管理
评论
图书
库存量
联系方式
读者
借阅
密码
学号
班级
姓名
出版社
价格
3.2.2数据库的设计
图书信息表
管理员可以对读书进行增、删、改、查等操作,读者可以对读书进行借阅、预定借阅、续借、归还、查询等操作,以下是图书的基本信息。
序号
列名
字段说明
数据类型
长度/位
主键
允许空
1
图书编号
书籍编号
int
8
是
否
2
图书名称
书籍名称
nvarchar
255
否
否
3
作者
书籍作者
nvarchar
255
否
否
4
价格
书籍价格
varchar
6
否
否
5
库存量
书籍册数
Int
8
否
是
6
出版社
书籍的出版社
nvarchar
255
否
否
7
评论
书籍评价
nvarchar
255
否
是
管理员信息表
序号
列名
字段说明
数据类型
长度/位
主键
允许空
1
姓名
管理员姓名
nvarchar
255
是
否
2
密码
管理员密码
Varchar
16
否
否
3
联系方式
管理员电话
Int
16
否
否
读者信息表
读者可以是校内的学生,也可以是校外人士,因此需要的身份验证方式不一样。
以下是读者的信息表,以及具体详细。
序号
列名
字段说明
数据类型
长度/位
主键
允许空
1
姓名
读者姓名
nvarchar
255
否
否
2
学号
若是学生,需要学号
Int
16
是
是
3
密码
读者密码
Varchar
16
否
否
4
班级
若是学生,需要班级
nvarchar
255
否
是
5
身份证号
不是学生,需身份证号
Varchar
25
是
是
6
联系方式
读者电话
Int
16
否
是
数据库设计代码:
表的设计:
图书信息表
uselibrary
go
createtablebookinfo
(bookNOintnotnullconstraintpk_ISBNprimarykey,
Booknamenvarchar(255)notnull,
booknamevarchar(40)notnull,
pulishnamenvarchar(255)notnull,
pricevarchar(6)notnull,
stockintnotnull,
commentnvarchar(255)
go
读者信息表
uselibra