已閱讀5頁(yè),還剩19頁(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)介
程序設(shè)計(jì)課程設(shè)計(jì)說(shuō)明書(shū)課程名稱 程序設(shè)計(jì) 設(shè)計(jì)題目 酒店房間登記與計(jì)費(fèi)管理系統(tǒng)設(shè)計(jì) 專業(yè)班級(jí) 學(xué)生姓名 指導(dǎo)教師 起止日期2013年6月8日至2013年6月14日福建林業(yè)職業(yè)技術(shù)學(xué)院自動(dòng)化工程系目錄 摘 要21 軟件需求分析說(shuō)明書(shū)31.1登記入住系統(tǒng)31.2客房狀態(tài)查詢31.3住戶信息查詢31.4結(jié)賬退房系統(tǒng)32 系統(tǒng)分析與設(shè)計(jì)42.1軟件界面設(shè)計(jì)42.2軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計(jì)82.3軟件的算法設(shè)計(jì)92.3.1軟件模塊圖92.3.2程序流程圖93 軟件的實(shí)現(xiàn)123.1使用的結(jié)構(gòu)數(shù)組及函數(shù)的定義123.2登記入住模塊123.3查詢房間模塊153.4查詢房客模塊164 軟件測(cè)試215軟件使用說(shuō)明書(shū)221 軟件需求分析說(shuō)明書(shū)1.1登記入住系統(tǒng) 登記并記錄顧客姓名 登記并記錄顧客的證件類型及號(hào)碼 顯示現(xiàn)有空置房間 選擇所需要的房間并更改房間狀態(tài)信息 計(jì)算并記錄住房費(fèi)及押金由于本軟件針對(duì)操作員設(shè)計(jì),所以界面應(yīng)盡可能簡(jiǎn)單明了。住房及顧客信息由于涉及多種類型的數(shù)據(jù),因此應(yīng)用結(jié)構(gòu)數(shù)組處理。用文件記錄相關(guān)數(shù)據(jù)。1.2客房狀態(tài)查詢 分別顯示已入住客房與空置客房讀取住房信息文件的內(nèi)容并判斷分類,借此可以清晰明了的顯示客房狀態(tài)。1.3住戶信息查詢 查詢顧客所租房房號(hào) 查詢顧客住房費(fèi)用顧客可以通過(guò)輸入自己的姓名來(lái)查詢個(gè)人的住房信息。1.4結(jié)賬退房系統(tǒng) 退房 更新所退房間狀態(tài) 刪除退房用戶記錄 顯示賬單顧客可以輸入姓名來(lái)完成退房操作,房間狀態(tài)將更改為未入住。系統(tǒng)將刪除該用戶信息記錄并讀取生成賬單。2 系統(tǒng)分析與設(shè)計(jì)2.1軟件界面設(shè)計(jì)運(yùn)行程序后進(jìn)入主界面,可以進(jìn)行登記入住、查詢房間、查詢顧客、退出程序等幾項(xiàng)操作:圖2.1.1選擇“1.登記入住”進(jìn)入登記入住界面:圖2.1.2輸入相關(guān)信息,之后選擇計(jì)費(fèi)類型:圖2.1.3選擇“1.按天入住”按天數(shù)計(jì)費(fèi),會(huì)顯示目前空置的房間。輸入所選房間已進(jìn)行下一步操作:圖2.1.4如選擇“2.按小時(shí)入住”則按小時(shí)計(jì)費(fèi),操作同理。圖2.1.5之后會(huì)進(jìn)入下一界面并提示登記成功。圖2.1.6如在主界面選擇“2.查詢房間的入住情況”則會(huì)進(jìn)入查詢房間狀況界面,程序?qū)⒎謩e依次顯示已入住的房間和空置房間。圖2.1.7如在主界面選擇“3.查詢當(dāng)前費(fèi)用”則會(huì)進(jìn)入用戶查詢界面,輸入顧客姓名即可進(jìn)行查詢圖2.1.8程序會(huì)顯示該客人的相關(guān)信息圖2.1.9如在主界面選擇“4.結(jié)賬退房”則會(huì)進(jìn)入用戶退房界面,輸入顧客姓名即可進(jìn)行退房操作圖2.1.10輸入成功后會(huì)顯示退房成功。圖2.1.11在主界面選擇“5.退出程序”會(huì)進(jìn)入退出界面。圖軟件的數(shù)據(jù)(結(jié)構(gòu))設(shè)計(jì)本軟件運(yùn)用了C語(yǔ)言文件的讀取與寫(xiě)入功能,各文件的作用如下:count.txt:用于存儲(chǔ)房客數(shù)量,內(nèi)部存儲(chǔ)一個(gè)int*數(shù)據(jù)。room.txt:用于存儲(chǔ)房間信息,內(nèi)部依次存儲(chǔ):房間狀態(tài)char*(1位) 房間號(hào)char*(4位) 房間類型char*(1位)房間描述char*(6位) 房間日租金int* 房間月租金int*。customer.txt:用于存儲(chǔ)房客信息,內(nèi)部依次存儲(chǔ):姓名char* 證件類型char* 證件號(hào)碼int* 房間號(hào)char*(4位) 房租int* 押金int*2.3軟件的算法設(shè)計(jì)2.3.1軟件模塊圖酒店房間管理系統(tǒng)登記入住模塊客房查詢模塊顧客查詢模塊結(jié)賬退房模塊2.3.2程序流程圖記錄入文件是讀取房間信息輸入房號(hào)息信人個(gè)客人記錄文件錄記顯示文件判斷房號(hào)與讀入數(shù)據(jù)是否相符判斷房間是否為空修改房間不為空客房查詢模塊:顧客查詢模塊:否是文件判斷房間是否為空1顯示2顯示讀取房間信息是輸入姓名顧客數(shù)據(jù)操作顯示文件判斷姓名是否相同結(jié)賬退房模塊:更改對(duì)應(yīng)房間狀態(tài)輸入姓名讀取信息是 刪除對(duì)應(yīng)信息客人顧客信息文件房間信息文件判斷姓名是否一致輸出并顯示賬單3 軟件的實(shí)現(xiàn)3.1使用的結(jié)構(gòu)數(shù)組及函數(shù)的定義結(jié)構(gòu)體定義:typedef struct room /客房信息char FID5;/房間號(hào)char type2;/客房類型char describe7;/該客房類型的描述int cost_d;/日收費(fèi)int cost_h;/時(shí)收費(fèi)char statu2; /入住情況room;typedef struct customer /入住記錄char FID5; /房間號(hào)char name20;/名字char type14;/證件類型int ID;/證件號(hào) int pay;/房費(fèi)int cp; /押金customer;函數(shù)定義:void rent(room *p);/登記入住模塊void search_room(room *p);/客房查詢模塊void search_customer(room *p, int l);/費(fèi)用查詢模塊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(請(qǐng)輸入姓名:);scanf(%s,&);fprintf(fpout,%s ,);printf(請(qǐng)?zhí)钊胱C件類型:);scanf(%s,&cs.type);fprintf(fpout,%s ,cs.type);printf(請(qǐng)輸入證件號(hào)碼:);scanf(%d,&cs.ID);fprintf(fpout,%d ,cs.ID);printf(請(qǐng)選擇入住方式:n1.按天入住n2.按小時(shí)入住n);scanf(%d,&count);fpin = fopen(room.txt,r+);assert(fpin != NULL);printf(以下是現(xiàn)有的空房n);for(i=0;imax;i+) /對(duì)結(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號(hào)%s型%s日收費(fèi):%d時(shí)收費(fèi):%dn,rmi.FID,rmi.type,rmi.describe,rmi.cost_d,rmi.cost_h);printf(請(qǐng)輸入要入住的房屋);scanf(%s,&dill); for(i=0;imax;i+)if(strcmp(dill,rmi.FID)=0)/所選房間號(hào)與房間數(shù)據(jù)對(duì)比 strcpy(rmi.statu,stu); /更改數(shù)組中的房間狀態(tài) fprintf(fpout,%s ,rmi.FID); if(count=1) printf(請(qǐng)選擇天數(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您的房號(hào)為:%sn,rmi.FID); printf(004請(qǐng)支付%d元的房費(fèi)以及押金%d元。n,rmi.cost_d*n,rmi.cost_d*n*m); else printf(請(qǐng)選擇小時(shí)數(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您的房號(hào)為:%sn,rmi.FID); printf(004請(qǐng)支付%d元的房費(fèi)以及押金%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+) /對(duì)結(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 號(hào)%s 型房間n,rmh.FID,rmh.type);printf(有顧客入住的房間:n);/查詢滿客房for(k=0;kmax;k+) /顯示結(jié)果 if(strcmp(search,rmk.statu)!=0) printf(%s 號(hào)%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(請(qǐng)輸入要查詢的用戶姓名:);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(請(qǐng)輸入客人姓名:);scanf(%s,&name);fp1=fopen(room.txt,r);assert(fp1);fp2=fopen(customer.txt,r);assert(fp2);for(i=0;imax;i+)/對(duì)結(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); /打開(kāi)并清空文件 assert(fp1);for(i=0;imax;i+) /重新錄入全部信息來(lá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 軟件測(cè)試1、 void rent(room *p)/登記入住函數(shù)用例:input: room a20 output: 請(qǐng)輸入姓名 input: DANNY output: 請(qǐng)輸入證件類型 input: id output: 請(qǐng)輸入證件號(hào)碼 input: 10086 output: 請(qǐng)選擇入住方式:1.按天入住 2.按小時(shí)入住 input: 2 output: 以下是現(xiàn)有的空房: A101號(hào)A型SINGLE日租金150時(shí)租金20 請(qǐng)輸入要入住的房屋 input: A101 ou
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 補(bǔ)腦產(chǎn)品宣傳課程設(shè)計(jì)
- 2025年服裝銷售工作計(jì)劃范文(2篇)
- 軟件課程設(shè)計(jì)日志
- 課程設(shè)計(jì)水果攪拌機(jī)
- 二零二五年度建筑廢棄物資源化利用施工總承包管理服務(wù)合同范本3篇
- 公司執(zhí)業(yè)質(zhì)量管理制度范文(2篇)
- 2025年播音部工作計(jì)劃范例(2篇)
- 2025年度汽車修理廠與汽車后市場(chǎng)平臺(tái)合作服務(wù)合同3篇
- 機(jī)械設(shè)備安全裝置檢查維修保養(yǎng)制度模版(3篇)
- 中小學(xué)績(jī)效工資制度范文(2篇)
- DB4511T 0002-2023 瓶裝液化石油氣充裝、配送安全管理規(guī)范
- 《肝衰竭診治指南(2024版)》解讀
- 2025年集體經(jīng)濟(jì)發(fā)展計(jì)劃
- 房地產(chǎn)銷售主管崗位招聘筆試題及解答(某大型央企)2024年
- 足球D級(jí)教練員培訓(xùn)匯報(bào)
- 巖溶區(qū)水文地質(zhì)參數(shù)研究-洞察分析
- 大學(xué)體育與健康 教案全套 體育舞蹈 第1-16周
- 一年級(jí)數(shù)學(xué)練習(xí)題-20以內(nèi)加減法口算題(4000道)直接打印版
- 施工作業(yè)安全管理規(guī)定(4篇)
- 浙江省金華市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版質(zhì)量測(cè)試((上下)學(xué)期)試卷及答案
- 傳媒行業(yè)突發(fā)事件應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論