




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上+C語言設(shè)計報告酒店管理系統(tǒng)院系:機械與電子工程系 專業(yè):電子信息工程 班級: 學(xué)號:0 姓名:胡強亞 指導(dǎo)老師:胡文龍摘 要 隨著個人計算機的的普及,越來越多的重復(fù)性工作被交由計算機來完成。在這種大趨勢下,傳統(tǒng)的紙質(zhì)檔案管理方式已不適應(yīng)現(xiàn)代服務(wù)業(yè)的發(fā)展。數(shù)字化的管理成為酒店等行業(yè)的必要條件。酒店客房管理的電腦化對于優(yōu)化員工工作效率、降低成本及改善服務(wù)質(zhì)量等方面都有十分積極的作用。本程序是用于酒店客房管理的軟件。它可以實現(xiàn)定退房業(yè)務(wù)處理,用戶信息的記錄、查詢及房間狀態(tài)管理等功能。雖然比較簡陋但已具備應(yīng)用程序的雛形。本程序運用Microsoft Visual C+編譯器
2、編寫,涉及C語言的文件讀寫,結(jié)構(gòu)數(shù)組運用及字符串函數(shù)相關(guān)知識。關(guān)鍵詞:數(shù)字化管理 酒店管理系統(tǒng) C語言課程設(shè)計任務(wù)書設(shè)計題目:酒店管理系統(tǒng)設(shè)計學(xué)生姓名胡強亞課程名稱C語言程序課程設(shè)計專業(yè)班級地 點信工樓408起止時間2012年12月12日12月13日設(shè)計內(nèi)容及要求請你為XX酒店設(shè)計一個房間登記與計費管理系統(tǒng)。該系統(tǒng)中應(yīng)包括所有房間的信息,客人入住后應(yīng)產(chǎn)生一條入住記錄(基本信息包括:房號、客人姓名、客人證件號、入住日期),客人退房后要修正房間的入住狀態(tài)并產(chǎn)生相應(yīng)的賬單。 【題目要求】 一家旅館,內(nèi)設(shè)20個客房,現(xiàn)設(shè)計程序?qū)ζ溥M行有效管理,其基本管理功能如下:入住、退房、查詢、顯示、退出擴展功能如
3、下:續(xù)住 2、設(shè)計提示 參考C程序設(shè)計學(xué)習(xí)輔導(dǎo)第214頁“案例3:電話訂餐信息處理”,讀懂程序,在此模式上更改為客房管理系統(tǒng)。根據(jù)題目要求,運用所學(xué)知識,完成設(shè)計和實現(xiàn)工作,并按照書寫規(guī)范,撰寫課程設(shè)計報告。目 錄 1 軟件需求分析說明書1.1登記入住系統(tǒng) 登記并記錄顧客姓名 登記并記錄顧客的證件號碼 顯示現(xiàn)有空置房間 選擇所需要的房間并更改房間狀態(tài)信息 由于本軟件針對操作員設(shè)計,所以界面應(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住戶信息查詢 查詢顧客所租房房號 查詢顧客住房費用顧客可以通過輸入自己的姓名來查詢個人的住房信息。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如選擇
5、“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語言文件的讀取與
6、寫入功能,各文件的作用如下: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程序流程圖登記入住模塊:記錄入文
7、件是讀取房間信息輸入房號息信人個客人記錄文件錄記顯示文件判斷房號與讀入數(shù)據(jù)是否相符判斷房間是否為空修改房間不為空客房查詢模塊:否是文件判斷房間是否為空1顯示2顯示讀取房間信息結(jié)賬退房模塊:更改對應(yīng)房間狀態(tài)輸入姓名讀取信息是 刪除對應(yīng)信息客人顧客信息文件房間信息文件判斷姓名是否一致輸出并顯示賬單 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; /
8、入住情況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) 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("請輸入姓名:");scanf("%s",&);fprintf(fpout,"%s ",cs.
10、name);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(&
11、quot;room.txt","r+");assert(fpin != NULL);printf("以下是現(xiàn)有的空房n");for(i=0;i<max;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,&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號%s型%s日收費:%d時收費:%dn",rmi.FID,rmi.type,rmi.describe,rmi.cost_d,rmi.cost_h);printf("請輸入要入住的房屋");scanf("%s",&dill); for(
13、i=0;i<max;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(
14、"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 &qu
15、ot;,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;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+) /對結(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 號%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 號%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",&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("請輸入客人姓名:");scanf("%s",&name
23、);fp1=fopen("room.txt","r");assert(fp1);fp2=fopen("customer.txt","r");assert(fp2);for(i=0;i<max;i+)/對結(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: 請輸入姓名 input: DANNY
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店面賣給別人合同范本
- 采購代理合作協(xié)議合同范本
- 勞動合同簽訂合同范本
- 非標鋼筋出售合同范本
- 有償婚姻介紹合同范本
- 古宅店面出租合同范本
- 產(chǎn)品聯(lián)合出品合同范例
- 危險品銷售合同范例
- 勞務(wù)合同范例填過
- 公司簡稱合同范例
- 部編版四年級下冊必讀《十萬個為什么》閱讀測試題(分章節(jié))
- 5G網(wǎng)絡(luò)安全挑戰(zhàn)與應(yīng)對策略
- 小組合作學(xué)習(xí)小組長培訓(xùn)
- 《兩彈一星》課件
- 樂理視唱練耳簡明教程課后習(xí)題答案
- 如何培養(yǎng)幼兒的語言表達能力
- 2023年株洲市社區(qū)工作者招聘考試真題
- 汽車維修車間消防安全培訓(xùn)
- DL-T 5847-2021 配電系統(tǒng)電氣裝置安裝工程施工質(zhì)量檢驗及評定規(guī)程
- 幼兒園優(yōu)質(zhì)公開課:小班語言《小兔乖乖》課件
- 學(xué)用電風(fēng)扇(課件)人教版勞動六年級上冊
評論
0/150
提交評論