專業(yè)課程設(shè)計(jì)賓館標(biāo)準(zhǔn)管理系統(tǒng)C語(yǔ)言版_第1頁(yè)
專業(yè)課程設(shè)計(jì)賓館標(biāo)準(zhǔn)管理系統(tǒng)C語(yǔ)言版_第2頁(yè)
專業(yè)課程設(shè)計(jì)賓館標(biāo)準(zhǔn)管理系統(tǒng)C語(yǔ)言版_第3頁(yè)
專業(yè)課程設(shè)計(jì)賓館標(biāo)準(zhǔn)管理系統(tǒng)C語(yǔ)言版_第4頁(yè)
專業(yè)課程設(shè)計(jì)賓館標(biāo)準(zhǔn)管理系統(tǒng)C語(yǔ)言版_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

中原工學(xué)院軟件職業(yè)技術(shù)學(xué)院一級(jí)實(shí)踐步驟匯報(bào)課題名稱:賓館客房管理系統(tǒng)專業(yè):NET軟件班級(jí):NET104學(xué)號(hào):36學(xué)生姓名:李新輝指導(dǎo)老師:羅菁年月日一、題目賓館客房管理系統(tǒng)二、步驟分析賓館客房管理系統(tǒng)賓館客房管理系統(tǒng)客房登記用戶查詢房間查詢退房結(jié)算房間數(shù)選擇類型訂金用戶基礎(chǔ)信息登記客房號(hào)查詢姓名查詢空房間查詢查詢?nèi)坑脩舨樵內(nèi)糠块g房間號(hào)確定退房日期結(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;//多種等級(jí)類型 unsignedintmoney; intfk;//判定房間空閑情況0為空,為有些人}room[Z];structdate{ intmonth; intday;};structpeople{ charname[20]; charID[15]; unsignedintnum0;//房間號(hào) 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()//儲(chǔ)存房間信息{ 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("打開(kāi)文件失敗\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()/////輸出各個(gè)房間信息//////////{ //loadroom(); printf("客房號(hào)客房等級(jí)客房?jī)r(jià)格客房空閑(為空)\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類(豪華套房)空房間信息客房號(hào)客房?jī)r(jià)格\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類(中等套房)空房間信息客房號(hào)客房?jī)r(jià)格\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類(單人公寓)空房間信息客房號(hào)客房?jī)r(jià)格\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; } }}//////////////////選房間號(hào)////////////////////unsignedintpanduan(unsignedintnum1,charch){ inttemp;//統(tǒng)計(jì)房間號(hào) inti; loadroom(); for(i=0;i<Z;i++) { if(room[i].num==num1&&(tolower(room[i].dj))==ch) returntemp=i; } printf("請(qǐng)檢驗(yàn)?zāi)x擇房間號(hào)是否有誤!\n"); return(Z+2);}/////////訂房登記//////////intn;//已訂房間數(shù)voiddengji(){ ints;//每次所訂房間數(shù) n=loadn();//讀取每次文件中已訂房間數(shù)值 intflag=0;///真假判定 charch;//用來(lái)選擇房間等級(jí) unsignedintmoney1;//預(yù)付金額 FILE*fp; unsignedintt;// printf("請(qǐng)輸入您要訂房間數(shù)\n"); scanf("%d",&s); do { getchar();//接收輸入中回車 printf("請(qǐng)選擇您所訂房間類型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;///選擇房間號(hào); printkong(tolower(ch)); printf("請(qǐng)您正確選擇以上房間號(hào):\n"); do { scanf("%d",&num1); t=panduan(num1,tolower(ch)); if(t!=0&&room[t].fk!=0) { printf("此房間已經(jīng)被訂,請(qǐng)重新選擇\n"); flag=1; } elseif(t>Z) {flag=1;} else { flag=0; } } while(flag);//當(dāng)選擇房間錯(cuò)誤或所選房間有些人時(shí)重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請(qǐng)交付訂金(不得低于房?jī)r(jià)倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預(yù)付訂金不得低于房間價(jià)格兩倍 kehu[i].money0=money1; break; } case'b': { unsignedintnum1;///選擇房間號(hào); printkong(tolower(ch)); printf("請(qǐng)您正確選擇以上房間號(hào):\n"); do { scanf("%d",&num1); t=panduan(num1,tolower(ch)); if(t!=0&&room[t].fk!=0) { printf("此房間已經(jīng)被訂,請(qǐng)重新選擇\n"); flag=1; } elseif(t>Z) {flag=1;} else { flag=0; } } while(flag);//當(dāng)選擇房間錯(cuò)誤或所選房間有些人時(shí)重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請(qǐng)交付訂金(不得低于房?jī)r(jià)倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預(yù)付訂金不得低于房間價(jià)格兩倍 kehu[i].money0=money1; break; } case'c': { unsignedintnum1;///選擇房間號(hào); printkong(tolower(ch)); printf("請(qǐng)您正確選擇以上房間號(hào):\n"); do { scanf("%d",&num1); t=panduan(num1,tolower(ch)); if(t!=0&&room[t].fk!=0) { printf("此房間已經(jīng)被訂,請(qǐng)重新選擇\n"); flag=1; } elseif(t>Z) {flag=1;} else { flag=0; } } while(flag);//當(dāng)選擇房間錯(cuò)誤或所選房間有些人時(shí)重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請(qǐng)交付訂金(不得低于房?jī)r(jià)倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預(yù)付訂金不得低于房間價(jià)格兩倍 kehu[i].money0=money1; break; } //saveroom(); } printf("請(qǐng)輸入用戶姓名\n"); getchar();//接收 gets(kehu[i].name); printf("請(qǐng)輸入用戶身份證號(hào)"); gets(kehu[i].ID); printf("請(qǐng)輸入入住日期(月、日)\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("打開(kāi)文件失敗\n"); return; } for(i=0;i<s;i++) { fwrite(&kehu[i],sizeof(people),1,fp); } fclose(fp); }////////存?。ó?dāng)文件為空時(shí))/////////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("打開(kāi)文件失敗或用戶信息為空\(chéng)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)在總共有多少個(gè)客人 printf("客房號(hào)用戶姓名ID入住日期預(yù)付金額\n"); for(i=0;i<m;i++) { printf("%-3d\t\t%-3s\t%-3s\t\t%5d月%2d日\(chéng)t\t%-d\n",kehu[i].num0,kehu[i].name,kehu[i].ID,kehu[i].ru.month,kehu[i].ru.day,kehu[i].money0); }}///////////////////////////輸出一個(gè)用戶信息//////////////voidprintkehu2(inti)//i是用戶下標(biāo){ printf("客房號(hào)用戶姓名ID入住日期預(yù)付金額\n"); printf("%3d\t\t%3s\t%-3s\t\t%-5d月%-2d日\(chéng)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;//查詢客房號(hào) intflag;//判定作用 charnamek[20];//查詢用戶姓名 loadkehu(); printf("1.客房號(hào)查詢2.用戶姓名查詢\n"); do { printf("請(qǐng)選擇:"); scanf("%d",&k); } while(!(k==1||k==2)); switch(k) { case1: { flag=1;//// inti; printf("請(qǐng)輸入您要查詢客房號(hào):"); scanf("%d",&numk); for(i=0;i<Z;i++) { if(kehu[i].num0==numk) { flag=0; break; } } if(flag==1)//沒(méi)查到時(shí)取初值 { printf("沒(méi)有找到您要查詢用戶\n"); return; } printkehu2(i); break; } case2: { flag=1;//// inti; printf("請(qǐng)輸入您要查詢用戶姓名:"); getchar();//接收 scanf("%s",namek); for(i=0;i<Z;i++) { if(strcmp(kehu[i].name,namek)==0) { flag=0; break; } } if(flag==1)//沒(méi)查到時(shí)取初值 { printf("沒(méi)有找到您要查詢用戶\n"); return; } printkehu2(i); break; } }}////////////////////////////////////////////////////////////時(shí)間(十二個(gè)月第幾天)///////////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("請(qǐng)輸入您要退客房號(hào)\n"); unsignedintnum9;//退房間號(hào) scanf("%d",&num9); loadkehu();//讀取用戶信息 loadroom();//讀取房間信息 for(i=0;i<m;i++) { if(kehu[i].num0==num9) { t1=i;//記住用戶位置 flag=1;//證實(shí)有這個(gè)用戶 break; } } for(i=0;i<Z;i++) { if(room[i].num==num9) { t2=i;//記住房間位置 } } if(flag) { printf("客房號(hào)用戶姓名(請(qǐng)檢驗(yàn)是否正確!)\n"); printf("%5d\t%15s\n",kehu[t1].num0,kehu[t1].name); } else { printf("您客房號(hào)輸入有誤\n"); return; } do { getchar();//接收 printf("確定退房請(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",&kehu[t1].chu.month,&kehu[t1].chu.day); s1=shijian(kehu[t1].ru.month,kehu[t1].ru.day);//入住時(shí)間 s2=shijian(kehu[t1].chu.month,kehu[t1].chu.day);//退房時(shí)間 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ù)付金額不足,請(qǐng)您再交取人民幣%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()//首頁(yè)提醒信息{ 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("請(qǐng)正確選擇序號(hào):"); 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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論