C語言 賓館客房管理系統(tǒng)!!!_第1頁
C語言 賓館客房管理系統(tǒng)!!!_第2頁
C語言 賓館客房管理系統(tǒng)!!!_第3頁
C語言 賓館客房管理系統(tǒng)!!!_第4頁
C語言 賓館客房管理系統(tǒng)!!!_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言 賓館客房管理系統(tǒng)!? 賓館客房管理系統(tǒng) 賓館的客房銷售是賓館的主要利潤來源。要求針對客房的屬性,如房號、房價(只要分為三個檔次價格即可)、入住情況、維護狀況進行分析編程,要求實現(xiàn)若干功能,如:能夠隨時地通過程序查看每間客房的狀態(tài),查訊各種價位的空房數(shù)量和具體房號、查訊各種價位客房的入住數(shù)量和房號,當前正在維修的所有客房房號,隨時統(tǒng)計當月的銷售總收入,在文件中記錄每個房間入住和退房情況及單價、毛利收入,根據(jù)上個月的文件記錄,次月可以統(tǒng)計上個月的銷售總收入等等。該管理系統(tǒng)運行時是一個循環(huán)式的菜單選項,能依據(jù)選項選擇各種功能。并能依據(jù)需求,將結(jié)果打印在屏幕或打印到文件中。 #include

2、<stdio.h> #include <stdlib.h>#include <string.h>/*void initial_room(); /初始化80個房間信息void welcome(); /驗證用戶登陸,登陸成功顯示歡迎信息void enter();void book_room();void check_in();void check_out();void inquire();int i=0;/*struct Room int number; int dank; int price; int state; ;struct Customer char

3、name10,ID19; int room_number; int prepaid; int change; int day;void set_name(struct Customer *cs, char *n) strcpy(cs->name,n);void set_ID(struct Customer *cs, char *p) strcpy(cs->ID,p);void set_room_number(struct Customer *cs, int n) cs->room_number=n;void set_day(struct Customer *cs, int d

4、) cs->day=d;void set_prepaid(struct Customer *cs, int p) cs->prepaid=p;char *get_name(struct Customer *cs) return cs->name;char *get_ID(struct Customer *cs) return cs->ID;int get_room_number(struct Customer *cs) return cs->room_number;int get_day(struct Customer *cs) return cs->day

5、;int get_prepaid(struct Customer *cs) return cs->prepaid;/*struct Room room80;struct Customer *customer80;void CCustomer(struct Customer *cs) printf("請您輸入顧客的姓名n"); scanf("%s",&cs->name); printf("請您輸入顧客的身份證號碼n"); scanf("%s",&cs->ID); cs->pre

6、paid = cs->change = cs->day = 0;void FCustomer() printf("該顧客退房成功!");int main(void) /程序入口從這里開始運行 char choice='1' initial_room(); /初始化80個房間的信息,分四個等級 welcome(); /驗證用戶登陸,登陸成功顯示歡迎信息 while(choice='1') enter(); /根據(jù)用戶的選擇執(zhí)行不同的功能 printf("n"); printf("繼續(xù)使用本系統(tǒng)請按&qu

7、ot;1",退出請按"2"! "); fflush(stdin); scanf("%c",&choice); printf("n"); return 0;/系統(tǒng)登陸界面*void welcome() /驗證用戶登陸,登陸成功顯示歡迎信息 char name4,code7; printf("請輸入用戶名和密碼(以空格隔開):n"); scanf("%s%s",&name,&code); while(strcmp(name,"000")

8、!=0)|(strcmp(code,"666666")!=0) printf("用戶名或密碼輸入有誤,請重新輸入!n"); scanf("%s%s",&name,&code); printf("n"); printf("n"); printf(" *n"); printf(" 歡迎使用賓館客房管理系統(tǒng)! n"); printf(" *n"); printf("n");/系統(tǒng)入口*void enter(

9、) int kind_of_service; printf("請選擇服務(wù)類別:訂房、入住、退房還是查詢? n"); printf(" 1->定房 2->入住 3->退房 4->查詢: "); scanf("%d",&kind_of_service); if(kind_of_service>4) | (kind_of_service<1) printf("您的輸入有誤,請重試!n"); scanf("%d",&kind_of_service);

10、else switch(kind_of_service) case 1: book_room(); break; case 2: check_in(); break; case 3: check_out(); break; case 4: inquire(); break; /訂房實現(xiàn)*void book_room() int room_standard,day; customeri = (struct Customer*)malloc(sizeof(struct Customer); CCustomer(customeri); printf("請您選擇預(yù)定房間的標準:n"

11、); printf("1.單人間/天150元n2.雙人間/天200元n3.標準間/天300元n4.總統(tǒng)套房/天600元n"); scanf("%d",&room_standard); printf("請輸入預(yù)定天數(shù)n"); scanf("%d",&day); set_day(customeri,day); switch(room_standard) int n; case 1: printf("住房費用總共為: %d 元n",day*150); /計算住房費用 for(n=0;n

12、<20;n+) /從第一個級別的房間中查找一個空閑的房間 if(roomn.state=0) /state=0表示該住房沒有被預(yù)定的 printf("預(yù)定成功房間號碼為: %dn",roomn.number); roomn.state=1; set_room_number(customeri,roomn.number); break; break; case 2: printf("住房費用總共為: %d 元n",day*200); for(n=20;n<40;n+) if(roomn.state=0) printf("預(yù)定成功房間號

13、碼為: %dn",roomn.number); roomn.state=1; set_room_number(customeri,roomn.number); break; break; case 3: printf("住房費用總共為: %d 元n",day*300); for(n=40;n<60;n+) if(roomn.state=0) printf("預(yù)定成功房間號碼為: %dn",roomn.number); roomn.state=1; set_room_number(customeri,roomn.number); break

14、; break; case 4: printf("住房費用總共為: %d 元n",day*600); for(n=60;n<80;n+) if(roomn.state=0) printf("預(yù)定成功房間號碼為: %dn",roomn.number); roomn.state=1; set_room_number(customeri,roomn.number); break; break; i+; /住房的顧客數(shù)加1/入住登記*void check_in() char name110,id119; int ding_or_no,prepaid; in

15、t j; printf("該顧客訂房了嗎? (1->訂了 2->沒訂) "); scanf("%d",&ding_or_no); if(ding_or_no=1) printf("請輸入顧客的姓名:n"); scanf("%s",&name1); printf("請輸入顧客的身份證號碼:n"); scanf("%s",&id1); for(j=0;j<i;j+) if(strcmp(get_name(customerj),name1)

16、=0)&&(strcmp(get_ID(customerj),id1)=0) /查找該顧客的定房信息 int num=get_room_number(customerj); /取得定房的房間號 printf("顧客 %s 今天入住本賓館! 房間號碼為: %dn",name1,num); switch(num/100) case 6: prepaid=get_day(customerj)*150; set_prepaid(customerj,prepaid); printf("請收房費 %d元整!n",prepaid); /開始收費 roo

17、mnum%100-1.state=2; /修改房間狀態(tài)為入住狀態(tài) break; case 7: prepaid=get_day(customerj)*200; set_prepaid(customerj,prepaid); printf("請收房費 %d元整!n",prepaid); room19+num%100.state=2; break; case 8: prepaid=get_day(customerj)*300; set_prepaid(customerj,prepaid); printf("請收房費 %d元整!n",prepaid); roo

18、m39+num%100.state=2; break; case 9: prepaid=get_day(customerj)*600; set_prepaid(customerj,prepaid); printf("請收房費 %d元整!n",prepaid); room59+num%100.state=2; break; break; else int room_standard,day; customeri = (struct Customer*)malloc(sizeof(struct Customer); CCustomer(customeri); printf(&q

19、uot;請您選擇預(yù)定房間的標準:n"); printf("1.單人間/天150元n2.雙人間/天200元n3.標準間/天300元n4.總統(tǒng)套房/天600元n"); scanf("%d",&room_standard); printf("請輸入住宿天數(shù)n"); scanf("%d",&day); set_day(customeri,day); switch(room_standard) int n; case 1: prepaid=day*150; set_prepaid(customeri

20、,prepaid); printf("請收房費 %d元整!n",prepaid); for(n=0;n<20;n+) if(roomn.state=0) printf("入住房間號碼為: %dn",roomn.number); roomn.state=2; set_room_number(customeri,roomn.number); break; break; case 2: prepaid=day*200; set_prepaid(customeri,prepaid); printf("請收房費 %d元整!n",prepa

21、id); for(n=20;n<40;n+) if(roomn.state=0) printf("入住房間號碼為: %dn",roomn.number); roomn.state=2; set_room_number(customeri,roomn.number); break; break; case 3: prepaid=day*300; set_prepaid(customeri,prepaid); printf("請收房費 %d元整!n",prepaid); for(n=40;n<60;n+) if(roomn.state=0) pr

22、intf("入住房間號碼為: %dn",roomn.number); roomn.state=2; set_room_number(customeri,roomn.number); break; break; case 4: prepaid=day*600; set_prepaid(customeri,prepaid); printf("請收房費 %d元整!n",prepaid); for(n=60;n<80;n+) if(roomn.state=0) printf("入住房間號碼為: %dn",roomn.number); r

23、oomn.state=2; set_room_number(customeri,roomn.number); break; break; i+; /退房結(jié)算*void check_out() char name210,id219; int standard,j,room_number,day1,day2,day; printf("請輸入要退房的顧客姓名和身份證號碼:n"); scanf("%s%s",&name2,&id2); printf("請輸入該顧客實住天數(shù):n"); scanf("%d",&

24、amp;day2); for(j=0;j<i;j+) if(strcmp(get_name(customerj),name2)=0)&&(strcmp(get_ID(customerj),id2)=0) char account; room_number=get_room_number(customerj); standard=room_number/100; day1=get_day(customerj); day=day1-day2; switch(standard) case 6: printf("顧客的房間號是%d :為單人間,每天150元n"

25、,room_number); printf("該顧客預(yù)付了房費 %d元, 實際消費 %d元整!n",get_prepaid(customerj),day2*150); printf("n"); if(day>0) printf("請退給該顧客 %d 元整!n",day*150); if(day<0) printf("請補收該顧客住房費 %d 元整!n",-day*150); break; case 7: printf("顧客的房間號是%d :為單人間,每天200元n",room_nu

26、mber); printf("該顧客預(yù)付了房費 %d元, 實際消費 %d元整!n",get_prepaid(customerj),day2*200); printf("n"); if(day>0) printf("請退給該顧客 %d 元整!n",day*200); if(day<0) printf("請補收該顧客住房費 %d 元整!n",-day*200); break; case 8: printf("顧客的房間號是%d :為單人間,每天300元n",room_number); p

27、rintf("該顧客預(yù)付了房費 %d元, 實際消費 %d元整!n",get_prepaid(customerj),day2*300); printf("n"); if(day>0) printf("請退給該顧客 %d 元整!n",day*300); if(day<0) printf("請補收該顧客住房費 %d 元整!n",-day*300); break; case 9: printf("顧客的房間號是%d :為單人間,每天600元n",room_number); printf(&q

28、uot;該顧客預(yù)付了房費 %d元, 實際消費 %d元整!n",get_prepaid(customerj),day2*600); printf("n"); if(day>0) printf("請退給該顧客 %d 元整!n",day*600); if(day<0) printf("請補收該顧客住房費 %d 元整!n",-day*600); break; printf("n"); printf("退房核算清楚,請按1: "); fflush(stdin); scanf(&quo

29、t;%c",&account); if(account='1') int k; for(k=0;k<80;k+) if(roomk.number=get_room_number(customerj) roomk.state=0; i-; for(;j<i;j+) customerj=customerj+1; free(customeri); FCustomer(); /信息查詢*void inquire() char inquire_choice; printf("房間信息查詢請按1, 顧客信息查詢請按2: "); fflush

30、(stdin); scanf("%c",&inquire_choice); if(inquire_choice='1') int j,k=0; printf("n"); printf("下列房間還沒人預(yù)訂,也沒人入?。簄"); for(j=0;j<80;j+) if(roomj.state=0) if(k%10=0) printf("n"); printf("%dt",roomj.number); k+; printf("n"); printf(

31、"n"); k=0; printf("下列房間已預(yù)訂:n"); for(j=0;j<80;j+) if(roomj.state=1) if(k%10=0) printf("n"); printf("%dt",roomj.number); k+; k=0; printf("n"); printf("n"); printf("下列房間有人入?。簄"); for(j=0;j<80;j+) if(roomj.state=2) if(k%10=0) pr

32、intf("n"); printf("%dt",roomj.number); k+; printf("n"); printf("n"); else if(inquire_choice='2') char inquire_choice; int j; printf("按姓名查詢請按1, 按身份證查詢請按2: n"); fflush(stdin); scanf("%c",&inquire_choice); if(inquire_choice='1') char name310; printf("請輸入顧客的姓名: n"); sca

溫馨提示

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

評論

0/150

提交評論