图书馆管理系统软件工程实验报告书Word文档格式.docx
《图书馆管理系统软件工程实验报告书Word文档格式.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统软件工程实验报告书Word文档格式.docx(46页珍藏版)》请在冰点文库上搜索。
![图书馆管理系统软件工程实验报告书Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/8e06646b-7433-49b6-8be7-fb23df61ee40/8e06646b-7433-49b6-8be7-fb23df61ee401.gif)
安全与保密要求:
不能轻易被破坏,不能让管理人员以外的人删改图书信息。
。
2.2可行性研究方法:
通过调查分析开发图书馆管理所具备的能力及实现的方法。
确定总体结构,利用SQLServer数据库所具有的能力,以最简洁最容易的方法,使用VC++使其成为一个初级的系统软件。
2.3决定可行性的主要因素:
图书馆规模、设备状况、操作人员技术
3.所建议系统技术可行性分析
3.1对系统的简要描述
系统能做到能准确的记录不同图书的借出还入时间,判断是否超时,以及计算超时应该罚款的多少,还要记录各本书借出对应的学号。
(1).设备:
采用系统后,系统的性能设备要求较高,建议系统使用了最先进的技术使设备也必须跟着升级。
(2)软件采用了先进的数据库技术以及一系列高技术含量软件,使得原来系统上的一些软件无法继续使用,不过在新系统开发过程中将尽量考虑到,对现有软件的兼容性。
3.2.技术可行性评价
就目前使用的开发技术来说软件的功能目标应该能够达到;
利用现有的技术在规定的期限内开发工作基本能够完成。
4软件经济可行性分析
4.1软件不需太多的硬件设施,所以在购买和安装硬件及有关设备上不会有太多费用支出。
.4.2软件并不是太大的系统软件,系统开发费用很低,并没有一次性的巨大投资和日常研究的耗费。
4.3软件安装和运行维护可能会有一定支出。
4.4软件操作简单,界面合理,人员不需复杂的培训。
5社会因素分析
该项目为独立开发,在技术上没有使用任何现有的软件与方法。
所以在法律方面不会存在侵犯专利权、侵犯版权等问题,完全按照合同规定的责任履行。
软件对用户要求不高,不会导致用户不会用的情况。
7.其他可供选择的方案
由于软件比较简单,所以没有提供其他的方案,只有一种开发方案。
8结论意见
经过一系列的各个不同方面的可行性分析,分析员和用户及使用部门的负责人对需要解决的问题取得基本的一致看法,开发方案得到批准,可以进行开发。
第二章需求分析及需求规格说明书
1.概述
1.1用户简介
本系统要面向图书馆的广大读者,以及图书馆的管理人员。
广大读者借书具有时间和数量的无规律性,而图书馆管理人员要准确的记录图书的进出量以及图书的借出还入时间等等。
1.2项目的目的与目标
图书馆具有大量的图书进出信息,为了准确的记录图书的信息,避免图书的缺失。
也为了及时反馈图书是否被借出的信息,方便广大读者借阅。
1.3参考资料
《软件工程技术及其应用》
《实用软件工程》
1.4相关文档
a可行性分析报告
b概要设计说明书
c详细设计说明书
2.目标系统描述
2.1组织结构与职责
3.标系统功能需求
3.1功能需求分析
1.日常工作管理:
包括借书管理、还书管理。
(1)借书管理:
主要功能是记录借阅证编号和图书编号,进行借书过程。
在数据库中插入一条借书记录,该记录包括读者编号、图书编号、借出日期、还书期限、操作员编号。
(2)还书管理:
主要功能是输入借阅证编号、图书编号,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录表中。
2.基本资料维护管理:
包括图书资料维护、读者资料维护
(1)图书资料维护:
包括新书的入库,以及现有书籍资料的修改和删除。
(2)读者资料维护:
包括新读者的资料入库,以及现有读者资料的修改和删除
3.查询管理:
包括图书资料查询、读者资料查询。
(1)图书资料查询:
根据相应的图书信息对所有书籍进行所需查询。
此查询包括:
‘图书分类’、‘图书编号’、‘图书名称’、‘作者’、‘出版社’。
(2)读者资料查询:
根据相应的读者资料进行所需查询。
‘读者编号’、‘读者姓名’、‘读者种类’。
4.系统管理:
系统的登录、标准数据管理
(1)系统的登录:
管理员的登录。
(2)标准数据管理:
用于常用数据的系统维护。
3.2功能需求点列表
编号
名称
使用者
功能
输入
输出
1
借书
读者
借出书籍
书籍编号以及学号
书籍是否存在
2
还书
还入书籍
书籍数量
3
查询
读者以及管理员
查询书籍数量
书籍编号或名称
书籍剩余数量
4
系统管理
管理员
常用数据的系统维护
管理员验证号
系统情况
4.目标系统的性能需求
4.1时间要求
1.响应时间不能太长,要求系统能快速给出应答。
2.能更新处理时间。
3.远程数据传输时间不能太长,要及时准确。
4.2空间需求
A.支持的并行操作的使用者数要达到一定要求,要能支持多个用户同时操作。
B.要能处理大量文件并记录各种数据。
C.在一定时间内处理的数据总数要尽可能的大。
D.输入输出数据要完全符合要求,避免图书信息重复。
5.目标系统界面与接口需求
5.1界面需求
界面要求方便、简介、美观、一致等。
A.输入设备:
键盘、鼠标、条形码扫描器和扫描仪等。
B.输出设备:
显示器、打印机等。
C.显示风格:
图形和字符界面。
D.显示方式:
1024x768或640x480。
5.2接口需求点
1.软件接口:
可能会需要与一些办公软件相联结。
2.硬件接口:
可能会与一些磁盘机光盘刻录机等连接以便保存数据
6.目标系统其他需求
6.1安全性
1.要求查询返回数据不能出错。
2.对于权限控制要合理。
为防止非法利用管理员账户登录进行破坏的行为,系统应有相应的检测模块检测到后应冻结账户。
3.要有数据库定时备份功能。
6.2可靠性
系统应具有数据的及时准确的处理功能,保证数据的可靠性。
6.3灵活性
系统应具有一定的灵活处理的能力,比如书籍的编号和名称都可以查询书籍。
可键盘输入学号也可扫描学生卡等
7.目标系统假设与约束条件
可利用的资源有学校的机房和自己的电脑,系统投入使用的最晚时间是2011-6-2。
第三章软件设计及设计说明书
1、导言
(1)目的
使软件工程规范化,使设计人员遵循统一的概要设计进行编写,降低系统实现的风险,做到系统设计资料规范性与全面性,以利于系统的实现、测试、维护和版本升级等。
(2)范围
软件系统总体结构设计、全局数据库和数据结构设计、外部接口设计、主要部件功能分配设计和部件之间接口设计等。
(3)命名规则
变量命名规则:
声明全局变量、局部变量对象的命名规则。
数据库对象命名规则:
声明数据库表名、字段名、索引名和视图名等对象的命名规则。
(4)术语定义
术语定义和解释表
序号
术语名称
术语定义
总体设计
软件系统的总体逻辑结构,按照不同的设计方法有不同的结构
外部接口
本软件和其他软件之间的接口,接口设施可以是中间件
数据结构
包括数据库表的结构和其他数据的结构
视图
在基表和其他视图之上建立的一张虚表,具有很多物理表的性质
5
子系统
具有相对独立功能的小系统
6
模块
具有功能独立能被调用的信息单元
7
角色
数据库中享有某些特权操作的用户
8
内部接口
软件内部的各子系统、模块、部件等之间的接口
(5)参考资料
1)用户需求报告。
2)软件开发合同。
3)数据库设计规范。
4)命名规范。
(6)相关文档
1)详细设计说明书。
2)源程序清单。
3)测试计划及报告。
4)用户使用手册。
(7)版本更新记录
由于是最新版本,无更新记录。
2、总体设计
(1)总体结构
(2)运行环境设计
硬件平台:
条形码扫描仪
学生卡读卡机
(3)子系统清单
子系统编号
子系统名称
子系统功能
读者子系统
供读者借书、还书、查阅图书等
管理子系统
供管理员管理读者开户续借查阅图书数量、种类等
基础信息管理
管理读者和管理员的基础信息
(4)功能模块清单
模块编号
模块名称
模块功能
图书借阅
记录借出图书的编号以及对应的学号借出时间等
图书归还
记录归还图书的编号以及时间,计算是否超时,以及超时罚款等
图书查找
查找该图书是否还有没有借出以及书名剩余量等信息
读者开户
为新的读者注册一个账号一般用其学号,记录下他的信息
更新书库
对于借出和还入的书或者新加或丢失的图书及时记录,更新图书信息
3、模块功能分配
该系统,可以分为两大模块,一个小模块:
分别为管理子系统,读者子系统两大模块;
基础信息管理小模块;
在管理子系统中:
1):
新书购入处理模块只要是针对采购员在根据计划在外采购新书之后的处理,所以当采购员采购到新书后,系统根据原先计划采购的新书进行核查,如果符合计划预定,则将新书入库;
否则退货;
该模块主要是处理购入的新书是否符合要求;
2):
处理学生借书模块:
该模块主要是处理学生借书业务,在图书馆管理人员输入学生信息的时候,系统会根据学生文件对该学生进行查询,看看是否存在该学生,如果不存在,则系统给出警告信息:
该学生不存在;
如果存在该学生,则系统根据罚款单对该学生的欠款情况进行查询,如果欠款超过一定金额,则借书失败,否则接受借书,更新借书文件,在显示器上面显示借书成功;
3):
处理学生还书模块:
该模块主要是处理学生还书业务,在图书馆管理人员输入要还的图书字段时,系统会在借书文件中查找该图书信息,之后对借书文件,学生文件中的该学生已借书数,图书目录文件进行更新;
然后在借书文件中提取学生数据,根据图书的还书日期和借出日期对学生的欠款金额进行计算之后将结果显示出来;
在查询子系统中:
有两个查询内容:
1)学生信息查询:
学生信息查询子模块主要是对学生信息的查询;
2)图书信息查询:
图书信息查询子模块主要是对图书信息的查询;
这些模块,是针对学生或者图书馆管理人员这两个不同的对象,查询子系统主要是让用户了解信息,所以不需要进行用户密码登陆,直接可以进行查询,而管理模块是涉及到图书馆内部的重要信息管理方面,所以必须要设置用户密码登陆和权限等等,以保数据的安全性和系统的安全性;
4、数据结构设计
(1)数据库表名清单
表名
功能概述
学生文件表
记录学生的信息,方便学生借书还书注册等
图书目录文件
记录图书库里的总图书量及其信息
借书文件表
方便查看哪些书籍被借出还入及其时间
入库单表
记录新入库的图书信息
管理员表
管理员的id等方便管理员的身份注册及验证登陆
(2)数据库表的详细清单
A:
学生文件表:
学生编号
Int
√
自动编号
姓名
nvarchar
10
性别
证件号码
25
联系电话
40
登记日期
datetime
有效期至
已借书数
smallint
9
是否挂失
B:
字段名
类型
长度
精度
小数位数
默认值
允许空
主键
说明
图书编号
条形码
20
书名
200
图书类型
Nvarchar
50
作者
译者
ISBN
出版社
30
价格
Money
书架名称
11
现存量
Smallint
12
库存总量
C:
外键
借阅编号
借阅时间
Datatime
应还时间
续借次数
D:
书号
版次
图书类别
存放位置
单价
入库数量
金额
经手人
13
票号
14
操作员
15
日期
datatime
E:
管理员ID
int
管理员密码
char
权限
16
5、接口设计
5.1外部接口
用户接口:
采用窗口化,菜单式进行设计,在操作时响应热键。
硬件接口:
一卡通,扫描仪器
5.2软件接口
通过JDBC对SQLServer2000数据库的连接
通过面向对象语言设计类,在public类中实现调用;
类间实现严格封装
第四章编码及测试
一.源代码
#include<
stdio.h>
string.h>
conio.h>
stdlib.h>
ctype.h>
fcntl.h>
#defineSTACK_INIT_SIZE10
#defineOK1
#defineTRUE1
#defineFALSE0
#defineERROR0
structstudent/*学生的卡号已借的书*/
{
intcarnum;
charlendbook[10];
}
student[1000];
structbook/*书的编号书名状态*/
intbooknum;
charbookname[10];
intturefalse;
}book[1000];
structcard/*卡的编号对应的学生名字班级*/
intcardnum;
charstudentname[10];
card[100];
book_add();
book_search();
intpanduan();
book_change();
book_delect();
card_add();
book_lend();
book_history();
system_about();
system_edition();
window_display();
book_manage();
book_lend_return();
system_help();
window_choice();
system_exit();
book_return();
/******************************************主函数*******************************************/
voidmain()
window_display();
window_choice();
/********************************主界面显示子函数***************************************/
window_display()
{
printf("
\n"
);
图书管理系统\n"
1:
图书管理\n"
2:
图书借还\n"
3:
系统帮助\n"
4:
退出系统\n"
请选择进入的板块\n"
/*******************************************主界面选项子函数************************************************/
window_choice()
charchoice1;
scanf("
%s"
&
choice1);
switch(choice1)
{
case'
1'
:
break;
2'
3'
4'
}
book_manage()
charmanage_choice;
system("
cls"
这里是图书管理板块\n"
1加书2改书3删书4查书0返回\n"
请您选择\n"
manage_choice);
switch(manage_choice)
case'
;
0'
book_lend_return()
charchoic;
这里是图书借还板块\n"
1办卡2借书3还书4历史0返回\n"
pr