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