1、书店租赁管理系统 设计说明书第一章 开发背景 书店从事出租图书、影碟服务,需实现图书和影碟信息的输入、查询、显示,书(碟)借、还等管理,归还时计算租金,并支付租金,书店用户分为会员用户和一般用户,会员用户和一般用户包含姓名、电话等信息,图书和影碟也包含许多的基本信息,对于每次的租赁都要记录租赁物的信息以及借书人等情况,非常麻烦,书店租赁管理系统就是为了解决这些问题而被开发出来的,书店租赁管理系统完全能够满足书店的功能需求,并能方便的管理好书店的信息。 第二章 系统需求2.1系统总需求书店租赁管理系统需要满足来自两方面的需求,这两个方面分别是借书人者、借出人。借书人的需求是查询借的租赁物的信息以
2、及什么时候借的,然后再支付租金,借出人需要对书店租赁物的状态进行查询,如果是在店状态时就能执行借出操作,并且借书人也需要查询借出的租赁物的信息,还要能够对还书进行信息输入,通过系统最终得出租金,借书人还需要对营业的情况进行分析,以做出正确的决策。2.2 功能需求书店租赁管理系统能够为管理人员提供最及时的经营数据,包括当前书店中租赁物是否在店,书店中需要添加哪些比较热门的租赁物,为在激烈竞争市场中提供更加精确、及时的数据供决策层参考。整个系统共分六个模块:租赁物信息的输入、查询、显示所有租赁物的信息、借出、归还、租金。租赁物信息的输入:输入商店中所有图书和影碟的信息,并把租赁物的借出时间和归还时
3、间都赋值为零,借出时间为零表示该租赁物还在店内。查询:查询该租赁物的状态,共有三种状态,即:在店内,被借出,不存在。显示所有租赁物的信息:显示所有图书和影碟的信息。借出:输入借出信息,并进行相关的操作。归还:输入归还信息,并进行相关的操作。租金:计算租金。2.3 数据需求 一般用户信息=用户类的信息+押金会员用户信息=用户类的信息+入会费用+入会时间+折扣图书=租赁物类的信息+价格+作者影碟=租赁物类的信息+出版公司+影片数量 租金=折扣*天数*每天的租金*数量 第三章 系统设计3.1 系统总功能模块设计书店租赁管理系统是对租赁物的情况进行综合的管理。包括租赁物信息的输入、查询、显示所有租赁物
4、的信息、借出、归还、租金等六个功能。书店租赁管理系统的软件结构如图3.1所示。分工:莫雁滔:借出、归还、租金。邹海屏:输入、查询、显示。3.2 各子功能模块设计3.2.1借出(1)功能:查询想要借的租赁物的当前状态,当图书在店内是执行借书操作并输入借出时间以及借书人的信息。(2)程序流程图:借出模块的程序流程图如下图3.2所示。3.2.2归还(1)功能:查询想要还的租赁物的当前状态,当租赁物被借出时执行还书操作,并输入归还时间。(2)程序流程图:借出模块的程序流程图如下图3.3所示。3.2.3租金(1)功能:计算租赁物的租赁。(2)程序流程图:租金模块的程序流程图如下图3.4所示。3.3.1租
5、赁物信息不同租赁物公有信息为:租赁物编号,名称,购买时间,租金,借出时间,归还时间。用类表示租赁基类信息,用类表示图书派生类和影碟派生类的信息,如下面定义。class zulinwupublic: int number;/租赁物的编号 string mc;/名称 float time;/购买时间 float zujin;/租金 float time1;/ 借出时间; float time2; / 归还时间;;3.3.2图书信息图书信息包括从租赁物类继承来的信息和价格、作者。class book:virtual public zulinwu /书籍类public: float jiage;/价格
6、 string writer;/作者;3.3.3影碟信息影碟信息包括从租赁物类继承来的信息和出版公司、影片数量class film:virtual public zulinwu/影碟类public: string company;/出版公司 int num;/影片数量;第四章 系统测试4.1测试的目的通过测试发现软件错误:功能的完备性:检验程序功能是否达到用户预先制定的需求错误检查:检查程序潜在的错误,为软件可靠性与安全性的评估提供依据4.2测试手段 人工测试技术4.3测试用例序号测试子项输入/动作期望输出实际情况1借出输入编号为“1”的图书,该图书能查找到,当借出时间为零时,输出“你要借的书
7、已找到,还在店内”,并对该图书进行借出操作;当借出时间不为零时输出“你找的书已被借出”,并结束。输入编号为“2”的图书,该编号不能找到,就直接结束。条件满足时能执行借出操作;不满足时输出相应的提示。符合2 归还输入编号为“1”的图书,该图书能找到,当借出时间为零时,输出“该书还在商店,不能执行还操作”;当借出时间不为零时输出“你要还的书已被借出,可执行还操作”,并对该图书进行归还操作。输入编号为“2”的图书,编号不能找到,就直接结束。条件满足时能执行归还操作;不满足时输出相应的提示。符合3租金判断是否为会员,是会员输入“1”,不是会员输入“0”,不是会员不打折;如果是会员则根据充值的会费打折。
8、从归还模块调用接触时间和归还时间,得到出租时间,再由计算租金的公式得出租金,并显示租金。正确输出租金符合第五章 系统特点及关键技术5.1系统特点5.2.1输入模块 本模块的特点是租赁物的信息进行输入,首先输入图书的信息,继续就输“y”,结束就输“n”;然后输入影碟的信息,继续就输“y”,结束就输“n”,比较方便。case 1: cout输入图书信息:endl; for(i=0;i=99;i+) tsi.inputAllinfo(); a+; cout继续请输入y or Y,否则输入n or Nflag; if(flag=y|flag=Y) continue; if(flag=n|flag=N)
9、 break; temp3.writefile(E:data1.txt);cout输入影碟信息:endl;for(i=0;i=99;i+) ydi.inputAllinfo(); /输入影碟信息 b+; cout继续请输入y or Y,否则输入n or Nflag; if(flag=y|flag=Y) continue; if(flag=n|flag=N) break; temp4.writefile(E:data2.txt);5.2.2查询 本模块的特点是要查找图书时输入“t”,查找影碟输入“y”,然后输入编号,对该租赁物进行查找,找到时有分为在店内和被借出两种状态;没找到时会输出“你找的图
10、书不存在”。 case 2: coutn; coutflag; if(flag=t) coutbh; for(i=0;ia;i+) if(bh=tsi.number) cout图书显示为:endl; tsi.showAllinfo(); p+; symbol=tsi.time1; if(symbol!=0) cout你找的书已被借出:; else cout你找的书在店内:; break; if(p=0) printf(你找的图书不存在:); coutflag;if(flag=d) coutbh; for(i=0;ia;i+) if(bh=ydi.number) cout影碟显示为:endl;
11、ydi.showAllinfo(); q+; symbol=ydi.time1; if(symbol!=0) cout你找的影碟已被借出:; else cout你找的书在店内:; break; if(q=0) printf(你找的影碟不存在:); break; 5.2.3借出操作本模块的特点是输入想要借的租赁物的编号,如果编号不存在就结束;如果存在,且借出时间为零,则执行借出操作;借出时间不为零就输出“你找的租赁物被借出”并结束。case 4: coutn; coutflag; if(flag=t) coutbh; for(i=0;ia;i+) if(bh=tsi.number) symbol
12、=tsi.time1; if(symbol=0) cout你要借的书已找到,还在店内:n; coutr; tsi.time1=r; temp2i.inputNewinfo(); cout输入借书人信息:endl; coutflag; if(flag=p) py.inputAllinfo(); d=1; if(flag=h) hy.inputAllinfo(); d=hy.discount; g+; break; else cout你找的书已被借出:endl; coutflag; if(flag=d) coutbh; for(i=0;ib;i+) if(bh=ydi.number) symbol
13、=ydi.time1; if(symbol=0) cout你要借的影碟已找到,在店内:n; coutr; ydi.time1=r; temp2i.inputNewinfo(); if(g=0) cout输入借影碟人的信息:endl; coutflag; if(flag=p) py.inputAllinfo(); d=1; if(flag=h) hy.inputAllinfo(); d=hy.discount; break; else cout你找的已影碟被借出:endl; break; 5.2.4归还操作本模块的特点是输入想要归还的租赁物的编号,如果编号不存在就结束;如果存在,且借出时间不为零
14、,则执行归还操作;归还时间为零就输出“你找的租赁物还在店内,不能执行归还操作”并结束。case 5: coutn; coutflag; if(flag=t) coutbh; for(i=0;ia;i+) if(bh=tsi.number) symbol=tsi.time1; if(symbol!=0) cout你要还的书已被借出,可执行还操作:n; coutr; tsi.time2=r; t1=tsi.time1;/借出时间 t2=tsi.time2;/归还时间 tsi.time1=0; tsi.time2=0; break; else cout该书还在 商店,不能执行还操作:endl; br
15、eak; coutflag; if(flag=d) coutbh; for(i=0;ib;i+) if(bh=ydi.number) symbol=ydi.time1; if(symbol!=0) cout你要还的影碟已被借出,可执行还操作:endl; coutr; ydi.time2=r; t3=ydi.time1;/借出时间 t4=ydi.time2;/归还时间 ydi.time1=0; ydi.time2=0; break; else cout该影碟还在商店,不能执行还操作:endl; break; break; 5.2.5租金的计算本模块的特点是判断是否为会员,不是会员时不折;如果是会
16、员则根据充值的会费打折;然后通过归还模块调用接触时间和归还时间,得到出租时间,再由计算租金的公式得出租金。case 6: if(t2-t1)=0) m1=0; else t=t1; /计算图书的租金 t5=t*30+(t1-t)*100; t=t2; t6=t*30+(t2-t)*100; m1=d*e1*(t6-t5); if(t4-t3)=0) m2=0; else t=t3; /计算影碟的租金 t5=t*30+(t3-t)*100; t=t4; t6=t*30+(t4-t)*100; m2=d*e2*(t6-t5); m=m1+m2; /总租金 cout租金为:m; break; 结 论
17、本系统是一个面向书店管理,具有一定实用性的面向对象管理系统。它主要完成了书店功能,包括租赁物信息的输入、查询显示所有租赁物的信息、借出、归还、以及计算租金等。本系统采用当前流行的面向对象来完成整个系统的设计。系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,由于本人水平有限,还存在着许多不足之处。需要进行不断地补充和完善。参考文献1马石安 魏文平.面相对象程序设计教程 :c+语言描述. 清华大学出版社 .2007.82杨路明.C语言程序设计教程.北京邮电大学出版社.2010.123张乃孝.算法与数据结构.高等教育出版社.2006.1结束语这次这次课程设计让我熟练掌握了类的继承,派生,初步掌握了文件的读写,并且让我对与编写大程序的能力有较大的提升,同时也提高了我编写大程序时的全局思想能力,这次编程,我发现编写一些大程序对于提高编程能力有很大的帮助,能够把平时所学联系起来,对所学知识的真正理解有很大的帮助,这是我最大的收获。同时,这次编程让我发现自己还有不足之处,编写的程序比较乱,没有领会类的精髓,代码可读性不强,这是我目前需要改进的。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1