软件工程大作业文档.docx
《软件工程大作业文档.docx》由会员分享,可在线阅读,更多相关《软件工程大作业文档.docx(45页珍藏版)》请在冰豆网上搜索。
软件工程大作业文档
大连理工大学城市学院
《软件工程导论》大作业
图书馆管理系统分析与设计
课题名称:
图书馆管理系统
任课教师:
张应博
班级:
软件1102班
组长:
董云琪(2011******)
组员:
张贵荣(2011******)
齐培文(2011******)
冯博(2011******)
陈朋(2011******)
李奎(2011******)
完成日期:
2012年6月20日)
摘要
图书馆管理信息系统是每个学校必不可少的管理系统,该系统主要解决了人工手动管理图书信息在实践中的问题。
本文论述了图书馆管理系统开发的目标和要求,并重点介绍了系统分析,系统设计,系统实现和系统测试的全过程。
在描述系统分析和系统设计的过程中,为了使该系统的开发过程更具有规范化,为此,本文确定了开发系统的指导思想:
一、运用规范化的设计思想,二、从实际出发,三、以标准数据库应用程序的设计和开发为主,开发一个适应与大、中、小学校的图书馆管理系统。
本酒店管理系统是用PowerBuilder和Microsoftaccess制作而成,主要包括图书基本情况的录入,修改,删除等基本操作、办理借书卡、实现借书、实现还书、能方便的对图书进行查询,对超期的情况能自动给出提示信息等功能。
根据需要,系统建立了5个表,分别用来记录读者类别信息、读者信息、书籍类别信息、书籍类别数据字典信息、借阅信息
结论主要介绍了图书馆管理在日常运作中的作用,以及图书馆管理系统的必要性。
整个系统的开发过程包括:
可行性分析、需求分析、总体设计、详细设计、系统实现以及测试计划。
其中关键的技术包括数据库的建立,数据库的连接,数据的添加、删除和更新。
为了系统的顺利完成。
开发人员将要密切合作和详细的分工。
关键词:
图书管理数据库PowerBuilder;Microsoftaccess;SQL-server
第一章前言
1.1背景
现在我国的绝大多数农村中小学校中图书馆理水平还滞留在纸介质的基础上,这样的机制不能适应时代的发展,因为这种管理存在很多缺点:
效率低下、
保密性差、另外时间一长、将产生大量的文件和数据、这对于数据的查找、更新
和维护都带来了不少的困难、并且浪费了许多的人力、物力。
因此为了给管理者和读者提供足够的信息和快捷查询手段,因此建立一个适合的图书管理系统是必须的。
1.2编写目的
目的是实现文档集中存储,分布管理,便于资料的便捷查询和安全控制,提高设备使用效率,减少维护成本,该系统建立统一的在线实时更新的文档库,可对多种形式的信息内容进行存储,从声音,图行,图像等多媒体信息到高度
结构化的文档,从e-mail到讨论数据库,提供层次化的文档存储模式,实现对文档的生命管理。
1.3定义
图书馆管理系统是一个有人、机算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。
利用信息控制企业的行为帮助企业实现其规划目标,在现代大中型企业纷纷利用的系统。
二、可行性分析
2.1.引言
图书馆为了方便管理和读者、图书供应商更好的联系特提出开发系统。
2.1.1编辑目的:
从现应用的技术方面和用户的操作方式方面研究图书馆管理系统的可行性和必要性。
2.1.2项目背景:
项目的任务提出者:
软导导师。
用户:
图书馆管理人员及读者。
2.1.3参考资料
《软件工程初级教程》清华大学出版社
《数据结构(C语言版)》清华大学出版社
2.2技术的可行性
技术上的可行性主要分析现有的技术条件能否顺利完成开发工作,软硬件能否满足开发者的需要等,这一特点非常适合计算机的特点,发挥计算机的数据处理速度快,准确率高的优势。
现代计算机硬件与软件技术的飞速发展,为系统的建设提供了技术条件。
由于图书馆管理系统这一类的管理系统进行开发已有一定的时期,有很多成功的实例上,技术基础也已经非常雄厚,因而技术上的是可行的。
2.3经济的可行性
2.31支出方面
设备的购置费、软件开发费、管理和维护费、人员工资和培训费等.
2.32收入方面
借阅的费用、节约员工的费用、
基于图书馆的现有计算机及配套设备,建设MIS系统,大大降低了办公费用,提高管理效率,而且能检测数据效用,为管理提供方便。
由于本图书馆管理系统是由我及几个同学开发的,投入相对较少,但却能获得较大的收益,所以经济上是可行的。
2.4管理上的可行性
主要是管理人员对开发信息系统是否支持,现有管理制度是否科学,规章制度是否齐全,原始数据是正确等。
图书馆管理系统比较完善的规章制度和管理方法为系统的建设提供了保障,一个软件设计的好坏,关键在于产品的可靠,稳定,便于维护,系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员进行补充、维护。
2.5结论
由于缺乏专业人士的帮助,并且缺少实际经验,该管理系统可能做的不太健全,远不是真正意义上的软件、工业产品,只能算作坊生产的产物。
可能还存在缺陷,不足之处有待改进。
前景根据以上分析,我们认为开发此系统的条件已经具备,可以开始进行开发。
并且我们相信此软件经济实惠,肯定具有良好的前景。
我们将会逐步完善该软件,尽可能地让满足客户的需求。
让客人在他下榻的房间内感受到方便,快捷,温馨。
同时保证投资者资金的安全性,资金稳步的回笼期,资金的合理回报率。
因此我们开发的图书馆管理系统可行!
第三章:
需求分析
1功能需求
1.1读者管理
(1)学生管理
简述:
学生信息管理,包括信息存入,信息查询,信息修改,信息删除。
输入:
学生信息处理过程描述:
读者信息存数据库。
输出:
操作成功或失败的提示信息。
(2)老师管理
简述:
老师信息管理,包括信息存入,信息查询,信息修改,信息删除。
输入:
老师信息处理过程描述:
读者信息存数据库。
输出:
操作成功或失败的提示信息。
1.2借阅管理
(1)学生借阅
简述:
学生信息,包括学生姓名,学号,年级专业,借阅时间。
所借书籍。
输入:
学生姓名,年级,学号,专业,书籍,借阅时间。
输出:
学生姓名,年级,学号,专业,书籍,借阅时间以及归还时间。
确认提示信息。
(2)老师管理
简述:
老师信息,包括学老师编号,办公室门号,所借书籍
输入:
老师姓名,编号,办公室门号,所借书籍,借阅时间。
输出:
老师姓名,编号,办公室门号,所借书籍,借阅时间以及归还时间。
确认提示信息。
1.3还书管理
(1)学生还书
简述:
学生信息,包括学生姓名,学号,年级专业,借阅时间,归还时间。
所借书籍。
输入:
书籍名,学生姓名,归还时间、
输出:
归还确认信息提示。
(2)老师还书
简述:
老师姓名,编号,办公室门号,所借书籍,借阅时间,归还时间。
输入:
书籍名,老师姓名,归还时间。
输出:
归还确认信息提示。
1.4预约管理
(1)学生预约
简述:
学生信息,包括学生姓名,学号,年级专业。
预约书籍,预约时间,借阅时间。
输入:
学生姓名,年级,学号,专业,预约时间预约书籍。
输出:
学生姓名,年级,学号,专业,预约时间预约书籍,借阅时间,确认提示信息。
(2)老师预约
简述:
老师信息,包括学老师编号,办公室门号,预约书籍,预约时间,借阅时间。
输入:
老师姓名,编号,办公室门号,预约书籍,预约时间。
输出:
老师姓名,编号,办公室门号,预约时间预约书籍,借阅时间,确认提示信息。
1.5书籍管理
(1)书籍分类
简述:
书籍信息包括书名,作者,出版社,入库时间。
输入:
书名,作者,出版社,入库时间,本数。
输出:
入库确认信息提示以及分类表。
(2)书籍统计管理
简述:
书籍信息,库存量。
输入:
书名。
输出:
书名,作者,出版社,库存量
3.2数据流图
绘制数据流图的目的是为了方便开发人员与用户的交流,以及为系统的设计提供依据。
数据流图的绘制过程通常是采用自顶向下,逐层分解,直到功能细化为止,形成若干层次的数据流图。
酒店管理系统的数据流图如下所示:
管理员
管理员
读者
图书馆
理系统
图3-1基本系统模型
图3-2顶层数据流图
图3-3第一层数据流图
3.3数据字典
名称:
读者档案
别名:
描述:
读者基本基本信息
定义:
老师档案=姓名+性别+编号
学生档案=姓名+性别+年级+专业
位置:
读者借阅信息档案
名称:
读者借阅记录
别名:
描述:
读者所借过的书籍,事件,归还时间
定义:
读者借阅档案=借阅时间+书籍+归还时间
位置:
读者借阅信息档案
名称:
读者预约记录
别名:
描述:
读者所预约书籍,时间,借还时间
定义:
读者预约档案=预约时间+归还+借阅时间
位置:
读者借阅信息档案
名称:
书籍管理
别名:
描述:
书籍入放时间,书籍名,作者,出版社,存量,兑量
定义:
书籍档案=书籍名+作者+出版社+存量+兑量
位置:
书籍信息档案
3.4实体关系模型图
根据系统的功能需求画出实体联系图(E-R)图:
3.4.1总体E-R图
图3-1实体关系(E-R)图
3.5性能需求
1数据精确度
该系统中,数据除日期之外,其余都是整型数据。
涉及的计算只有过期的罚款计算。
对数据的精确度要求低。
2时间特征
该系统不是很大,响应时间,更新时间,数据处理时间,传输时间,运行时间等基本可以近似0处理。
3适应性
该程序主要是与SQLsever的连接,只要是装了windows操作系统的,都应该能够比较简单的连接上。
另外操作比较简单,很容易上手。
3.6运行需求
.1用户界面
对话框。
2硬件接口
支持各种x86系列PC机。
3软件接口
运行于Windows95/98及更高版本具有WIN32API的操作系统之上。
4故障处理
正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。
若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。
3.7需求注释
对于本软件,它的功能需求、新能需求、接口需求,从稳定性、可行性上都是可以的。
四、总体设计
4.1系统分析
根据用户的要求以及对需求分析阶段对功能的分析,要实现客户的基本情况管理、书籍管理、借阅管理、员工管理。
(1)客户的基本情况管理:
图书馆的客户主要是学生,因此主要是与学校的学生信息库联系,需要学生的姓名、学号、性别、班级。
(2)书籍管理:
主要是对书的分类以及对书籍的具体信息的介绍。
书籍的分类:
计算机、建筑、外语、管理、文学。
书籍的基本信息:
书名、作者、出版社、书籍的存放的位置。
书籍的存放位置:
按照书籍的类别划分位置。
(3)借阅管理:
借阅者的信息、借阅的书籍的基本信息、借期、还期、预阅期
(4)书籍的统计:
书籍的总体数量、书籍的基本信息。
4.2系统设计
由问题分析我们确定了本系统需要哪些确切的功能模块和组织结构。
4.2.1软件组成结构
4.3功能说明
系统分为四个模块来对实现其功能需求,即:
客户信息管理模块、书籍管理模块、借阅管理模块、员工管理
1、客户信息管理模块
客户信息登记:
对客户的信息进行登记、以及查找。
2、书籍管理模块:
书籍分类管理:
书籍的存放位置
书籍的基本信息管理:
书名、作者、出版社。
书籍的储存量:
书籍的总量。
3、借阅管理
书籍的信息管理:
书籍的基本信息、书籍的位置。
书籍的借阅情况:
书籍的借期、还期、预借期。
5、员工管理
员工的信息:
员工的基本信息、员工信息的添加、查询和删除。
员工工作分配:
员工的工作类型、工作内容、工作时间。
员工工资:
工资数额、奖金数额、扣罚数额。
4.4重要数据的数据结构设计
4.4.1变量设计
在系统的代码实现的时候,必须用到一些变量,一般我们所用到的变量为两种:
一是全局变量、二是局部变量。
全局变量:
以“library_”加字母作为变量名,如:
library_book_name。
局部变量:
不限制。
4.5函数设计
为了简化程序,并且提高代码的重要性,在编写代码时,对多次用到代码段,定义成函数,在用到的地方直接调用函数。
全局函数以“tsg_”加函数名,如:
tsg_Add();
局部函数以“tsg_”加函数名,如:
tsg_Add();
五、详细设计
在此阶段将对系统进行更详细的分析和设计,目的是确定如何具体地实现所要求的系统。
5.1数据库的详细设计
在设计和实现代码之前必须设计好数据库,根据系统的总体E-R图装得到数据库的概念模式:
1读者类别信息表Typeinfor(类型名Type-no(8)、类型编号Type-name(8)、借书数量Type-number(8)、借书期限Type-days(20)、
有效期限Type-days(20))
2读者信息表Read-infor(读者编号Read-no(8),读者姓名Read-name(8),读者性别Read-sex(20),电话号码Read-tel(20))
3书籍类别信息表Book-infor(类别编号Book-number(20),类别名称Book-name(20),关键词Keyword(20))
4书籍类别数据字典Type-word(类别编码Booktype-no(20),类别名称Type-name(20),关键字keyword(20))
5借阅信息表Borrow-infor(借阅信息编号Borrow-no(20),读者编号Reader-no(20),读者姓名Booker-name(8),借书期限Borrow-date(20),还书期限Return-date(20))
5.2数据库的实现
根据系统数据库的概念模式,可以得到应有如下的5个数据表
表5-1:
读者类别信息表
字段名
字符编码
数据类型
长度
主键
是否为空
备注
类型名
Type-no
varchar
8
Y
notnull
类别编码
Type-name
varchar
8
N
notnull
借书量
Type-number
numeric
8
N
null
借书期限
Type-days
numeric
20
N
null
有效期限
Useful-life
numeric
20
N
null
表5-2:
读者信息表
字段名
字符编码
数据类型
长度
主键
是否为空
备注
读者编号
Read-no
numeric
20
Y
notnull
读者姓名
Read-name
numeric
20
N
性名
Read-sex
varchar
8
N
null
读者类别
Read-type
numeric
20
N
null
电话号码
Read-tel
numeric
20
N
null
表5-3:
书籍类别信息表
字段名
字符编码
数据类型
长度
主键
是否为空
备注
类别编码
Book-number
varchar
20
Y
null
类别名称
Book-name
varchar
20
N
notnull
关键词
Keyword
varchar
20
N
notnull
表5-4:
书籍类别数据字典
字段名
字符编码
数据类型
长度
主键
是否为空
备注
类别编码
Booktype-no
varchar
20
Y
notnull
类别名称
Type-name
varchar
20
N
notnull
关键字
keyword
varchar
20
N
null
表5-5:
借阅信息表
字段名
字符编码
数据类型
长度
主键
是否为空
备注
借阅编号
Borrow-no
varchar
20
Y
notnull
读者编号
Reader-no
varchar
20
N
notnull
姓名
Booker-name
varchar
8
N
notnull
借书期限
Borrow-date
datetime
20
N
null
还书期限
Return-date
datetime
20
N
null
5.3界面设计
较好的界面能给用户一幕了然的感觉,也便于设计,系统的界面应该保持一致不随时间而改变,好的界面是能给用户提供帮
5.3.1系统登录界面
5.3.2系统主界面
5.4系统功能详细说明
5.4.1系统功能分析是在系统开发的总体任务的基础上完成。
本系统需要完成的功能主要有5部分:
A图书基本情况的录入,修改,删除等基本操作。
1.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。
2.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。
3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。
B办理借书卡模块。
1.新生办理借书证。
2.丢失办理借书证。
C实现借书功能。
1.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
2.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
D实现还书功能。
1.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
2.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
E能方便的对图书进行查询。
对超期的情况能自动给出提示信息。
5.4.2性能要求
正确性,可靠性,效率,完整性,易使用性,可维护性,可测试行,复用性,安全保密性,可理解性,可移植性,互联性。
业务流程图如下:
5.4.3:
各模块精细化DFD图
用户管理模块
1、用户注册:
2、用户登录:
3、修改密码:
借书管理模块
1、读者借书
2、修改借书记录
3、删除借书记录
还书管理模块
1、读者还书
2、修改还书记录
3、删除还书记录
查询模块
1、图书信息查询
新书录入模块
1、新书录入
2、修改图书信息
3、删除图书信息
5.4.4进行系统增删改查部分代码的实现
1.增(注册新图书)
voidadd(BOOK*head,FILE*fp)
{
BOOK*h,*p;
h=head;
while(h->next!
=NULL)
h=h->next;
p=(BOOK*)malloc(sizeof(BOOK));
h->next=p;
p->next=NULL;
printf("请输入书号:
");
getchar();
gets(p->booknumber);
printf("请输入书名:
");
getchar();
gets(p->bookname);
printf("请输入作者名:
");
getchar();
gets(p->writer);
printf("请输入该书的数量:
");
scanf("%d",&p->mount);
printf("请输入序号:
");
scanf("%d",&p->xuhao);
h=head;
while(h)
{
fprintf(fp,"%s%s%s%d%d\n",h->booknumber,h->bookname,h->writer,h->mount,h->xuhao);
h=h->next;
}
printf("注册成功!
\n");
return;
}
2.删(注销图书信息)
BOOK*del(BOOK*head,FILE*fp)//删除信息
{
BOOK*p,*h;
intm;
h=head;
printf("请输入要删除书籍的序号:
");
scanf("%d",&m);
if(h->xuhao!
=m)
{
while(h->next->xuhao!
=m&&h->next->next!
=NULL)
{
h=h->next;
}
if(h->next->xuhao!
=m)
{
printf("不存在此书,无法注销!
\n");
returnhead;
}
else
{
p=h->next;
h->next=h->next->next;
free(p);
h=head;
while(h)
{
fprintf(fp,"%s%s%s%d%d\n",h->booknumber,h->bookname,h->writer,h->mount,h->xuhao);
h=h->next;
}
printf("注销成功!
\n");
returnhead;
}
}
else
{
p=head;
head=h->next;
free(p);
h=head;
while(h)
{
fprintf(fp,"%s%s%s%d%d\n",h->booknumber,h->bookname,h->writer,h->mount,h->xuhao);
h=h->next;
}
printf("注销成功!
\n");
returnhead;
}
}
3.改(改动图书信息)
voidchange(BOOK*head,FILE*fp)
{
intm;
BOOK*h;
h=head;
printf("请输入要修改书籍的序号:
");
scanf("%d",&m);
while(h)
{
if(h->xuhao==m)
{
printf("请输入书号:
");
getchar();
gets(h->booknumber);
printf("请输入书名:
");
getchar();
gets(h->bookname);
printf("请输入作者名:
");
getchar();
gets(h->writer);
printf("请输入该书的数量:
");
scanf("%d",&h->mount);
printf("请输入序号:
");
scanf("%d",&h->xuhao);
h=head;
while(h)
{
fprintf(fp,"%s%s%s%d%d\n",h->booknumber,h->booknam