酒店管理系统代码Word格式.docx
- 文档编号:18680551
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:15
- 大小:17.05KB
酒店管理系统代码Word格式.docx
《酒店管理系统代码Word格式.docx》由会员分享,可在线阅读,更多相关《酒店管理系统代码Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
//房间信息
}Order;
typedefstructHotelInfomation
intcheckinAmount;
//已入住房数
intsingleRemainAmount;
//单人房剩余房数
intdoubleRemainAmount;
//双人房剩余房数
intbigRemainAmount;
//大床房剩余房数
}HotelInfo;
//--------------------------------枚举类型---------------------------
enum{MainUI,HotelInfoUI,CheckinUI,CheckinResultUI,OrderUI,CheckOutUI,Exit};
//GUI
enum{Single,Double,Big};
//RoomType
enum{Hour,Day};
//countType
//--------------------------------全局变量--------------------------
intGUI=MainUI;
Order*orderList[100];
//订单数组
Room*roomList[100];
//房间数组
HotelInfo*hotelInfo=NULL;
//酒店房间信息
//-------------------------------函数声明----------------------------
voidinitiallizeRoomList();
voidinsertToOrderList(Order*order);
Room*getRoomByType(introomType);
Order*getOrderByRoomNum(introomNum);
voidshowMainUI();
voidshowHotelInfoUI();
voidshowCheckinUI();
voidshowCheckinResultUI();
voidshowOrderUI();
voidshowCheckOutUI();
//-------------------------------Main函数----------------------------
voidmain()//主函数
//初始化酒店房间信息
hotelInfo=(HotelInfo*)malloc(sizeof(HotelInfo));
hotelInfo->
singleRemainAmount=20;
doubleRemainAmount=40;
bigRemainAmount=40;
checkinAmount=0;
//初始化房间列表
initiallizeRoomList();
//界面显示
while(GUI!
=Exit)
{
switch(GUI)
{
caseMainUI:
showMainUI();
break;
caseHotelInfoUI:
showHotelInfoUI();
caseCheckinUI:
showCheckinUI();
caseCheckinResultUI:
showCheckinResultUI();
caseOrderUI:
showOrderUI();
caseCheckOutUI:
showCheckOutUI();
default:
}
}
}
//-------------------------------函数定义----------------------------
voidinitiallizeRoomList()
//房间数组初始化,初始化的结果是让roomList的数组有100个room指针,而且设置了相应的值
inti;
Room*newRoom=NULL;
for(i=0;
i<
20;
i++)//单人房房间信息初始化
newRoom=(Room*)malloc(sizeof(Room));
roomList[i]=newRoom;
roomList[i]->
checked=0;
price=110;
roomNum=i+1;
roomType=Single;
for(i=20;
60;
i++)//双人房房间信息初始化
price=180;
roomType=Double;
for(i=60;
100;
i++)//大床房房间信息初始化
roomType=Big;
//通过所选择的房型获取空房间,获取房间后将房间信息改为已入住,并减少相应房型的剩余房间数
Room*getRoomByType(introomType)
switch(roomType)
caseSingle:
for(i=0;
i++)
if(roomList[i]->
checked==0)
{
roomList[i]->
checked=1;
hotelInfo->
singleRemainAmount--;
checkinAmount++;
returnroomList[i];
}
break;
caseDouble:
for(i=20;
doubleRemainAmount--;
caseBig:
for(i=60;
bigRemainAmount--;
//将订单放入订单列表
voidinsertToOrderList(Order*order)
for(i=0;
if(orderList[i]==NULL)
orderList[i]=order;
//通过房号查询订单
Order*getOrderByRoomNum(introomNum)
if(orderList[i]->
room->
roomNum==roomNum)
returnorderList[i];
voidshowMainUI()
//显示主界面,并接受输入
intchooseNum;
system("
cls"
);
printf("
\n\n==========================酒店房间登记与计费管理管理系统=======================\t\n\n\n"
*\t\t\t\t1.入住登记\t\t\t\t*\n"
*\t\t\t\t2.查询入住情况\t\t\t*\n"
*\t\t\t\t3.查询当前费用\t\t\t*\n"
*\t\t\t\t4.结账退房\t\t\t\t*\n"
*\t\t\t\t5.退出程序\t\t\t\t*\n\n\n"
请输入相应编号进入菜单\t"
//接受输入
scanf("
%d"
&
chooseNum);
switch(chooseNum)
case1:
GUI=HotelInfoUI;
case2:
case3:
GUI=OrderUI;
case4:
case5:
Sleep(3000);
GUI=Exit;
default:
voidshowHotelInfoUI()
\n\n=========================酒店入住情况查询菜单=======================\t\n\n\n\n"
*\t\t\t入住房间数:
%d\t\t\t\t*\n"
hotelInfo->
checkinAmount);
*\t\t\t剩余房间数:
\t"
单人房:
%d\t\t*\n"
hotelInfo->
singleRemainAmount);
*\t\t\t\t\t双人房:
doubleRemainAmount);
*\t\t\t\t\t大床房:
%d\t\t*\n\n"
bigRemainAmount);
\n\n=========================酒店入住情况查询菜单=======================\t\n\n\n"
按0:
返回\n"
按1:
登记入住\n"
case0:
GUI=MainUI;
GUI=CheckinUI;
voidshowCheckinUI()
Order*newOrder;
Room*newRoom=NULL;
//填写一个新的入住信息
CheckinInfo*newCheckinInfo=NULL;
introomTypeNum;
intcountTypeNum;
time_ttimep;
\n\n===========================酒店入住登记菜单=========================\t\n\n\n"
newCheckinInfo=(CheckinInfo*)malloc(sizeof(CheckinInfo));
*\t\t请输入姓名:
"
%s"
&
(newCheckinInfo->
name));
*\t\t请输入证件号:
id));
*\t\t请选择入住房型:
\n"
\t\t\t1.单人房\n\t\t\t2.双人房\n\t\t\t3.大床房\n"
(roomTypeNum));
switch(roomTypeNum)//通过输入的数字对应房型
newCheckinInfo->
roomType=Single;
roomType=Double;
roomType=Big;
*\t\t请选择计费方式:
\t\t\t1.按小时计费;
\n\t\t\t2.按天数计费\n"
//通过输入的数字对应计费方式
countTypeNum);
switch(countTypeNum)
countType=Hour;
countType=Day;
//生成一个新的订单
newOrder=(Order*)malloc(sizeof(Order));
newOrder->
checkinInfo=newCheckinInfo;
date=time(0);
switch(newCheckinInfo->
roomType)//通过房型获取房间
newRoom=getRoomByType(Single);
newRoom=getRoomByType(Double);
caseBig:
newRoom=getRoomByType(Big);
newOrder->
room=newRoom;
insertToOrderList(newOrder);
房间号为:
%d\n"
newOrder->
roomNum);
GUI=CheckinResultUI;
voidshowCheckinResultUI()
\n\n=========================酒店入住登记确认菜单=======================\t\n\n\n"
\t\t\t************\t\t\t\t\n"
\t\t\t*登记成功*\t\t\t\t\n"
\t\t\t************\t\t\t\t\n\n"
GUI=CheckinResultUI;
voidshowOrderUI()
{
intamount;
Order*theOrder=NULL;
\n\n=========================酒店房间信息查询菜单=======================\t\n\n\n"
请输入房间号:
if(roomNum<
0||roomNum>
100)
\n输入有误请重新输入"
);
GUI=OrderUI;
else
theOrder=getOrderByRoomNum(roomNum);
printf("
房型:
switch(theOrder->
roomType)
caseSingle:
printf("
单人房\n"
break;
caseDouble:
双人房\n"
caseBig:
大床房\n"
计费方式:
checkinInfo->
countType)
caseHour:
小时计费\n"
amount=(time(0)-theOrder->
date)/3600+1;
已入住时间:
%d小时\n"
amount);
caseDay:
天计费\n"
date)/(3600*24)+1;
%d天\n"
房价:
theOrder->
price);
应支付:
%d\n\n"
amount*theOrder->
按0:
返回\n"
按1:
结账退房\n"
scanf("
switch(chooseNum)
case0:
GUI=MainUI;
case1:
GUI=CheckOutUI;
voidshowCheckOutUI()
\n\n=========================酒店结账退房确认菜单=======================\t\n\n\n"
\t\t\t\t************\t\t\t\t\n"
\t\t\t\t*结账成功*\t\t\t\t\n"
\t\t\t\t************\t\t\t\t\n\n"
返回"
GUI=CheckOutUI;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 代码