C語言 賓館客房管理系統(tǒng)!!!
《C語言 賓館客房管理系統(tǒng)!!!》由會員分享,可在線閱讀,更多相關《C語言 賓館客房管理系統(tǒng)!!!(15頁珍藏版)》請在裝配圖網上搜索。
1、C語言 賓館客房管理系統(tǒng)!!! ? 賓館客房管理系統(tǒng) 賓館的客房銷售是賓館的主要利潤來源。要求針對客房的屬性,如房號、房價(只要分為三個檔次價格即可)、入住情況、維護狀況進行分析編程,要求實現(xiàn)若干功能,如:能夠隨時地通過程序查看每間客房的狀態(tài),查訊各種價位的空房數量和具體房號、查訊各種價位客房的入住數量和房號,當前正在維修的所有客房房號,隨時統(tǒng)計當月的銷售總收入,在文件中記錄每個房間入住和退房情況及單價、毛利收入,根據上個月的文件記錄,次月可以統(tǒng)計上個月的銷售總收入等等。 該管理系統(tǒng)運行時是一個循環(huán)式的菜單選項,能依據選項選擇各種功能。并能依據需求,將結果打印在屏幕或打印到文件中。
2、
#include
3、 void check_out(); void inquire(); int i=0; //*********************************************************************************** struct Room { int number; int dank; int price; int state; }; struct Customer { char name[10],ID[19]; int room_number; int prepaid; int ch
4、ange; 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) { cs->day=d;
5、 } 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 *c
6、s) { return cs->day; } int get_prepaid(struct Customer *cs) { return cs->prepaid; } //*********************************************************************************** struct Room room[80]; struct Customer *customer[80]; void CCustomer(struct Customer *cs) { printf("請您輸入顧客的姓名\
7、n"); scanf("%s",&cs->name); printf("請您輸入顧客的身份證號碼\n"); scanf("%s",&cs->ID); cs->prepaid = cs->change = cs->day = 0; } void FCustomer() { printf("該顧客退房成功!"); } int main(void) //程序入口從這里開始運行 { char choice='1'; initial_room(); //初始化80個房間的信息,分四個等級 welcome(); //驗證用戶登陸,登陸成功顯示歡
8、迎信息 while(choice=='1') { enter(); //根據用戶的選擇執(zhí)行不同的功能 printf("\n"); printf("繼續(xù)使用本系統(tǒng)請按\"1\",退出請按\"2\"! "); fflush(stdin); scanf("%c",&choice); printf("\n"); } return 0; } //系統(tǒng)登陸界面*********************************************************************** void welcome() /
9、/驗證用戶登陸,登陸成功顯示歡迎信息 { char name[4],code[7]; printf("請輸入用戶名和密碼(以空格隔開):\n"); scanf("%s%s",&name,&code); while((strcmp(name,"000")!=0)||(strcmp(code,"666666")!=0)) { printf("用戶名或密碼輸入有誤,請重新輸入!\n"); scanf("%s%s",&name,&code); } printf("\n"); printf("\n"); printf("
10、 ▲***************************▲\n"); printf(" △ 歡迎使用賓館客房管理系統(tǒng)! △\n"); printf(" ▲***************************▲\n"); printf("\n"); } //系統(tǒng)入口*************************************************************************** void enter() { int kind_of_ser
11、vice; printf("請選擇服務類別:訂房、入住、退房還是查詢? \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); } else { switch(kind_of_service) { case 1: book
12、_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; customer[i] = (struct Customer*
13、)malloc(sizeof(struct Customer)); CCustomer(customer[i]); printf("請您選擇預定房間的標準:\n"); printf("1.單人間/天150元\n2.雙人間/天200元\n3.標準間/天300元\n4.總統(tǒng)套房/天600元\n"); scanf("%d",&room_standard); printf("請輸入預定天數\n"); scanf("%d",&day); set_day(customer[i],day); switch(room_standard) { int n;
14、 case 1: printf("住房費用總共為: %d 元\n",day*150); //計算住房費用 for(n=0;n<20;n++) //從第一個級別的房間中查找一個空閑的房間 { if(room[n].state==0) //state=0表示該住房沒有被預定的 { printf("預定成功★房間號碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); b
15、reak; } } break; case 2: printf("住房費用總共為: %d 元\n",day*200); for(n=20;n<40;n++) { if(room[n].state==0) { printf("預定成功★房間號碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); break; } } break; case 3:
16、 printf("住房費用總共為: %d 元\n",day*300); for(n=40;n<60;n++) { if(room[n].state==0) { printf("預定成功★房間號碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); break; } } break; case 4: printf("住房費用總共為: %d 元\n",day*600);
17、 for(n=60;n<80;n++) { if(room[n].state==0) { printf("預定成功★房間號碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); break; } } break; } i++; //住房的顧客數加1 } //入住登記****************************************************
18、*********************** void check_in() { char name1[10],id1[19]; int ding_or_no,prepaid; int j; printf("該顧客訂房了嗎? (1->訂了 2->沒訂) "); scanf("%d",&ding_or_no); if(ding_or_no==1) { printf("請輸入顧客的姓名:\n"); scanf("%s",&name1); printf("請輸入顧客的身份證號碼:\n"); scanf("%s",&id1);
19、for(j=0;j
20、customer[j])*150; set_prepaid(customer[j],prepaid); printf("請收房費 %d元整!\n",prepaid); //開始收費 room[num%100-1].state=2; //修改房間狀態(tài)為入住狀態(tài) break; case 7: prepaid=get_day(customer[j])*200; set_prepaid(customer[j],prepaid); printf("請收房費 %d元整!\n",p
21、repaid); room[19+num%100].state=2; break; case 8: prepaid=get_day(customer[j])*300; set_prepaid(customer[j],prepaid); printf("請收房費 %d元整!\n",prepaid); room[39+num%100].state=2; break; case 9: prepaid=get_day(customer[j])*600; set_prepaid
22、(customer[j],prepaid); printf("請收房費 %d元整!\n",prepaid); room[59+num%100].state=2; break; } break; } } } else { int room_standard,day; customer[i] = (struct Customer*)malloc(sizeof(struct Customer)); CCustomer(customer[i]); printf("請您選擇預定房間的標準:\n"
23、); printf("1.單人間/天150元\n2.雙人間/天200元\n3.標準間/天300元\n4.總統(tǒng)套房/天600元\n"); scanf("%d",&room_standard); printf("請輸入住宿天數\n"); scanf("%d",&day); set_day(customer[i],day); switch(room_standard) { int n; case 1: prepaid=day*150; set_prepaid(customer[i],prepaid); pr
24、intf("請收房費 %d元整!\n",prepaid); for(n=0;n<20;n++) { if(room[n].state==0) { printf("入住房間號碼為: %d\n",room[n].number); room[n].state=2; set_room_number(customer[i],room[n].number); break; } } break; case 2: prepaid=day*200; set_prepaid(cu
25、stomer[i],prepaid); printf("請收房費 %d元整!\n",prepaid); for(n=20;n<40;n++) { if(room[n].state==0) { printf("入住房間號碼為: %d\n",room[n].number); room[n].state=2; set_room_number(customer[i],room[n].number); break; } } break; case 3: prepaid=d
26、ay*300; set_prepaid(customer[i],prepaid); printf("請收房費 %d元整!\n",prepaid); for(n=40;n<60;n++) { if(room[n].state==0) { printf("入住房間號碼為: %d\n",room[n].number); room[n].state=2; set_room_number(customer[i],room[n].number); break; } } break;
27、 case 4: prepaid=day*600; set_prepaid(customer[i],prepaid); printf("請收房費 %d元整!\n",prepaid); for(n=60;n<80;n++) { if(room[n].state==0) { printf("入住房間號碼為: %d\n",room[n].number); room[n].state=2; set_room_number(customer[i],room[n].number); brea
28、k; } } break; } i++; } } //退房結算*************************************************************************** void check_out() { char name2[10],id2[19]; int standard,j,room_number,day1,day2,day; printf("請輸入要退房的顧客姓名和身份證號碼:\n"); scanf("%s%s",&name2,&id2); printf(
29、"請輸入該顧客實住天數:\n"); scanf("%d",&day2); for(j=0;j
30、 switch(standard) { case 6: printf("顧客的房間號是%d :為單人間,每天150元\n",room_number); printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*150); printf("\n"); if(day>0) printf("請退給該顧客 %d 元整!\n",day*150); if(day<0) printf("請補收該顧客住房費 %d 元整!\n",-d
31、ay*150); break; case 7: printf("顧客的房間號是%d :為單人間,每天200元\n",room_number); printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*200); printf("\n"); if(day>0) printf("請退給該顧客 %d 元整!\n",day*200); if(day<0) printf("請補收該顧客住房費 %d 元整!\n",-day*200);
32、 break; case 8: printf("顧客的房間號是%d :為單人間,每天300元\n",room_number); printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*300); printf("\n"); if(day>0) printf("請退給該顧客 %d 元整!\n",day*300); if(day<0) printf("請補收該顧客住房費 %d 元整!\n",-day*300); brea
33、k; case 9: printf("顧客的房間號是%d :為單人間,每天600元\n",room_number); printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*600); printf("\n"); if(day>0) printf("請退給該顧客 %d 元整!\n",day*600); if(day<0) printf("請補收該顧客住房費 %d 元整!\n",-day*600); break; }
34、 printf("\n"); printf("退房核算清楚,請按1: "); fflush(stdin); scanf("%c",&account); if(account=='1') { int k; for(k=0;k<80;k++) { if(room[k].number==get_room_number(customer[j])) room[k].state=0; } i--; for(;j
35、er[j]=customer[j+1]; } free(customer[i]); FCustomer(); } } } } //信息查詢*************************************************************************** void inquire() { char inquire_choice; printf("房間信息查詢請按1, 顧客信息查詢請按2: "); fflush(stdin); scanf("%c",&inquire_choice);
36、 if(inquire_choice=='1') { int j,k=0; printf("\n"); printf("下列房間還沒人預訂,也沒人入?。篭n"); for(j=0;j<80;j++) { if(room[j].state==0) { if(k%10==0) printf("\n"); printf("%d\t",room[j].number); k++; } } printf("\n"); printf("\n"); k=0; printf("下列
37、房間已預訂:\n"); for(j=0;j<80;j++) { if(room[j].state==1) { if(k%10==0) printf("\n"); printf("%d\t",room[j].number); k++; } } k=0; printf("\n"); printf("\n"); printf("下列房間有人入?。篭n"); for(j=0;j<80;j++) { if(room[j].state==2) { if(k%10
38、==0) printf("\n"); printf("%d\t",room[j].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=
39、='1') { char name3[10]; printf("請輸入顧客的姓名: \n"); scanf("%s",&name3); for(j=0;j
40、(customer[j])); } } } if(inquire_choice=='2') { char id3[10]; int j; printf("請輸入顧客的身份證: \n"); scanf("%s",&id3); for(j=0;j
41、%d\n",get_room_number(customer[j])); printf("\t預付房費為: %d\n",get_prepaid(customer[j])); } } } } } //房間信息初始化********************************************************************* void initial_room() //對80個房間進行初始化,分4個等級 { int j,k=601; for(j=0;j<20;j++) { room[j].numbe
42、r=k++; room[j].dank=1; room[j].price=150; room[j].state=0; } k=701; for(j=20;j<40;j++) { room[j].number=k++; room[j].dank=2; room[j].price=200; room[j].state=0; } k=801; for(j=40;j<60;j++) { room[j].number=k++; room[j].dank=3; room[j].price=300; room[j].state=0; } k=901; for(j=60;j<80;j++) { room[j].number=k++; room[j].dank=4; room[j].price=600; room[j].state=0; } } 分享給你的朋友吧: i貼吧 新浪微博 騰訊微博 QQ空間 人人網 豆瓣 MSN 對我有幫助 1回答時間:2011-1-12 17:11 | 我來評論 | 檢舉
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。