软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx

上传人:b****1 文档编号:5270988 上传时间:2023-05-04 格式:DOCX 页数:18 大小:133.76KB
下载 相关 举报
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第1页
第1页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第2页
第2页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第3页
第3页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第4页
第4页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第5页
第5页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第6页
第6页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第7页
第7页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第8页
第8页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第9页
第9页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第10页
第10页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第11页
第11页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第12页
第12页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第13页
第13页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第14页
第14页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第15页
第15页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第16页
第16页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第17页
第17页 / 共18页
软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx

《软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。

软件工程图书管理系统需求分析报告完整版Word格式文档下载.docx

3、数据描述

静态数据

图书:

图书编码,书名,书号,图书类别,作者,出版社,出版时间,单价

管理员:

用户名,密码,权限,姓名

读者:

借书卡号,姓名,性别,读者类别,所属系部,部门或班级

动态数据

输入数据:

鼠标对按钮的点击,查询方式,查询关键字,新建图书项,新建读者项,图书项、读者项记录的修改,图书借还以及注销操作时的输入信息,受限操作所需的密码等。

输出数据:

查询关键字所确定的数据库子集,统计结果,操作成功或失败的消息,图书借还以及注销操作时的结果信息。

数据库描述

数据库采用SQLServer数据库。

数据流图与数据字典

1、数据流图

(1)顶层数据流图

(2)0层数据流图

(3)1层数据流图

1.读者信息管理

2.图书信息管理

3.图书借还管理

ER图:

数据词典(DD)

高级管理员(帐号,姓名)

一般管理员(帐号,姓名)

普通用户(帐号,姓名,班级,性别,组号)

登录用户(帐号,密码,权限)

图书类别(类别,类名)

图书(图书编号,类别,书名,作者,出版日期,出版社,定价,总数量,剩下数量,备注)

借阅(用户帐号,图书编号,借书日期,到期日期,数量,还书日期)

数据采集

数据通过事先的录入,形成最基本的管理人员帐号,通过管理人员的管理,可以实现相应的数据的添加,删减。

比如,管理员可以添加用户的相关信息(通过办理借书证)还可以添加图书(通过新书上架)来办理。

3.功能需求

功能划分

图书管理系统主要实现以下七方面的功能:

a.查询b.图书借还c.图书入库d.图书维护

e.图书超期提示f.环境管理

功能描述

图书管理包括查询、借还、入库、维护、超期提示、环境管理七方面功能。

图书入库,主要实现入库登记。

图书借阅,用户需凭相应证件到图书馆进行借书,并由图书管理员进行相应的登记记录档案。

查询,当用户要查询自己的借阅情况时,可以进行借阅查询。

用户可以通过此系统进行图书的查询和读者查询(即用户自己的相关信息查询)。

图书超期提示,当借阅者在已到借书期限时仍未归还图书,提示其尽快办理归还手续。

并由系统计算相应的处罚。

图书维护,图书管理员可以通过此系统进行相应的图书的维护计算。

数据流图(DFD)

a.新书入库

D1库存清单

D2

b.图书借阅D1库存清单

C.过期提示

d.借阅查询

D1借阅查询清单

e.还书处理

借书:

还书:

新书上架:

4、4需求规定

在图书管理系统中,管理员要为每个读者建立借阅账户,并给读者发放不同类别的借阅卡(借阅卡可提供卡号、读者姓名),账户内存储读者的个人信息和借阅记录信息。

持有借阅卡的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书(系统审核符合续借条件)。

借阅图书时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。

然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。

最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。

归还图书时,输入读者借阅卡号和图书号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。

如果有超期借阅或丢失情况,先转入过期罚款或图书丢失处理。

然后提交还书请求,系统接受后删除借阅纪录,并登记并修改可借阅图书的数量。

图书管理员定期或不定期对图书信息进行入库、修改、删除等图书信息管理以及注销(不外借),包括图书类别和出版社管理。

为系统维护人员提供权限管理、数据备份等通用功能。

4、5功能分类

4、6具体需求

系统的总体图见图

第一层图:

(1):

登陆子系统

(2)管理子模块

(3)查询模块

第二层图:

处理新书购入

1)规格说明

输入新书的全部信息。

2)引言

为了输入新书的全部信息(包括:

分类目录号,流水号书名,作者,内容摘要,价格和购书日期等)。

3)输入

新书的全部信息。

4)处理

通过图书管理系统写入图书目录文件。

5)输出

(2)处理学生借书

查询读者借书的相关信息。

2)引言

为了查询读者借书的相关信息。

借书信息的关键字。

利用关键字在借书文件中找到此流水号图书的相关信息。

借书相关信息。

(3):

处理学生还书

输入读者还书信息。

为了把读者还书的相关信息(包括:

图书分类号,流水号,读者号,借阅日期和还书日期等)写入还书文件中。

读者还书信息。

4)处理

通过图书管理系统写入还书文件中。

读者还书信息的全部内容。

(4):

处理图书注销

注销图书的相关内容。

为了注销图书的相关信息。

图书信息的关键字(图书分类号或书名)。

利用关键字在图书目录文件中找到此图书分类号或书名图书的相关信息。

图书的注销信息。

(5)处理学生信息查询

1)规格说明

读者登记,即读者的具体信息。

为了把读者的具体信息(包括:

读者编号,姓名,学院,专业,年级等)写入读者目录文件中。

读者具体信息。

通过图书管理系统写入读者目录文件中。

(6)处理图书信息查询

查询图书的相关内容。

为了查找图书的相关信息。

图书的相关信息。

4、7.数据结构的设计

typedefstructBookList

{charnum[10];

charname[20];

charauthor[20];

inttotal;

intleavings;

structBookList*next;

}Book;

采用链表的结构来进行数据操作,一本书的数据包括:

书号、书名、作者、库存总量、现存量以及指针区域。

2.算法的设计

(1)关键算法设计思路描述

在构思图书馆管理系统的结构时,我将整个程序划分为五个模块,分别定义了五个函数来实现管理系统的功能,除此之外在对程序的界面设计上加入了一些动画效果。

在数据结构上采用单链表的结构方式,这样在读取文件中数据的时候能够节省内存空间。

  设计主菜单时,用while

(1)和switch()来实现功能的选择以及运行一项功能后返回主菜单。

 

在整个程序中,统一采用了以输入0的方式返回或退出,并在模块有需要键盘输入地方加入了防错误输入的功能,防止输入错误导致程序错误运行,此功能采用判断输入值的ASCII码或字符串的比较。

入库模块:

首先判断数据文件是否存在,如存在以追加的方式打开,如不存在以写入的方式打开。

输入图书的具体数据(在输入过程中,如输入的书号为0则返回主菜单)、存盘,判断存盘成功则打印“成功添加”,如存盘失败打印“添加失败”。

最后返回入起始界面(入库模块)。

清除模块:

进入清除模块则将文件中的全部数据用单链表的结构读入内存,提示输入要删除的书号,在内存中寻找并删除,删除后可以马上存盘或是直到全部删除完成后再选择操作,在防止操作后忘记存盘,在程序中加入了自动判断操作过的数据是否己经进行过存盘的功能。

查询模块:

本模块分为三个子模块:

以书号方式查询、以书名的方式查询、以作者的方式查询。

前两个查询功能只要找到符合条件的数据时就停止,以作者方式因为考虑到一个作者不止一本作品,所以对全部的数据进行查找,并打印出所有符合条件的数据。

如果未找到则打印“没有找到”,最后返回子功能模块起始,直到输入0返回上一级。

借出、还书模块:

这两个功能的思路完全一样,不同的是对数据中的现存量的运算。

两个功能都是先建立一个图书类型的数据指针,逐条将文件中的数据读入内存,并与输入的数据进行比较,如果一致则先对内存中的数据进行操作,再将文件中的fp指针后退sizeof(Book)个字节,将内存中的经过修改过的数据写入文件。

完成一条操作后,提示进行下一条操作,输入0时返回主菜单。

(2)程序结构及模块名称描述

a)voidmain()n"

);

else

{;

fseek(fp,-56L,1);

fwrite(&

n,sizeof(Book),1,fp);

gotoxy(35,13);

printf("

借出成功!

"

flag=1;

getch();

}

rewind(fp);

break;

fread(&

if(flag==0){gotoxy(35,13);

借书失败!

rewind(fp);

}

gotoborrow_re;

borrow_end:

fclose(fp);

四、源程序清单:

(见源程序文件名:

五、测试数据及测试结果:

(一)添加

 书号书名作者库存

1001h1li8

1002h2ki8

1003h3fd9

1004h4li10

1005h5sdfs11

1006h6ed9

1007h7tio7

(二)清除

输入清除的书号:

1006

提示删除成功,运行查询功能中的查询全部功能,确认1006己被删除

(三)查询

1.书号查询,输入:

1005

输出:

2.书名查询,输入:

h7

  输出:

3.作者查询,输入:

li

1004h4li10

(四)借出

输入:

1004

借出成功

运行查询功能中的查询全部功能,显示:

书号 书名 作者 库存 现存

1004h4li109

(五)归还

1004

归还成功

    运行查询功能中查询全部,显示:

1004h4li1010

六、心得体会:

编写整个模拟图书馆管理程序历时五天,五个功能模块中的入库与查询模块由于定义函数名与C语言中自带函数名冲突,到发现原因并修改,期间耗时三天。

在三天期间,在不知道冲突原因之前,我在几个论坛上发贴,有回贴的竟没人知道原因,后来偶然的灵机一动,将函数名更改,程序顺利运行。

我还从网上下了一本C语言函数的电子书,经查确实是由于函数名冲突。

所以,我们在定义函数的时候,在注意函数名是否与C语言自带的函数冲突。

因为我比较喜欢有应用性的程序,所以挑选图书馆来做,但是在确定所用数据结构方面,构思时考虑不足,忽略了图书馆内书的数据量,一直到入库与查询两个模块完成,我还是采用顺序表的结构来进行数据操作,但是在编写清除模块的时候,突然间发现将文件数据全部读出时,如果采用顺序链表就必须欲先定制一个足够大的空间,所以我又将数据结构改成单链表以节省内存空间。

在编写入库和查询模块时,用的知识都只是大一所学C语言老师教过的,如打开文件fopen命令,读取文件fread命令,写入文件fwrite命令等等。

对文件的其它详细操作一无所知,如读取时文件fp指针的位置,如何让fp指针在文件中定位等等。

但是我在编写借出,归还和清除三个模块时,恰恰得用到这些知识,所以借用ftell()命令,自己慢慢的摸索出一些门道。

如:

在借出和归还模块里,我采用的方法是,定义一个图书类型的结构体指针,一次从文件里只读取一个数据,将它的关键字符段与输入数据进行比较,如果一致则将文件指针fp往后移动sizeof(Listtype)个字节,然后将经过这个修改后的数据写入文件。

之所以采用这个方法,我是考虑到它在内存中只占用了sizeof(Listtype)字节个空间,并且也只需向文件中写入一次。

如果用链表全部读取、修改后再保存文件,一是占用了很大的内存空间,二是要向文件中写入全部的数据。

但是,如果要进行多次借出操作的时候,用链表读取只需要全部操作完后一次对修改后的数据进行写入,期间的操作只需在内存中进行。

而用我的方法,借一次就必需打开文件,逐条读取,修改写入。

所以至于哪种方法更好,我自己具体也弄不清,还请老师多多指点一下。

因为在整个程序中,我在主函数和五个功能函数中都用到了无限循环体while

(1)以实现操作结束后仍然停留在这个功能模块,直到输入0以退出。

因为这种结构,在编写和测试过程中遇到了种种的问题而造成程序运行错误或是死循环,于是我采用隔数行打印一些字符的方法以判断是哪一个环节出错,这个方法虽然是麻烦一点但能达到一定的效果。

删除功能函数是最后编写的,在编写时思路也经过改变,原本的思路是:

一次从文件中读取一条与输入数据比较,找到符合条件的数据后,记住此时文件指针fp的位置,将fp后面直到文件结束的数据读入链表中,最后将fp指针移到要删除数据位置前,将内存中的数据写入文件。

这样便将要删除的数据在文件中覆盖。

可是在具体的测试中,功能的实现很不稳定,有时候会出现写入错误而导至读取时出现乱码。

所以最后不得不放弃这种思路,将方法改成以wb+的方式打开文件,将文件中的数据全部读入链表,在链表中进行删除操作,全部操作结束后写入文件。

再者是编写的三个效果,一个是模仿windowsXP的开机,一个是用类似百叶窗的效果打印字符画,另外一个是程序结束时的告别画面。

这三个无非是用while,gotoxy等命令实现,纯粹是因为好玩,增强程序的趣味性,但是这些效果因为每台机子CPU的运算速度不同,所以在不同机子上运行的速度不同。

总之,通过专周收获还是蛮多的,重在实践。

4、8性能需求

1)精度需求

在精度需求上,根据使用需求,在各项数据的输入,输出及传输过程中,可以满足各种精度的需求。

2)时间需求

在软件方面,响应时间,更新处理时间都比较快且迅速,完全满足用户要求。

3)灵活性

当用户需求,如操作方式,运行环境,结果精度,数据结构与其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。

4)故障处理

内部故障处理:

在开发阶段可以随即修改数据库里的相应内容。

外部故障:

对编辑的程序进行重装载时,第一次装载认为错,修改。

第二次运行,在需求调用时出错,有错误提示,重试。

属性

1)保密性

本软件作为教学管理辅助设备,它的规模比较小,不需要保密技术,先顶一个程序中某些区域的规约,给不同的模块分配不同的功能。

2)可维护性

本软件的组成程序组构较为简单,直观意义上较独立。

因此,给予电子化的所构成的硬件的简单可维护的特点,决定了该软件的简单;

他与文件系统的

其他需求

1)数据库

数据库是实现有组织的,动态的存储大量关联数据,方便多用户访问的计算机软硬自愿组成的系统。

他与文件系统的重要区别时数据的充分共享,交叉访问,与应用程序的高度独立性。

由于本软件的整体结构比较简单,所涉及的数据相对来说也比较少,组成文件的最小单位是记录。

2)操作

a.初始化操作

b.数据处理的功能较强

c.后援和恢复操作

数据精确度

该系统中,数据除日期之外,其余都是整型数据。

涉及的计算只有过期的罚款计算。

对数据的精确度要求低。

时间特征

该系统不是很大,响应时间,更新时间,数据处理时间,传输时间,运行时间等基本可以近似0处理。

适应性

该程序主要是与SQLsever的连接,只要是装了windows操作系统的,都应该能够比较简单的连接上。

另外操作比较简单,很容易上手。

4.运行需求

4.1用户界面

用户界面应该简单美观,容易上手,用户容易理解。

4.2硬件接口

4.3软件接口

4.4故障处理

5.其他需求

暂无。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2