C++课程设计报告酒店客房管理系统Word格式.docx
- 文档编号:22510945
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:46
- 大小:308.07KB
C++课程设计报告酒店客房管理系统Word格式.docx
《C++课程设计报告酒店客房管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告酒店客房管理系统Word格式.docx(46页珍藏版)》请在冰豆网上搜索。
分按编号、类型、客户查找客房信息,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。
7.输出剩余客房函数;
输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。
由上述需求分析可得,系统的功能模块图如图1所示。
图1
2.具体设计及截屏图
1、类的设计
根据上述需求分析,有客房类和客户类。
(1)客户类
客户类中的主要成员有:
name为客户,ID为客户,money为客户订金,StayTime为将要入住客房时长。
(2)客房类
客房类中的主要成员有:
num是客房编号,Type是客房类型,Price是客房价格,HolterRoom()为客房类的构造函数,同时Customer类中的成员均是客房类的成员。
2.界面设计:
(1)主界面的设计
主界面中显示客房管理系统的全部信息,客房信息的录入,客人入住登记,客房信息的修改,客人退房结算,查询所有客房信息,查询(包括按房间号,按房间类型,按客户查询,同时还有输出所有空房信息),删除客房信息。
酒店客房管理系统如图1所示。
图2主界面
(2)分界面:
客房信息查询设计
分别实现按,按房间号和按房间类型查询客房信息的功能,还可实现输出所有空房信息的功能。
客房信息录入如图2所示。
图3录入客房信息的分界面
(4)分界面:
客房信息的修改的设计
提示根据编号寻找到客房并输出该客房容,然后询问用户是否要修改客房信息,修改界面如图所示。
图4修改客房信息的分界面
(5)分界面:
客房信息的删除的设计
提示根据编号寻找到客房并输出该客房容,然后询问用户是否要删除客房信息
,修改界面如图所示。
图5删除客房信息的分界面
(6)分界面:
剩余客房信息的查询的设计
在保存完所修改或删除的客房信息,查询剩余的客房信息,可浏览所有空房信息。
查询空房的信息界面如图6所示。
图6查询客房信息的分界面
(7)分界面:
所有信息的输出的设计
在排序完后的所有客房中,输出所有客房的信息,以检验客房的经营情况。
所有客房信息输出界面如图7所示。
图7所有客房的信息
4.关键代码分析
(1)系统的登录
在主函数中,输出客房信息系统的各功能提示。
选择需要执行功能的序号,由switch判断和选择所需要执行的功能。
选择1:
执行客房信息的录入;
选择2:
执行客人入住登记;
选择3:
执行教工客房信息的修改;
选择4:
执行客人退房结算;
选择5:
执行查询所有客房信息;
选择6:
执行查询;
选择7:
执行删除客房信息;
选择8:
退出系统;
主函数:
intmain()
{
HolterRoomRoom[200];
//创建客房对象数组
inttop;
HolterRoomb;
top=-1;
fstreamfile("
Room.txt"
ios:
:
in);
while
(1)
{
file.read((char*)&
b,sizeof(b));
if(!
file)break;
top++;
Room[top]=b;
}
file.close();
//读取文件夹Room.txt中的数据
while
(1)
cout<
<
"
\n\n客房管理系统\n\n"
;
----------------------------------\n\n"
1.客房信息的录入\n\n"
2.客人入住登记\n\n"
3.客房信息的修改\n\n"
4.客人退房结算\n\n"
5.查询所有客房信息\n\n"
6.查询系统\n\n"
7.删除客房信息\n\n"
8.退出系统\n\n"
cout<
请选择:
intchoose=0;
cin>
>
choose;
system("
cls"
);
switch(choose)//用户的选择
{
case1:
set_HolterRoom_info(Room);
break;
//输入客房信息
case2:
set_Customer_info(Room);
break;
//客人入住登记
case3:
Change_HolterRoom_info(Room);
//修改客房信息
case4:
SetCount(Room);
//客户退房
case5:
PrintAll(Room);
//查询所有客房信息
case6:
Find_choose(Room);
//查询
case7:
Delete_HolterRoom(Room);
//删除客房信息
case8:
Write(Room);
Save_HolterRoom_info(Room);
Save_Customer_info(Room);
exit(0);
//退出
default:
}
}
return0;
}
在读取数据时,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,既实现了程序的多次可持续地使用,又有利于后面的信息修改、删除等功能。
voidRead(HolterRoom*Room)//读取数据库
inttop;
fstreamfile("
//创建一个输入文件流对象,读取文件夹Room.txt中的数据。
};
//关闭文件
(2)信息的添加
客房信息的录入,创建HolterRoom类和Room对象数组,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间容及个人的入住有效期。
voidset_HolterRoom_info(HolterRoom*Room)
if(Room[0].num==0)
{
intsize;
暂无房间信息,请添加!
endl;
staticintNumber=700;
请输入要添加的房间数:
size;
for(inti=0;
i<
i++)
Room[i].num=Number++;
房间:
Room[i].num;
cout<
房间类型:
cin>
Room[i].Type;
房间价格:
Room[i].Price;
endl<
};
客房信息录入成功!
else
stringP;
客房信息已有,是否要添加房间?
(Y/N)"
P;
if(P=="
Y"
)
add_HolterRoom_info(Room);
elseif(P=="
N"
已取消房间添加."
elsecout<
此操作非法!
pause"
};
(3)信息的删除
删除客房信息,按要求提示输入要删除客房的房间编号,通过for循环和if语句寻找到要删除的客房,并显示其信息,然后询问用户是否要删除客房信息,通过
if语句进行判断,若输入“Y”则删除,并显示删除成功,若为“N”
,则取消删除,输入其他均显示“非法操作!
”。
voidDelete_HolterRoom(HolterRoom*Room)
{
intNum;
请输入要删除的房间号:
Num;
30;
if(Room[i].num==Num)
stringB;
cout<
房间已找到:
房间类型:
Room[i].Type<
房间价格:
Room[i].Price<
客户信息:
客户:
Room[i].ID<
客户:
Room[i].name<
订金"
Room[i].money<
确定要删除客房信息?
cin>
B;
if(B=="
{
Room[i].Type="
null"
Room[i].num=0;
Room[i].Price="
0"
Room[i].money=0;
Room[i].StayTime=0;
Room[i].name="
无"
Room[i].ID="
cout<
删除成功!
elseif(B=="
取消删除。
elsecout<
非法的操作!
system("
};
(4)信息的修改
修改客房信息,按要求提示输入要修改客房的房间编号,通过for循环和if语句寻找到要修改的客房,并显示其信息,然后询问用户是否要修改客房信息,通过
if语句进行判断,若输入“Y”则进行逐条修改,若为“N”
,则取消修改,输入其他均显示“非法操作!
voidChange_HolterRoom_info(HolterRoom*Room)
请输入要修改的房间:
string_name;
string_ID;
int_money;
int_StayTime;
string_Price;
string_Type;
intt=0;
if(Num==Room[i].num)
Room[i].name;
Room[i].ID;
订金:
Room[i].money;
将于"
Room[i].StayTime<
天后退房。
房间信息已找到!
是否确定要修改房间信息?
stringp;
p;
if(p=="
{
_name;
Room[i].name=_name;
_ID;
Room[i].ID=_ID;
_money;
Room[i].money=_money;
退房时间延长至"
cin>
_StayTime;
天后"
Room[i].StayTime=_StayTime;
修改成功!
}
elseif(p=="
)cout<
已取消修改。
elsecout<
操作非法!
t++;
elseif(t==0&
&
i==29&
Room[i].Type=="
查无此房!
system("
5.测试
程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
原程序:
voidadd_HolterRoom_info(HolterRoom*Room)//添加房间
stringk;
do{
inti=5;
Room[i].num=Number++;
添加成功!
是否要继续添加?
(Y/N):
k;
i++;
}while(k=="
if(k=="
){}
elsecout<
编译成功后开始运行,信息录入后,第一次调用函数可以正确添加房间信息,但第二次调用后,会覆盖第一次的记录,无确添加房间;
经思索后,发现加入个for循环,并对每一房间进行判断,确定为未赋值再进行房间的添加便可。
voidadd_HolterRoom_info(HolterRoom*Room)
stringP;
intNumber=700;
for(inti=0;
if(Room[i].num==0)
房间添加成功,是否继续添加?
(Y/N):
elseNumber++;
}while(P=="
已取消添加。
6.课题总结与体会
短学期的课程设计是一次非常珍贵的机会,这是一次可以让我们所学的理论与实
际相结合的机会。
通过这次比较完整的一个程序的设计,我走出了纯理论的学习,
从一种全新的角度去学习。
其实个人而言,我体会较深的一点是团队互相帮助学习的过程,自己看书学
习的经验,以及从网上以及其他各种途径获得信息和知识的经验。
理论与实际相结
合的设计,锻炼了我综合运用所学的基础知识,解决实际问题的能力,同时也提高
我查阅文献资料、对程序整体的把握等其他能力水平。
而且通过对整体的掌控,对
局部的取舍,都使我的能力得到了锻炼,我的各方面经验都得到了极大的丰富。
在面对各种陌生知识的时候,队友的耐心与任性,对于知识的渴求,对于工作的
专注,极大程度上鼓舞了我。
我们在交流中,迸发出了很多设计灵感,互相建议改
进的过程中,我们分别从各个方面共同改进着,这个已经不能仅仅称作课程设计的
作品。
从知识获得方面来说,各种已经学习到的C++知识以及各种从网上搜索来的案例,
我们都是随着设计的不断深入而不断熟悉的。
和老师以及同学的沟通交流更使我对
程序整体的规划与设计有了新的认识,也对自己提出了新的要求。
提高是有限的但
提高也是全面的。
正是这一次设计让我积累了许多实际经验。
也必然会让我在未来
的工作学习中表现出更高的耐力、理解力、实践力。
顺利如期的完成本次课程设计
给了我很大的信心,但是也为我指出很多不足的地方。
学习其实就是一个不断完善
的过程,正视自己的不足之处。
在以后的工作和学习中不断的弥补这些不足之处,
在以后的生活中也要保持同样的态度,不断地完善自己。
7.参考文献
【1】莉.《C++教程》.人民邮电.
【2】谭浩强.《C语言程序设计》.清华大学.
【3】纪新.《VisualC++使用速成》.清华大学.
8.源代码
//客房管理系统主要实现的功能包括:
/*系统的登录信息的添加信息的删除信息的修改*/
#include<
iostream>
string>
fstream>
usingnamespacestd;
constintMaxb=30;
classCustomer
public:
stringname;
stringID;
intmoney;
intStayTime;
Customer(){};
classHolterRoom:
publicCustomer
public:
intnum;
stringPrice;
stringType;
HolterRoom()
num=0;
Price="
Type="
money=0;
StayTime=0;
name="
ID="
~HolterRoom(){};
ofstreamStr("
客房信息.txt"
ios_base:
trunc);
ofstreamC("
客户信息.txt"
voidset_Customer_info(HolterRoom*Room);
voidset_HolterRoom_info(HolterRoom*Room);
voidfind_HolterRoomByNum(HolterRoom*Room);
voidDisplay_HolterRoom_info(HolterRoom*Room);
voidadd_HolterRoom_info(HolterRoom*Room);
voidfind_HolterRoomByName(HolterRoom*Room);
voidfind_HolterRoomByType(HolterRoom*Room);
voidPrintAll(HolterRoom*Room);
voidChange_HolterRoom_info(HolterRoom*Room);
voidSetCount(HolterRoom*Room);
voidDelete_HolterRoom(HolterRoom*Room);
voidFind_choose(HolterRoom*Room);
voidSave_HolterRoom_info(HolterRoom*Room);
voidSave_Customer_info(HolterRoom*Room);
voidWrite(HolterRoom*Room);
voidRead(HolterRoom*Room);
vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 报告 酒店客房 管理 系统