书店租赁管理系统设计说明书Word下载.docx
《书店租赁管理系统设计说明书Word下载.docx》由会员分享,可在线阅读,更多相关《书店租赁管理系统设计说明书Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
![书店租赁管理系统设计说明书Word下载.docx](https://file1.bdocx.com/fileroot1/2022-12/13/b2621730-aca9-4470-a767-75d1ae0022a6/b2621730-aca9-4470-a767-75d1ae0022a61.gif)
3.1系统总功能模块设计
书店租赁管理系统是对租赁物的情况进行综合的管理。
包括租赁物信息的输入、查询、显示所有租赁物的信息、借出、归还、租金等六个功能。
书店租赁管理系统的软件结构如图3.1所示。
分工:
莫雁滔:
借出、归还、租金。
邹海屏:
输入、查询、显示。
3.2各子功能模块设计
3.2.1借出
(1)功能:
查询想要借的租赁物的当前状态,当图书在店内是执行借书操
作并输入借出时间以及借书人的信息。
(2)程序流程图:
借出模块的程序流程图如下图3.2所示。
3.2.2归还
查询想要还的租赁物的当前状态,当租赁物被借出时执行还书操作,并输入归还时间。
借出模块的程序流程图如下图3.3所示。
3.2.3租金
计算租赁物的租赁。
租金模块的程序流程图如下图3.4所示。
3.3.1租赁物信息
不同租赁物公有信息为:
租赁物编号,名称,购买时间,租金,借出时间,归还时间。
用类表示租赁基类信息,用类表示图书派生类和影碟派生类的信息,如下面定义。
classzulinwu
{public:
intnumber;
//租赁物的编号
stringmc;
//名称
floattime;
//购买时间
floatzujin;
//租金
floattime1;
//借出时间;
floattime2;
//归还时间;
};
3.3.2图书信息
图书信息包括从租赁物类继承来的信息和价格、作者。
classbook:
virtualpubliczulinwu//书籍类
{
public:
floatjiage;
//价格
stringwriter;
//作者
3.3.3影碟信息
影碟信息包括从租赁物类继承来的信息和出版公司、影片数量
classfilm:
virtualpubliczulinwu//影碟类
stringcompany;
//出版公司
intnum;
//影片数量
第四章系统测试
4.1测试的目的
通过测试发现软件错误:
功能的完备性:
检验程序功能是否达到用户预先制定的需求
错误检查:
检查程序潜在的错误,为软件可靠性与安全性的评估提供依据
4.2测试手段
人工测试技术
4.3测试用例
序号
测试子项
输入/动作
期望输出
实际情况
1
借出
①输入编号为“1”的图书,该图书能查找到,当借出时间为零时,输出“你要借的书已找到,还在店内”,并对该图书进行借出操作;
当借出时间不为零时输出“你找的书已被借出”,并结束。
②输入编号为“2”的图书,该编号不能找到,就直接结束。
条件满足时能执行借出操作;
不满足时输出相应的提示。
符合
2
归还
①输入编号为“1”的图书,该图书能找到,当借出时间为零时,输出“该书还在商店,不能执行还操作”;
当借出时间不为零时输出“你要还的书已被借出,可执行还操作”,并对该图书进行归还操作。
②输入编号为“2”的图书,编号不能找到,就直接结束。
条件满足时能执行归还操作;
3
租金
①判断是否为会员,是会员输入“1”,不是会员输入“0”,不是会员不打折;
如果是会员则根据充值的会费打折。
②从归还模块调用接触时间和归还时间,得到出租时间,再由计算租金的公式得出租金,并显示租金。
正确输出租金
第五章系统特点及关键技术
5.1系统特点
5.2.1输入模块
本模块的特点是租赁物的信息进行输入,首先输入图书的信息,继续就输“y”,结束就输“n”;
然后输入影碟的信息,继续就输“y”,结束就输“n”,比较方便。
case1:
{
cout<
<
"
输入图书信息:
endl;
for(i=0;
i<
=99;
i++)
ts[i].inputAllinfo();
a++;
继续请输入'
y'
or'
Y'
否则输入'
n'
or'
N'
cin>
>
flag;
if(flag=='
y'
||flag=='
)continue;
)break;
}
temp3.writefile("
E:
\\data1.txt"
);
cout<
输入影碟信息:
for(i=0;
yd[i].inputAllinfo();
//输入影碟信息
b++;
temp4.writefile("
\\data2.txt"
5.2.2查询
本模块的特点是要查找图书时输入“t”,查找影碟输入“y”,然后输入编号,对该租赁物进行查找,找到时有分为在店内和被借出两种状态;
没找到时会输出“你找的图书不存在”。
case2:
{cout<
\n"
;
请输入flag的值,flag='
t'
时,查找图书:
)
请输入图书的编号:
bh;
for(i=0;
a;
{if(bh==ts[i].number)
图书显示为:
ts[i].showAllinfo();
p++;
symbol=ts[i].time1;
if(symbol!
=0)cout<
你找的书已被借出:
elsecout<
你找的书在店内:
break;
}
if(p==0)printf("
你找的图书不存在:
}
flag='
d'
时,查找影碟:
if(flag=='
请输入影碟的编号:
{if(bh==yd[i].number)
影碟显示为:
yd[i].showAllinfo();
q++;
symbol=yd[i].time1;
你找的影碟已被借出:
elsecout<
if(q==0)printf("
你找的影碟不存在:
5.2.3借出操作
本模块的特点是输入想要借的租赁物的编号,如果编号不存在就结束;
如果存在,且借出时间为零,则执行借出操作;
借出时间不为零就输出“你找的租赁物被借出”并结束。
case4:
if(symbol==0)
{cout<
你要借的书已找到,还在店内:
输入借书日期:
cin>
r;
ts[i].time1=r;
temp2[i].inputNewinfo();
cout<
输入借书人信息:
普通用户输'
p'
会员用户输入'
h'
:
if(flag=='
{py.inputAllinfo();
d=1;
}
{
hy.inputAllinfo();
d=hy.discount;
g++;
break;
}
请输入flag的值,flag='
b;
你要借的影碟已找到,在店内:
输入借影碟的日期:
yd[i].time1=r;
if(g==0)
{cout<
输入借影碟人的信息:
你找的已影碟被借出:
5.2.4归还操作
本模块的特点是输入想要归还的租赁物的编号,如果编号不存在就结束;
如果存在,且借出时间不为零,则执行归还操作;
归还时间为零就输出“你找的租赁物还在店内,不能执行归还操作”并结束。
case5:
请输入要还的图书的编号:
=0)
你要还的书已被借出,可执行还操作:
请输入还书日期:
ts[i].time2=r;
t1=ts[i].time1;
//借出时间
t2=ts[i].time2;
//归还时间
ts[i].time1=0;
ts[i].time2=0;
else
{cout<
该书还在商店,不能执行还操作:
break;
请输入要还影碟的编号:
你要还的影碟已被借出,可执行还操作:
请输入还碟日期:
yd[i].time2=r;
t3=yd[i].time1;
t4=yd[i].time2;
yd[i].time1=0;
yd[i].time2=0;
该影碟还在商店,不能执行还操作:
5.2.5租金的计算
本模块的特点是判断是否为会员,不是会员时不折;
如果是会员则根据充值的会费打折;
然后通过归还模块调用接触时间和归还时间,得到出租时间,再由计算租金的公式得出租金。
case6:
{
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;
t=t3;
//计算影碟的租金
t5=t*30+(t3-t)*100;
t=t4;
t6=t*30+(t4-t)*100;
m2=d*e2*(t6-t5);
m=m1+m2;
//总租金
租金为:
m;
}
结论
本系统是一个面向书店管理,具有一定实用性的面向对象管理系统。
它主要完成了书店功能,包括租赁物信息的输入、查询显示所有租赁物的信息、借出、归还、以及计算租金等。
本系统采用当前流行的面向对象来完成整个系统的设计。
系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,由于本人水平有限,还存在着许多不足之处。
需要进行不断地补充和完善。
参考文献
[1]马石安魏文平.面相对象程序设计教程:
c++语言描述.清华大学出版社.2007.8
[2]杨路明.C语言程序设计教程.北京邮电大学出版社.2010.12
[3]张乃孝.算法与数据结构.高等教育出版社.2006.1
结束语
这次这次课程设计让我熟练掌握了类的继承,派生,初步掌握了文件的读写,并且让我对与编写大程序的能力有较大的提升,同时也提高了我编写大程序时的全局思想能力,这次编程,我发现编写一些大程序对于提高编程能力有很大的帮助,能够把平时所学联系起来,对所学知识的真正理解有很大的帮助,这是我最大的收获。
同时,这次编程让我发现自己还有不足之处,编写的程序比较乱,没有领会类的精髓,代码可读性不强,这是我目前需要改进的。