酒店管理系统代码.docx

上传人:b****5 文档编号:11616711 上传时间:2023-03-28 格式:DOCX 页数:16 大小:17.12KB
下载 相关 举报
酒店管理系统代码.docx_第1页
第1页 / 共16页
酒店管理系统代码.docx_第2页
第2页 / 共16页
酒店管理系统代码.docx_第3页
第3页 / 共16页
酒店管理系统代码.docx_第4页
第4页 / 共16页
酒店管理系统代码.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

酒店管理系统代码.docx

《酒店管理系统代码.docx》由会员分享,可在线阅读,更多相关《酒店管理系统代码.docx(16页珍藏版)》请在冰豆网上搜索。

酒店管理系统代码.docx

酒店管理系统代码

#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};//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;

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;

}

printf("\n\n===========================酒店入住登记菜单=========================\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("已入住时间:

%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=========================酒店结账退房确认菜单=======================\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;

}

}

 

Welcome!

!

!

欢迎您的下载,

资料仅供参考!

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1