酒店管理系統(tǒng)代碼_第1頁
酒店管理系統(tǒng)代碼_第2頁
酒店管理系統(tǒng)代碼_第3頁
酒店管理系統(tǒng)代碼_第4頁
酒店管理系統(tǒng)代碼_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、#include <windows.h>#include <dos.h>#include<stdio.h>#include<stdlib.h>#include<time.h>/-結(jié)構(gòu)定義-typedef struct CheckinInformationchar name10; /姓名int id; /證件號int roomType; /房型int countType; /計費方式CheckinInfo;typedef struct HotelRoomint roomType; /房型int roomNum; /房號int check

2、ed; /入住情況int price; /房價Room;typedef struct RoomOrderCheckinInfo *checkinInfo; /入住信息long date; /入住時間Room * room; /房間信息Order;typedef struct HotelInfomationint checkinAmount; /已入住房數(shù)int singleRemainAmount; /單人房剩余房數(shù)int doubleRemainAmount; /雙人房剩余房數(shù)int bigRemainAmount; /大床房剩余房數(shù)HotelInfo;/-枚舉類型-enum MainUI,

3、HotelInfoUI,CheckinUI,CheckinResultUI,OrderUI,CheckOutUI,Exit;/GUIenum Single,Double,Big;/Room Typeenum Hour,Day;/countType/-全局變量-int GUI = MainUI;Order* orderList100;/訂單數(shù)組Room* roomList100;/房間數(shù)組HotelInfo * hotelInfo = NULL;/酒店房間信息/-函數(shù)聲明-void initiallizeRoomList();void insertToOrderList(Order * orde

4、r);Room* getRoomByType(int roomType);Order* getOrderByRoomNum(int roomNum);void showMainUI();void showHotelInfoUI();void showCheckinUI();void showCheckinResultUI();void showOrderUI();void showCheckOutUI();/-Main函數(shù)-void main() /主函數(shù)/初始化酒店房間信息hotelInfo = (HotelInfo *)malloc(sizeof(HotelInfo); hotelInfo

5、 -> singleRemainAmount = 20;hotelInfo -> doubleRemainAmount=40;hotelInfo -> bigRemainAmount=40;hotelInfo -> checkinAmount=0;/初始化房間列表initiallizeRoomList();/界面顯示while(GUI != Exit)switch(GUI)case MainUI:showMainUI();break;case HotelInfoUI:showHotelInfoUI();break;case CheckinUI:showCheckinUI

6、();break;case CheckinResultUI:showCheckinResultUI();break;case OrderUI:showOrderUI();break;case CheckOutUI:showCheckOutUI();break;default: break;/-函數(shù)定義-void initiallizeRoomList()/房間數(shù)組初始化,初始化的結(jié)果是讓roomList的數(shù)組有100個room指針,而且設置了相應的值int i;Room*newRoom=NULL;for(i=0;i<20;i+) /單人房房間信息初始化 newRoom = ( Room*

7、 )malloc(sizeof(Room);roomListi = newRoom; roomListi->checked=0; roomListi->price=110; roomListi->roomNum=i+1; roomListi->roomType=Single;for(i=20;i<60;i+) /雙人房房間信息初始化newRoom = ( Room* )malloc(sizeof(Room);roomListi = newRoom; roomListi->checked=0; roomListi->price=180; roomList

8、i->roomNum=i+1; roomListi->roomType=Double;for(i=60;i<100;i+) /大床房房間信息初始化 newRoom = ( Room* )malloc(sizeof(Room);roomListi = newRoom; roomListi->checked=0; roomListi->price=180; roomListi->roomNum=i+1; roomListi->roomType=Big;/通過所選擇的房型獲取空房間,獲取房間后將房間信息改為已入住,并減少相應房型的剩余房間數(shù)Room* get

9、RoomByType(int roomType)int i;switch(roomType)case Single:for(i=0;i<20;i+)if( roomListi->checked = 0)roomListi->checked=1;hotelInfo->singleRemainAmount - ;hotelInfo->checkinAmount+;return roomListi;break;case Double:for(i=20;i<60;i+)if( roomListi->checked = 0)roomListi->check

10、ed=1;hotelInfo->doubleRemainAmount - ;hotelInfo->checkinAmount+;return roomListi;break;case Big:for(i=60;i<100;i+)if( roomListi->checked = 0)roomListi->checked=1;hotelInfo->bigRemainAmount -;hotelInfo->checkinAmount+;return roomListi;break;/將訂單放入訂單列表void insertToOrderList(Order

11、* order)int i;for( i = 0;i<100;i+)if( orderListi =NULL )orderListi = order;break;/通過房號查詢訂單Order* getOrderByRoomNum(int roomNum)int i;for(i=0;i<100;i+)if( orderListi->room->roomNum = roomNum)return orderListi;void showMainUI()/顯示主界面,并接受輸入int chooseNum;system("cls");printf("

12、nn=酒店房間登記與計費管理管理系統(tǒng)=tnnn");printf("*tttt1. 入住登記 tttt*n");printf("*tttt2. 查詢?nèi)胱∏闆r ttt*n");printf("*tttt3. 查詢當前費用 ttt*n");printf("*tttt4. 結(jié)賬退房 tttt*n");printf("*tttt5. 退出程序 tttt*nnn");printf("nn=酒店房間登記與計費管理管理系統(tǒng)=tnnn");printf("請輸入相應編號進

13、入菜單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");pr

14、intf("nn=酒店入住情況查詢菜單=tnnnn");printf("*ttt入住房間數(shù): %dtttt*n", hotelInfo->checkinAmount);printf("*ttt剩余房間數(shù): t");printf("單人房:%dtt*n",hotelInfo->singleRemainAmount);printf("*ttttt雙人房:%dtt*n",hotelInfo->doubleRemainAmount);printf("*ttttt大床房:%dt

15、t*nn",hotelInfo->bigRemainAmount);printf("nn=酒店入住情況查詢菜單=tnnn");printf("按 0 :返回 n");printf("按 1 : 登記入住n");scanf("%d",&chooseNum);switch(chooseNum)case 0:GUI = MainUI;break;case 1:GUI = CheckinUI;break;default:GUI = HotelInfoUI;break;void showCheckin

16、UI()Order * newOrder;Room* newRoom = NULL;/填寫一個新的入住信息CheckinInfo * newCheckinInfo = NULL;int roomTypeNum;int countTypeNum;time_t timep;system("cls");printf("nn=酒店入住登記菜單=tnnn");newCheckinInfo = ( CheckinInfo * )malloc(sizeof(CheckinInfo);printf("*tt請輸入姓名:");scanf("%

17、s", &(newCheckinInfo->name) );printf("*tt請輸入證件號:");scanf("%d", &(newCheckinInfo->id) );printf("*tt請選擇入住房型:n");printf("ttt1.單人房nttt2.雙人房nttt3.大床房n");scanf("%d",&(roomTypeNum);switch(roomTypeNum) /通過輸入的數(shù)字對應房型case 1:newCheckinInfo

18、->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.按天數(shù)計費n"); /通過輸入的數(shù)字對應計費方式 scanf("%d",&cou

19、ntTypeNum);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);switch(new

20、CheckinInfo->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 = Che

21、ckinResultUI;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);swi

22、tch(chooseNum)case 0:GUI = MainUI;break;default:GUI = CheckinResultUI;break;void showOrderUI() int roomNum;int chooseNum;int amount;Order * theOrder = NULL;system("cls");printf("nn=酒店房間信息查詢菜單=tnnn");printf("請輸入房間號:");scanf("%d",&roomNum);if (roomNum<0 |

23、 roomNum>100) printf("n 輸入有誤請重新輸入") ; GUI = OrderUI;elsetheOrder = getOrderByRoomNum(roomNum);printf("房型:");switch(theOrder->room->roomType)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")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論