1、图书管理系统课程设计软件工程导论实验报告一、 实验题目:学生成绩管理系统、图书借阅管理系统、工资管理系统、网络订餐系统、招聘考试成绩管理系统二、实验目标通过独立完成项目开发,加深对软件开发分析过程的流程和方法的理解,建立软件工程的思想,同时,明确软件开发的成本和时间管理的相关概念。实验一实验要求:. 在实验题目列出的几个系统中选择一个作为自己要开发的软件系统,要求该系统有明确的功能需求,并建立系统的分析模型。. 对系统进行需求分析,掌握ER图、DFD、DD的设计与编写. 熟悉Visio环境和基本操作,制作一个简单的系统流程图和数据流图、主要数据项的数据字典描述及主要加工的逻辑说明(自己选择结构
2、语言、判定树、判定表等)。.撰写需求分析规格说明书用户需求分析 作为图书管理系统,其主要的需求人员是借阅者,借阅者对其的要求可以大体概括如下:1) 能按各种方式,比如书名、编号、作者等查询图书馆的藏书情况;2) 能熟悉使用图书管理系统;3) 能方便地借阅图书、续借图书、归还图书;4) 能查询自己的基本资料、借阅图书情况;5) 能方便图书管理员对图书的录入登记、注销;6) 能方便对新生的登记或注销已经毕业学生的信息;7) 能及时发布一些学院学生借阅图书超期情况、馆内藏书情况等。 功能说明 1)、读者管理系统 (1)未注册者可以进入注册系统进行注册; (2)已注册借阅者可按姓名、编号或身份证号登陆
3、进入借阅者检索系统查询借阅者 情况; (3)已注册借阅者可按书名、出版社或作者对图书信息进行检索查询或提出预约请 求; 2)、图书管理员管理系统 (1)图书管理员通过图书管理员身份认证进入图书管理员管理系统; (2)读者可借阅在库图书; (3)在规定期限内借阅者归还借阅图书; (4)读者在不违规情况下可继续借阅已借阅图书; (5)读者可以预约图书。 3)、系统管理员管理系统 (1)系统管理员通过系统管理员身份认证进入系统管理员管理系统; (2)系统管理员可以对图书进行图书管理(如:查询、删除、修改图书资料或图书 分类查询修改、删除管理); (3)系统管理员可以对借阅者进行学生管理(如:查询、删
4、除、修改借阅者信息或 借阅者类别修改、删除管理,查询浏览借阅者详细资料,包括借阅次数,登陆次数, 最后登陆时间); 4)、罚款管理系统 (1)罚款管理员通过罚款管理员身份认证进入罚款管理系统;(2)罚款处理可以读取借阅信息表再生成超时罚款信息表,通过超时罚款信息表可 以生成罚款单给罚款管理员;(3)图书管理员告知罚款系统图书超时未还,经罚款管理员鉴定后,对图书进行注销处理且罚款管理员对借阅者进行罚款处理。DFD顶层流程图ER模型图程序流程图数据字典图书管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。在定义的图书管理系统数据字典中,主要对数据流图中的数据项、数据流、数据存储和
5、处理过程进行说明。(1) 数据项描述 1)数据项名称:借书证号 含义说明:惟一标识一个借书证 类型:字符型 长度:50 逻辑关系:不允许为空 2)数据项名称:用户名 含义说明:读者的名称 类型:字符型 长度:20 逻辑关系:不允许为空 3)数据项名称:密码 含义说明:对用户名和操作员管理员进行加密 类型;字符型 长度:10 逻辑关系:允许为空 4)数据项名称:性别 类型:字符型 长度:10 逻辑关系:允许为空 5)数据项名称:所在系别 类型;字符型 长度:10 逻辑关系:允许为空 6)数据项名称:所在班级 类型:字符型 长度:10 逻辑关系:允许为空 7)数据项名称:操作员名称 类型:字符型
6、长度:30 逻辑关系:不允许为空 8)数据项名称:操作员简称 含义说明:惟一标识一个操作员 类型:字符型 长度:10 逻辑关系:不允许为空 9)数据项名称:操作员级别 含义说明:对操作员和管理员进行区分 类型:字符型 长度:10 逻辑关系:不允许为空 10)数据项名称:图书编号 含义说明:惟一标识一个图书 类型:字符型 长度:10 逻辑关系:不允许为空 11)数据项名称:图书名称 类型:字符型 长度:50 逻辑关系:不允许为空 12)数据项名称:作者 类型:字符型 长度:50 逻辑关系:不允许为空 13)数据项名称:作者 类型:字符型 长度:50 逻辑关系:不允许为空 14)数据项名称:作者
7、类型:字符型 长度:50 逻辑关系:不允许为空 15)数据项名称:出版社 类型:字符型 长度:50 逻辑关系:不允许为空 16)数据项名称:出版时间 类型:日期时间型 长度:8 逻辑关系:不允许为空 17)数据项名称:价格 类型:整型 长度:4 逻辑关系:不允许为空 18)数据项名称:备注 类型:字符型 长度:200 逻辑关系:允许为空 19)数据项名称:借书日期 类型:日期时间 长度:8 逻辑关系:不允许为空 20)数据项名称:还书日期 类型:日期时间 长度:8 逻辑关系:不允许为空(2)数据结构描述 1)数据流名称:用户情况 含义说明:定义了一个读者的有关信息组成结构:用户情况=用户名+借
8、书证号+密码+性别+所在系别+所在班级 2)数据流名称:操作员情况 含义说明:定义了一个操作员的有关信息 组成结构:操作员情况=操作员名称+操作员简称+操作员级别+操作员密码3) 数据流名称:图书情况 含义说明:定义了一个图书的有关信息 组成结构:图书情况=图书编号+图书名称+作者+出版社+出版时间+价格+备注(3) 数据流(非数据项)说明 1)数据流名称:借书单 含义:读者借书时要填写的单据 来源:读者 去向:审核借书 数据流量:250份/天 组成:借书单=借书证号+图书编号+借书日期 2)数据流名称:还书单 含义:读者还书时要填写的单据 来源:读者 去向:审核还书 数据流量:250份/天
9、组成:还书单=图书编号+还书日期(4) 数据存储说明1) 数据存储名称:图书数据表 含义说明:存放图书的有关信息 组成结构:图书编号+图书名称+作者+出版社+出版时间+价格+备注 说明;书号具有惟一性和非空性 2) 数据存储名称:用户信息表 含义说明:存放读者的注册信息 组成结构:用户名+借书证号+密码+性别+所在系别+所在班级 说明:证号具有惟一性和非空性,性别只能是男和女 3) 数据存储名称:借书记录 含义说明:存放读者的借书,还书信息 组成结构:借书证号+图书编号+借书日期+还书日期 说明:要求能够立即查询(5) 处理过程说明 1)处理过程名称:图书管理 输入:图书情况, 输出:图书记录
10、 处理说明:对馆内所有图书按图书编号进行管理,将图书数据数据化,存储图书数据表中。 2)处理过程名称:读者管理 输入:读者情况, 输出:读者记录 处理说明:建立读者信息表,对读者进行统一编号,实现读者记录 表的增删改维护功能。 3)处理过程名称:查看数目 输入:借书请求,读者, 输出:借书记录,图书信息 处理说明:实现根据图书编号等查询图书。 4)处理过程名称:借书处理 输入:图书情况,读者,借书记录 输出:借书记录 处理说明:确认读者符合借书条件,办理借书手续。 5)处理过程名称:还书处理 输入:图书情况, 输出:借书记录 处理说明:对照相应的图书编号可办理还书手续。 6)处理过程名称:安全
11、管理 输入:操作员情况,用户情况 输出:操作员级别,操作员记录,用户记录 处理说明:通过用户名和口令,确认用户身份,保证系统的安全型。实验2实验内容:采用面向数据流的设计方法设计系统软件结构,使用Visio画出软件层次图。(2学时)实验要求:学习总体设计的基本方法;掌握面向数据流的设计方法;通过对实验(一)中DFD图的分析,使用Visio画出软件层次图 。编写出初步的系统设计报告实验结果:顶层数据流图:第0层图:第一层图: (1):登陆子系统(2):管理子系统(3)查询子系统第二层图:(1):处理新书购入(2)处理学生借书(3):处理学生还书(4):处理图书注销(5)处理学生信息查询(6)处理
12、图书信息查询实验三完成实验(二)中的两到三个主要功能模块的详细设计;编写部分代码(2学时)要求:学习详细设计的基本方法;掌握详细设计图形工具的使用方法;给出主要功能模块的算法选择程序设计语言编写主要功能模块代码图书基本信息录入模块首先输入图书录入的编号(不为0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。 void putin() /*定义录入函数*/ int y=1; system(cls); while(y) printf(t请输入您的书籍的书号:); scanf(%s,library.booklibrary.count.number); pr
13、intf(t请输入书名:); scanf(%s,library.booklibrary.count.name); printf(t请输入作者名:); scanf(%s,library.booklibrary.count.author); printf(t请输入出版社:); scanf(%s,library.booklibrary.count.publish); printf(t请输入出版时间:); scanf(%s,library.booklibrary.count.time); printf(t请输入该书的价格:); fflush(stdin); scanf(%f,&library.book
14、library.count.price); library.count+; printf(n是否继续录入(1.继续;0,退出录入):); fflush(stdin); scanf(%d,&y); if (y!=1) y=0; break; save();图书基本信息查询模块用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。void search_by_author() /*定义按作者名查询*/ char s320; int flag=1; printf(请输入要查询的书的作者: ); fflus
15、h(stdin); scanf(%s,s3); printf(图书号t图书名t作者名t出版社t出版日期t图书价格n); for(int i=0;ilibrary.count;i+ ) if(strcmp(s3,library.booki.author)=0) flag=0; printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)
16、 printf(cannot found!); fflush(stdin); getchar();图书基本信息修改模块用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。void modify()/修改图书信息 char number10; system(cls); /*清屏*/ printf(n Please type in the number of the book you want to delete:); fflush(stdin); scanf(%s,number); int i; for (i=0
17、;i90 预期输出:接受违约惩罚3、测试路径:0-1-2-3 输入条件:retno存在,borday90 预期输出:接受违约处罚2、测试路径:0-1-2-7 输入条件:borday=90,borno不存在 预期输出:不存在该图书3、测试路径:0-1-2-3-8 输入条件:borday=90,borno存在,onself不存在 预期输出:图书已借出4、测试路径:0-1-2-3-4-5 输入条件:borday90 预期输出:接受违约惩罚2、测试路径:0-1-8 输入条件:borday5 预期输出:超出所借数目的最大3、测试路径:0-1-2-3-9 输入条件:borday5,bookno不存在 预期
18、输出:所借图书编号不存在4、测试路径:0-1-2-3-4-10 输入条件:borday5,bookno存在,onshelf不存在 预期输出:书不在架5、测试路径:0-1-2-3-4-5-6 输入条件:borday5,bookno存在,onshelf存在 预期输出:借书成功(4)对于查询功能模块,模块的程序流程图如下:流程图中判定节点为2,环形复杂度为:2+1=3采用路径覆盖测试法,测试用例如下:1、测试路径:0-1-6 输入条件:bookno不存在 预期输出:要查找的图书不存在2、测试路径:0-1-2-3 输入条件:bookno存在,onself=1 预期输出:要查找的图书已被借走3、测试路径
19、:0-1-2-4-5 输入条件:bookno存在,onself=0 预期输出:返回查找图书信息 2.)确认测试:采用黑盒测试法测试确认测试,主要是为了检测接口功能应对的各种非预期性输入时系统的可靠性和容错性等性能。本小型图书管理系统将对用户和管理员与图书管理系统之间的交互接口进行测试,所以测试的主要内容有2个:图书管理系统和管理员接口,图书管理系统和读者接口。(1)读者与图书管理系统之间的接口读者登陆图书管理系统,应受到系统如下的约束:用户名需要以字母开头,后面是数字和字母组合,不能超过最大长度为10,密码长度不超过6划分了等价类,情况如下所示:输入条件有效等价类编号无效等价类编号用户名开头字
20、母(a-z)1非字母4余下字符数字和字母组合2非数字和字母5字符数小于103大于106有效等价类的测试用例:测试编号 输入条件预期输出覆盖等价类开头余下字符个数T1add323238add323231、2、3无效等价类的测试用例:测试编号 输入条件预期输出覆盖等价类开头余下字符个数T12dd323238输入错误2、3、4T2a*?5输入错误1、3、5T3a123456789911输入错误1、2、6实验5面向对象方法建模(2学时)实验要求:学习面向对象软件的设计方法;掌握UML建模语言的使用,ROSE工具使用;对前四个实验所建系统的用例图和类图。用例图1. 借阅者请求服务的用例图用例图说明:(1
21、) Serch for Book:书籍查询用例。(2) Reserve the book:书籍预订用例。(3) Logon the system:登陆系统。(4) Query Info:查询借阅信息。(5) Borrow the book:借阅书籍。(6) Return the book:归还书籍。(7) Return With Fine:还书时交纳罚金。如果借阅者所借书籍超过借阅期限未还,还书的时候就要交纳一定的罚金。2. 图书馆管理员处理借书 、还书等的用例图用例图说明:(1) Get book:书籍归还处理(2) Lend book:书籍借阅处理(3) Remove Reservatio
22、n:删除书籍预订信息(4) Get With Fine:还书时收取罚金(5) Check user count:检查用户借阅凭证的合法性,图书管理员在借阅者借书的时候要检查用户借阅凭证的合法性3. 系统管理员进行系统维护的用例图用例图说明:(1) Query Borrower Info:查询读者信息(2) Query Book Info:查询书籍信息(3) Add Title: 增加书目(4) Remove or Update Title:删除或更新书目(5) Add Book:增加书籍(6) Remove Book:删除书籍(7) Add Borrower:添加借阅者帐户(8) Remove or Update Borrower:删除或更新借阅者帐户信息类图对图书馆管理系统中,对需求规格说明书进行分析,完成图书馆管理系统中,系统包图和类图的设计。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1