1、酒店管理系统代码#include #include #include#include#include/-构造定义-typedef struct CheckinInformation char name10; / int id; /证件号int roomType; /房型int countType; /计费方式CheckinInfo;typedef struct HotelRoom int roomType; /房型int roomNum; /房号int checked; /入住情况int price; /房价Room;typedef struct RoomOrder CheckinInfo *
2、checkinInfo; /入住信息long date; /入住时间Room * room; /房间信息Order;typedef struct HotelInfomation int checkinAmount; /已入住房数int singleRemainAmount; /单人房剩余房数int doubleRemainAmount; /双人房剩余房数int bigRemainAmount; /大床房剩余房数HotelInfo;/-枚举类型-enum MainUI,HotelInfoUI,CheckinUI,CheckinResultUI,OrderUI,CheckOutUI,Exit;/G
3、UIenum Single,Double,Big;/Room Typeenum Hour,Day;/countType/-全局变量-int GUI = MainUI;Order* orderList100; /订单数组Room* roomList100; /房间数组HotelInfo * hotelInfo = NULL;/酒店房间信息/-函数声明-void initiallizeRoomList();void insertToOrderList(Order * order);Room* getRoomByType(int roomType);Order* getOrderByRoomNum(
4、int roomNum);void showMainUI();void showHotelInfoUI();void showCheckinUI();void showCheckinResultUI();void showOrderUI();void showCheckOutUI();/-Main函数-void main() /主函数/初始化酒店房间信息hotelInfo = (HotelInfo *)malloc(sizeof(HotelInfo); hotelInfo - singleRemainAmount = 20; hotelInfo - doubleRemainAmount=40;
5、 hotelInfo - bigRemainAmount=40; hotelInfo - checkinAmount=0; /初始化房间列表initiallizeRoomList(); /界面显示while(GUI != Exit) switch(GUI) case MainUI: showMainUI(); break; case HotelInfoUI: showHotelInfoUI(); break; case CheckinUI: showCheckinUI(); break; case CheckinResultUI: showCheckinResultUI(); break; c
6、ase OrderUI: showOrderUI(); break; case CheckOutUI: showCheckOutUI(); break; default: break; /-函数定义-void initiallizeRoomList() /房间数组初始化,初始化的结果是让roomList的数组有100个room指针,而且设置了相应的值int i; Room*newRoom=NULL; for(i=0;ichecked=0; roomListi-price=110; roomListi-roomNum=i+1; roomListi-roomType=Single; for(i=2
7、0;ichecked=0; roomListi-price=180; roomListi-roomNum=i+1; roomListi-roomType=Double; for(i=60;ichecked=0; roomListi-price=180; roomListi-roomNum=i+1; roomListi-roomType=Big; /通过所选择的房型获取空房间,获取房间后将房间信息改为已入住,并减少相应房型的剩余房间数Room* getRoomByType(int roomType) int i; switch(roomType) case Single: for(i=0;ich
8、ecked = 0) roomListi-checked=1; hotelInfo-singleRemainAmount - ; hotelInfo-checkinAmount+; return roomListi; break; case Double: for(i=20;ichecked = 0) roomListi-checked=1; hotelInfo-doubleRemainAmount - ; hotelInfo-checkinAmount+; return roomListi; break; case Big: for(i=60;ichecked = 0) roomListi-
9、checked=1; hotelInfo-bigRemainAmount -; hotelInfo-checkinAmount+; return roomListi; break; /将订单放入订单列表void insertToOrderList(Order * order) int i; for( i = 0;i100;i+) if( orderListi =NULL ) orderListi = order; break; /通过房号查询订单Order* getOrderByRoomNum(int roomNum) int i; for(i=0;iroom-roomNum = roomNu
10、m) return orderListi; void showMainUI() /显示主界面,并承受输入int chooseNum; system(cls); printf(nn=酒店房间登记与计费管理管理系统=tnnn); printf(*tttt1. 入住登记 tttt*n); printf(*tttt2. 查询入住情况 ttt*n); printf(*tttt3. 查询当前费用 ttt*n); printf(*tttt4. 结账退房 tttt*n); printf(*tttt5. 退出程序 tttt*nnn); printf(nn=酒店房间登记与计费管理管理系统=tnnn); print
11、f(请输入相应编号进入菜单t); /承受输入scanf(%d,&chooseNum); switch(chooseNum) case 1: GUI = HotelInfoUI; break; case 2: GUI = HotelInfoUI; break; case 3: GUI = OrderUI; break; case 4: GUI = OrderUI; break; case 5: Sleep(3000); GUI = Exit; break; default: break; void showHotelInfoUI() int chooseNum; system(cls); pri
12、ntf(nn=酒店入住情况查询菜单=tnnnn); printf(*ttt入住房间数: %dtttt*n, hotelInfo-checkinAmount); printf(*ttt剩余房间数: t); printf(单人房:%dtt*n,hotelInfo-singleRemainAmount); printf(*ttttt双人房:%dtt*n,hotelInfo-doubleRemainAmount); printf(*ttttt大床房:%dtt*nn,hotelInfo-bigRemainAmount); printf(nn=酒店入住情况查询菜单=tnnn); printf(按 0 :返
13、回 n); printf(按 1 : 登记入住n); scanf(%d,&chooseNum); switch(chooseNum) case 0: GUI = MainUI; break; case 1: GUI = CheckinUI; break; default: GUI = HotelInfoUI; break; void showCheckinUI() Order * newOrder; Room* newRoom = NULL; /填写一个新的入住信息CheckinInfo * newCheckinInfo = NULL; int roomTypeNum; int countTy
14、peNum; time_t timep; system(cls); printf(nn=酒店入住登记菜单=tnnn); newCheckinInfo = ( CheckinInfo * )malloc(sizeof(CheckinInfo); printf(*tt请输入姓名:); scanf(%s, &(newCheckinInfo-name) ); printf(*tt请输入证件号:); scanf(%d, &(newCheckinInfo-id) ); printf(*tt请选择入住房型:n); printf(ttt1.单人房nttt2.双人房nttt3.大床房n); scanf(%d,&
15、(roomTypeNum); switch(roomTypeNum) /通过输入的数字对应房型 case 1: newCheckinInfo-roomType = Single; break; case 2: newCheckinInfo-roomType = Double; break; case 3: newCheckinInfo-roomType = Big; break; default: newCheckinInfo-roomType = Single; break; printf(*tt请选择计费方式:n); printf(ttt1.按小时计费; nttt2.按天数计费n); /通
16、过输入的数字对应计费方式 scanf(%d,&countTypeNum); switch(countTypeNum) case 1: newCheckinInfo-countType = Hour; break; case 2: newCheckinInfo-countType = Day; break; printf(nn=酒店入住登记菜单=tnnn); /生成一个新的订单newOrder = ( Order* )malloc(sizeof(Order); newOrder - checkinInfo = newCheckinInfo; newOrder - date = time(0);
17、switch(newCheckinInfo-roomType) /通过房型获取房间 case Single: newRoom = getRoomByType(Single); break; case Double: newRoom=getRoomByType(Double); break; case Big : newRoom=getRoomByType(Big); break; newOrder-room = newRoom; insertToOrderList(newOrder); printf(房间号为:%dn,newOrder-room-roomNum); GUI = CheckinR
18、esultUI;void showCheckinResultUI() int chooseNum; printf(nn=酒店入住登记确认菜单=tnnn); printf(ttt*ttttn); printf(ttt* 登记成功 *ttttn); printf(ttt*ttttnn); printf(nn=酒店入住登记确认菜单=tnnn); printf(按 0 :返回 n); scanf(%d,&chooseNum); switch(chooseNum) case 0: GUI = MainUI; break; default: GUI = CheckinResultUI; break; vo
19、id showOrderUI() int roomNum; int chooseNum; int amount; Order * theOrder = NULL; system(cls); printf(nn=酒店房间信息查询菜单=tnnn); printf(请输入房间号:); scanf(%d,&roomNum); if (roomNum100) printf(n 输入有误请重新输入) ; GUI = OrderUI; else theOrder = getOrderByRoomNum(roomNum); printf(房型:); switch(theOrder-room-roomType)
20、 case Single: printf(单人房n);break; case Double: printf(双人房n);break; case Big: printf(大床房n);break; printf(计费方式:); switch(theOrder-checkinInfo-countType ) case Hour: printf(小时计费n); amount = (time(0) - theOrder-date) / 3600 +1; printf(已入住时间:%d小时n,amount); break; case Day: printf(天计费n); amount = (time(0)
21、 - theOrder-date) / (3600*24) +1; printf(已入住时间:%d天n,amount); break; printf(房价:%dn,theOrder-room-price); printf(应支付:%dnn,amount * theOrder-room-price); printf(nn=酒店房间信息查询菜单=tnnn); printf(按0:返回n); printf(按1:结账退房n); scanf(%d,&chooseNum); switch(chooseNum) case 0: GUI = MainUI; break; case 1: GUI = Chec
22、kOutUI; break; default: break; void showCheckOutUI() int chooseNum; printf(nn=酒店结账退房确认菜单=tnnn); printf(tttt*ttttn); printf(tttt* 结账成功 *ttttn); printf(tttt*ttttnn); printf(nn=酒店结账退房确认菜单=tnnn); printf(按0:返回); scanf(%d,&chooseNum); switch(chooseNum) case 0: GUI = MainUI; break; default: GUI = CheckOutUI; break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1