版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言實(shí)驗(yàn)報(bào)告 - 酒店管理系統(tǒng)作者: 日期:武漢科技大學(xué)C 語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)2015 年 6 月 23 日一、 總體設(shè)計(jì)1、程序的總體設(shè)計(jì)(1) 程序總體設(shè)計(jì)思路: 酒店房間登記管理系統(tǒng),實(shí)現(xiàn)的是房間登記與管理(包括登記入住、查詢) 為了體現(xiàn)模塊化設(shè)計(jì),把所有要實(shí)現(xiàn)的功能做成函數(shù),采用分步實(shí)施的方法 逐步細(xì)化。具體分布實(shí)施有以下 5 步。1,編寫模塊2,定義實(shí)現(xiàn)個(gè)功能模塊所要函數(shù)3,編寫各個(gè)函數(shù)4,理清思路,逐步修改5,調(diào)試整個(gè)程序。核心部分是各個(gè)函數(shù) :1、歡迎界面函數(shù):通過(guò) switch 進(jìn)入不同界面。2、登記入住函數(shù):使用戶在入住前登記個(gè)人信息,選擇房間信息3、查詢?nèi)胱∏闆r函數(shù):顧
2、客可通過(guò)兩種方式查找到自己的個(gè)人信息。4、查詢當(dāng)前費(fèi)用函數(shù):顧客可隨時(shí)查詢所用費(fèi)用5、結(jié)賬退房函數(shù):所有信息清零。2、數(shù)據(jù)結(jié)構(gòu) 此系統(tǒng),選擇用結(jié)構(gòu)體存放不同類型的數(shù)據(jù),房間信息。在這過(guò)程中由于對(duì) 指針的運(yùn)用與操作還不熟練,不方便修改,所以沒(méi)用指針。(1)創(chuàng)建房間信息結(jié)構(gòu)體/* 結(jié)構(gòu)體 hotel 房間號(hào)、房間種類、客戶姓名、身份證號(hào)、入住狀態(tài)、實(shí)際收房 費(fèi),押金等 */ struct hotelint num; /*房間號(hào) */int kind; /*房間種類 1(表示單人間) 2(表示雙人間) */char name20; /*姓名 */char ID19; /* 身份證號(hào) */int fl
3、ag; /*flag 0 (表示有人入住) 0(表示無(wú)人入住) */int dingjia; /*房間定價(jià) */int shiji; /* 實(shí)際繳納費(fèi)用 */roomM;3、函數(shù)原型聲明void welcome(); /主界面int dengji(); /登記入住函數(shù)int now_room(); /查詢當(dāng)前房間入住情況int now_feiyong(); /查詢當(dāng)前費(fèi)用int tuifang(); /結(jié)賬退房int find(); /查詢當(dāng)前入住人數(shù)int kfxinxi(); / 客戶信息void jiezhang(); / 結(jié)賬付款 int quit(); / 退出函數(shù) int mima
4、();/密碼 / void save(); /保存 /、詳細(xì)設(shè)計(jì)1、主函數(shù)設(shè)計(jì)主函數(shù)說(shuō)明:為滿足顧客登記入住,查詢房間入住情況,查詢當(dāng)前費(fèi)用,結(jié)賬退 房等功能的實(shí)現(xiàn), 設(shè)計(jì)此函數(shù)。 開始進(jìn)入歡迎界面讓顧客選擇, 入顧客所選界面。開始進(jìn)入所選功能 函數(shù)結(jié)束主函數(shù)流程圖2、子函數(shù)流程圖(1)登記入住函數(shù)說(shuō)明:登記入住流程圖(2)查詢房間入住情況: 2種查詢方式( 1. 按房號(hào)查詢 2. 客戶信息查 詢),最終輸出出現(xiàn)歡迎界面測(cè)試 1:選擇選項(xiàng) 1,入住登記 “1”按提示輸入信息(如: 1-單人間, 1-房間號(hào),陳誠(chéng),200元,登記成功)測(cè)試 2:選擇選項(xiàng) 2
5、,查詢房間入住情況 “1”按房間號(hào)查詢, 1、房間號(hào) 出現(xiàn)剛登記的個(gè)人信息2、房間號(hào) 該房為空房“2” 按客戶信息查詢,身份證號(hào)出現(xiàn)個(gè)人信 “3” 退出,返回歡迎界面測(cè)試 3:選擇選項(xiàng) 3,查詢客戶當(dāng)前費(fèi)用 “1”號(hào)房間,當(dāng)前費(fèi)用 100 元測(cè)試 4:選擇選項(xiàng) 4,結(jié)賬退房 “2”號(hào)房間,空房,重輸 “1”號(hào)房間,應(yīng)支付 100 元,退房成功四、小結(jié)此程序滿足課程設(shè)計(jì)要求,實(shí)現(xiàn)登記、查詢、結(jié)賬等操作,并對(duì)不同房間實(shí) 施不同收費(fèi)標(biāo)準(zhǔn),計(jì)算總費(fèi)用等功能。程序優(yōu)點(diǎn):整個(gè)程序界面友好,與顧客有良好的界面交流。程序雖簡(jiǎn)單,但功能齊全。程序缺點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)單一。
6、主要是學(xué)習(xí) c 語(yǔ)言時(shí)間短,知識(shí)程度不深,不夠全面, 知道的不多。(2)不會(huì)調(diào)用系統(tǒng)時(shí)間。在做課設(shè)的過(guò)程中,我對(duì) c語(yǔ)言有了更深入的了解。 它很考察邏輯的嚴(yán)密性, 思路條理要清晰是很重要的, 它包含你編寫程序的大致方向。 嚴(yán)謹(jǐn)認(rèn)真的態(tài)度也 不可或缺。 調(diào)試程序過(guò)程中也可以提升自己的理解已經(jīng)加深自身熟練度。 遇到問(wèn) 題要想方設(shè)法將它解決,看書找資料,請(qǐng)教同學(xué),與同學(xué)討論,從這些方面我又 可以學(xué)會(huì)合作。源碼:/主函數(shù) /#define M 40#include #include #include #includedingyi.h #includejiegouti.h #includefind.h
7、#includekfxinxi.h #includezuizhongfeiyong.h #includequit.h #includezhujiemian.h #includedengji.h #includedangqianruzhu.h #includedangqianfeiyong.h #includetuifang.h #includemima.h #includesave.h #includeduru.h/*主函數(shù) */ void main() int i,j;mima(); / 密碼/ duru(); /讀入數(shù)據(jù) / welcome(); /載入主界面 / scanf(%d,&i)
8、;switch(i)case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now_feiyong();break;case 4:j=tuifang();break;case 5:exit(0);default:quit();while(j!=0) / 操作結(jié)束可返回主界面 / welcome(); scanf(%d,&i); switch(i) case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now_feiyong();break;case 4:j=tuifan
9、g();break;case 5:exit(0);default: quit();/*登記入住 */int dengji()int i,j,a,k,n;system(cls);nn);printf(nn 登記入住 printf( 請(qǐng)選擇房間類型 :nn);printf(1.單人間 2.雙人間 nn);scanf(%d,&n);switch(n)case 1:printf(現(xiàn)在空閑的單人房間有 : n);for(i=1,j=0;i=M;i=i+2)if(roomi-1.flag=0)printf(%dt,i);j+;if(j%5=0)printf(n);10 / 控制每行輸出個(gè)數(shù) / print
10、f(安排客戶想要的房間 : ); scanf(%d,&k);while(k%2=0)printf(! 房號(hào)輸入錯(cuò)誤,請(qǐng)重新輸入 n);scanf(%d,&k);roomk-1.kind=1;roomk-1.num=k;printf(n 請(qǐng)輸入客戶的姓名 : );scanf(%s,);printf(n 請(qǐng)輸入客戶的身份證號(hào) : );scanf(%s,roomk-1.ID);while(strlen(roomk-1.ID)!=18)printf(! 輸入有誤,請(qǐng)重新輸入 n);scanf(%s,roomk-1.ID); roomk-1.dingjia=100;printf(
11、nn 應(yīng)當(dāng)繳納房費(fèi) %d 元,roomk-1.dingjia); printf(nn 實(shí)際繳納的金額為 : ); scanf(%d,&roomk-1.shiji);while(roomk-1.shijiroomk-1.dingjia) printf(ttnn! 輸入有誤,請(qǐng)重新輸入 !nn); printf(nn 實(shí)際繳納的金額 : );scanf(%d,&roomk-1.shiji);printf(nn 是否確認(rèn)入住 (1-是 2-否)n); scanf(%d,&a);while(a!=1&a!=2)printf(nntt! 輸入有誤,請(qǐng)重新輸入 : ); scanf(%d,&a);if(a
12、=1) roomk-1.flag=1;printf(n 已成功登記 !nn);save();break;case 2:printf(現(xiàn)在空閑的雙人房間有 : nn);for(i=2,j=0;i=M;i=i+2)if(roomi-1.flag=0)printf(%dt,i);j+;if(j%5=0)printf(nn); / 控制每行輸出個(gè)數(shù) /11printf(安排客戶想要的房間 : );scanf(%d,&k);while(k%2!=0)printf(! 房號(hào)輸入錯(cuò)誤,請(qǐng)重新輸入 :n);scanf(%d,&k);roomk-1.kind=2;roomk-1.num=k;printf(n 請(qǐng)
13、輸入客戶的姓名 : ); scanf(%s,); printf(n 請(qǐng)輸入客戶的身份證號(hào) : ); scanf(%s,roomk-1.ID);while(strlen(roomk-1.ID)!=18)printf(! 輸入有誤,請(qǐng)重新輸入 :n); scanf(%s,roomk-1.ID);roomk-1.dingjia=200;printf(nn 應(yīng)當(dāng)繳納房費(fèi) %d 元 ,roomk-1.dingjia); printf(nn 實(shí)際繳納的金額為 : ); scanf(%d,&roomk-1.shiji);while(roomk-1.shijiroomk-1.dingj
14、ia) printf(ttnn! 輸入有誤,請(qǐng)重新輸入 :nn); printf(nn 實(shí)際繳納金額為 : ); scanf(%d,&roomk-1.shiji); printf(nn 是否確認(rèn)入住 (1-是 2-否)n);scanf(%d,&a);while(a!=1&a!=2)printf(nntt! 輸入有誤,請(qǐng)重新輸入 : ); scanf(%d,&a);if(a=1) roomk-1.flag=1;printf(n 已成功登記 !nn);save();break;default: quit();quit();return 1;/讀取函數(shù) /12void duru()FILE *fp;
15、int i;if(fp=fopen(kf_dat,rb)=NULL)printf(cannot open file n);return ;for(i=0;iM;i+)fread(&roomi,sizeof(struct hotel),1,fp);fclose(fp);/* 查詢?nèi)胱∪藬?shù) */int find()int number=0;int i;for(i=0;i4|i1)printf(nntt 輸入有誤,請(qǐng)重新輸入 : ); scanf(%d,&i);else if(i=1)printf(nn 請(qǐng)輸入房間號(hào) : ); /按房號(hào)查詢scanf(%d,&j);if(roomj-1.flag=0
16、)printf(nn 此房間無(wú)人住 nn);else15printf( 您的個(gè)人信息為 : );kfxinxi(j-1);break;else if(i=2)printf(nn 請(qǐng)輸入您的身份證號(hào) : ); /按客戶信息查詢scanf(%s,a);while(1)for(k=0;kM;k+) if(strcmp(a,roomk.ID)=0)break; if(k!=M) printf(nn 您的個(gè)人信息為 : ); kfxinxi(k);break;elseprintf(ttnn1. 輸入有誤,請(qǐng)重新輸入 2.不存在此 人信息 ,退出 nn);scanf(%d,&s);if(s=1)print
17、f(nn 請(qǐng)輸入您的身份證號(hào) : ); scanf(%s,a); else return(1);break; else if(i=3)break;elseprintf(ttnn1. 輸入有誤 ,請(qǐng)重新輸入 nn);printf(tt1. 按房號(hào)查詢 nntt2. 按客戶信息 查詢 nntt3. 按入住時(shí)間查詢 nntt4. 退出 );printf(nn 請(qǐng)選擇 : );scanf(%d,&i);quit(); /*退出函數(shù) */int quit()int y;printf( 是否需要返回主界面 ? 1-是 2-否nn); scanf(%d,&y);if(y=1)16welcome();else
18、printf(* 歡迎下次光臨武科大酒店 *!nn); return 1; /保存函數(shù) / void save()FILE *fp;int i; if(fp=fopen(kf_dat,wb)=NULL) printf(cannot open file n); return ; for(i=0;i0)printf( 找還顧客 %d 元n,yu);else printf( 顧客應(yīng)再支付 %d 元 n,yu*(-1);/*結(jié)賬退房 */ int tuifang() char zhonglei30;int n,m;system(cls);printf(nn 結(jié)賬退房 nn); if(find()=0)
19、printf( 房間都是空的 !nn); else17printf(請(qǐng)輸入需要退房的房號(hào) : );scanf(%d,&n);if(nM|n1)printf(nn 輸入有誤 ,請(qǐng)重新輸入 :,M);scanf(%d,&n);if(roomn-1.flag=0)printf( 空房 ,無(wú)法辦理退房 !nn);switch(roomn-1.kind)case 1:strcpy(zhonglei,單人間 );break;case 2:strcpy(zhonglei,雙人間 );break;printf( 房間號(hào) : %dn 房間類型 : %sn 客人姓名 : %sn 身份證號(hào): %sn,roomn-1
20、.num,zhonglei,,roomn-1.ID);printf(nt 房間定價(jià)為 : %dn,roomn-1.dingjia);if(roomn-1.flag=1)shoufei(roomn-1.dingjia,roomn-1.shiji);printf(nn 是否退房 (1.是 2.否) : );scanf(%d,&m);if(m=1)roomn-1.flag=0;strcpy(,0);roomn-1.shiji=0;printf(nn 您已成功退房,歡迎下次光臨 !nn); save();quit();return 1;/*主界面 */void welcome()int n;n=find(); system(color 4F);18printf();printf( 歡迎進(jìn)入武科大酒店管理系 統(tǒng) n);printf(t printf(t printf(t printf(t printf(t 1. 入住登記 nn);/dengji()/2. 查詢當(dāng)前房間入
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建設(shè)工程勘察合同范本
- 裝修委托合同范本
- 個(gè)人承租土地合同
- 機(jī)電單元收購(gòu)合同范例
- 單間住宅出售合同范例
- 民房涂料裝修合同范例
- 地區(qū)代理授權(quán)合同范例
- 家具安裝外包協(xié)議合同范例
- 叉車貨架租賃合同范例
- 個(gè)人獨(dú)資加油站合同范例
- 預(yù)防未成年人犯罪法主題班會(huì)
- 環(huán)衛(wèi)公司行業(yè)風(fēng)險(xiǎn)分析
- 基坑開挖降水課件
- 消防行車安全教育課件
- 《如何寫文獻(xiàn)綜述》課件
- 浙江省寧波市鄞州區(qū)2023-2024學(xué)年二年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 青海玉樹的神秘之旅
- 語(yǔ)言本能:人類語(yǔ)言進(jìn)化的奧秘
- 校園教職工思想動(dòng)態(tài)和現(xiàn)實(shí)表現(xiàn)動(dòng)態(tài)評(píng)估
- 2024版國(guó)開電大專科《EXCEL在財(cái)務(wù)中的應(yīng)用》在線形考(形考作業(yè)一至四)試題及答案
- 黑龍江省雞西市2023-2024學(xué)年八年級(jí)上學(xué)期第二次質(zhì)量監(jiān)測(cè)道德與法治試題
評(píng)論
0/150
提交評(píng)論