C語言課程設(shè)計(jì)酒店房間登記與計(jì)費(fèi)管理系統(tǒng)源代碼_第1頁
C語言課程設(shè)計(jì)酒店房間登記與計(jì)費(fèi)管理系統(tǒng)源代碼_第2頁
C語言課程設(shè)計(jì)酒店房間登記與計(jì)費(fèi)管理系統(tǒng)源代碼_第3頁
C語言課程設(shè)計(jì)酒店房間登記與計(jì)費(fèi)管理系統(tǒng)源代碼_第4頁
C語言課程設(shè)計(jì)酒店房間登記與計(jì)費(fèi)管理系統(tǒng)源代碼_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、酒店房間登記與計(jì)費(fèi)管理系統(tǒng)源代碼#define M 80#include<stdlib.h>#include<stdio.h>#include<string.h>/* 函數(shù)聲明 */void check_in();/* 登記入住函數(shù) */void chamber();/* 入住情況函數(shù)*/void price();/* 當(dāng)前費(fèi)用函數(shù)*/void fee();/* 結(jié)賬退房函數(shù)*/void infor();/* 信息查詢函數(shù)*/void save(int);/* 保存信息函數(shù)*/void read(int);/* 讀取信息函數(shù)*/void choice();/

2、* 功能選擇函數(shù)*/int judge_year(int); /* 判斷閏年函數(shù)*/void information(); /* 輸出全部房間信息 */* 結(jié)構(gòu)體 */struct timeint year;int mon;int date;int hour;struct room/* 定義各房間信息的結(jié)構(gòu)體 */char name40;char ID18;*/int flag;/* 0- 無人入住,1-按小時計(jì)費(fèi),2-按天計(jì)費(fèi)long int deposit;time t2;/*0-入住時間,1-當(dāng)前時間*/roomM;char c140=0;char c218=0;/* 主函數(shù)(主界面)

3、*/void main()system("cls");/* 清屏 */ system("color 4E");int n;printf(”*"printf("*");printf("*tt*");printf("* 歡 迎 光 臨 萬 豪 酒 店/* 查看房間使用情況函數(shù)*/第3頁printf(printf("ttt printf("ttt1.2.登記入住入住情況nn");nn");printf("ttt3.當(dāng)前費(fèi)用nn");print

4、f("ttt4.結(jié)賬退房nn");printf("ttt5.信息查詢nn");printf("ttt6.全部信息nn");printf("ttt7.退出系統(tǒng)nn");printf(" 請輸入您需要的服務(wù)的代碼: ");”*nn");scanf("%d",&n);while(n<1|n>7)printf("nn 代碼輸入有誤,請您重新輸入: ");*/scanf("%d",&n);switch(n)c

5、ase 1:check_in();break;case 2:chamber();break;case 3:price();break;case 4:fee();break;case 5:infor();break;case 6:information();break;case 7:exit(0);/* 根據(jù)輸入數(shù)字選擇功能/* 調(diào)用登記入住函數(shù)*/* 調(diào)用房間情況函數(shù)*/* 調(diào)用當(dāng)前費(fèi)用函數(shù)*/* 調(diào)用結(jié)賬退房函數(shù)*/* 調(diào)用信息查詢函數(shù)*/* 調(diào)用全部信息函數(shù)*/* 調(diào)用退出系統(tǒng)函數(shù)*/* 清屏 */void chamber() system("cls");system(

6、"color 4E");printf("n*房間使用情況*n");*int count=0;int i;int j;int k;int m;for(i=1;i<=80;i+)/* 統(tǒng)計(jì)未入住房間總數(shù)*/read(i);if(roomi-1.flag=0)count+;printf(" 當(dāng)前未使用房間數(shù): %dnnn",count);chaxun:printf(" 請輸入你要查詢的房間號( 1-40:單人間, 41-80:雙人間) : ");/* 輸入房間號查詢房間入住情況*/scanf("%d&qu

7、ot;,&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-否): ");scanf("%d",&j);

8、while(j<1|j>2)printf("nn 您的選擇輸入有誤,請您重新輸入: ");scanf("%d",&j); if(j=1) check_in();elseprintf("nn 您需要繼續(xù)查詢嗎?(1-是,2-否): ");第3頁scanf("%d",&k);while(k<1|k>2)printf("nn 您的選擇輸入有誤,請您重新輸入: ");scanf("%d",&k);if(k=1)goto chaxun;e

9、lseprintf("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*登記入住/* 客人信息登記*/第5頁");/* 判斷房間是否入住 */*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 請輸入您的姓名: ");scanf("%

11、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 您的證件號碼輸入有誤,請您重新輸入: n"

12、;);scanf("%s",roomi-1.ID);j=strlen(roomi-1.ID);if(i<=40)printf("nn 您選擇的是單人間,該房間 148 元/天, 8 元/小時。 nnn");/* 選擇計(jì)費(fèi)方式*/printf(" 請選擇您的計(jì)費(fèi)方式( 1:按小時計(jì)費(fèi), 2:按天計(jì)費(fèi)) : ");elseprintf("nn 您選擇的是雙人間,該房間 128 元/天, 7 元/小時。 nnn"); printf(" 請選擇您的計(jì)費(fèi)方式( 1:按小時計(jì)費(fèi), 2:按天計(jì)費(fèi)) : "

13、;);scanf("%d",&roomi-1.flag);while(roomi-1.flag<0|roomi-1.flag>2)printf("nn 您的計(jì)費(fèi)方式輸入有誤,請您重新輸入: ");scanf("%d",&roomi-1.flag);printf("nn 請按所示格式輸入您的入住時間(年-月 -日 -時,時為24 小時制) : ");scanf("%d-%d-%d-%d",&roomi-1.t0.year,&roomi-1.t0.mon,

14、&roomi-1.t 0.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 您的入住時間輸入有誤,請按照格式重新輸入: &quo

15、t;);scanf("%d-%d-%d-%d",&roomi-1.t0.year,&roomi-1.t0.mon,&roomi-1.t第5頁0.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"

16、);scanf("%ld",&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();/*

17、 費(fèi)用查詢函數(shù)*/* 清屏 */void price() system("cls");system("color 4E");printf("n*費(fèi)用查詢*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(" 請輸入您的房間號: &

18、quot;);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 請按所示格式輸入當(dāng)前時間(年-月 -日 -時,時為24

19、小時制) :");/* 輸入當(dāng)前時間 */shuru:scanf("%d-%d-%d-%d",&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t 1.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>tabjroo

20、mi-1.t1.mon-1 )|(roomi-1.t1.hour<0|roomi-1.t1.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.t

21、0.mon+1;k<roomi-1.t1.mon;k+) day+=tabjk-1;day+=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;第7頁/* 根據(jù)房間類型和計(jì)費(fèi)方/* 輸出當(dāng)前printf("n*結(jié)賬退房if(roomi-1.flag=1)式計(jì)算費(fèi)用 */if(hr<0)total_hour=day*24-hr;elsetotal_hour=day*24

22、+hr;if(i<=40)price=8*total_hour;elseprice=7*total_hour;if(roomi-1.flag=2)while(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 當(dāng)前費(fèi)用為: %

23、ld 元 .nn",price);費(fèi)用 */choice();/* 結(jié)賬退房函數(shù)*/ void fee()system("cls");system("color 4E");第 15 頁*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

24、 fee;printf(" 請輸入您的房間號: ");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

25、 請按所示格式輸入當(dāng)前時間(年-月 -日 -時,時為24 小時制) :");/* 輸入當(dāng)前時間 */shuru:scanf("%d-%d-%d-%d",&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t 1.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<

26、=0|roomi-1.t1.date>tabjroomi-1.t1.mon-1 )|(roomi-1.t1.hour<0|roomi-1.t1.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!=r

27、oomi-1.t1.mon)for(k=roomi-1.t0.mon+1;k<roomi-1.t1.mon;k+)day+=tabjk-1;day+=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ì)算費(fèi)用 */if(hr<0)total_hour=day*24-hr; else/* 根據(jù)房間類型和計(jì)費(fèi)方式total_hour=day*24

28、+hr;if(i<=40)price=8*total_hour;elseprice=7*total_hour;if(roomi-1.flag=2)while(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;fee=price-roomi-1.deposit;if(fee&

29、gt;0)");/* 輸出最后的總費(fèi)用 */printf("nn 扣除押金后,您另需支付費(fèi)用 %ld 元。 ",fee);else if(fee=0)printf("nn 您所交納的押金恰好能夠支付您的住房費(fèi)用,您無需另行交錢。 ");elseprintf("nn您所交納的押金還未使用完,本賓館應(yīng)支付您余額%ld 元。",-fee);printf("nnn您已退房成功,感謝您的光臨,我們下次再見!nn");roomi-1.flag=0;strcpy(,c1);strcpy(room

30、i-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.hour=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*信息查詢第 23 頁*n"

31、int i;printf(" 請輸入您的房間號: ");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

32、 您的信息如下: nnn");/* 輸出客人信息*/printf(" 姓名: ");puts();printf("nn");printf(" 證件號碼: ");puts(roomi-1.ID);printf("nn");printf(" 房間類型: ");if(i<=40)printf(" 單人間nnn");elseprintf(" 雙人間nnn");printf(" 計(jì)費(fèi)方式: ");if(ro

33、omi-1.flag=1)printf(" 按小時計(jì)費(fèi)nnn");elseprintf(" 按天計(jì)費(fèi)nnn");printf(" 入住時間: ");printf("%d年%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ù)

34、*/void choice()printf("n*功能選擇*n");*printf("ttt1.入住情況n");printf("ttt2.登記入住n");printf("ttt3.當(dāng)前費(fèi)用n");printf("ttt4.結(jié)賬退房n");printf("ttt5.信息查詢n");printf("ttt6.回主界面n");printf("ttt7.全部信息n");printf("ttt8.退出系統(tǒng)n");int k;p

35、rintf(" 請選擇您需要的服務(wù):");/* 服務(wù)選擇*/scanf("%d",&k);while(k<1|k>8)printf("nn 代碼輸入有誤,請您重新輸入: ");scanf("%d",&k);switch(k) case 1:chamber();break;case 2:check_in();break;case 3:price();break;case 4:fee();break;case 5:infor();break;case 6:main();break;case

36、7:information();break;case 8:exit(0);/* 調(diào)用房間情況函數(shù)*/* 調(diào)用登記入住函數(shù)*/* 調(diào)用當(dāng)前費(fèi)用函數(shù)*/* 調(diào)用結(jié)賬退房函數(shù)*/* 調(diào)用信息查詢函數(shù)*/* 調(diào)用主函數(shù)*/* 調(diào)用全部信息函數(shù)*/* 調(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*部信息

37、*int i;int j;int k;int year;int month;int date;int hour;int year1;int month1;int day1;int 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;24 小時制) :long int price;printf("nn 請按所示格式輸入當(dāng)前時間(年-月 -日 -時,時為");

38、/* 輸入當(dāng)前時間 */scanf("%d-%d-%d-%d",&year,&month,&date,&hour);j=judge_year(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(" 房間類型:雙人

39、間。 n");printf(" 單價: 128 元/ 天, 7 元/小時。 n");elseyear1=year-roomi-1.t0.year;month1=month-roomi-1.t0.mon;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();pri

40、ntf(" 證件號碼:");puts(roomi-1.ID);printf(" 房間類型:");if(i<=40)printf(" 單人間 n");printf(" 單價: 148 元/ 天, 8 元/小時。n");elseprintf(" 雙人間 n");printf(" 單價: 128 元/ 天, 7 元/小時。n");printf(" 計(jì)費(fèi)方式: ");if(roomi-1.flag=1)printf(" 按小時計(jì)費(fèi)n");elseprintf(" 按天計(jì)費(fèi)n");printf(" 入住時間: ");printf("%d年%d% 月 %d 日 %d 時n",roomi-1.t0.year,roomi-1.t0.mon,roomi-1.t0.date,roomi-1.t0.ho ur);printf(" 已 入 住 時 間 : %d 年 %d 月 %d 天 %d 小 時 。 n",year1,month1,day1,hour1);printf(" 押金數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論