版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上+C語言設(shè)計(jì)報(bào)告酒店管理系統(tǒng)院系:機(jī)械與電子工程系 專業(yè):電子信息工程 班級(jí): 學(xué)號(hào):0 姓名:胡強(qiáng)亞 指導(dǎo)老師:胡文龍摘 要 隨著個(gè)人計(jì)算機(jī)的的普及,越來越多的重復(fù)性工作被交由計(jì)算機(jī)來完成。在這種大趨勢下,傳統(tǒng)的紙質(zhì)檔案管理方式已不適應(yīng)現(xiàn)代服務(wù)業(yè)的發(fā)展。數(shù)字化的管理成為酒店等行業(yè)的必要條件。酒店客房管理的電腦化對(duì)于優(yōu)化員工工作效率、降低成本及改善服務(wù)質(zhì)量等方面都有十分積極的作用。本程序是用于酒店客房管理的軟件。它可以實(shí)現(xiàn)定退房業(yè)務(wù)處理,用戶信息的記錄、查詢及房間狀態(tài)管理等功能。雖然比較簡陋但已具備應(yīng)用程序的雛形。本程序運(yùn)用Microsoft Visual C+編譯器
2、編寫,涉及C語言的文件讀寫,結(jié)構(gòu)數(shù)組運(yùn)用及字符串函數(shù)相關(guān)知識(shí)。關(guān)鍵詞:數(shù)字化管理 酒店管理系統(tǒng) C語言課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目:酒店管理系統(tǒng)設(shè)計(jì)學(xué)生姓名胡強(qiáng)亞課程名稱C語言程序課程設(shè)計(jì)專業(yè)班級(jí)地 點(diǎn)信工樓408起止時(shí)間2012年12月12日12月13日設(shè)計(jì)內(nèi)容及要求請(qǐng)你為XX酒店設(shè)計(jì)一個(gè)房間登記與計(jì)費(fèi)管理系統(tǒng)。該系統(tǒng)中應(yīng)包括所有房間的信息,客人入住后應(yīng)產(chǎn)生一條入住記錄(基本信息包括:房號(hào)、客人姓名、客人證件號(hào)、入住日期),客人退房后要修正房間的入住狀態(tài)并產(chǎn)生相應(yīng)的賬單。 【題目要求】 一家旅館,內(nèi)設(shè)20個(gè)客房,現(xiàn)設(shè)計(jì)程序?qū)ζ溥M(jìn)行有效管理,其基本管理功能如下:入住、退房、查詢、顯示、退出擴(kuò)展功能如
3、下:續(xù)住 2、設(shè)計(jì)提示 參考C程序設(shè)計(jì)學(xué)習(xí)輔導(dǎo)第214頁“案例3:電話訂餐信息處理”,讀懂程序,在此模式上更改為客房管理系統(tǒng)。根據(jù)題目要求,運(yùn)用所學(xué)知識(shí),完成設(shè)計(jì)和實(shí)現(xiàn)工作,并按照書寫規(guī)范,撰寫課程設(shè)計(jì)報(bào)告。目 錄 1 軟件需求分析說明書1.1登記入住系統(tǒng) 登記并記錄顧客姓名 登記并記錄顧客的證件號(hào)碼 顯示現(xiàn)有空置房間 選擇所需要的房間并更改房間狀態(tài)信息 由于本軟件針對(duì)操作員設(shè)計(jì),所以界面應(yīng)盡可能簡單明了。住房及顧客信息由于涉及多種類型的數(shù)據(jù),因此應(yīng)用結(jié)構(gòu)數(shù)組處理。用文件記錄相關(guān)數(shù)據(jù)。1.2客房狀態(tài)查詢 分別顯示已入住客房與空置客房 讀取住房信息文件的內(nèi)容并判斷分類,借此可以清晰明了的顯示客房
4、狀態(tài)。1.3住戶信息查詢 查詢顧客所租房房號(hào) 查詢顧客住房費(fèi)用顧客可以通過輸入自己的姓名來查詢個(gè)人的住房信息。1.4結(jié)賬退房系統(tǒng) 退房 更新所退房間狀態(tà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如選擇
5、“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語言文件的讀取與
6、寫入功能,各文件的作用如下: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程序流程圖登記入住模塊:記錄入文
7、件是讀取房間信息輸入房號(hào)息信人個(gè)客人記錄文件錄記顯示文件判斷房號(hào)與讀入數(shù)據(jù)是否相符判斷房間是否為空修改房間不為空客房查詢模塊:否是文件判斷房間是否為空1顯示2顯示讀取房間信息結(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; /
8、入住情況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) i
9、nt 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 ",cs.
10、name);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(&
11、quot;room.txt","r+");assert(fpin != NULL);printf("以下是現(xiàn)有的空房n");for(i=0;i<max;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,&quo
12、t;%d ",&rmi.cost_d); fscanf(fpin,"%d ",&rmi.cost_h);fclose(fpin);for(i=0;i<max;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(
13、i=0;i<max;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(
14、"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 &qu
15、ot;,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;i<max;i+) /將更改錄入文件 fprintf(fpin,"%s ",r
16、mi.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
17、rmmax=0;char search2='Y'FILE *fpin;fpin = fopen("room.txt","r");assert(fpin != NULL);for(i=0;i<max;i+) /對(duì)結(jié)構(gòu)數(shù)組賦值,即錄入房間信息 fscanf(fpin,"%s ",rmi.statu); fscanf(fpin,"%s ",rmi.FID); fscanf(fpin,"%s ",rmi.type); fscanf(fpin,"%s ",&
18、;rmi.describe); fscanf(fpin,"%d ",&rmi.cost_d); fscanf(fpin,"%d ",&rmi.cost_h); printf("目前的空置房間有:n");/查詢空客房 for(h=0;h<max;h+) /顯示結(jié)果 if(strcmp(search,rmh.statu)=0) printf("%s 號(hào)%s 型房間n",rmh.FID,rmh.type);printf("有顧客入住的房間:n");/查詢滿客房for(k=0;k&
19、lt;max;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",&n
20、ame);fpin=fopen("customer.txt","r");assert(fpin != NULL);fp1=fopen("count.txt","r");assert(fp1 != NULL);for(i=0;i<l;i+) /讀取顧客數(shù)據(jù)fscanf(fpin,"%s ",&);fscanf(fpin,"%s ",&csi.type);fscanf(fpin,"%d ",&csi.ID);fsc
21、anf(fpin,"%s ",&csi.FID);fscanf(fpin,"%d",&csi.pay);fscanf(fpin,"%d",&csi.cp);for(a=0;a<l;a+)if(strcmp(name,)=0) /比較與所輸入字符串與是否一致printf("%s ",);printf("%s ",csa.type);printf("%d ",csa.ID);printf("%s "
22、,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
23、);fp1=fopen("room.txt","r");assert(fp1);fp2=fopen("customer.txt","r");assert(fp2);for(i=0;i<max;i+)/對(duì)結(jié)構(gòu)數(shù)組賦值 fscanf(fp1,"%s ",&rmi.statu); fscanf(fp1,"%s ",&rmi.FID); fscanf(fp1,"%s ",&rmi.type); fscanf(fp1,"%s
24、",&rmi.describe); fscanf(fp1,"%d ",&rmi.cost_d); fscanf(fp1,"%d ",&rmi.cost_h);fclose(fp1); for(j=0;j<l;j+)fscanf(fp2,"%s ",&);fscanf(fp2,"%s ",&csj.type);fscanf(fp2,"%d ",&csj.ID);fscanf(fp2,"%s ",&a
25、mp;csj.FID);fscanf(fp2,"%d",&csj.pay);fscanf(fp2,"%d",&csj.cp);fclose(fp2); for(j=0;j<l;j+)if(strcmp(name, ) = 0) strcpy(FID,csj.FID);for(;j<l-1;j+) csj = csj+1; /為數(shù)組重新賦值以完成刪除操作 fp2=fopen("customer.txt","w");assert(fp2); for(j=0;j<l-1;
26、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;j<l-1;j+)fprintf(fp2,"%s ",);fprintf(fp2,"%s ",csj.type);fprintf(
27、fp2,"%d ",csj.ID);fprintf(fp2,"%s ",csj.FID);fprintf(fp2,"%d ",csj.pay);fprintf(fp2,"%dn",csj.cp);fclose(fp2); for(i=0;i<max;i+)if(strcmp(FID, rmi.FID) = 0)strcpy(rmi.statu,stu);fp1=fopen("room.txt","w"); /打開并清空文件 assert(fp1);for(i=0;i&l
28、t;max;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: 請(qǐng)輸入姓名 input: DANNY
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《勞動(dòng)法》規(guī)定了勞動(dòng)者享有哪些勞動(dòng)權(quán)益
- 【小紅書課件】品牌如何破圈?小紅書破圈營銷方法論【小紅書運(yùn)營】
- 江蘇省新沂市高中生物 第一章 無菌操作技術(shù)實(shí)踐 1.1 微生物的實(shí)驗(yàn)室培養(yǎng)二教案(選修1)
- 2024年秋九年級(jí)歷史上冊(cè) 第六單元 資本主義制度的初步確立 第17課 君主立憲制的英國教案 新人教版
- 2024-2025學(xué)年學(xué)年高中地理《以畜牧業(yè)為主的農(nóng)業(yè)地域類型》教學(xué)設(shè)計(jì) 新人教版必修2
- 福建省泉州市泉港三川中學(xué)九年級(jí)體育《雙手頭上擲實(shí)心球》教案
- 高考地理一輪復(fù)習(xí)第十章產(chǎn)業(yè)區(qū)位因素第一節(jié)農(nóng)業(yè)區(qū)位因素及其變化課件
- 研發(fā)合同繳納印花稅情況說明-文書模板
- 守株待兔課件圖
- 認(rèn)識(shí)心電圖課件
- 客觀事物的復(fù)雜性課件
- 下肢深靜脈血栓的護(hù)理課件
- 山西省醫(yī)療服務(wù)項(xiàng)目收費(fèi)
- 基層管理者的溝通與協(xié)調(diào)技巧
- 抖音運(yùn)營與短視頻
- 材料科學(xué)與自然辯證法
- 高中作文素材摘抄(優(yōu)美段落)
- 教師人生職業(yè)規(guī)劃
- 文化哲學(xué)十五講
- 《保障農(nóng)民工工資支付條例》宣傳冊(cè)
- 初中語文部編版八年級(jí)上冊(cè)期末文學(xué)文化常識(shí)專項(xiàng)練習(xí)(2022秋)(附參考答案)
評(píng)論
0/150
提交評(píng)論