酒店房間登記與計費管理系統(tǒng)設(shè)計程序設(shè)計說明書.doc_第1頁
酒店房間登記與計費管理系統(tǒng)設(shè)計程序設(shè)計說明書.doc_第2頁
酒店房間登記與計費管理系統(tǒng)設(shè)計程序設(shè)計說明書.doc_第3頁
酒店房間登記與計費管理系統(tǒng)設(shè)計程序設(shè)計說明書.doc_第4頁
酒店房間登記與計費管理系統(tǒng)設(shè)計程序設(shè)計說明書.doc_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序設(shè)計課程設(shè)計說明書課程名稱 程序設(shè)計 設(shè)計題目 酒店房間登記與計費管理系統(tǒng)設(shè)計 專業(yè)班級 學生姓名 指導教師 起止日期2013年6月8日至2013年6月14日福建林業(yè)職業(yè)技術(shù)學院自動化工程系目錄 摘 要21 軟件需求分析說明書31.1登記入住系統(tǒng)31.2客房狀態(tài)查詢31.3住戶信息查詢31.4結(jié)賬退房系統(tǒng)32 系統(tǒng)分析與設(shè)計42.1軟件界面設(shè)計42.2軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計82.3軟件的算法設(shè)計92.3.1軟件模塊圖92.3.2程序流程圖93 軟件的實現(xiàn)123.1使用的結(jié)構(gòu)數(shù)組及函數(shù)的定義123.2登記入住模塊123.3查詢房間模塊153.4查詢房客模塊164 軟件測試215軟件使用說明書221 軟件需求分析說明書1.1登記入住系統(tǒng) 登記并記錄顧客姓名 登記并記錄顧客的證件類型及號碼 顯示現(xiàn)有空置房間 選擇所需要的房間并更改房間狀態(tài)信息 計算并記錄住房費及押金由于本軟件針對操作員設(shè)計,所以界面應盡可能簡單明了。住房及顧客信息由于涉及多種類型的數(shù)據(jù),因此應用結(jié)構(gòu)數(shù)組處理。用文件記錄相關(guān)數(shù)據(jù)。1.2客房狀態(tài)查詢 分別顯示已入住客房與空置客房讀取住房信息文件的內(nèi)容并判斷分類,借此可以清晰明了的顯示客房狀態(tài)。1.3住戶信息查詢 查詢顧客所租房房號 查詢顧客住房費用顧客可以通過輸入自己的姓名來查詢個人的住房信息。1.4結(jié)賬退房系統(tǒng) 退房 更新所退房間狀態(tài) 刪除退房用戶記錄 顯示賬單顧客可以輸入姓名來完成退房操作,房間狀態(tài)將更改為未入住。系統(tǒng)將刪除該用戶信息記錄并讀取生成賬單。2 系統(tǒng)分析與設(shè)計2.1軟件界面設(shè)計運行程序后進入主界面,可以進行登記入住、查詢房間、查詢顧客、退出程序等幾項操作:圖2.1.1選擇“1.登記入住”進入登記入住界面:圖2.1.2輸入相關(guān)信息,之后選擇計費類型:圖2.1.3選擇“1.按天入住”按天數(shù)計費,會顯示目前空置的房間。輸入所選房間已進行下一步操作:圖2.1.4如選擇“2.按小時入住”則按小時計費,操作同理。圖2.1.5之后會進入下一界面并提示登記成功。圖2.1.6如在主界面選擇“2.查詢房間的入住情況”則會進入查詢房間狀況界面,程序?qū)⒎謩e依次顯示已入住的房間和空置房間。圖2.1.7如在主界面選擇“3.查詢當前費用”則會進入用戶查詢界面,輸入顧客姓名即可進行查詢圖2.1.8程序會顯示該客人的相關(guān)信息圖2.1.9如在主界面選擇“4.結(jié)賬退房”則會進入用戶退房界面,輸入顧客姓名即可進行退房操作圖2.1.10輸入成功后會顯示退房成功。圖2.1.11在主界面選擇“5.退出程序”會進入退出界面。圖軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計本軟件運用了C語言文件的讀取與寫入功能,各文件的作用如下:count.txt:用于存儲房客數(shù)量,內(nèi)部存儲一個int*數(shù)據(jù)。room.txt:用于存儲房間信息,內(nèi)部依次存儲:房間狀態(tài)char*(1位) 房間號char*(4位) 房間類型char*(1位)房間描述char*(6位) 房間日租金int* 房間月租金int*。customer.txt:用于存儲房客信息,內(nèi)部依次存儲:姓名char* 證件類型char* 證件號碼int* 房間號char*(4位) 房租int* 押金int*2.3軟件的算法設(shè)計2.3.1軟件模塊圖酒店房間管理系統(tǒng)登記入住模塊客房查詢模塊顧客查詢模塊結(jié)賬退房模塊2.3.2程序流程圖記錄入文件是讀取房間信息輸入房號息信人個客人記錄文件錄記顯示文件判斷房號與讀入數(shù)據(jù)是否相符判斷房間是否為空修改房間不為空客房查詢模塊:顧客查詢模塊:否是文件判斷房間是否為空1顯示2顯示讀取房間信息是輸入姓名顧客數(shù)據(jù)操作顯示文件判斷姓名是否相同結(jié)賬退房模塊:更改對應房間狀態(tài)輸入姓名讀取信息是 刪除對應信息客人顧客信息文件房間信息文件判斷姓名是否一致輸出并顯示賬單3 軟件的實現(xiàn)3.1使用的結(jié)構(gòu)數(shù)組及函數(shù)的定義結(jié)構(gòu)體定義:typedef struct room /客房信息char FID5;/房間號char type2;/客房類型char describe7;/該客房類型的描述int cost_d;/日收費int cost_h;/時收費char statu2; /入住情況room;typedef struct customer /入住記錄char FID5; /房間號char name20;/名字char type14;/證件類型int ID;/證件號 int pay;/房費int cp; /押金customer;函數(shù)定義:void rent(room *p);/登記入住模塊void search_room(room *p);/客房查詢模塊void search_customer(room *p, int l);/費用查詢模塊void pay(room *p, int l);/結(jié)賬模塊3.2登記入住模塊源文件: void rent(room *p) int i,count,n,m=2;struct room rmmax=0;/定義結(jié)構(gòu)數(shù)組struct customer cs;char search2=Y,stu2=N,dill5=0;FILE *fpin,*fpout;fpout=fopen(customer.txt,a);assert(fpout != NULL);printf(請輸入姓名:);scanf(%s,&);fprintf(fpout,%s ,);printf(請?zhí)钊胱C件類型:);scanf(%s,&cs.type);fprintf(fpout,%s ,cs.type);printf(請輸入證件號碼:);scanf(%d,&cs.ID);fprintf(fpout,%d ,cs.ID);printf(請選擇入住方式:n1.按天入住n2.按小時入住n);scanf(%d,&count);fpin = fopen(room.txt,r+);assert(fpin != NULL);printf(以下是現(xiàn)有的空房n);for(i=0;imax;i+) /對結(jié)構(gòu)數(shù)組賦值,錄入房間信息 fscanf(fpin,%s ,rmi.statu); fscanf(fpin,%s ,rmi.FID); fscanf(fpin,%s ,rmi.type); fscanf(fpin,%s ,rmi.describe); fscanf(fpin,%d ,&rmi.cost_d); fscanf(fpin,%d ,&rmi.cost_h);fclose(fpin);for(i=0;imax;i+)if(strcmp(search,rmi.statu)=0) printf(%s號%s型%s日收費:%d時收費:%dn,rmi.FID,rmi.type,rmi.describe,rmi.cost_d,rmi.cost_h);printf(請輸入要入住的房屋);scanf(%s,&dill); for(i=0;imax;i+)if(strcmp(dill,rmi.FID)=0)/所選房間號與房間數(shù)據(jù)對比 strcpy(rmi.statu,stu); /更改數(shù)組中的房間狀態(tài) fprintf(fpout,%s ,rmi.FID); if(count=1) printf(請選擇天數(shù):); scanf(%d,&n); fprintf(fpout,%d ,rmi.cost_d*n); fprintf(fpout,%d ,rmi.cost_d*n*m); system(cls); printf(004已成功登記房間!n); printf(004您的房號為:%sn,rmi.FID); printf(004請支付%d元的房費以及押金%d元。n,rmi.cost_d*n,rmi.cost_d*n*m); else printf(請選擇小時數(shù):); scanf(%d,&n); fprintf(fpout,%d ,rmi.cost_h*n); fprintf(fpout,%d ,rmi.cost_h*n*m); system(cls); printf(004已成功登記房間!n); printf(004您的房號為:%sn,rmi.FID); printf(004請支付%d元的房費以及押金%d元。n,rmi.cost_h*n,rmi.cost_h*n*m); fpin=fopen(room.txt,w);for(i=0;imax;i+) /將更改錄入文件 fprintf(fpin,%s ,rmi.statu); fprintf(fpin,%s ,rmi.FID); fprintf(fpin,%s ,rmi.type); fprintf(fpin,%s ,rmi.describe); fprintf(fpin,%d ,rmi.cost_d); fprintf(fpin,%dn,rmi.cost_h);fclose(fpout);fclose(fpin);3.3查詢房間模塊void search_room(room *p)int i,h,k;struct room rmmax=0;char search2=Y;FILE *fpin;fpin = fopen(room.txt,r);assert(fpin != NULL);for(i=0;imax;i+) /對結(jié)構(gòu)數(shù)組賦值,即錄入房間信息 fscanf(fpin,%s ,rmi.statu); fscanf(fpin,%s ,rmi.FID);fscanf(fpin,%s ,rmi.type); fscanf(fpin,%s ,&rmi.describe); fscanf(fpin,%d ,&rmi.cost_d); fscanf(fpin,%d ,&rmi.cost_h); printf(目前的空置房間有:n);/查詢空客房 for(h=0;hmax;h+) /顯示結(jié)果 if(strcmp(search,rmh.statu)=0) printf(%s 號%s 型房間n,rmh.FID,rmh.type);printf(有顧客入住的房間:n);/查詢滿客房for(k=0;kmax;k+) /顯示結(jié)果 if(strcmp(search,rmk.statu)!=0) printf(%s 號%s 型房間n,rmk.FID,rmk.type);fclose(fpin);3.4查詢房客模塊void search_customer(room *p,int l)/ 參數(shù)l的值 即為主函數(shù)所讀取的客人數(shù)量char name20;int a;int i; struct customer cs20=0;FILE *fpin,*fp1;printf(請輸入要查詢的用戶姓名:);scanf(%s,&name);fpin=fopen(customer.txt,r);assert(fpin != NULL);fp1=fopen(count.txt,r);assert(fp1 != NULL);for(i=0;il;i+) /讀取顧客數(shù)據(jù)fscanf(fpin,%s ,&);fscanf(fpin,%s ,&csi.type);fscanf(fpin,%d ,&csi.ID);fscanf(fpin,%s ,&csi.FID);fscanf(fpin,%d,&csi.pay);fscanf(fpin,%d,&csi.cp);for(a=0;al;a+)if(strcmp(name,)=0) /比較與所輸入字符串與是否一致printf(%s ,);printf(%s ,csa.type);printf(%d ,csa.ID);printf(%s ,csa.FID);printf(%d ,csa.pay);printf(%dn,csa.cp);fclose(fpin);fclose(fp1);3.5結(jié)賬退房模塊void pay(room *p, int l)int i,j;char name20;char FID5;char stu2=Y;struct room rmmax=0; struct customer cs20=0;FILE *fp1,*fp2;printf(請輸入客人姓名:);scanf(%s,&name);fp1=fopen(room.txt,r);assert(fp1);fp2=fopen(customer.txt,r);assert(fp2);for(i=0;imax;i+)/對結(jié)構(gòu)數(shù)組賦值 fscanf(fp1,%s ,&rmi.statu); fscanf(fp1,%s ,&rmi.FID); fscanf(fp1,%s ,&rmi.type); fscanf(fp1,%s ,&rmi.describe); fscanf(fp1,%d ,&rmi.cost_d); fscanf(fp1,%d ,&rmi.cost_h);fclose(fp1); for(j=0;jl;j+)fscanf(fp2,%s ,&);fscanf(fp2,%s ,&csj.type);fscanf(fp2,%d ,&csj.ID);fscanf(fp2,%s ,&csj.FID);fscanf(fp2,%d,&csj.pay);fscanf(fp2,%d,&csj.cp);fclose(fp2);for(j=0;jl;j+)if(strcmp(name, ) = 0) strcpy(FID,csj.FID);for(;jl-1;j+) csj = csj+1; /為數(shù)組重新賦值以完成刪除操作 fp2=fopen(customer.txt,w);assert(fp2); for(j=0;jl-1;j+)printf(%s ,);printf(%s ,csj.type);printf(%d ,csj.ID);printf(%s ,csj.FID);printf(%d ,csj.pay);printf(%dn,csj.cp); for(j=0;jl-1;j+)fprintf(fp2,%s ,);fprintf(fp2,%s ,csj.type);fprintf(fp2,%d ,csj.ID);fprintf(fp2,%s ,csj.FID);fprintf(fp2,%d ,csj.pay);fprintf(fp2,%dn,csj.cp);fclose(fp2);for(i=0;imax;i+)if(strcmp(FID, rmi.FID) = 0)strcpy(rmi.statu,stu);fp1=fopen(room.txt,w); /打開并清空文件 assert(fp1);for(i=0;imax;i+) /重新錄入全部信息來完成更改 fprintf(fp1,%s ,rmi.statu); fprintf(fp1,%s ,rmi.FID); fprintf(fp1,%s ,rmi.type); fprintf(fp1,%s ,rmi.describe); fprintf(fp1,%d ,rmi.cost_d); fprintf(fp1,%dn,rmi.cost_h);fclose(fp1);4 軟件測試1、 void rent(room *p)/登記入住函數(shù)用例:input: room a20 output: 請輸入姓名 input: DANNY output: 請輸入證件類型 input: id output: 請輸入證件號碼 input: 10086 output: 請選擇入住方式:1.按天入住 2.按小時入住 input: 2 output: 以下是現(xiàn)有的空房: A101號A型SINGLE日租金150時租金20 請輸入要入住的房屋 input: A101 ou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論