課程設計賓館管理系統(tǒng)C語言版_第1頁
課程設計賓館管理系統(tǒng)C語言版_第2頁
課程設計賓館管理系統(tǒng)C語言版_第3頁
課程設計賓館管理系統(tǒng)C語言版_第4頁
課程設計賓館管理系統(tǒng)C語言版_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中原工學院軟件職業(yè)技術學院一級實踐環(huán)節(jié)匯報課題名稱:賓館客房管理系統(tǒng)專業(yè):NET軟件班級:NET104學號:36學生姓名:李新輝指導教師:羅菁年月日一、題目賓館客房管理系統(tǒng)二、流程分析賓館客房管理系統(tǒng)賓館客房管理系統(tǒng)客房登記客戶查詢房間查詢退房結算房間數(shù)選擇類型訂金客戶基本信息登記客房號查詢姓名查詢空房間查詢查詢所有客戶查詢所有房間房間號確定退房日期結算三、源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>//將字符轉化為小寫字母函數(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;//記錄房間號 inti; loadroom(); for(i=0;i<Z;i++) { if(room[i].num==num1&&(tolower(room[i].dj))==ch) returntemp=i; } printf("請檢查您選擇旳房間號與否有誤!\n"); return(Z+2);}/////////訂房登記//////////intn;//已訂旳房間數(shù)voiddengji(){ ints;//每次所訂旳房間數(shù) n=loadn();//讀取每次文獻中已訂房間數(shù)旳值 intflag=0;///真假判斷 charch;//用來選用房間等級 unsignedintmoney1;//預付金額 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);//當選擇房間錯誤或者所選房間有人時重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請交付訂金(不得低于房價旳倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預付旳訂金不得低于房間價格旳兩倍 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);//當選擇房間錯誤或者所選房間有人時重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請交付訂金(不得低于房價旳倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預付旳訂金不得低于房間價格旳兩倍 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);//當選擇房間錯誤或者所選房間有人時重新輸入。 room[t].fk=1; saveroom();//存取房間信息; kehu[i].num0=num1; do { printf("請交付訂金(不得低于房價旳倍)\n"); scanf("%d",&money1); } while(money1<(2*room[t].money));//預付旳訂金不得低于房間價格旳兩倍 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); }////////存?。ó斘墨I為空時)/////////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();//讀取目前總共有多少個客人 printf("客房號客戶姓名ID入住日期預付金額\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是客戶旳下標{ printf("客房號客戶姓名ID入住日期預付金額\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;}/////////////////////////退房結算/////////////////////////////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("應收取旳人民幣為:%d元\n",money9); if((kehu[t1].money0-money9)>=0) { printf("應找您人民幣%d元\n",(kehu[t1].money0-money9)); } else { printf("您旳預付金額局限性,請您再交取人民幣%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為退房客戶旳下標,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.退房結算\n"); printf("0.退出\n");}voidmain(){ //luru();///重新錄入房間信息 //printkong('b'); //getchar(); //return; charch[50]={"*****welcometo*****"}; printf("********************************************************************\n\n"); printf("%s\n\n",ch); printf("***歡迎您進入賓館管理系統(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論