图书管理系统课程设计_第1页
图书管理系统课程设计_第2页
图书管理系统课程设计_第3页
图书管理系统课程设计_第4页
免费预览已结束,剩余30页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、。软件工程导论实验报告一、 实验题目:学生成绩管理系统、 图书借阅管理系统、 工资管理系统、网络订餐系统、 招聘考试成绩管理系统二、实验目标。1。通过独立完成项目开发, 加深对软件开发分析过程的流程和方法的理解, 建立软件工程的思想,同时,明确软件开发的成本和时间管理的相关概念。实验一实验要求: . 在实验题目列出的几个系统中选择一个作为自己要开发的软件系统,要求该系统有明确的功能需求,并建立系统的分析模型。 . 对系统进行需求分析,掌握 ER图、 DFD、 DD的设计与编写 . 熟悉 Visio 环境和基本操作,制作一个简单的系统流程图和数据流图、主要数据项的数据字典描述及主要加工的逻辑说明

2、(自己选择结构语言、判定树、判定表等)。 . 撰写需求分析规格说明书用户需求分析作为图书管理系统,其主要的需求人员是借阅者,借阅者对其的要求可以大体概括如下:1) 能按各种方式,比如书名、编号、作者等查询图书馆的藏书情况;2) 能熟悉使用图书管理系统;3) 能方便地借阅图书、续借图书、归还图书;4) 能查询自己的基本资料、借阅图书情况;5) 能方便图书管理员对图书的录入登记、注销;6) 能方便对新生的登记或注销已经毕业学生的信息;7) 能及时发布一些学院学生借阅图书超期情况、馆内藏书情况等。2。功能说明1 )、读者管理系统( 1)未注册者可以进入注册系统进行注册;( 2)已注册借阅者可按姓名、

3、编号或身份证号登陆进入借阅者检索系统查询借阅者情况;( 3)已注册借阅者可按书名、出版社或作者对图书信息进行检索查询或提出预约请求;2 )、图书管理员管理系统( 1)图书管理员通过图书管理员身份认证进入图书管理员管理系统;( 2)读者可借阅在库图书;( 3)在规定期限内借阅者归还借阅图书;( 4)读者在不违规情况下可继续借阅已借阅图书;( 5)读者可以预约图书。3 )、系统管理员管理系统( 1)系统管理员通过系统管理员身份认证进入系统管理员管理系统;( 2)系统管理员可以对图书进行图书管理(如:查询、删除、修改图书资料或图书分类查询修改、删除管理) ;( 3)系统管理员可以对借阅者进行学生管理

4、(如:查询、删除、修改借阅者信息或借阅者类别修改、 删除管理, 查询浏览借阅者详细资料, 包括借阅次数,登陆次数,最后登陆时间);4 )、罚款管理系统(1)罚款管理员通过罚款管理员身份认证进入罚款管理系统;(2)罚款处理可以读取借阅信息表再生成超时罚款信息表, 通过超时罚款信息表可以生成罚款单给罚款管理员;(3)图书管理员告知罚款系统图书超时未还, 经罚款管理员鉴定后, 对图书进行注销处理且罚款管理员对借阅者进行罚款处理。3。DFD顶层流程图管理员无效借阅者信息图书检索请求管理员身份认证信息图书检索结果注册 / 登陆申请错误检验图书管理系统注册 / 登陆结果借阅者信息图书超时信息还书 / 借阅

5、结果读者。4。ER模型图借的图书读者编号的数目所借图书的信息有无被借标记读者姓名读者书名图书图书编号借书日期删除记录标记删除标记借书还书图书出库入库管理员图书管理系统读者信息操作管理员信息图书信息姓名编号。5。程序流程图。6Y输入要查询的书籍编号或者作者名图书存在Y返回图书信息N操作错误。开始管理员登陆用户登陆NN登陆成功登陆成功结束YN图书管理读者管理借书N还书N预约YYY低于五本还书成功查看图书?查询读者图书存在NYNN借书成功NYY增加图书?预约成功Y输入读者编号增加读者N操作错误NY增加图书Y删除读者读者存在增加读者删除图书YYN读者存在返回读者信息输入要删除的Y图书操作错误删除读者N

6、超时图书存在YNY开罚单NN删除图书结束数据字典。7。图书管理系统数据流图中, 数据信息和处理过程需要通过数据字典才能描述清楚。在定义的图书管理系统数据字典中,主要对数据流图中的数据项、 数据流、数据存储和处理过程进行说明。(1) 数据项描述1 )数据项名称:借书证号含义说明:惟一标识一个借书证类型:字符型长度: 50逻辑关系:不允许为空2 )数据项名称:用户名含义说明:读者的名称类型:字符型长度: 20逻辑关系:不允许为空3 )数据项名称:密码含义说明:对用户名和操作员管理员进行加密类型;字符型长度: 10逻辑关系:允许为空4 )数据项名称:性别类型:字符型长度: 10逻辑关系:允许为空5

7、)数据项名称:所在系别类型;字符型长度: 10逻辑关系:允许为空6 )数据项名称:所在班级类型:字符型长度: 10逻辑关系:允许为空7 )数据项名称:操作员名称类型:字符型长度: 30逻辑关系:不允许为空8 )数据项名称:操作员简称含义说明:惟一标识一个操作员类型:字符型长度: 10逻辑关系:不允许为空9 )数据项名称:操作员级别含义说明:对操作员和管理员进行区分类型:字符型长度: 10。8。逻辑关系:不允许为空10 )数据项名称:图书编号含义说明:惟一标识一个图书类型:字符型长度: 10逻辑关系:不允许为空11 )数据项名称:图书名称类型:字符型长度: 50逻辑关系:不允许为空12 )数据项

8、名称:作者类型:字符型长度: 50逻辑关系:不允许为空13 )数据项名称:作者类型:字符型长度: 50逻辑关系:不允许为空14 )数据项名称:作者类型:字符型长度: 50逻辑关系:不允许为空15 )数据项名称:出版社类型:字符型长度: 50逻辑关系:不允许为空16 )数据项名称:出版时间类型:日期时间型长度: 8逻辑关系:不允许为空17 )数据项名称:价格类型:整型长度: 4逻辑关系:不允许为空18 )数据项名称:备注类型:字符型长度: 200逻辑关系:允许为空19 )数据项名称:借书日期类型:日期时间长度: 8逻辑关系:不允许为空20 )数据项名称:还书日期类型:日期时间。9。长度: 8逻辑

9、关系:不允许为空(2)数据结构描述1 )数据流名称:用户情况含义说明:定义了一个读者的有关信息组成结构:用户情况 =用户名 +借书证号 +密码 +性别 +所在系别 +所在班级2 )数据流名称:操作员情况含义说明:定义了一个操作员的有关信息组成结构 : 操作员情况 =操作员名称 +操作员简称 +操作员级别 +操作员密码3)数据流名称:图书情况含义说明:定义了一个图书的有关信息组成结构:图书情况 =图书编号 +图书名称 +作者 +出版社 +出版时间 + 价格 +备注(3) 数据流(非数据项)说明1 )数据流名称:借书单含义:读者借书时要填写的单据来源:读者去向:审核借书数据流量: 250 份/ 天

10、组成:借书单 =借书证号 +图书编号 +借书日期2 )数据流名称:还书单含义:读者还书时要填写的单据来源:读者去向:审核还书数据流量: 250 份/ 天组成:还书单 =图书编号 +还书日期(4) 数据存储说明1) 数据存储名称:图书数据表含义说明:存放图书的有关信息组成结构:图书编号 +图书名称 +作者 +出版社 +出版时间 +价格 +备注说明;书号具有惟一性和非空性2 ) 数据存储名称:用户信息表含义说明:存放读者的注册信息组成结构:用户名 +借书证号 +密码 +性别 +所在系别 +所在班级说明:证号具有惟一性和非空性,性别只能是男和女3 ) 数据存储名称:借书记录含义说明:存放读者的借书,

11、还书信息组成结构:借书证号 +图书编号 +借书日期 +还书日期说明:要求能够立即查询。10。(5) 处理过程说明1 )处理过程名称:图书管理输入:图书情况,输出:图书记录处理说明:对馆内所有图书按图书编号进行管理,将图书数据数据化,存储图书数据表中。2 )处理过程名称:读者管理输入:读者情况,输出:读者记录处理说明:建立读者信息表,对读者进行统一编号,实现读者记录表的增删改维护功能。3 )处理过程名称:查看数目输入:借书请求,读者,输出:借书记录,图书信息处理说明:实现根据图书编号等查询图书。4 )处理过程名称:借书处理输入:图书情况,读者,借书记录输出:借书记录处理说明:确认读者符合借书条件

12、,办理借书手续。5 )处理过程名称:还书处理输入:图书情况,输出:借书记录处理说明:对照相应的图书编号可办理还书手续。6 )处理过程名称:安全管理输入:操作员情况,用户情况输出:操作员级别,操作员记录,用户记录处理说明:通过用户名和口令,确认用户身份,保证系统的安全型。实验2。11。实验内容:采用面向数据流的设计方法设计系统软件结构,使用Visio 画出软件层次图。(2学时)实验要求: 学习总体设计的基本方法; 掌握面向数据流的设计方法; 通过对实验(一)中 DFD图的分析,使用 Visio 画出软件层次图。编写出初步的系统设计报告实验结果:顶层数据流图:用户输入数据图书馆管理系统输出数据显示

13、器当前日期系统时钟第0层图:。12。图书馆管理人员 用户名和密码1输入管理请求数据2显示显示器登陆信息验证处理管理请求数据密码错误信息当前日期系统时钟管理员表当前日期查询结果用户输入查询信息3处理查询请求数据第一层图:( 1):登陆子系统图书馆管理人员用户名和密码1.1用户名1.2显示器密码验证验证权限登陆错误信息权限显示1.3管理员表显示可用的控件和界面(2):管理子系统。13图书馆管理人员输入购入新书数据。2.1处理新书购入非法信息退货单图书目录文件入库单输入图书字段和学生字段罚款单2.2处理学生借书输入图书字段学生文件借书文件输入注销图书字段2.3处理学生还书罚款单图书目录文件2.4图书

14、注销当前日期(3)查询子系统接受借书罚款单非法信息当前日期显示器当前日期欠款金额信息非法信息还书成功当前日期非法信息注销成功系统时钟。14。图书馆管理人|员输入学生查询关键字3.1学生信息学生学生信息查询学生文件借书文件显示器输入图书查询关键字3.2图书目录文件图书信息图书信息查询。15。第二层图:( 1):处理新书购入出版社档案文入库单件图书馆管理人员输入购入新书数据查找数据库,确认非法输入数据(采购员)信息退货单添加操作显示器管理员表2.1.2非法操作操作验证输入添加信息显示结果系统时钟当前日期2.1.3图书目录文件保存添加记录(2)处理学生借书。16。罚款单学生文件非法学生信息图书馆管理

15、人员输入学生字段2.2.1欠款超额,拒绝借书显示器检查学生欠费情况接受借书,输入图书信息系统时钟当前日期借书成功更新数据库借书文件(3):处理学生还书图书馆管理人员输入图书字段 根据图书字段借查书找信息和学生信息 欠款金额 显示器计算欠款结果数据库还书成功借书文件当前日期系统时钟学生文件图书目录文件 罚款单(4):处理图书注销。17。图书馆管理人输员入注销图书根字据段图书字段,修查改操作操作验证找数据库非法操作输入修改信息图书目录文件系统时钟当前日期2.4.3显示器注销成功保存修改记录(5)处理学生信息查询图书馆管理人|员.2输入查找字段 确定查询类型及查字找字段,关键字查询结

16、果显示器学生段查找数据库学生文件借书文件。18。( 6)处理图书信息查询图书馆管理人|员.2输入查询关键字确定查询类型及字查询字段及关键字显示器学生查询结果段查找数据库借书文件图书目录文件。19。实验三完成实验(二)中的两到三个主要功能模块的详细设计;编写部分代码( 2学时)要求: 学习详细设计的基本方法; 掌握详细设计图形工具的使用方法; 给出主要功能模块的算法 选择程序设计语言编写主要功能模块代码图书基本信息录入模块首先输入图书录入的编号(不为0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。void putin()/*定义录入函

17、数*/。20。int y=1;system("cls");while(y)printf("t请输入您的书籍的书号:");scanf("%s",library.booklibrary.count.number);printf("t请输入书名 :");scanf("%s",);printf("t请输入作者名:");scanf("%s",library.booklibrary.count.author)

18、;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("

19、;n是否继续录入(1. 继续 ;0, 退出录入 ):");fflush(stdin);scanf("%d",&y);if (y!=1)y=0;break;save();。21。图书基本信息查询模块用户先选择图书查询方式 (按书名查找或按书号查找) 输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。void search_by_author()/*定义按作者名查询*/char s320;int flag=1;printf("请输入要查询的书的作者: ");fflush(stdin);sc

20、anf("%s",s3);printf("图书号 t图书名 t作者名 t出版社 t出版日期 t图书价格 n");for(int i=0;i<library.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,l

21、ibra ry.booki.price);。22。if (flag)printf("cannot found!");fflush(stdin);getchar();图书基本信息修改模块用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;若存在,则提示用户选择修改项目, 然后提示用户图书信息修改完成。void modify()/修改图书信息char number10;system("cls");/*清屏 */printf("nPlease type in the number of the book you want to

22、delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i+)。23。if(strcmp(number,library.booki.number)=0)printf("图书号 t图书名 t作者名 t出版社 t出版日期 t图书价格 n");printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,libra

23、ry.booki.publish,library.booki.time,library.booki.price);break;if (i!=library.count)mbook book;printf("ntt请输入修改后此图书的信息n");printf("t请输入图书号:");scanf("%s",book.number);printf("t请输入图书名:");scanf("%s",);printf("t请输入作者名:");scanf("%s&

24、quot;,book.author);printf("t请输入出版社:");scanf("%s",book.publish);printf("t请输入出版时间:");scanf("%s",book.time);printf("t请输入该书的价格:");fflush(stdin);scanf("%f",&book.price);strcpy(,);strcpy(library.booki.number,book.nu

25、mber);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.time,book.time);library.booki.price=book.price;save();elseprintf("n cannot found!n");fflush(stdin);getchar();。24。实验 4对所选系统完成系统测试(2学时)实验要求: 学习软件测试的基本方法; 结合实验(三)中的算法,用白盒法中的逻辑覆盖测试技术,

26、设计测试用例; 选择实验(三)中给出代码的模块进行黑盒测试。单元测试:采用白盒测试法针对用户还书、预约、借书、查询等功能模块进行测试( 1)对于还书功能模块,模块的程序流程图如下:用户登陆输入要还书的编号retno0retno 存在01接受违约惩borday<=904罚124成功还书2533结束5判定节点为 2,环形复杂度为: 2+1=3采用路径覆盖法,测试用例为:1、测试路径: 0-5输入条件: retno 不存在预期输出:无该图书2、测试路径: 0-1-4-5输入条件: retno 存在, borday>90预期输出:接受违约惩罚。25。3、测试路径: 0-1-2-3输入条件:

27、 retno存在, borday<=90预期输出:成功还书( 2)对于预约功能模块,模块的程序流程图如下:登陆TBorday<=90F接受违约处罚T0输入图书编号bookno1T62Bookno存在FT397onshelf48T5预约成功结束图中判定节点为: 2,环形复杂度为: 2+1+3采用路径覆盖法,测试用例如下:1、测试路径: 0-1-6-9输入条件: borday>90预期输出:接受违约处罚2、测试路径: 0-1-2-7输入条件: borday<=90 ,borno 不存在预期输出:不存在该图书3、测试路径: 0-1-2-3-8输入条件: borday<=

28、90,borno 存在, onself不存在预期输出:图书已借出4、测试路径:0-1-2-3-4-5输入条件:borday<=90,borno 存在,onself存在预期输出:预约成功。26。( 3)对于借书功能模块,模块的程序流程图如下:登陆Borday<=900YBorno<=51Y输入图书的编号booknoN2bookno存在N738YOnshelf ?4910Y5借书成功结束6图中判定节点为4,环形复杂度为: 4+1=5采用路径覆盖测试法,测试用例如下:1、测试路径: 0-7输入条件: borday>90预期输出:接受违约惩罚2、测试路径: 0-1-8输入条件:

29、 borday<=90,borno>5预期输出:超出所借数目的最大3、测试路径: 0-1-2-3-9输入条件: borday<=90,borno>5 ,bookno 不存在预期输出:所借图书编号不存在4、测试路径: 0-1-2-3-4-10输入条件: borday<=90,borno>5 ,bookno 存在,onshelf不存在预期输出:书不在架5、测试路径: 0-1-2-3-4-5-6输入条件: borday<=90,borno>5 ,bookno 存在,onshelf存在 预期输出:借书成功。27。( 4)对于查询功能模块,模块的程序流程图

30、如下:登陆输入要检索的0图书编号 bookno1输出图书的信息bookno存在?Y2N64Y Onshelf ?N3结束5流程图中判定节点为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. )确认测试:采用黑盒测试法测试确认测试,主要是为了检测接口功能应对的各种非预期性输入

31、时系统的可靠性和容错性等性能。本小型图书管理系统将对用户和管理员与图书管理系统之间的交互接口进行测试, 所以测试的主要内容有 2 个:图书管理系统和管理员接口, 图书管理系统和读者接口。( 1)读者与图书管理系统之间的接口读者登陆图书管理系统, 应受到系统如下的约束: 用户名需要以字母开头, 后面是数字和字母组合,不能超过最大长度为 10,密码长度不超过 6。28。划分了等价类,情况如下所示:输入条件有效等价类编号无效等价类编号用户名开头字母( a-z )1非字母4余下字符数字和字母组2非数字和字母5合字符数小于 103大于 106有效等价类的测试用例:测试编号输入条件预期输出覆盖等价类开头余

32、 下 字个数符T1add323238add323231、2、3无效等价类的测试用例:测试编号输入条件预期输出覆盖等价类开头余 下 字个数符T12dd323238输入错误2、3、4T2a*><?5输入错误1、3、5T3a123456711输入错误1、2、6899。29。实验 5面向对象方法建模( 2学时)实验要求: 学习面向对象软件的设计方法; 掌握 UML建模语言的使用, ROSE工具使用; 对前四个实验所建系统的用例图和类图。用例图1. 借阅者请求服务的用例图<<include>>Search for book Reserve the bookLogon the syetem<<include>>Query InfoBorrowerBorrow the bookReturn With Fine<<extend>>Return the book用例图说明:(1) Serch for Book:书籍查询用例。(2) Reserve the book:书籍预订用例。(3) Logon the system:登陆系统。( 4)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论