




版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古代文學(xué)史重要文化現(xiàn)象試題及答案
- 汽車維修工專業(yè)考試試卷及答案解讀
- 探討寵物行為與營養(yǎng)的聯(lián)系及試題及答案
- 了解寵物腸道健康的試題及答案
- 2024年汽車維修工考試的技術(shù)要求試題及答案
- 北舞九級舞蹈試題及答案
- 2024美容師行業(yè)發(fā)展與職業(yè)生涯規(guī)劃題及答案
- 寵物營養(yǎng)與食品科技的結(jié)合應(yīng)用試題及答案
- 基礎(chǔ)醫(yī)學(xué)的試題類型及答案
- 小自考行政管理重要人物與思想試題及答案
- 2023年烏魯木齊市沙依巴克區(qū)林業(yè)系統(tǒng)事業(yè)單位招聘筆試模擬試題及答案解析
- 六年級下冊語文人教部編版課件綜合性學(xué)習(xí):奮斗的歷程(課件)
- 壓裂施工安全操作規(guī)定(正式)
- 生理衛(wèi)生教學(xué)【青春期男生性教育】走向成熟課件
- 人工呼吸的三種方式和操作方法課件
- 項目基坑坍塌事故專項應(yīng)急預(yù)案桌面演練腳本
- 危險化學(xué)品MSDS(氮氣)
- 無創(chuàng)通氣常用模式與參數(shù)調(diào)節(jié)
- GB∕T 8427-2019 紡織品 色牢度試驗 耐人造光色牢度:氙弧
- 退休人員實行社區(qū)管理申請書
- 全國同等學(xué)力工商管理大綱重點整理
評論
0/150
提交評論