



版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中原工學(xué)院軟件職業(yè)技術(shù)學(xué)院一級(jí)實(shí)踐環(huán)節(jié)報(bào)告課題名稱:賓館客房管理系統(tǒng)專業(yè):NET 軟件班級(jí):NET104學(xué)號(hào):36學(xué)生姓名:李新輝指導(dǎo)教師:羅菁年月日專業(yè)資料一、題目賓館客房管理系統(tǒng)二、流程分析賓館客房管理系統(tǒng)客房登記客戶查詢房間查詢退房結(jié)算房間數(shù)客姓選 擇房名類型號(hào)查查詢?cè)兛詹榉吭冮g所查有詢房房間號(hào)確定退房訂金查詢所有客戶日期客戶基本信息登記結(jié)算專業(yè)資料三、源代碼#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>/ 將字符轉(zhuǎn)化為小寫字母函數(shù)#def
2、ine Z 50/ 賓館的房間數(shù)#define AY 800#define BY 600#define CY 300#define AJ 15#define BJ 20#define CJ (Z-AJ-BJ)struct hotleunsigned int num;char dj;/ 各種等級(jí)類型unsigned int money;int fk; / 判斷房間的空閑狀況0 為空,為有人roomZ;struct dateint month;int day;struct peoplechar name20;char ID15;unsigned int num0; / 房間號(hào)unsigned in
3、t money0; / 客人交的訂金struct date ru;struct date chu;kehuZ;void saveroom();void loadroom();void printroom();void save(int s);專業(yè)資料void save1(int s);int loadn();void saven(int n);void savekehu2( int t,int m);/錄入賓館房間信息/void luru()int a0,b0,c0;a0=b0=c0=0;int i;for (i=0;i<AJ;i+)roomi.num=(a0+)+601);roomi.
4、dj ='A'roomi.money =AY;roomi.fk=0;for (i=AJ;i<(BJ+AJ);i+)roomi.num=(b0+)+501);roomi.dj ='B'roomi.money =BY;roomi.fk=0;for (i=(AJ+BJ);i<Z;i+)roomi.num=(c0+)+401);roomi.dj ='C'roomi.money =CY;roomi.fk=0;saveroom();void saveroom() / 儲(chǔ)存房間信息FILE *fp;fp=fopen("my hotle.t
5、ext" ,"wb" );for (int i=0;i<Z;i+)/專業(yè)資料if(fwrite(&roomi,sizeof(struct hotle),1,fp)!=1)printf( "文件寫入失敗 n" ); break;fclose(fp);void loadroom()FILE *fp;int i;if(fp=fopen("my hotle.text" ,"rb" )=NULL)printf( "打開(kāi)文件失敗 n" );return ;for (i=0;i<
6、Z;i+)if(fread(&roomi,sizeof (struct hotle),1,fp)!=1)printf( "讀取文件失敗 n" ); break;printf( "讀取成功 !n" );fclose(fp);void printroom()/ 輸出各個(gè)房間的信息/loadroom();printf( "客房號(hào)客房等級(jí)客房?jī)r(jià)格客房空閑(為空)n");for (int i=0;i<Z;i+)printf( "%-18d%-12c%-18d%-15dn",roomi.num,roomi.dj,
7、roomi.money,roomi.fk);/輸出各類型空房間的信息/void printkong( char ch)loadroom();int i;switch (ch)case'a':printf( "A類 (豪華套房 )空房間信息客房號(hào)客房?jī)r(jià)格n" );專業(yè)資料for (i=0;i<AJ;i+)if(roomi.fk=0)printf( "ttt%11d%15dn",roomi.num,roomi.money);break ;case'b':printf( "B類(中檔套房 )空房間信息客房號(hào)客房?jī)r(jià)
8、格n" );for (i=AJ;i<(AJ+BJ);i+)if(roomi.fk=0)printf( "ttt%11d%15dn",roomi.num,roomi.money);break ;case'c':printf( "C類 (單人公寓 ) 空房間信息客房號(hào)客房?jī)r(jià)格n" );for (i=(AJ+BJ);i<Z;i+)if(roomi.fk=0)printf( "ttt%11d%15dn",roomi.num,roomi.money);break ;/選房間號(hào) /unsigned int p
9、anduan( unsigned int num1, char ch)int temp; / 記錄房間號(hào)int i;loadroom();專業(yè)資料for (i=0;i<Z;i+)if(roomi.num=num1&&(tolower(roomi.dj)=ch) return temp=i;printf( "請(qǐng)檢查您選擇的房間號(hào)是否有誤!n" );return (Z+2);/訂房登記 /int n; / 已訂的房間數(shù)void dengji()int s;/ 每次所訂的房間數(shù)n=loadn();/ 讀取每次文件中已訂房間數(shù)的值int flag=0; / 真
10、假判斷char ch; / 用來(lái)選取房間等級(jí)unsigned int money1; / 預(yù)付金額FILE *fp;unsigned int t; /printf( "請(qǐng)輸入您要訂的房間數(shù)n" );scanf("%d" ,&s);dogetchar(); / 接收輸入中的回車printf( "請(qǐng)選擇您所訂房間的類型A(豪華套房)B(中檔套房)C(單人公寓) n" );ch=getchar();while (!(tolower(ch)= 'a'|tolower(ch)= 'b'|tolower(c
11、h)= 'c'); for (int i=0;i<s;i+)/loadroom();switch (tolower(ch)case'a':unsigned int num1; / 選擇的房間號(hào);printkong(tolower(ch);printf( "請(qǐng)您正確選擇以上房間號(hào):n" );do專業(yè)資料scanf("%d" ,&num1);t=panduan(num1,tolower(ch);if(t!=0&&roomt.fk!=0)printf( "此房間已經(jīng)被訂,請(qǐng)重新選擇n&qu
12、ot; );flag=1;else if (t>Z)flag=1;elseflag=0;while (flag); / 當(dāng)選擇房間錯(cuò)誤或者所選房間有人時(shí)重新輸入。roomt.fk=1;saveroom(); / 存取房間信息;kehui.num0=num1;doprintf( "請(qǐng)交付訂金(不得低于房?jī)r(jià)的倍)n");scanf("%d" ,&money1);while (money1<(2*roomt.money);/ 預(yù)付的訂金不得低于房間價(jià)格的兩倍kehui.money0=money1;break;case'b':
13、unsigned int num1; / 選擇的房間號(hào);printkong(tolower(ch);printf( "請(qǐng)您正確選擇以上房間號(hào):n" );doscanf("%d" ,&num1);t=panduan(num1,tolower(ch);專業(yè)資料if(t!=0&&roomt.fk!=0)printf( "此房間已經(jīng)被訂,請(qǐng)重新選擇n" );flag=1;else if (t>Z)flag=1;elseflag=0;while (flag); / 當(dāng)選擇房間錯(cuò)誤或者所選房間有人時(shí)重新輸入。room
14、t.fk=1;saveroom(); / 存取房間信息;kehui.num0=num1;doprintf( "請(qǐng)交付訂金(不得低于房?jī)r(jià)的倍)n");scanf("%d" ,&money1);while (money1<(2*roomt.money);/ 預(yù)付的訂金不得低于房間價(jià)格的兩倍kehui.money0=money1;break;case'c':unsigned int num1; / 選擇的房間號(hào);printkong(tolower(ch);printf( "請(qǐng)您正確選擇以上房間號(hào):n" );do
15、scanf("%d" ,&num1);t=panduan(num1,tolower(ch);if(t!=0&&roomt.fk!=0)printf( "此房間已經(jīng)被訂,請(qǐng)重新選擇n" );flag=1;專業(yè)資料else if (t>Z)flag=1;elseflag=0;while (flag); / 當(dāng)選擇房間錯(cuò)誤或者所選房間有人時(shí)重新輸入。roomt.fk=1;saveroom(); / 存取房間信息;kehui.num0=num1;doprintf( "請(qǐng)交付訂金(不得低于房?jī)r(jià)的倍)n");scan
16、f("%d" ,&money1);while (money1<(2*roomt.money);/ 預(yù)付的訂金不得低于房間價(jià)格的兩倍kehui.money0=money1;break;/saveroom();printf( "請(qǐng)輸入客戶的姓名 n" );getchar(); / 接收gets();printf( "請(qǐng)輸入客戶的身份證號(hào)");gets(kehui.ID);printf( "請(qǐng)輸入入住日期 (月、日 )n" );scanf("%d%d" ,&k
17、ehui.ru.month,&kehui.ru.day);printf( "訂房成功,歡迎您的光臨n" );if(fp=fopen("kehuxinxi.text" ,"rb" )=NULL)save1(s);elsesave(s);n=n+s; /n 為以訂房間的人數(shù)。saven(n);專業(yè)資料/存取已訂房間人數(shù)n的值 /void saven(int n)FILE *fp;fp=fopen("n.text" ,"w" );fprintf(fp, "%5d" ,n);
18、fclose(fp);/讀取 n的值 /int loadn()int m;FILE *fp;if(fp=fopen("n.text" ,"r")=NULL)return 0;elsefscanf(fp, "%d" ,&m);return m;/ 存取客戶信息 ( 追加 )/ void save(int s)FILE *fp; int i,m;m=loadn();if(fp=fopen("kehuxinxi.text" ,"ab")=NULL)printf( "打開(kāi)文件失敗 n&
19、quot;);return ;for (i=0;i<s;i+)fwrite(&kehui,sizeof(people),1,fp);fclose(fp);專業(yè)資料/存?。ó?dāng)文件為空時(shí))/void save1(int s)FILE *fp;fp=fopen("kehuxinxi.text" ,"wb" );for (int i=0;i<s;i+)fwrite(&kehui,sizeof(people),1,fp);fclose(fp);/讀取客戶信息文件/void loadkehu()int m,i;m=loadn();FILE
20、 *fp;if(fp=fopen("kehuxinxi.text" ,"rb" )=NULL)printf( "打開(kāi)文件失敗或者客戶信息為空n" );return ;for (i=0;i<m;i+)if(fread(&kehui,sizeof(people),1,fp)!=1)printf( "讀取文件失敗 /n" );return ;/輸出客戶信息 /void printkehu()loadkehu();int m,i;m=loadn();/ 讀取現(xiàn)在總共有多少個(gè)客人printf( "客房
21、號(hào)客戶姓名ID入住日期預(yù)付金額 n" );專業(yè)資料for (i=0;i<m;i+)printf( "%-3dtt%-3st%-3stt%5d 月 %2d 日tt%-dn" ,kehui.num0,,kehui.ID,kehui.ru.month,kehui.ru.day,keh ui.money0);/輸出一個(gè)客戶信息/void printkehu2( int i)/i 是客戶的下標(biāo)printf( "客房號(hào)客戶姓名ID入住日期預(yù)付金額 n" );printf( "%3dtt%3st%-3stt%-5d月%-2
22、d日tt%dn" ,kehui.num0,,kehui.ID,kehui.ru.month,kehui.ru.day,kehu i.money0);/查詢客戶信息 /void chaxun()int k;unsigned int numk; / 查詢的客房號(hào)int flag; / 判斷作用char namek20; / 查詢的客戶姓名loadkehu();printf( "1.客房號(hào)查詢2. 客戶姓名查詢n" );doprintf( "請(qǐng)選擇:");scanf("%d" ,&k);while (!
23、(k=1|k=2);switch (k)case 1:flag=1; /int i;printf( "請(qǐng)輸入您要查詢的客房號(hào):");scanf("%d" ,&numk);for (i=0;i<Z;i+)專業(yè)資料if(kehui.num0=numk)flag=0;break ;if(flag=1)/ 沒(méi)查到時(shí)取初值printf( "沒(méi)有找到您要查詢的客戶n" );return ;printkehu2(i);break ;case 2:flag=1; /int i;printf( "請(qǐng)輸入您要查詢的客戶姓名:&qu
24、ot;);getchar(); / 接收scanf("%s" ,namek);for (i=0;i<Z;i+)if(strcmp(,namek)=0)flag=0;break ;if(flag=1)/ 沒(méi)查到時(shí)取初值printf( "沒(méi)有找到您要查詢的客戶n");return ;printkehu2(i);break;專業(yè)資料/時(shí)間 (一年的第幾天 )/int shijian( int month, int day)int a12=31,28,31,30,31,30,31,31,30,31,30,31;int s=0;for (
25、int i=0;i<month-1;i+)s=s+ai;s=s+day;return s;/退房結(jié)算 /void tuifang()int i,m,t1,t2,s1,s2,s;int flag=0;unsigned int money9;char ch;m=loadn();/ 客人總數(shù)getchar(); / 接收printf( "請(qǐng)輸入您要退的客房號(hào)n" );unsigned int num9; / 退的房間號(hào)scanf("%d" ,&num9);loadkehu(); / 讀取客戶信息loadroom();/ 讀取房間信息for (i=
26、0;i<m;i+)if(kehui.num0=num9)t1=i; / 記住客戶的位置flag=1; / 證明有這個(gè)客戶break ;專業(yè)資料for (i=0;i<Z;i+)if(roomi.num=num9)t2=i; / 記住房間的位置if(flag)printf( " 客房號(hào)客戶姓名(請(qǐng)檢查是否正確!) n " );printf( "%5dt%15sn",kehut1.num0,);elseprintf( "您的客房號(hào)輸入有誤n" );return ;dogetchar(); / 接收print
27、f( "確認(rèn)退房請(qǐng)按 Y否則請(qǐng)按 N( 不分大小寫 )n" );ch=getchar();while (!(tolower(ch)='y'|tolower(ch)='n');if(tolower(ch)='y')/ 退房時(shí)printf( "請(qǐng)您輸入客戶的退房日期(月、日)");scanf("%d%d" ,&kehut1.chu.month,&kehut1.chu.day);s1=shijian(kehut1.ru.month,kehut1.ru.day);/ 入住的時(shí)間s
28、2=shijian(kehut1.chu.month,kehut1.chu.day);/ 退房時(shí)間s=s2-s1;/ 住了多少天;money9=s*roomt2.money;printf( "應(yīng)收取的人民幣為:%d元 n" ,money9);if(kehut1.money0-money9)>=0)printf( "應(yīng)找您人民幣 %d元 n" ,(kehut1.money0-money9);else專業(yè)資料printf( "您的預(yù)付金額不足,請(qǐng)您再交取人民幣%d元!n" ,(money9-kehut1.money0);roomt2
29、.fk=0;saveroom();m=m-1;savekehu2(t1,m);saven(m); / 存儲(chǔ)剩余已訂房的客戶總數(shù)printf( "歡迎您下次光臨 !n" );elsereturn ;/客戶退房后存儲(chǔ)/void savekehu2( int t,int m)/t 為退房客戶的下標(biāo),m 為剩余訂房客戶的人數(shù)FILE *fp;if(fp=fopen("kehuxinxi.text" ,"wb" )=NULL)return ;for (t;t<m;t+)kehut.num0=kehut+1.num0;strcpy(kehu
30、,kehut+1.name);strcpy(kehut.ID,kehut+1.ID);kehut.money0=kehut+1.money0;kehut.ru.month=kehut+1.ru.month;kehut.ru.day=kehut+1.ru.day;for (int i=0;i<m;i+)if(fwrite(&kehui,sizeof(people),1,fp)!=1)專業(yè)資料printf( "存取失敗 n"); break ;fclose(fp);void mulu() / 首頁(yè)提示信息printf( "1. 客人入住登記
31、n");printf( "2. 客戶信息查詢 n" );printf( "3. 查詢房間信息 n" );printf( "4. 退房結(jié)算 n");printf( "0. 退出 n" );void main()/luru();/重新錄入房間信息/printkong('b');/getchar();/return;char ch50="* * * * * welcome to * * * * *"printf( "* *nn" );printf( "%snn" ,ch);printf( "* * *歡迎您進(jìn)入賓館管理系統(tǒng)* * *nn");printf( "*nnn");mulu();for (;)char ch2;int c,k;專業(yè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 惠州經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院《工程管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 西北工業(yè)大學(xué)《港澳臺(tái)廣告》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津城市建設(shè)管理職業(yè)技術(shù)學(xué)院《算法課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武昌首義學(xué)院《社會(huì)工作倫理》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西軟件職業(yè)技術(shù)大學(xué)《電子商務(wù)運(yùn)營(yíng)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東農(nóng)業(yè)工程學(xué)院《投資銀行學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京中醫(yī)藥大學(xué)東方學(xué)院《信息化管理與技術(shù)創(chuàng)新》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京城市學(xué)院《機(jī)械CAD》2023-2024學(xué)年第二學(xué)期期末試卷
- 順德職業(yè)技術(shù)學(xué)院《民族建筑與文化實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江工程學(xué)院昆侖旅游學(xué)院《外貿(mào)制單英》2023-2024學(xué)年第二學(xué)期期末試卷
- 2023屆高三物理一輪復(fù)習(xí)89熱學(xué)中的變質(zhì)量問(wèn)題(解析版)
- 人教版 美術(shù) 三年級(jí)下冊(cè)全冊(cè)表格式教案教學(xué)設(shè)計(jì)
- 2021年全國(guó)高中數(shù)學(xué)聯(lián)賽浙江賽區(qū)初賽試題
- 公路工程質(zhì)量檢驗(yàn)評(píng)定標(biāo)準(zhǔn) 第二冊(cè)機(jī)電工程 JTG 2182-2020
- 【基于SERVQUAL模型的京東生鮮電商物流服務(wù)質(zhì)量評(píng)價(jià)的實(shí)例探析8100字(論文)】
- 住院精神疾病患者自殺風(fēng)險(xiǎn)護(hù)理(2023版團(tuán)標(biāo))
- 高血壓危象護(hù)理教學(xué)查房
- 腳手架工程安全管理風(fēng)險(xiǎn)辨識(shí)及防范措施
- 十字頭夾具設(shè)計(jì)說(shuō)明書
- 04S202 室內(nèi)消火栓安裝
- 醫(yī)療設(shè)備強(qiáng)檢計(jì)量目錄(參考)
評(píng)論
0/150
提交評(píng)論