版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、酒店房間登記與計費管理系統(tǒng)源代碼#define M 80#include<stdlib.h>#include<stdio.h>#include<string.h>/*函數(shù)聲明*/void check_in(); /*登記入住函數(shù)*/void chamber(); /*入住情況函數(shù)*/void price(); /*當前費用函數(shù)*/void fee(); /*結賬退房函數(shù)*/void infor(); /*信息查詢函數(shù)*/void save(int); /*保存信息函數(shù)*/void read(int); /*讀取信息函數(shù)*/ void choice(); /*
2、功能選擇函數(shù)*/int judge_year(int); /*判斷閏年函數(shù)*/void information(); /*輸出全部房間信息*/*結構體*/struct timeint year; int mon;int date;int hour; struct room /*定義各房間信息的結構體*/char name40;char ID18;int flag; /* 0-無人入住,1-按小時計費,2-按天計費 */long int deposit;time t2; /* 0-入住時間,1-當前時間 */ roomM;char c140=0;char c218=0;/*主函數(shù)(主界面)*/v
3、oid main()system("cls"); /*清屏*/system("color 4E");int n;printf("*");printf("* *");printf("*tt - 歡迎光臨萬豪酒店 - *");printf("* *");printf("*nn");printf("ttt 1. 登記入住 nn");printf("ttt 2. 入住情況 nn");printf("ttt 3. 當
4、前費用 nn");printf("ttt 4. 結賬退房 nn");printf("ttt 5. 信息查詢 nn");printf("ttt 6. 全部信息 nn");printf("ttt 7. 退出系統(tǒng) nn");printf("請輸入您需要的服務的代碼:");scanf("%d",&n);while(n<1|n>7) printf("nn代碼輸入有誤,請您重新輸入:"); scanf("%d",&am
5、p;n); switch(n) /*根據(jù)輸入數(shù)字選擇功能*/ case 1:check_in();break; /*調(diào)用登記入住函數(shù)*/ case 2:chamber();break; /*調(diào)用房間情況函數(shù)*/ case 3:price();break; /*調(diào)用當前費用函數(shù)*/ case 4:fee();break; /*調(diào)用結賬退房函數(shù)*/ case 5:infor();break; /*調(diào)用信息查詢函數(shù)*/ case 6:information();break; /*調(diào)用全部信息函數(shù)*/ case 7:exit(0); /*調(diào)用退出系統(tǒng)函數(shù)*/*查看房間使用情況函數(shù)*/void cham
6、ber() system("cls"); /*清屏*/system("color 4E");printf("n*房間使用情況*n");int count=0;int i;int j;int k;int m;for(i=1;i<=80;i+) /*統(tǒng)計未入住房間總數(shù)*/read(i);if(roomi-1.flag=0) count+;printf("當前未使用房間數(shù):%dnnn",count);chaxun:printf("請輸入你要查詢的房間號(1-40:單人間,41-80:雙人間):"
7、); /*輸入房間號查詢房間入住情況*/scanf("%d",&m);while(m<1|m>80) printf("nn房間號輸入有誤,請您重新輸入:"); scanf("%d",&m); read(m);while(roomm-1.flag!=0) printf("nn對不起,該房間已有客人入住,請輸入其他房間號:"); scanf("%d",&m);read(m);printf("nn該房間沒有客人入住,您要入住該房間嗎?(1-是,2-否):&
8、quot;);scanf("%d",&j);while(j<1|j>2)printf("nn您的選擇輸入有誤,請您重新輸入:");scanf("%d",&j);if(j=1)check_in();elseprintf("nn您需要繼續(xù)查詢嗎?(1-是,2-否):");scanf("%d",&k);while(k<1|k>2)printf("nn您的選擇輸入有誤,請您重新輸入:");scanf("%d",&am
9、p;k);if(k=1)goto chaxun;elseprintf("nn");main();/*登記入住函數(shù)*/void check_in()system("cls"); /*清屏*/system("color 4E");int i;int j;int l;int k;int tab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;printf("n*登記入住*n");printf("請輸入您將入住的
10、房間號:");scanf("%d",&i);while(i<1|i>80) printf("nn房間號輸入有誤,請您重新輸入:"); scanf("%d",&i); read(i);while(roomi-1.flag!=0) /*判斷房間是否入住*/ printf("nn對不起,該房間已有客人入住,請輸入其他房間號:"); scanf("%d",&i);read(i);printf("nn請輸入您的姓名:"); /*客人信息登記
11、*/scanf("%s",);j=strlen();while(j<0)printf("nn您的姓名輸入有誤,請您重新輸入:n"); scanf("%s",); j=strlen(); printf("nn請輸入您的證件號碼:");scanf("%s",roomi-1.ID);j=strlen(roomi-1.ID);while(j!=18)printf("nn您的證件號碼輸入有誤,請
12、您重新輸入:n"); scanf("%s",roomi-1.ID); j=strlen(roomi-1.ID); if(i<=40) printf("nn您選擇的是單人間,該房間148元/天,8元/小時。nnn"); /*選擇計費方式*/ printf("請選擇您的計費方式(1:按小時計費,2:按天計費):");else printf("nn您選擇的是雙人間,該房間128元/天,7元/小時。nnn"); printf("請選擇您的計費方式(1:按小時計費,2:按天計費):");s
13、canf("%d",&roomi-1.flag);while(roomi-1.flag<0|roomi-1.flag>2)printf("nn您的計費方式輸入有誤,請您重新輸入:");scanf("%d",&roomi-1.flag);printf("nn請按所示格式輸入您的入住時間(年-月-日-時,時為24小時制):");scanf("%d-%d-%d-%d",&roomi-1.t0.year,&roomi-1.t0.mon,&roomi-1
14、.t0.date,&roomi-1.t0.hour);l=judge_year(roomi-1.t0.year);while(roomi-1.t0.year<=0)|(roomi-1.t0.mon<=0|roomi-1.t0.mon>12)|(roomi-1.t0.date<=0|roomi-1.t0.date>tablroomi-1.t0.mon-1)|(roomi-1.t0.hour<0|roomi-1.t0.hour>=24)printf("nn您的入住時間輸入有誤,請按照格式重新輸入:");scanf("%
15、d-%d-%d-%d",&roomi-1.t0.year,&roomi-1.t0.mon,&roomi-1.t0.date,&roomi-1.t0.hour);l=judge_year(roomi-1.t0.year);printf("nn請輸入您的押金數(shù)額:");scanf("%ld",&roomi-1.deposit);while(roomi-1.deposit<=0)printf("nn您的押金數(shù)額輸入有誤,請您重新輸入:n");scanf("%ld",
16、&roomi-1.deposit);printf("nn您是否確定您的信息:(1-是,2-否):");scanf("%d",&k);while(k<1|k>2)printf("nn您的選擇輸入有誤,請您重新輸入:n");scanf("%d",&k);if(k=1)printf("nn您已登記入住成功,祝您在本店住得愉快!nn");save(i);choice();elsecheck_in();/*費用查詢函數(shù)*/void price()system("
17、;cls"); /*清屏*/system("color 4E");printf("n*費用查詢*n");int i;int j;int k;int tab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;int day=0;int hr=0;int total_hour;int total_day;long int price;printf("請輸入您的房間號:");scanf("%d",&i);
18、while(i<1|i>80) printf("nn您的房間號輸入有誤,請您重新輸入:"); scanf("%d",&i); read(i);while(roomi-1.flag=0) /*判斷房間是否已有客人入住*/printf("nn該房間無人入住,請重新輸入您的房間號:");scanf("%d",&i);read(i);printf("nn請按所示格式輸入當前時間(年-月-日-時,時為24小時制):"); /*輸入當前時間*/shuru:scanf("
19、%d-%d-%d-%d",&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);while(roomi-1.t1.year<=0)|(roomi-1.t1.mon<=0|roomi-1.t1.mon>12)|(roomi-1.t1.date<=0|roomi-1.t1.date>tabjroomi-1.t1.mon-1)|(roomi-1.t1.hour<0|roomi-1.t
20、1.hour>=24)printf("nn您的入住時間輸入有誤,請按照格式重新輸入:");scanf("%d-%d-%d-%d",&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);if(roomi-1.t0.mon!=roomi-1.t1.mon)for(k=roomi-1.t0.mon+1;k<roomi-1.t1.mon;k+)day+=tabjk-1;day+=
21、tabjroomi-1.t0.mon-1-roomi-1.t0.date+roomi-1.t1.date;elseday+=roomi-1.t1.date-roomi-1.t0.date;hr=roomi-1.t1.hour-roomi-1.t0.hour;if(roomi-1.flag=1) /*根據(jù)房間類型和計費方式計算費用*/if(hr<0)total_hour=day*24-hr;elsetotal_hour=day*24+hr;if(i<=40)price=8*total_hour;elseprice=7*total_hour;if(roomi-1.flag=2)whil
22、e(hr<0)day=day-1;hr=hr+24;if(hr<8)total_day=day;elsetotal_day=day+1;if(i<=40)price=148*total_day;elseprice=128*total_day;while(price<0)printf("您的時間輸入有誤,請重新輸入:");goto shuru;printf("nn當前費用為:%ld元.nn",price); /*輸出當前費用*/choice();/*結賬退房函數(shù)*/void fee()system("cls");
23、system("color 4E");printf("n*結賬退房*n");int i;int j;int k;int tab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31; int day=0;int hr=0;int total_hour;int total_day;long int price;long int fee;printf("請輸入您的房間號:");scanf("%d",&i);while
24、(i<1|i>80) printf("nn您的房間號輸入有誤,請您重新輸入:"); scanf("%d",&i); read(i);while(roomi-1.flag=0) /*判斷房間是否有客人入住*/printf("nn該房間無人入住,請重新輸入您的房間號:");scanf("%d",&i);read(i);printf("nn請按所示格式輸入當前時間(年-月-日-時,時為24小時制):"); /*輸入當前時間*/shuru:scanf("%d-%d-
25、%d-%d",&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);while(roomi-1.t1.year<=0)|(roomi-1.t1.mon<=0|roomi-1.t1.mon>12)|(roomi-1.t1.date<=0|roomi-1.t1.date>tabjroomi-1.t1.mon-1)|(roomi-1.t1.hour<0|roomi-1.t1.hour
26、>=24)printf("nn您的入住時間輸入有誤,請按照格式重新輸入:");scanf("%d-%d-%d-%d",&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);if(roomi-1.t0.mon!=roomi-1.t1.mon)for(k=roomi-1.t0.mon+1;k<roomi-1.t1.mon;k+)day+=tabjk-1;day+=tabjro
27、omi-1.t0.mon-1-roomi-1.t0.date+roomi-1.t1.date;elseday+=roomi-1.t1.date-roomi-1.t0.date;hr=roomi-1.t1.hour-roomi-1.t0.hour;if(roomi-1.flag=1) /*根據(jù)房間類型和計費方式計算費用*/if(hr<0)total_hour=day*24-hr;elsetotal_hour=day*24+hr;if(i<=40)price=8*total_hour;elseprice=7*total_hour;if(roomi-1.flag=2)while(hr&l
28、t;0)day=day-1;hr=hr+24;if(hr<8)total_day=day;elsetotal_day=day+1;if(i<=40)price=148*total_day;elseprice=128*total_day;while(price<0)printf("您的時間輸入有誤,請重新輸入:");goto shuru;fee=price-roomi-1.deposit;if(fee>0) /*輸出最后的總費用*/printf("nn扣除押金后,您另需支付費用%ld元。",fee);else if(fee=0)pr
29、intf("nn您所交納的押金恰好能夠支付您的住房費用,您無需另行交錢。");elseprintf("nn您所交納的押金還未使用完,本賓館應支付您余額%ld元。",-fee);printf("nnn您已退房成功,感謝您的光臨,我們下次再見!nn");roomi-1.flag=0;strcpy(,c1);strcpy(roomi-1.ID,c2);roomi-1.deposit=0;roomi-1.t0.year=0;roomi-1.t0.mon=0;roomi-1.t0.date=0;roomi-1.t0.ho
30、ur=0;roomi-1.t1.year=0;roomi-1.t1.mon=0;roomi-1.t1.date=0;roomi-1.t1.hour=0;save(i);choice();/*信息查詢函數(shù)*/void infor()system("cls");system("color 4E");printf("n*信息查詢*n");int i;printf("請輸入您的房間號:");scanf("%d",&i);while(i<1|i>80) printf("nn您
31、的房間號輸入有誤,請您重新輸入:"); scanf("%d",&i); read(i);while(roomi-1.flag=0) /*判斷房間是否有客人入住*/ printf("nn該房間無人入住,請重新輸入您的房間號:");scanf("%d",&i);read(i);printf("nn您的信息如下:nnn"); /*輸出客人信息*/printf("姓名:");puts();printf("nn");printf(&qu
32、ot;證件號碼:");puts(roomi-1.ID);printf("nn");printf("房間類型:");if(i<=40)printf("單人間nnn");elseprintf("雙人間nnn");printf("計費方式:");if(roomi-1.flag=1)printf("按小時計費nnn");elseprintf("按天計費nnn");printf("入住時間:");printf("%d年%
33、d%月%d日%d時nnn",roomi-1.t0.year,roomi-1.t0.mon,roomi-1.t0.date,roomi-1.t0.hour);printf("押金數(shù)額:");printf("%ld元nn",roomi-1.deposit);choice();/*功能選擇函數(shù)*/void choice()printf("n*功能選擇*n");printf("ttt 1. 入住情況 n");printf("ttt 2. 登記入住 n");printf("ttt 3.
34、 當前費用 n");printf("ttt 4. 結賬退房 n");printf("ttt 5. 信息查詢 n");printf("ttt 6. 回主界面 n");printf("ttt 7. 全部信息 n");printf("ttt 8. 退出系統(tǒng) n");int k;printf("請選擇您需要的服務:"); /*服務選擇*/scanf("%d",&k);while(k<1|k>8) printf("nn代碼輸入
35、有誤,請您重新輸入:"); scanf("%d",&k); switch(k) case 1:chamber();break; /*調(diào)用房間情況函數(shù)*/ case 2:check_in();break; /*調(diào)用登記入住函數(shù)*/ case 3:price();break; /*調(diào)用當前費用函數(shù)*/ case 4:fee();break; /*調(diào)用結賬退房函數(shù)*/ case 5:infor();break; /*調(diào)用信息查詢函數(shù)*/ case 6:main();break; /*調(diào)用主函數(shù)*/ case 7:information();break; /*調(diào)用
36、全部信息函數(shù)*/ case 8:exit(0); /*調(diào)用退出系統(tǒng)函數(shù)*/*判斷閏年函數(shù)*/int judge_year(int x) if(x%4=0)&&(x%100!=0)|(x%400=0)return(1);elsereturn(0);/*全部信息查詢*/void information() system("cls");printf("n*全部信息*n");int i;int j;int k;int year;int month;int date;int hour;int year1;int month1;int day1;in
37、t hour1;int tab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;int day=0;int hr=0;int total_hour;int total_day;long int price;printf("nn請按所示格式輸入當前時間(年-月-日-時,時為24小時制):"); /*輸入當前時間*/scanf("%d-%d-%d-%d",&year,&month,&date,&hour);j=judge_ye
38、ar(year);for(i=1;i<=80;i+)read(i);if(roomi-1.flag=0)printf("房間%d無人入住。n",i);if(i<=40)printf("房間類型:單人間。n");printf("單價:148元/天,8元/小時。n");elseprintf("房間類型:雙人間。n");printf("單價:128元/天,7元/小時。n");elseyear1=year-roomi-1.t0.year;month1=month-roomi-1.t0.mon
39、;day1=date-roomi-1.t0.date;hour1=hour-roomi-1.t0.hour;while(hour1<0)day1=day1-1;hour1=hour1+24;printf("房間%d客戶信息如下:n",i);printf("姓名:");puts();printf("證件號碼:");puts(roomi-1.ID);printf("房間類型:");if(i<=40)printf("單人間n");printf("單價:14
40、8元/天,8元/小時。n");elseprintf("雙人間n");printf("單價:128元/天,7元/小時。n");printf("計費方式:");if(roomi-1.flag=1)printf("按小時計費n");elseprintf("按天計費n");printf("入住時間:");printf("%d年%d%月%d日%d時n",roomi-1.t0.year,roomi-1.t0.mon,roomi-1.t0.date,roomi-1.t0.hour);printf("已入住時間:%d年%d月%d天%d小時。n",year1,m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 展覽展示 合同范本
- 如何寫商標代理合同范本
- 胃癌肝性腦病的護理查房
- 臨時工合同的工作時間與休息規(guī)定
- 推進普通話的校園文化活動方案
- 食品安全輿情監(jiān)控管理方案
- 建筑行業(yè)工人工資發(fā)放實名制方案
- 歷史文化遺產(chǎn)保護與社會主義核心價值觀宣傳方案
- 遠程醫(yī)療通信服務實施方案
- 文化廣場樹木移栽施工方案
- 模特面試登記表
- 餐飲業(yè)月度收入支出費用報表
- 訴訟材料接收表
- 可隨意編輯【封面+簡歷+自薦信】淡雅歐美花紋古典求職個人簡歷
- 人教版選修《中國小說欣賞》課件:聊齋志異
- 混凝土結構設計原理課程設計報告報告
- 工程量計量計算表模板監(jiān)理
- 財經(jīng)應用文寫作教案
- 2022年中國鐵路國際有限公司招考聘用高校畢業(yè)生(同步測試)模擬卷和答案
- 護坡、阻滑體、齒墻、混凝土施工工藝
- 干細胞治療講稿
評論
0/150
提交評論