




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
用C語言實(shí)現(xiàn)的賓館客房管理系統(tǒng)課程設(shè)計(jì)報(bào)告?(一)課程設(shè)計(jì)背景隨著旅游業(yè)的蓬勃發(fā)展,賓館客房管理的信息化需求日益增長。賓館客房管理系統(tǒng)能夠幫助賓館更高效地管理客房信息、入住登記、退房結(jié)算等業(yè)務(wù),提高服務(wù)質(zhì)量和運(yùn)營效率。本次課程設(shè)計(jì)旨在通過C語言實(shí)現(xiàn)一個(gè)簡單的賓館客房管理系統(tǒng),以鍛煉對C語言的綜合運(yùn)用能力和解決實(shí)際問題的能力。(二)課程設(shè)計(jì)目的1.深入理解C語言的基本語法和編程結(jié)構(gòu),熟練掌握函數(shù)、數(shù)組、結(jié)構(gòu)體、文件操作等知識(shí)點(diǎn)的綜合運(yùn)用。2.培養(yǎng)分析問題、設(shè)計(jì)算法和實(shí)現(xiàn)系統(tǒng)的能力,提高編程實(shí)踐技能。3.了解數(shù)據(jù)庫在實(shí)際應(yīng)用中的基本原理和設(shè)計(jì)方法,初步掌握數(shù)據(jù)存儲(chǔ)和管理的技巧。4.增強(qiáng)團(tuán)隊(duì)協(xié)作能力和文檔撰寫能力,通過課程設(shè)計(jì)過程中的交流與合作,以及撰寫詳細(xì)的課程設(shè)計(jì)報(bào)告,提高綜合素質(zhì)。##二、需求分析(一)功能需求1.客房信息管理-錄入客房信息,包括房間號、房間類型、價(jià)格、狀態(tài)(空閑/已入住)等。-修改客房信息,如房間價(jià)格調(diào)整、狀態(tài)變更等。-刪除客房信息(在確保房間空閑的情況下)。-查詢客房信息,可按房間號、房間類型等條件進(jìn)行查詢。2.客戶入住管理-辦理客戶入住手續(xù),記錄客戶姓名、身份證號、入住時(shí)間、預(yù)計(jì)退房時(shí)間等信息,并分配空閑客房。-查看已入住客戶信息。3.客戶退房管理-辦理客戶退房手續(xù),計(jì)算住宿費(fèi)用并更新客房狀態(tài)為空閑。-查看退房記錄。4.系統(tǒng)維護(hù)-備份客房信息和客戶入住記錄到文件。-從備份文件恢復(fù)數(shù)據(jù)。(二)性能需求1.系統(tǒng)應(yīng)具有較好的響應(yīng)速度,在合理時(shí)間內(nèi)完成各項(xiàng)操作,如信息查詢、入住退房處理等。2.能夠處理一定數(shù)量的客房信息和客戶入住記錄,保證數(shù)據(jù)的準(zhǔn)確性和一致性。(三)界面需求1.提供簡潔明了的菜單界面,方便用戶選擇各項(xiàng)功能。2.在操作過程中,給出相應(yīng)的提示信息,告知用戶操作結(jié)果。##三、總體設(shè)計(jì)(一)系統(tǒng)架構(gòu)設(shè)計(jì)本系統(tǒng)采用模塊化設(shè)計(jì)思想,主要包括客房信息管理模塊、客戶入住管理模塊、客戶退房管理模塊和系統(tǒng)維護(hù)模塊。每個(gè)模塊負(fù)責(zé)特定的功能,通過函數(shù)調(diào)用和數(shù)據(jù)傳遞實(shí)現(xiàn)系統(tǒng)的整體功能。(二)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)1.客房結(jié)構(gòu)體```ctypedefstruct{introomNo;charroomType[20];floatprice;intstatus;//0:空閑,1:已入住}Room;```2.客戶結(jié)構(gòu)體```ctypedefstruct{charname[50];charidCard[20];charcheckInTime[20];charcheckOutTime[20];introomNo;}Customer;```3.定義數(shù)組存儲(chǔ)客房和客戶信息```c#defineMAX_ROOMS100Roomrooms[MAX_ROOMS];introomCount=0;#defineMAX_CUSTOMERS100Customercustomers[MAX_CUSTOMERS];intcustomerCount=0;```(三)模塊劃分及功能描述1.客房信息管理模塊-`voidaddRoom(Roomroom)`:添加客房信息到數(shù)組。-`voidmodifyRoom(introomNo,floatnewPrice,intnewStatus)`:修改指定客房的價(jià)格和狀態(tài)。-`voiddeleteRoom(introomNo)`:刪除指定客房信息(確保房間空閑)。-`voidqueryRoom(introomNo)`:按房間號查詢客房信息。-`voidqueryRoomByType(char*roomType)`:按房間類型查詢客房信息。2.客戶入住管理模塊-`voidcheckIn(Customercustomer)`:辦理客戶入住手續(xù),分配空閑客房。-`voidviewCheckedInCustomers()`:查看已入住客戶信息。3.客戶退房管理模塊-`voidcheckOut(introomNo)`:辦理客戶退房手續(xù),計(jì)算費(fèi)用并更新客房狀態(tài)。-`voidviewCheckOutRecords()`:查看退房記錄。4.系統(tǒng)維護(hù)模塊-`voidbackupData()`:備份客房信息和客戶入住記錄到文件。-`voidrestoreData()`:從備份文件恢復(fù)數(shù)據(jù)。##四、詳細(xì)設(shè)計(jì)(一)客房信息管理模塊1.添加客房信息函數(shù)```cvoidaddRoom(Roomroom){if(roomCount<MAX_ROOMS){rooms[roomCount]=room;roomCount++;printf("客房信息添加成功!\n");}else{printf("客房數(shù)量已滿,無法添加!\n");}}```2.修改客房信息函數(shù)```cvoidmodifyRoom(introomNo,floatnewPrice,intnewStatus){for(inti=0;i<roomCount;i++){if(rooms[i].roomNo==roomNo){rooms[i].price=newPrice;rooms[i].status=newStatus;printf("客房信息修改成功!\n");return;}}printf("未找到指定房間號的客房!\n");}```3.刪除客房信息函數(shù)```cvoiddeleteRoom(introomNo){for(inti=0;i<roomCount;i++){if(rooms[i].roomNo==roomNo&&rooms[i].status==0){for(intj=i;j<roomCount-1;j++){rooms[j]=rooms[j+1];}roomCount--;printf("客房信息刪除成功!\n");return;}}printf("無法刪除,房間可能已被占用或未找到指定房間號!\n");}```4.按房間號查詢客房信息函數(shù)```cvoidqueryRoom(introomNo){for(inti=0;i<roomCount;i++){if(rooms[i].roomNo==roomNo){printf("房間號:%d\n",rooms[i].roomNo);printf("房間類型:%s\n",rooms[i].roomType);printf("價(jià)格:%.2f\n",rooms[i].price);printf("狀態(tài):%s\n",rooms[i].status==0?"空閑":"已入住");return;}}printf("未找到指定房間號的客房!\n");}```5.按房間類型查詢客房信息函數(shù)```cvoidqueryRoomByType(char*roomType){intfound=0;for(inti=0;i<roomCount;i++){if(strcmp(rooms[i].roomType,roomType)==0){printf("房間號:%d\n",rooms[i].roomNo);printf("房間類型:%s\n",rooms[i].roomType);printf("價(jià)格:%.2f\n",rooms[i].price);printf("狀態(tài):%s\n",rooms[i].status==0?"空閑":"已入住");found=1;}}if(!found){printf("未找到指定類型的客房!\n");}}```(二)客戶入住管理模塊1.辦理客戶入住手續(xù)函數(shù)```cvoidcheckIn(Customercustomer){for(inti=0;i<roomCount;i++){if(rooms[i].status==0){rooms[i].status=1;customer.roomNo=rooms[i].roomNo;customers[customerCount]=customer;customerCount++;printf("客戶入住成功!分配房間號:%d\n",rooms[i].roomNo);return;}}printf("無空閑房間,無法辦理入住!\n");}```2.查看已入住客戶信息函數(shù)```cvoidviewCheckedInCustomers(){if(customerCount==0){printf("暫無已入住客戶!\n");return;}for(inti=0;i<customerCount;i++){if(customers[i].roomNo!=0){printf("姓名:%s\n",customers[i].name);printf("身份證號:%s\n",customers[i].idCard);printf("入住時(shí)間:%s\n",customers[i].checkInTime);printf("預(yù)計(jì)退房時(shí)間:%s\n",customers[i].checkOutTime);printf("房間號:%d\n\n",customers[i].roomNo);}}}```(三)客戶退房管理模塊1.辦理客戶退房手續(xù)函數(shù)```cvoidcheckOut(introomNo){for(inti=0;i<customerCount;i++){if(customers[i].roomNo==roomNo){//計(jì)算住宿費(fèi)用(簡單示例,可根據(jù)實(shí)際需求改進(jìn))floatdays=(strtotime(customers[i].checkOutTime)-strtotime(customers[i].checkInTime))/(24*3600);floatcost=days*rooms[roomNo-1].price;printf("住宿費(fèi)用:%.2f\n",cost);for(intj=i;j<customerCount-1;j++){customers[j]=customers[j+1];}customerCount--;for(intk=0;k<roomCount;k++){if(rooms[k].roomNo==roomNo){rooms[k].status=0;break;}}printf("客戶退房成功!\n");return;}}printf("未找到指定房間號的已入住客戶!\n");}```2.查看退房記錄函數(shù)```cvoidviewCheckOutRecords(){if(customerCount==0){printf("暫無退房記錄!\n");return;}for(inti=0;i<customerCount;i++){if(customers[i].roomNo==0){printf("姓名:%s\n",customers[i].name);printf("身份證號:%s\n",customers[i].idCard);printf("退房時(shí)間:%s\n",customers[i].checkOutTime);printf("房間號:%d\n\n",customers[i].roomNo);}}}```(四)系統(tǒng)維護(hù)模塊1.備份數(shù)據(jù)函數(shù)```cvoidbackupData(){FILE*file=fopen("backup.txt","w");if(file==NULL){printf("備份失敗!無法打開文件。\n");return;}for(inti=0;i<roomCount;i++){fprintf(file,"%d%s%.2f%d\n",rooms[i].roomNo,rooms[i].roomType,rooms[i].price,rooms[i].status);}for(inti=0;i<customerCount;i++){fprintf(file,"%s%s%s%s%d\n",customers[i].name,customers[i].idCard,customers[i].checkInTime,customers[i].checkOutTime,customers[i].roomNo);}fclose(file);printf("備份成功!\n");}```2.恢復(fù)數(shù)據(jù)函數(shù)```cvoidrestoreData(){FILE*file=fopen("backup.txt","r");if(file==NULL){printf("恢復(fù)失敗!無法打開備份文件。\n");return;}roomCount=0;customerCount=0;while(fscanf(file,"%d%s%f%d",&rooms[roomCount].roomNo,rooms[roomCount].roomType,&rooms[roomCount].price,&rooms[roomCount].status)!=EOF){roomCount++;}while(fscanf(file,"%s%s%s%s%d",customers[customerCount].name,customers[customerCount].idCard,customers[customerCount].checkInTime,customers[customerCount].checkOutTime,&customers[customerCount].roomNo)!=EOF){customerCount++;}fclose(file);printf("恢復(fù)成功!\n");}```##五、系統(tǒng)測試(一)測試環(huán)境1.硬件環(huán)境:Windows10操作系統(tǒng),IntelCorei5處理器,8GB內(nèi)存。2.軟件環(huán)境:VisualStudio2019集成開發(fā)環(huán)境。(二)測試用例1.客房信息管理測試-添加客房信息:輸入房間號101,房間類型"標(biāo)準(zhǔn)間",價(jià)格200,狀態(tài)0(空閑),驗(yàn)證是否添加成功。-修改客房信息:將房間號101的價(jià)格修改為220,驗(yàn)證是否修改成功。-刪除客房信息:刪除房間號101(確保該房間空閑),驗(yàn)證是否刪除成功。-查詢客房信息:按房間號101查詢,驗(yàn)證是否顯示正確信息。-查詢客房信息:按房間類型"標(biāo)準(zhǔn)間"查詢,驗(yàn)證是否顯示正確信息。2.客戶入住管理測試-辦理客戶入住:輸入客戶姓名"張三",身份證號"1234567890123456",入住時(shí)間"2023-10-01",預(yù)計(jì)退房時(shí)間"2023-10-03",驗(yàn)證是否能成功入住并分配房間。-查看已入住客戶信息:驗(yàn)證是否能正確顯示已入住客戶信息。3.客戶退房管理測試-辦理客戶退房:輸入房間號101,驗(yàn)證是否能正確辦理退房手續(xù),計(jì)算費(fèi)用并更新客房狀態(tài)。-查看退房記錄:驗(yàn)證是否能正確顯示退房記錄。4.系統(tǒng)維護(hù)測試-備份數(shù)據(jù):驗(yàn)證是否能成功備份客房信息和客戶入住記錄到文件。-恢復(fù)數(shù)據(jù):驗(yàn)證是否能從備份文件正確恢復(fù)數(shù)據(jù)。(三)測試結(jié)果1.通過對上述測試用例的執(zhí)行,系統(tǒng)各項(xiàng)功能均能正常運(yùn)行,達(dá)到了預(yù)期的設(shè)計(jì)要求。2.在添加客房信息時(shí),能夠準(zhǔn)確將新客房信息添加到數(shù)組中,并給出相應(yīng)的成功提示。3.修改客房信息功能可以正確更新指定客房的價(jià)格和狀態(tài)。4.刪除客房信息功能在滿足條件(房間空閑)時(shí)能成功刪除,并給出提示。5.查詢客房信息功能按不同條件查詢均能準(zhǔn)確顯示相應(yīng)客房的詳細(xì)信息。6.客戶入住管理功能能夠正確分配
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校維修安全協(xié)議書
- 授權(quán)轉(zhuǎn)讓理賠協(xié)議書
- 手機(jī)委托租賃協(xié)議書
- 酒店股東協(xié)議書范本
- 為人貸款擔(dān)保協(xié)議書
- 文字作品保密協(xié)議書
- 客棧合伙經(jīng)營協(xié)議書
- 消費(fèi)商會(huì)協(xié)議書范本
- 租地安全管理協(xié)議書
- 委托代購砂石協(xié)議書
- 邢臺(tái)2024年河北邢臺(tái)學(xué)院高層次人才引進(jìn)30人筆試歷年典型考題及考點(diǎn)附答案解析
- 圓錐角膜的護(hù)理查房
- 第24課《唐詩三首-茅屋為秋風(fēng)所破歌》課件++2023-2024學(xué)年統(tǒng)編版語文八年級下冊
- 食品采購?fù)稑?biāo)服務(wù)方案
- 設(shè)備搬運(yùn)合同的模板
- 有機(jī)肥料整體供貨方案及保證措施
- 跨國公司的國際營銷策略淺析-以聯(lián)合利華為例
- 《肌力訓(xùn)練》課件
- 全媒體運(yùn)營師-國家職業(yè)標(biāo)準(zhǔn)(2023年版)
- 招標(biāo)投標(biāo)法培訓(xùn)課件
- GLB-2防孤島保護(hù)裝置試驗(yàn)報(bào)告
評論
0/150
提交評論