C語言 賓館客房管理系統(tǒng)!!!
《C語言 賓館客房管理系統(tǒng)!!!》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語言 賓館客房管理系統(tǒng)!!!(15頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、C語言 賓館客房管理系統(tǒng)!!! ? 賓館客房管理系統(tǒng) 賓館的客房銷售是賓館的主要利潤來源。要求針對(duì)客房的屬性,如房號(hào)、房價(jià)(只要分為三個(gè)檔次價(jià)格即可)、入住情況、維護(hù)狀況進(jìn)行分析編程,要求實(shí)現(xiàn)若干功能,如:能夠隨時(shí)地通過程序查看每間客房的狀態(tài),查訊各種價(jià)位的空房數(shù)量和具體房號(hào)、查訊各種價(jià)位客房的入住數(shù)量和房號(hào),當(dāng)前正在維修的所有客房房號(hào),隨時(shí)統(tǒng)計(jì)當(dāng)月的銷售總收入,在文件中記錄每個(gè)房間入住和退房情況及單價(jià)、毛利收入,根據(jù)上個(gè)月的文件記錄,次月可以統(tǒng)計(jì)上個(gè)月的銷售總收入等等。 該管理系統(tǒng)運(yùn)行時(shí)是一個(gè)循環(huán)式的菜單選項(xiàng),能依據(jù)選項(xiàng)選擇各種功能。并能依據(jù)需求,將結(jié)果打印在屏幕或打印到文件中。
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("請(qǐng)您輸入顧客的姓名\
7、n"); scanf("%s",&cs->name); printf("請(qǐng)您輸入顧客的身份證號(hào)碼\n"); scanf("%s",&cs->ID); cs->prepaid = cs->change = cs->day = 0; } void FCustomer() { printf("該顧客退房成功!"); } int main(void) //程序入口從這里開始運(yùn)行 { char choice='1'; initial_room(); //初始化80個(gè)房間的信息,分四個(gè)等級(jí) welcome(); //驗(yàn)證用戶登陸,登陸成功顯示歡
8、迎信息 while(choice=='1') { enter(); //根據(jù)用戶的選擇執(zhí)行不同的功能 printf("\n"); printf("繼續(xù)使用本系統(tǒng)請(qǐng)按\"1\",退出請(qǐng)按\"2\"! "); fflush(stdin); scanf("%c",&choice); printf("\n"); } return 0; } //系統(tǒng)登陸界面*********************************************************************** void welcome() /
9、/驗(yàn)證用戶登陸,登陸成功顯示歡迎信息 { char name[4],code[7]; printf("請(qǐng)輸入用戶名和密碼(以空格隔開):\n"); scanf("%s%s",&name,&code); while((strcmp(name,"000")!=0)||(strcmp(code,"666666")!=0)) { printf("用戶名或密碼輸入有誤,請(qǐng)重新輸入!\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("請(qǐng)選擇服務(wù)類別:訂房、入住、退房還是查詢? \n"); printf(" 1->定房 2->入住 3->退房 4->查詢: "); scanf("%d",&kind_of_service); if((kind_of_service>4) || (kind_of_service<1)) { printf("您的輸入有誤,請(qǐng)重試!\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; } } } //訂房實(shí)現(xiàn)*************************************************************************** void book_room() { int room_standard,day; customer[i] = (struct Customer*
13、)malloc(sizeof(struct Customer)); CCustomer(customer[i]); printf("請(qǐng)您選擇預(yù)定房間的標(biāo)準(zhǔn):\n"); printf("1.單人間/天150元\n2.雙人間/天200元\n3.標(biāo)準(zhǔn)間/天300元\n4.總統(tǒng)套房/天600元\n"); scanf("%d",&room_standard); printf("請(qǐng)輸入預(yù)定天數(shù)\n"); scanf("%d",&day); set_day(customer[i],day); switch(room_standard) { int n;
14、 case 1: printf("住房費(fèi)用總共為: %d 元\n",day*150); //計(jì)算住房費(fèi)用 for(n=0;n<20;n++) //從第一個(gè)級(jí)別的房間中查找一個(gè)空閑的房間 { if(room[n].state==0) //state=0表示該住房沒有被預(yù)定的 { printf("預(yù)定成功★房間號(hào)碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); b
15、reak; } } break; case 2: printf("住房費(fèi)用總共為: %d 元\n",day*200); for(n=20;n<40;n++) { if(room[n].state==0) { printf("預(yù)定成功★房間號(hào)碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); break; } } break; case 3:
16、 printf("住房費(fèi)用總共為: %d 元\n",day*300); for(n=40;n<60;n++) { if(room[n].state==0) { printf("預(yù)定成功★房間號(hào)碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); break; } } break; case 4: printf("住房費(fèi)用總共為: %d 元\n",day*600);
17、 for(n=60;n<80;n++) { if(room[n].state==0) { printf("預(yù)定成功★房間號(hào)碼為: %d\n",room[n].number); room[n].state=1; set_room_number(customer[i],room[n].number); break; } } break; } i++; //住房的顧客數(shù)加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("請(qǐng)輸入顧客的姓名:\n"); scanf("%s",&name1); printf("請(qǐng)輸入顧客的身份證號(hào)碼:\n"); scanf("%s",&id1);
19、for(j=0;j
20、customer[j])*150; set_prepaid(customer[j],prepaid); printf("請(qǐng)收房費(fèi) %d元整!\n",prepaid); //開始收費(fèi) 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("請(qǐng)收房費(fèi) %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("請(qǐng)收房費(fèi) %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("請(qǐng)收房費(fèi) %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("請(qǐng)您選擇預(yù)定房間的標(biāo)準(zhǔn):\n"
23、); printf("1.單人間/天150元\n2.雙人間/天200元\n3.標(biāo)準(zhǔn)間/天300元\n4.總統(tǒng)套房/天600元\n"); scanf("%d",&room_standard); printf("請(qǐng)輸入住宿天數(shù)\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("請(qǐng)收房費(fèi) %d元整!\n",prepaid); for(n=0;n<20;n++) { if(room[n].state==0) { printf("入住房間號(hào)碼為: %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("請(qǐng)收房費(fèi) %d元整!\n",prepaid); for(n=20;n<40;n++) { if(room[n].state==0) { printf("入住房間號(hào)碼為: %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("請(qǐng)收房費(fèi) %d元整!\n",prepaid); for(n=40;n<60;n++) { if(room[n].state==0) { printf("入住房間號(hào)碼為: %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("請(qǐng)收房費(fèi) %d元整!\n",prepaid); for(n=60;n<80;n++) { if(room[n].state==0) { printf("入住房間號(hào)碼為: %d\n",room[n].number); room[n].state=2; set_room_number(customer[i],room[n].number); brea
28、k; } } break; } i++; } } //退房結(jié)算*************************************************************************** void check_out() { char name2[10],id2[19]; int standard,j,room_number,day1,day2,day; printf("請(qǐng)輸入要退房的顧客姓名和身份證號(hào)碼:\n"); scanf("%s%s",&name2,&id2); printf(
29、"請(qǐng)輸入該顧客實(shí)住天數(shù):\n"); scanf("%d",&day2); for(j=0;j
30、 switch(standard) { case 6: printf("顧客的房間號(hào)是%d :為單人間,每天150元\n",room_number); printf("該顧客預(yù)付了房費(fèi) %d元, 實(shí)際消費(fèi) %d元整!\n",get_prepaid(customer[j]),day2*150); printf("\n"); if(day>0) printf("請(qǐng)退給該顧客 %d 元整!\n",day*150); if(day<0) printf("請(qǐng)補(bǔ)收該顧客住房費(fèi) %d 元整!\n",-d
31、ay*150); break; case 7: printf("顧客的房間號(hào)是%d :為單人間,每天200元\n",room_number); printf("該顧客預(yù)付了房費(fèi) %d元, 實(shí)際消費(fèi) %d元整!\n",get_prepaid(customer[j]),day2*200); printf("\n"); if(day>0) printf("請(qǐng)退給該顧客 %d 元整!\n",day*200); if(day<0) printf("請(qǐng)補(bǔ)收該顧客住房費(fèi) %d 元整!\n",-day*200);
32、 break; case 8: printf("顧客的房間號(hào)是%d :為單人間,每天300元\n",room_number); printf("該顧客預(yù)付了房費(fèi) %d元, 實(shí)際消費(fèi) %d元整!\n",get_prepaid(customer[j]),day2*300); printf("\n"); if(day>0) printf("請(qǐng)退給該顧客 %d 元整!\n",day*300); if(day<0) printf("請(qǐng)補(bǔ)收該顧客住房費(fèi) %d 元整!\n",-day*300); brea
33、k; case 9: printf("顧客的房間號(hào)是%d :為單人間,每天600元\n",room_number); printf("該顧客預(yù)付了房費(fèi) %d元, 實(shí)際消費(fèi) %d元整!\n",get_prepaid(customer[j]),day2*600); printf("\n"); if(day>0) printf("請(qǐng)退給該顧客 %d 元整!\n",day*600); if(day<0) printf("請(qǐng)補(bǔ)收該顧客住房費(fèi) %d 元整!\n",-day*600); break; }
34、 printf("\n"); printf("退房核算清楚,請(qǐng)按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("房間信息查詢請(qǐng)按1, 顧客信息查詢請(qǐng)按2: "); fflush(stdin); scanf("%c",&inquire_choice);
36、 if(inquire_choice=='1') { int j,k=0; printf("\n"); printf("下列房間還沒人預(yù)訂,也沒人入住:\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、房間已預(yù)訂:\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("按姓名查詢請(qǐng)按1, 按身份證查詢請(qǐng)按2: \n"); fflush(stdin); scanf("%c",&inquire_choice); if(inquire_choice=
39、='1') { char name3[10]; printf("請(qǐng)輸入顧客的姓名: \n"); scanf("%s",&name3); for(j=0;j
40、(customer[j])); } } } if(inquire_choice=='2') { char id3[10]; int j; printf("請(qǐng)輸入顧客的身份證: \n"); scanf("%s",&id3); for(j=0;j
41、%d\n",get_room_number(customer[j])); printf("\t預(yù)付房費(fèi)為: %d\n",get_prepaid(customer[j])); } } } } } //房間信息初始化********************************************************************* void initial_room() //對(duì)80個(gè)房間進(jìn)行初始化,分4個(gè)等級(jí) { 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空間 人人網(wǎng) 豆瓣 MSN 對(duì)我有幫助 1回答時(shí)間:2011-1-12 17:11 | 我來評(píng)論 | 檢舉
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版