酒店管理系统代码.docx
- 文档编号:7228819
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:16
- 大小:42.88KB
酒店管理系统代码.docx
《酒店管理系统代码.docx》由会员分享,可在线阅读,更多相关《酒店管理系统代码.docx(16页珍藏版)》请在冰豆网上搜索。
酒店管理系统代码
酒店管理系统代码
#include
#include
//
结构
typedefstructCheckinInformation
{
charname[10];
//
intid;
//
件号
introomType;
//
intcountType;
//
}Checkinlnfo;
#inelude
#inelude
#inelude
typedefstructHotelRoom
{
姓名
证
房型
计费方式
introomType;
//
房型
introomNum;//房号
intchecked;//入住情况
intprice;//房价
}Room;
typedefstructRoomOrder
{
CheckinInfo*checkinInfo;//息
long
//入住时间
Room*room;//
房间信息
}Order;
入住信
date;
typedefstructHotelInfomation{
int
//已入住房数
checkinAmount;
intsingleRemainAmount;
//
房剩余房数
intdoubleRemainAmount;//
双人房
剩余房数
房剩余房数
}Hotellnfo;
型enum
{MainUI,HotelInfoUI,CheckinUI,CheckinResultUI,0rderUI,Check0utUI,Exit};〃GUIenum{Single,Double,Big};//RoomTypeenum{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(Hotellnfo));
hotellnfo->singleRemainAmount=20;hotellnfo->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=O;roomList[i]->price=11O;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
■
J
hotelInfo->checkinAmount++;returnroomList[i];
}
}
break;
caseDouble:
for(i=20;i<60;i++)if(roomList[i]->checked==0)
{
roomList[i]->checked=1;
hotellnfo->doubleRemainAmount
hotellnfo->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->roomNumroomNum)
{
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");
//接受输入
seanf("%d",&chooseNum);
switch(chooseNum)
{
case1:
GUI=HotellnfoUI;break;
case2:
GUI=HotellnfoUI;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",
hotellnfo->checkinAmount);
printf("*\t\t\t剩余房间数:
\t");
printf("单人
房:
%d\t\t*\n",hotellnfo->singleRemainAmount);
printf("*\t\t\t\t\t双人
房:
%d\t\t*\n",hotellnfo->doubleRemainAmount);
printf("*\t\t\t\t\t大床
房:
%d\t\t*\n\n",hotellnfo->bigRemainAmount);
printf("\n\n=========================酒店入住情况查询菜单=======================\t\n\n\n");
printf("按0:
返回\n");
printf("按1:
登记入住\n");
seanf("%d",&chooseNum);
switch(chooseNum)
{
case0:
GUI=MainUI;
break;
case1:
GUI=CheckinUI;
break;
default:
GUI=HotelInfoUI;
break;
}
}
voidshowCheckinUI()
{
Order*newOrder;
Room*newRoom=NULL;
//填写一个新的入住信息
CheckinInfo*newCheckinlnfo=NULL;
introomTypeNum;
intcountTypeNum;
time_ttimep;
system("cls");
printf("\n\n===========================酒店入住登记菜单=========================\t\n\n\n");
newCheckinInfo=(CheckinInfo
*)malloc(sizeof(CheckinInfo));
printf("*\t\t请输入姓名:
");
scanf("%s",&(newCheckinlnfo->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:
newCheckinlnfo->roomType=Single;break;
case2:
newCheckinlnfo->roomType=Double;break;
case3:
newCheckinlnfo->roomType=Big;break;
default:
newCheckinlnfo->roomType=Single;break;
}
printf("*\t\t请选择计费方式:
\n");
printf("\t\t\t1.按小时计费;\n\t\t\t2.
按天数计费\n");//通过输入的数字对应计费方式
seanf("%d",&countTypeNum);
switch(countTypeNum)
{
case1:
newCheckinInfo->countType=Hour;break;
case2:
newCheckinInfo->countType=Day;break;
}
printf("\n\n===========================酒店入住登记菜单=========================\t\n\n\n");
//生成一个新的订单
newOrder=
(Order*)malloc(sizeof(Order));
newOrder->checkinInfo=newCheckinInfo;
newOrder->date=time(0);
switch(newCheckinlnfo->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\n"
printf("\t\t\t*登记成功*\t\t\t\t\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->checkinlnfo->countType
)
{
caseHour:
printf("小时计费\n");
amount=(time(0)-theOrder->date)
/3600+1;
printf("已入住时间:
%d小时
\n",amount);
break;
caseDay:
printf("天计费\n");
amount=(time(0)-theOrder->date)
/(3600*24)+1;
printf("已入住时间:
%d天\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=========================
酒店结账退房确认菜单
printf("\t\t\t\t*
***********
\t\t\t\t\n"
=======================\t\n\n\n");
);
结账成功
printf("\t\t\t\t*
*\t\t\t\t\n");
n");
printf("\n\n=========================酒店结账退房确认菜单=======================\t\n\n\n");
printf("按0:
返回");
seanf("%d",&chooseNum);
switch(chooseNum)
{
case0:
GUI=MainUI;
break;
default:
GUI=CheckOutUI;
break;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 代码