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