版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
中原工學(xué)院軟件職業(yè)技術(shù)學(xué)院一級實踐步驟匯報課題名稱:賓館客房管理系統(tǒng)專業(yè):NET軟件班級:NET104學(xué)號:36學(xué)生姓名:李新輝指導(dǎo)老師:羅菁年月日一、題目賓館客房管理系統(tǒng)二、步驟分析賓館客房管理系統(tǒng)賓館客房管理系統(tǒng)客房登記用戶查詢房間查詢退房結(jié)算房間數(shù)選擇類型訂金用戶基礎(chǔ)信息登記客房號查詢姓名查詢空房間查詢查詢?nèi)坑脩舨樵內(nèi)糠块g房間號確定退房日期結(jié)算三、源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>//將字符轉(zhuǎn)化為小寫字母函數(shù)#defineZ50//賓館房間數(shù)#defineAY800#defineBY600#defineCY300#defineAJ15#defineBJ20#defineCJ(Z-AJ-BJ)structhotle{ unsignedintnum; chardj;//多種等級類型 unsignedintmoney; intfk;//判定房間空閑情況0為空,為有些人}room[Z];structdate{ intmonth; intday;};structpeople{ charname[20]; charID[15]; unsignedintnum0;//房間號 unsignedintmoney0;//客人交訂金 structdateru; structdatechu;}kehu[Z];voidsaveroom();voidloadroom();voidprintroom();voidsave(ints);voidsave1(ints);intloadn();voidsaven(intn);voidsavekehu2(intt,intm);///////錄入賓館房間信息//////////////voidluru(){ inta0,b0,c0; a0=b0=c0=0; inti; for(i=0;i<AJ;i++) { room[i].num=((a0++)+601); room[i].dj='A'; room[i].money=AY; room[i].fk=0; } for(i=AJ;i<(BJ+AJ);i++) { room[i].num=((b0++)+501); room[i].dj='B'; room[i].money=BY; room[i].fk=0; } for(i=(AJ+BJ);i<Z;i++) { room[i].num=((c0++)+401); room[i].dj='C'; room[i].money=CY; room[i].fk=0; } saveroom();}voidsaveroom()//儲存房間信息{ FILE*fp; fp=fopen("myhotle.text","wb"); for(inti=0;i<Z;i++)// { if(fwrite(&room[i],sizeof(structhotle),1,fp)!=1) {printf("文件寫入失敗\n");break;} } fclose(fp);}voidloadroom(){ FILE*fp; inti; if((fp=fopen("myhotle.text","rb"))==NULL) {printf("打開文件失敗\n");return;} for(i=0;i<Z;i++) { if(fread(&room[i],sizeof(structhotle),1,fp)!=1) {printf("讀取文件失敗\n");break;} } printf("讀取成功!\n"); fclose(fp);}voidprintroom()/////輸出各個房間信息//////////{ //loadroom(); printf("客房號客房等級客房價格客房空閑(為空)\n"); for(inti=0;i<Z;i++) { printf("%-18d%-12c%-18d%-15d\n",room[i].num,room[i].dj,room[i].money,room[i].fk); }}///////////////輸出各類型空房間信息///////////////voidprintkong(charch){ loadroom(); inti; switch(ch) { case'a': { printf("A類(豪華套房)空房間信息客房號客房價格\n"); for(i=0;i<AJ;i++) { if(room[i].fk==0) { printf("\t\t\t%11d%15d\n",room[i].num,room[i].money); } } break; } case'b': { printf("B類(中等套房)空房間信息客房號客房價格\n"); for(i=AJ;i<(AJ+BJ);i++) { if(room[i].fk==0) { printf("\t\t\t%11d%15d\n",room[i].num,room[i].money); } } break; } case'c': { printf("C類(單人公寓)空房間信息客房號客房價格\n"); for(i=(AJ+BJ);i<Z;i++) { if(room[i].fk==0) { printf("\t\t\t%11d%15d\n",room[i].num,room[i].money); } } break; } }}//////////////////選房間號////////////////////unsignedintpanduan(unsignedintnum1,charch){ inttemp;//統(tǒng)計房間號 inti; loadroom(); for(i=0;i<Z;i++) { if(room[i].num==num1&&(tolower(room[i].dj))==ch) returntemp=i; } printf("請檢驗?zāi)x擇房間號是否有誤!\n"); return(Z+2);}/////////訂房登記//////////intn;//已訂房間數(shù)voiddengji(){ ints;//每次所訂房間數(shù) n=loadn();//讀取每次文件中已訂房間數(shù)值 intflag=0;///真假判定 charch;//用來選擇房間等級 unsignedintmoney1;//預(yù)付金額 FILE*fp; unsignedintt;// printf("請輸入您要訂房間數(shù)\n"); scanf("%d",&s); do { getchar();//接收輸入中回車 printf("請選擇您所訂房間類型A(豪華套房)B(中等套房)C(單人公寓)\n"); ch=getchar(); } while(!(tolower(ch)=='a'||tolower(ch)=='b'||tolower(ch)=='c')); for(inti=0;i<s;i++) { //loadroom(); switch(tolower(ch)) { case'a': { unsignedintnum1;///選擇房間號; printkong(tolower(ch)); printf("請您正確選擇以上房間號:\n"); do { scanf("%d",&num1); t=panduan(num1,tolower(ch)); if(t!=0&&room[t].fk!=0) { printf("此房間已經(jīng)被訂,請重新選擇\n"); flag=1; } elseif(t>Z) {flag=1;} else { flag=0; } } while(flag);//當(dāng)選擇房間錯誤或所選房間有些人時重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請交付訂金(不得低于房價倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預(yù)付訂金不得低于房間價格兩倍 kehu[i].money0=money1; break; } case'b': { unsignedintnum1;///選擇房間號; printkong(tolower(ch)); printf("請您正確選擇以上房間號:\n"); do { scanf("%d",&num1); t=panduan(num1,tolower(ch)); if(t!=0&&room[t].fk!=0) { printf("此房間已經(jīng)被訂,請重新選擇\n"); flag=1; } elseif(t>Z) {flag=1;} else { flag=0; } } while(flag);//當(dāng)選擇房間錯誤或所選房間有些人時重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請交付訂金(不得低于房價倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預(yù)付訂金不得低于房間價格兩倍 kehu[i].money0=money1; break; } case'c': { unsignedintnum1;///選擇房間號; printkong(tolower(ch)); printf("請您正確選擇以上房間號:\n"); do { scanf("%d",&num1); t=panduan(num1,tolower(ch)); if(t!=0&&room[t].fk!=0) { printf("此房間已經(jīng)被訂,請重新選擇\n"); flag=1; } elseif(t>Z) {flag=1;} else { flag=0; } } while(flag);//當(dāng)選擇房間錯誤或所選房間有些人時重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請交付訂金(不得低于房價倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預(yù)付訂金不得低于房間價格兩倍 kehu[i].money0=money1; break; } //saveroom(); } printf("請輸入用戶姓名\n"); getchar();//接收 gets(kehu[i].name); printf("請輸入用戶身份證號"); gets(kehu[i].ID); printf("請輸入入住日期(月、日)\n"); scanf("%d%d",&kehu[i].ru.month,&kehu[i].ru.day); printf("訂房成功,歡迎您光臨\n"); } if((fp=fopen("kehuxinxi.text","rb"))==NULL) {save1(s);} else {save(s);} n=n+s;//n為以訂房間人數(shù)。 saven(n); }//////////存取已訂房間人數(shù)n值////////voidsaven(intn){ FILE*fp; fp=fopen("n.text","w"); fprintf(fp,"%5d",n); fclose(fp);}//////////讀取n值/////////intloadn(){ intm; FILE*fp; if((fp=fopen("n.text","r"))==NULL) return0; else { fscanf(fp,"%d",&m); returnm; }}////存取用戶信息(追加)/////voidsave(ints){ FILE*fp; inti,m; m=loadn(); if((fp=fopen("kehuxinxi.text","ab"))==NULL) { printf("打開文件失敗\n"); return; } for(i=0;i<s;i++) { fwrite(&kehu[i],sizeof(people),1,fp); } fclose(fp); }////////存取(當(dāng)文件為空時)/////////voidsave1(ints){ FILE*fp; fp=fopen("kehuxinxi.text","wb"); for(inti=0;i<s;i++) { fwrite(&kehu[i],sizeof(people),1,fp); } fclose(fp);}////////////////////////讀取用戶信息文件/////////////////voidloadkehu(){ intm,i; m=loadn(); FILE*fp; if((fp=fopen("kehuxinxi.text","rb"))==NULL) { printf("打開文件失敗或用戶信息為空\n"); return; } for(i=0;i<m;i++) { if(fread(&kehu[i],sizeof(people),1,fp)!=1) { printf("讀取文件失敗/n"); return; } }}///////////////////////////////輸出用戶信息/////////////////////////////voidprintkehu(){ loadkehu(); intm,i; m=loadn();//讀取現(xiàn)在總共有多少個客人 printf("客房號用戶姓名ID入住日期預(yù)付金額\n"); for(i=0;i<m;i++) { printf("%-3d\t\t%-3s\t%-3s\t\t%5d月%2d日\t\t%-d\n",kehu[i].num0,kehu[i].name,kehu[i].ID,kehu[i].ru.month,kehu[i].ru.day,kehu[i].money0); }}///////////////////////////輸出一個用戶信息//////////////voidprintkehu2(inti)//i是用戶下標(biāo){ printf("客房號用戶姓名ID入住日期預(yù)付金額\n"); printf("%3d\t\t%3s\t%-3s\t\t%-5d月%-2d日\t\t%d\n",kehu[i].num0,kehu[i].name,kehu[i].ID,kehu[i].ru.month,kehu[i].ru.day,kehu[i].money0); }////////////////////////查詢用戶信息////////////////voidchaxun(){ intk; unsignedintnumk;//查詢客房號 intflag;//判定作用 charnamek[20];//查詢用戶姓名 loadkehu(); printf("1.客房號查詢2.用戶姓名查詢\n"); do { printf("請選擇:"); scanf("%d",&k); } while(!(k==1||k==2)); switch(k) { case1: { flag=1;//// inti; printf("請輸入您要查詢客房號:"); scanf("%d",&numk); for(i=0;i<Z;i++) { if(kehu[i].num0==numk) { flag=0; break; } } if(flag==1)//沒查到時取初值 { printf("沒有找到您要查詢用戶\n"); return; } printkehu2(i); break; } case2: { flag=1;//// inti; printf("請輸入您要查詢用戶姓名:"); getchar();//接收 scanf("%s",namek); for(i=0;i<Z;i++) { if(strcmp(kehu[i].name,namek)==0) { flag=0; break; } } if(flag==1)//沒查到時取初值 { printf("沒有找到您要查詢用戶\n"); return; } printkehu2(i); break; } }}////////////////////////////////////////////////////////////時間(十二個月第幾天)///////////intshijian(intmonth,intday){ inta[12]={31,28,31,30,31,30,31,31,30,31,30,31}; ints=0; for(inti=0;i<month-1;i++) { s=s+a[i]; } s=s+day; returns;}/////////////////////////退房結(jié)算/////////////////////////////voidtuifang(){ inti,m,t1,t2,s1,s2,s; intflag=0; unsignedintmoney9; charch; m=loadn();///客人總數(shù) getchar();//接收 printf("請輸入您要退客房號\n"); unsignedintnum9;//退房間號 scanf("%d",&num9); loadkehu();//讀取用戶信息 loadroom();//讀取房間信息 for(i=0;i<m;i++) { if(kehu[i].num0==num9) { t1=i;//記住用戶位置 flag=1;//證實有這個用戶 break; } } for(i=0;i<Z;i++) { if(room[i].num==num9) { t2=i;//記住房間位置 } } if(flag) { printf("客房號用戶姓名(請檢驗是否正確!)\n"); printf("%5d\t%15s\n",kehu[t1].num0,kehu[t1].name); } else { printf("您客房號輸入有誤\n"); return; } do { getchar();//接收 printf("確定退房請按Y不然請按N(不分大小寫)\n"); ch=getchar(); } while(!(tolower(ch)=='y'||tolower(ch)=='n')); if(tolower(ch)=='y') //退房時 { printf("請您輸入用戶退房日期(月、日)"); scanf("%d%d",&kehu[t1].chu.month,&kehu[t1].chu.day); s1=shijian(kehu[t1].ru.month,kehu[t1].ru.day);//入住時間 s2=shijian(kehu[t1].chu.month,kehu[t1].chu.day);//退房時間 s=s2-s1;//住了多少天; money9=s*room[t2].money; printf("應(yīng)收取人民幣為:%d元\n",money9); if((kehu[t1].money0-money9)>=0) { printf("應(yīng)找您人民幣%d元\n",(kehu[t1].money0-money9)); } else { printf("您預(yù)付金額不足,請您再交取人民幣%d元!\n",(money9-kehu[t1].money0)); } room[t2].fk=0; saveroom(); m=m-1; savekehu2(t1,m); saven(m);//存放剩下已訂房用戶總數(shù) printf("歡迎您下次光臨!\n"); } else { return; } }////////////////用戶退房后存放///////////////////voidsavekehu2(intt,intm)//t為退房用戶下標(biāo),m為剩下訂房用戶人數(shù){ FILE*fp; if((fp=fopen("kehuxinxi.text","wb"))==NULL) { return; } for(t;t<m;t++) { kehu[t].num0=kehu[t+1].num0; strcpy(kehu[t].name,kehu[t+1].name); strcpy(kehu[t].ID,kehu[t+1].ID); kehu[t].money0=kehu[t+1].money0; kehu[t].ru.month=kehu[t+1].ru.month; kehu[t].ru.day=kehu[t+1].ru.day; } for(inti=0;i<m;i++) { if(fwrite(&kehu[i],sizeof(people),1,fp)!=1) { printf("存取失敗\n");break; } } fclose(fp);}voidmulu()//首頁提醒信息{ printf("1.客人入住登記\n"); printf("2.用戶信息查詢\n"); printf("3.查詢房間信息\n"); printf("4.退房結(jié)算\n"); printf("0.退出\n");}voidmain(){ //luru();///重新錄入房間信息 //printkong('b'); //getchar(); //return; charch[50]={"*****welcometo*****"}; printf("********************************************************************\n\n"); printf("%s\n\n",ch); printf("***歡迎您進(jìn)入賓館管理系統(tǒng)***\n\n"); printf("********************************************************************\n\n\n"); mulu(); for(;;) { charch2; intc,k; do { printf("請正確選擇序號:"); scanf("%d",&c); } while(!(c==1||c==2||c==3||c==4||c==5||c==0)); switch(c) { case1: { dengji(); printf("按確定鍵返回主菜單\n"); getchar(); getchar(); break; } case2: {
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健康養(yǎng)生類產(chǎn)品包裝設(shè)計合同3篇
- 二零二五版租賃房屋租賃合同網(wǎng)絡(luò)安全保障協(xié)議4篇
- 2025年度集裝箱裝卸運(yùn)輸操作規(guī)范合同
- 二零二五年度民間個人借款合同金融創(chuàng)新服務(wù)細(xì)則
- 二零二五版農(nóng)業(yè)保險代理服務(wù)合同范本8篇
- 2025年度房產(chǎn)抵押經(jīng)營性貸款合同樣本
- 2025年南京住建部房屋租賃合同規(guī)范版
- 課題申報參考:面向微生物組中介效應(yīng)的群落水平關(guān)聯(lián)檢驗方法研究
- 課題申報參考:美式“小多邊主義”沖擊下中國伙伴關(guān)系的升級與轉(zhuǎn)型研究
- 2025年木材銷售企業(yè)庫存管理服務(wù)合同
- 汽車修理廠管理方案
- 人教版小學(xué)數(shù)學(xué)一年級上冊小學(xué)生口算天天練
- 九年級上冊-備戰(zhàn)2024年中考?xì)v史總復(fù)習(xí)核心考點與重難點練習(xí)(統(tǒng)部編版)
- 三年級數(shù)學(xué)添括號去括號加減簡便計算練習(xí)400道及答案
- 蘇教版五年級上冊數(shù)學(xué)簡便計算300題及答案
- 澳洲牛肉行業(yè)分析
- 老客戶的開發(fā)與技巧課件
- 計算機(jī)江蘇對口單招文化綜合理論試卷
- 成人學(xué)士學(xué)位英語單詞(史上全面)
- KAPPA-實施方法課件
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗方法和判定規(guī)則
評論
0/150
提交評論