版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-.z.PAGE1面向?qū)ο蟪绦蛟O(shè)計(jì)II課程設(shè)計(jì)指導(dǎo)書(shū)題目:賓館管理系統(tǒng)學(xué)院:計(jì)算機(jī)科學(xué)與工程學(xué)院專(zhuān)業(yè):軟件工程班級(jí):133301**:201335032013349020133482:王帥俊甘雨指導(dǎo)老師:旭明一、課程設(shè)計(jì)的目的學(xué)習(xí)綜合運(yùn)用C高級(jí)語(yǔ)言課程和其他先修課程的知識(shí),提高分析和解決實(shí)際問(wèn)題的的能力,進(jìn)一步鞏固、加深和拓寬所學(xué)的知識(shí);進(jìn)一步加強(qiáng)結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對(duì)高級(jí)語(yǔ)言基本語(yǔ)言要素和控制結(jié)構(gòu)的理解。全面系統(tǒng)的學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念、基本語(yǔ)法和編程方法;獨(dú)立完成有一定工作量的程序設(shè)計(jì)任務(wù),同時(shí)強(qiáng)調(diào)好的程序設(shè)計(jì)風(fēng)格。掌握程序設(shè)計(jì)中的常用算法和C語(yǔ)言的編程技巧和上機(jī)調(diào)試程序的方法。在參與一系列子項(xiàng)目的實(shí)踐過(guò)程中,提高如何綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力,以及獲得相關(guān)項(xiàng)目管理和團(tuán)隊(duì)合作等眾多方面的具體經(jīng)驗(yàn)。課程設(shè)計(jì)的任務(wù)按照如下要求,運(yùn)用C++語(yǔ)言,編寫(xiě)一套可用的較為完善的賓館住宿管理系統(tǒng)軟件(兩人分模塊合作)對(duì)賓館基本信息【房間數(shù)量、房間類(lèi)別(標(biāo)間、單間、套房)、收費(fèi)標(biāo)準(zhǔn)等】在適當(dāng)圍自行規(guī)定。能夠?qū)崿F(xiàn)預(yù)定登記、入住登記、退房結(jié)算等功能;房間狀態(tài)(空房、入住、預(yù)定)能夠以一定方式直觀地表現(xiàn)。能夠錄入住宿人員信息、計(jì)算客戶(hù)消費(fèi)總額并生成賬單,賬單信息存入到磁盤(pán)文件當(dāng)中去。能夠相對(duì)靈活地查詢(xún)房間狀態(tài)、入住情況、空房情況、預(yù)訂情況等容。能夠產(chǎn)生各類(lèi)報(bào)表,如房間信息、入住信息、消費(fèi)表單等在磁盤(pán)文件當(dāng)中可以查看它們的信息。三、系統(tǒng)設(shè)計(jì)方案3.1系統(tǒng)詳細(xì)描述3.1.1系統(tǒng)設(shè)計(jì)背景隨著人民生活水平的提高,旅游出行的人越來(lái)越多,賓館的客流量不斷增加,普通的手寫(xiě)登記太過(guò)復(fù)雜經(jīng)常出現(xiàn)信息丟失,也不適合現(xiàn)在的節(jié)約型社會(huì)的發(fā)展,賓館在正常運(yùn)營(yíng)中需要對(duì)客房資源、顧客信息、退房信息等進(jìn)行管理,利用客房管理系統(tǒng)及時(shí)了解各個(gè)環(huán)節(jié)息的變更,有利于提高管理的效率。本項(xiàng)目作為c++課程設(shè)計(jì)的訓(xùn)練項(xiàng)目提出,目的是為了提高同學(xué)們系統(tǒng)的開(kāi)發(fā),則提高大家的實(shí)踐能力。所以開(kāi)發(fā)一個(gè)符合自身賓館實(shí)際情況的工作平臺(tái)是十分必要的。3.1.2系統(tǒng)設(shè)計(jì)詳細(xì)信息系統(tǒng)使用對(duì)象設(shè)定為百康賓館。百康酒店是一家鄉(xiāng)鎮(zhèn)中小型賓館,三層建筑,擁有各類(lèi)房間共20間。其中一層均為單人間,共9間,房號(hào)101-109;二層為均雙人間,共6間,房號(hào)201-206;三層均為豪華套房,共5間,房號(hào)301-305。各類(lèi)房間均設(shè)有電視、櫥柜、網(wǎng)、風(fēng)扇、暖氣等基礎(chǔ)設(shè)施,24小時(shí)熱水供應(yīng),可淋浴。一層前臺(tái)處設(shè)有便捷商店,當(dāng)時(shí)結(jié)算,不計(jì)入住宿賬單??赏ㄟ^(guò)網(wǎng)購(gòu)買(mǎi),免費(fèi)送至房間。A、收費(fèi)標(biāo)準(zhǔn):有按天計(jì)費(fèi)和按小時(shí)計(jì)費(fèi)兩種收費(fèi)標(biāo)準(zhǔn)。按天計(jì)費(fèi),標(biāo)準(zhǔn)為單人間170元/天,雙人間280元/天,豪華套房500元/天。按小時(shí)計(jì)費(fèi),標(biāo)準(zhǔn)為單人間20元/小時(shí),雙人間30元/小時(shí),豪華套房50元/小時(shí)。B、計(jì)時(shí)標(biāo)準(zhǔn):按天計(jì)費(fèi)時(shí),從0時(shí)至次日0時(shí)計(jì)一天,不滿(mǎn)一天按一天計(jì)算;按小時(shí)計(jì)費(fèi)時(shí),不滿(mǎn)一小時(shí)按一小時(shí)計(jì)費(fèi)。(特殊情形的優(yōu)惠政策不在本設(shè)計(jì)考慮圍之)C、定金標(biāo)準(zhǔn):入住定金按(預(yù)計(jì)入住時(shí)間*其單日房費(fèi)+500元)收取,退房時(shí)充作房費(fèi)和房屋設(shè)施折損費(fèi)(抵償損壞的房設(shè)施),多退少補(bǔ)。預(yù)定定金(按預(yù)計(jì)訂房時(shí)間*對(duì)應(yīng)房間按天計(jì)算住宿價(jià)格*40%)收取,若到時(shí)不入住且不續(xù)訂,則不再退還;若到時(shí)入住,充作入住定金,多退少補(bǔ)。預(yù)定無(wú)需繳納定金,但不確保屆時(shí)有空房間。注:定金數(shù)額可在以上標(biāo)準(zhǔn)數(shù)額之上,退房結(jié)算時(shí)多退少補(bǔ)。退房時(shí),室設(shè)施經(jīng)確認(rèn)無(wú)損壞情況,則不收取房屋設(shè)施折損費(fèi)。3.2功能模塊劃分3.2.1功能模塊描述根據(jù)任務(wù)容要求及賓館相關(guān)情況等信息,百康賓館住宿管理系統(tǒng)需要實(shí)現(xiàn)查詢(xún)功能(包括客房總體使用情況查詢(xún)、已入住客房查詢(xún)、已預(yù)訂客房查詢(xún)、閑置房間信息查詢(xún)等查詢(xún)方式),訂房登記,入住登記,退房結(jié)算等四大基本功能。系統(tǒng)應(yīng)實(shí)現(xiàn)對(duì)各類(lèi)信息的靈活查找,客戶(hù)信息的錄入、保存與調(diào)用,自動(dòng)結(jié)算并生成賬單等操作。為了簡(jiǎn)化前臺(tái)人員操作并提高其工作效率,還應(yīng)實(shí)現(xiàn)開(kāi)始前初始化詢(xún)問(wèn),訂房或入住登記時(shí)自動(dòng)顯示當(dāng)前閑置房間,入住前詢(xún)問(wèn)是否已預(yù)訂,輸入錯(cuò)誤信息時(shí)進(jìn)行提醒等人性化功能。由以上分析,將系統(tǒng)主要分為以下四大功能模塊,如圖3.1所示:客房查詢(xún):包括查詢(xún)客房總體使用情況、查詢(xún)當(dāng)前閑置房間信息、查詢(xún)已入住房間信息、查詢(xún)已預(yù)定房間信息等查詢(xún)功能;訂房登記:包括顯示當(dāng)前閑置房間信息、登記預(yù)定信息等功能;入住登記:包括顯示當(dāng)前房間總體使用情況、詢(xún)問(wèn)是否預(yù)定過(guò)房間、登記入住人信息等功能;退房結(jié)算:包括選擇結(jié)算方式、輸入結(jié)算時(shí)間、計(jì)算住宿費(fèi)用等功能。百康賓館住宿管理系百康賓館住宿管理系訂房登記入住登記客房查詢(xún)退房結(jié)算客房總體信息查詢(xún)已預(yù)訂房間信息查詢(xún)已入住房間信息查詢(xún)閑置房間信息查詢(xún)圖3.1功能模塊結(jié)構(gòu)圖3.2.2輸入項(xiàng)以下輸入項(xiàng)均為鍵盤(pán)輸入:num——房間號(hào),intkong*ian——房間是否空閑,intname[20]——名字定義,charname[20]ID[20]——號(hào)(18位阿拉伯?dāng)?shù)字),charID[20]lian*ifangshi[15]——聯(lián)系方式(11位阿拉伯?dāng)?shù)字), charlian*ifangshi[15]yajin——押金,intyudingriqi——預(yù)定日期(日期均為8位阿拉伯?dāng)?shù)字,格式為年月日),longruzhushijian——入住日期,longtianshu——預(yù)計(jì)天數(shù),intjiezhiriqi——截止日期,longp——是否初始化(0或1),intchose——選擇主菜單(1,2,3,4或5),intt——計(jì)費(fèi)方式(1或2),inti——子菜單選擇(1,2,3,4或5)(不同模塊可能定義不同),inta——是否預(yù)定過(guò)房間(在ruzhudengji()定義的),int3.2.3輸出項(xiàng)房間號(hào),int房間類(lèi)型, charlei*ing[10]價(jià)格(元/天),int價(jià)格(元/小時(shí)),int是否空閑,int客人,charname[20],charID[20]聯(lián)系方式,charlian*ifangshi[15]押金(元),int預(yù)定日期,long入住時(shí)間,long預(yù)計(jì)天數(shù),int截止日期,long四、系統(tǒng)實(shí)現(xiàn)與測(cè)試4.1主菜單模塊實(shí)現(xiàn)4.1.1主菜單流程圖圖4.1主菜單流程圖4.1.2主菜單代碼voidMenu_Display(){ system("cls"); cout<<"\t\t*******************************************"<<endl; cout<<"\t\t*歡迎使用百康賓館管理系統(tǒng)*"<<endl; cout<<"\t\t*請(qǐng)輸入您所需要的功能:*"<<endl; cout<<"\t\t*1.客房查詢(xún)2.訂房登記*"<<endl; cout<<"\t\t*3.入住登記4.退房*"<<endl; cout<<"\t\t*5.退出*"<<endl; cout<<"\t\t*感**您*的*使*用*"<<endl; cout<<"\t\t*******************************************"<<endl;}voidchushihua(){ inti[3]={1,0,1},k=0; for(;k<20;k++) { hotel[k].num=i[0]*100+i[1]*10+i[2]; strcpy(hotel[k].ID,"0"); hotel[k].jiezhiriqi=0; hotel[k].kong*ian=0; strcpy(hotel[k].lian*ifangshi,"0"); strcpy(hotel[k].name,"0"); hotel[k].ruzhushijian=0; hotel[k].tianshu=0; hotel[k].yudingriqi=0; switch(i[0]) {case1:{hotel[k].jiage=17020;strcpy(hotel[k].lei*ing,"單人間");break;} case2:{hotel[k].jiage=28030;strcpy(hotel[k].lei*ing,"雙人間");break;} case3:{hotel[k].jiage=50050;strcpy(hotel[k].lei*ing,"套房");break;} } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstream*ieru("賓館房間信息.t*t",ios::out); *ieru<<"房間號(hào)類(lèi)型價(jià)格是否空閑號(hào)聯(lián)系方式押金預(yù)定日期入住時(shí)間天數(shù)截止日期"<<endl;for(int*=0;*<20;*++) {*ieru<<hotel[*].num<<''<<hotel[*].lei*ing<<''<<hotel[*].jiage<<''<<hotel[*].kong*ian<<''<<hotel[*].name <<''<<hotel[*].ID<<''<<hotel[*].lian*ifangshi<<''<<hotel[*].yajin<<''<<hotel[*].yudingriqi<<''<<hotel[*].ruzhushijian <<''<<hotel[*].tianshu<<''<<hotel[*].jiezhiriqi<<endl; } *ieru.close();}voidmain(){ intp=0;cout<<"是否要初始化房間信息?"; cout<<"(是請(qǐng)輸入1,否請(qǐng)輸入0)"<<endl; cin>>p; if(p==1) chushihua(); intchose; Menu_Display(); cout<<"請(qǐng)輸入選項(xiàng):"; cin>>chose; while(chose!=0) { switch(chose)//用switch語(yǔ)句判斷選擇菜單的功能 { case1:search_message();break;//客房查詢(xún) case2:dingfangdengji();break;//訂房間 case3:ruzhudengji();break;//入住房間 case4:tuifang();break;//退房 case5:e*it(0);default:cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入"<<endl;//提示錯(cuò)誤命令 }cout<<"\t\t*******************************************"<<endl; cout<<"\t\t*歡迎使用百康賓館管理系統(tǒng)*"<<endl; cout<<"\t\t*請(qǐng)輸入您所需要的功能:*"<<endl; cout<<"\t\t*1.客房查詢(xún)2.訂房登記*"<<endl; cout<<"\t\t*3.入住登記4.退房*"<<endl; cout<<"\t\t*5.退出*"<<endl; cout<<"\t\t*感**您*的*使*用*"<<endl; cout<<"\t\t*******************************************"<<endl; cout<<"請(qǐng)輸入選項(xiàng):"; cin>>chose; while(chose==0) { cout<<"輸入錯(cuò)誤,按任意鍵退出程序:"<<endl; e*it(0); } }}4.1.3主菜單模塊測(cè)試主菜單界面中顯示客房管理系統(tǒng)的功能選項(xiàng)模塊如圖4.2所示:圖4.2主菜單4.2入住登記模塊實(shí)現(xiàn)4.2.1入住登記流程圖圖4.3入住登記流程圖4.2.2入住登記代碼voidruzhudengji(){ inta,b=0; stringname; ifstreamliulan("賓館房間信息.t*t",ios::in);//定義輸入文件流對(duì)象,以輸入方式打開(kāi)磁盤(pán)文件旅信 if(!liulan)//判斷文件是否打開(kāi)成功 { cerr<<"文件不能讀."<<endl;return; } else liulan.seekg(117,ios::beg);//在輸入文件開(kāi)頭以參照位置為基礎(chǔ)移動(dòng)若干字節(jié)(beg=begin) inti=0;//存放空閑房間的cout<<"房間號(hào)類(lèi)型價(jià)格(元/天)價(jià)格(元/小時(shí))空閑"<<endl; while(i<20) { liulan>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].lei*ing<<setw(9)<<hotel[i].jiage/100<<setw(14)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kong*ian;//輸出所有房間信息 i++,cout<<endl; } liulan.close();//關(guān)閉文件 cout<<"(注:0表示空房間、1表示房間已入住、2表示房間已預(yù)訂)"<<endl; cout<<"是否預(yù)訂過(guò)房間?"<<endl; cout<<"是,請(qǐng)輸入1,否,請(qǐng)輸入2"<<endl; cin>>a; if(a==1) { cout<<"請(qǐng)輸入房間號(hào):"<<endl; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { if(hotel[i].yudingriqi!=0) { cout<<"請(qǐng)輸入入住日期:"; cin>>hotel[i].ruzhushijian; cout<<"請(qǐng)輸入截止日期:"; cin>>hotel[i].jiezhiriqi; hotel[i].yudingriqi=0; } else { cout<<"該房沒(méi)有被預(yù)訂過(guò)"<<endl; system("pause"); } } } else { cout<<"空房間有:"<<endl; for(intk=0;k<20;k++) { if(hotel[k].kong*ian==0) cout<<hotel[k].num<<""; } cout<<endl; cout<<"請(qǐng)輸入房間號(hào):"; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { cout<<"請(qǐng)依次輸入以下信息并加以核對(duì)(日期格式:年月日例如19920503)"<<endl; cout<<"姓名:"; cin>>hotel[i].name; cout<<"號(hào):"; cin>>hotel[i].ID; cout<<"聯(lián)系方式:"; cin>>hotel[i].lian*ifangshi; cout<<"押金:"; cin>>hotel[i].yajin; cout<<"天數(shù):"; cin>>hotel[i].tianshu; cout<<"入住日期:"; cin>>hotel[i].ruzhushijian; hotel[i].kong*ian=2; } } ofstream*ieru("賓館房間信息.t*t",ios::out);//寫(xiě)回文件 *ieru<<"房間號(hào)類(lèi)型價(jià)格是否空閑號(hào)聯(lián)系方式押金預(yù)定日期入住時(shí)間天數(shù)截止日期"<<endl; for(i=0;i<20;i++) *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; *ieru.close(); cout<<"登記成功"<<endl;}4.2.3入住登記模塊測(cè)入住登記界面顯示了房間使用情況以及提示以前是否預(yù)訂過(guò)房間如圖4.4所示:圖4.4入住登記界面如果客人預(yù)定過(guò)房間,則選擇“1”,然后輸入預(yù)訂房間號(hào)如圖4.5所示。輸入入住日期和截止日期則“登記成功”如圖4.6所示。圖4.5選擇訂過(guò)房間入住登記界面圖4.6訂過(guò)房間入住登記界面未預(yù)訂過(guò)房間則選擇“2”則會(huì)顯示出目前的空房間信息如圖4.7所示,根據(jù)系統(tǒng)提示輸入客人的信息則“登記成功”如圖4.8所示。圖4.7選擇未訂過(guò)房間入住登記界面圖4.8選擇未訂過(guò)房間入住登記輸入信息界面4.3退房結(jié)算模塊實(shí)現(xiàn)4.3.1退房結(jié)算流程圖圖4.9退房結(jié)算流程圖4.3.2退房結(jié)算代碼voidtuifang(){inta,b; ifstreamfin("賓館房間信息.t*t",ios::in); cout<<"請(qǐng)輸入房號(hào):"; cin>>a; intc=0,i=0; fin.seekg(117,ios::beg);//在輸入文件開(kāi)頭以參照位置為基礎(chǔ)移動(dòng)若干字節(jié)(beg=begin) while(i<20) { fin>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].num==a)//查詢(xún)客人房間 b=i; i++; } fin.close(); cout<<"房間信息為:"<<endl; cout<<":押金(元):入住時(shí)間:"<<endl; cout<<setw(6)<<hotel[b].name<<setw(8)<<hotel[b].yajin<<setw(20)<<hotel[b].ruzhushijian<<endl; cout<<"(注:日期輸入格式年月日例如20120101)"<<endl; cout<<"請(qǐng)輸結(jié)算入日期:"; intd; cin>>d; hotel[b].jiezhiriqi=d; intfei; cout<<"按小時(shí)/天數(shù)計(jì)費(fèi)(小時(shí)輸入1,天數(shù)輸入2):"; intt; cin>>t; if(t==2) fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100));//結(jié)算函數(shù),押金—(結(jié)算時(shí)間-入住時(shí)間)*價(jià)格 else fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100));//按小時(shí)計(jì)算 if(fei<0) { fei=-fei; cout<<"應(yīng)付費(fèi)用為:"<<fei<<"元"<<endl; } else { cout<<"總消費(fèi)金額為:"<<hotel[b].yajin-fei<<"元"<<endl; cout<<"押金足夠應(yīng)返還給您:"<<fei<<"元"<<endl; } fstreamjs**("結(jié)算信息.t*t",ios::out);js**<<"消費(fèi)信息為:"<<endl; js**<<":"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住時(shí)間:"<<hotel[b].ruzhushijian<<endl<<"結(jié)算時(shí)間:"<<d<<endl;if(t==2) js**<<"計(jì)費(fèi)方式:按天數(shù)計(jì)費(fèi)"<<endl; else js**<<"計(jì)費(fèi)方式:按小時(shí)計(jì)費(fèi)"<<endl;js**<<"總消費(fèi)金額為:"<<hotel[b].yajin-fei<<"元"<<endl; js**<<"押金足夠應(yīng)返還給您:"<<fei<<"元"<<endl; js**.close(); hotel[b].kong*ian=0;//房間結(jié)算后初始化房間信息 strcpy(hotel[b].name,"0"); strcpy(hotel[b].ID,"0"); strcpy(hotel[b].lian*ifangshi,"0"); hotel[b].yudingriqi=0; hotel[b].ruzhushijian=0; hotel[b].jiezhiriqi=0; hotel[b].yajin=0; hotel[b].tianshu=0; hotel[b].jiezhiriqi=0; fstream*ieru("賓館房間信息.t*t",ios::out);//生成文件 *ieru<<"房間號(hào)類(lèi)型價(jià)格是否空閑號(hào)聯(lián)系方式押金預(yù)定日期入住時(shí)間天數(shù)截止日期"<<endl; for(i=0;i<20;i++) { *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; } *ieru.close(); system("pause");}4.3.3退房結(jié)算模塊測(cè)試選擇退房功能輸入房間號(hào)則會(huì)顯示出客人的基本信息如圖4.10所示;根據(jù)系統(tǒng)提示輸入結(jié)算日期并選擇結(jié)算方式則“結(jié)算結(jié)束”如圖4.11和圖4.12所示。賬單信息存入到磁盤(pán)文件當(dāng)中去,如圖4.13所示。圖4.10退房結(jié)算輸入結(jié)算房間號(hào)后界面圖圖4.11退房結(jié)算輸入日期界面圖4.12退房結(jié)算完成界面圖4.13退房結(jié)算信息文件五、附錄:程序代碼*include<iostream>*include<iomanip>//輸出流控制*include<string>*include<fstream>//輸入輸出文件流usingnamespacestd;voidsearch_message();voiddingfangdengji();voidruzhudengji();voidtuifang();voidall_message();voidempty_message();voidruzhi*in*i();voiddingfang*in*i();structhotel//定義結(jié)構(gòu)體{ intnum; charlei*ing[10]; intjiage; intkong*ian; charname[20]; charID[20]; charlian*ifangshi[15]; intyajin; longyudingriqi; longruzhushijian; inttianshu; longjiezhiriqi;}hotel[20];voidMenu_Display(){ system("cls"); cout<<"\t\t*******************************************"<<endl; cout<<"\t\t*歡迎使用百康賓館管理系統(tǒng)*"<<endl; cout<<"\t\t*請(qǐng)輸入您所需要的功能:*"<<endl; cout<<"\t\t*1.客房查詢(xún)2.訂房登記*"<<endl; cout<<"\t\t*3.入住登記4.退房*"<<endl; cout<<"\t\t*5.退出*"<<endl; cout<<"\t\t*感**您*的*使*用*"<<endl; cout<<"\t\t*******************************************"<<endl;}voidchushihua(){ inti[3]={1,0,1},k=0; for(;k<20;k++) { hotel[k].num=i[0]*100+i[1]*10+i[2]; strcpy(hotel[k].ID,"0");hotel[k].jiezhiriqi=0; hotel[k].kong*ian=0; strcpy(hotel[k].lian*ifangshi,"0"); strcpy(hotel[k].name,"0"); hotel[k].ruzhushijian=0; hotel[k].tianshu=0; hotel[k].yudingriqi=0; switch(i[0]) { case1:{hotel[k].jiage=17020;strcpy(hotel[k].lei*ing,"單人間");break;} case2:{hotel[k].jiage=28030;strcpy(hotel[k].lei*ing,"雙人間");break;} case3:{hotel[k].jiage=50050;strcpy(hotel[k].lei*ing,"套房");break;} } if(k==8) i[0]++,i[2]=0; if(k==14) i[0]++,i[2]=0; i[2]++; } fstream*ieru("賓館房間信息.t*t",ios::out); *ieru<<"房間號(hào)類(lèi)型價(jià)格是否空閑號(hào)聯(lián)系方式押金預(yù)定日期入住時(shí)間天數(shù)截止日期"<<endl;for(int*=0;*<20;*++) {*ieru<<hotel[*].num<<''<<hotel[*].lei*ing<<''<<hotel[*].jiage<<''<<hotel[*].kong*ian<<''<<hotel[*].name<<''<<hotel[*].ID<<''<<hotel[*].lian*ifangshi<<''<<hotel[*].yajin<<''<<hotel[*].yudingriqi<<''<<hotel[*].ruzhushijian <<''<<hotel[*].tianshu<<''<<hotel[*].jiezhiriqi<<endl; } *ieru.close();}voidmain(){ intp=0; cout<<"是否要初始化房間信息?"; cout<<"(是請(qǐng)輸入1,否請(qǐng)輸入0)"<<endl; cin>>p; if(p==1) chushihua(); intchose; Menu_Display(); cout<<"請(qǐng)輸入選項(xiàng):"; cin>>chose; while(chose!=0) { switch(chose)//用switch語(yǔ)句判斷選擇菜單的功能 { case1:search_message();break;//客房查詢(xún) case2:dingfangdengji();break;//訂房間 case3:ruzhudengji();break;//入住房間 case4:tuifang();break;//退房 case5:e*it(0);default:cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入"<<endl;//提示錯(cuò)誤命令 }cout<<"\t\t*******************************************"<<endl; cout<<"\t\t*歡迎使用百康賓館管理系統(tǒng)*"<<endl; cout<<"\t\t*請(qǐng)輸入您所需要的功能:*"<<endl; cout<<"\t\t*1.客房查詢(xún)2.訂房登記*"<<endl; cout<<"\t\t*3.入住登記4.退房*"<<endl; cout<<"\t\t*5.退出*"<<endl; cout<<"\t\t*感**您*的*使*用*"<<endl; cout<<"\t\t*******************************************"<<endl; cout<<"請(qǐng)輸入選項(xiàng):"; cin>>chose; while(chose==0) { cout<<"輸入錯(cuò)誤,按任意鍵退出程序:"<<endl; e*it(0); } }}voidruzhudengji(){ inta,b=0; stringname; ifstreamliulan("賓館房間信息.t*t",ios::in);//定義輸入文件流對(duì)象,以輸入方式打開(kāi)磁盤(pán)文件旅信 if(!liulan)//判斷文件是否打開(kāi)成功 { cerr<<"文件不能讀."<<endl;return; } else liulan.seekg(117,ios::beg);//在輸入文件開(kāi)頭以參照位置為基礎(chǔ)移動(dòng)若干字節(jié)(beg=begin) inti=0;//存放空閑房間的cout<<"房間號(hào)類(lèi)型價(jià)格(元/天)價(jià)格(元/小時(shí))空閑"<<endl; while(i<20) { liulan>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].lei*ing<<setw(9)<<hotel[i].jiage/100<<setw(14)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kong*ian;//輸出所有房間信息 i++,cout<<endl; } liulan.close();//關(guān)閉文件 cout<<"(注:0表示空房間、1表示房間已入住、2表示房間已預(yù)訂)"<<endl; cout<<"是否預(yù)訂過(guò)房間?"<<endl; cout<<"是,請(qǐng)輸入1,否,請(qǐng)輸入2"<<endl; cin>>a; if(a==1) { cout<<"請(qǐng)輸入房間號(hào):"<<endl; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { if(hotel[i].yudingriqi!=0) { cout<<"請(qǐng)輸入入住日期:"; cin>>hotel[i].ruzhushijian; cout<<"請(qǐng)輸入截止日期:"; cin>>hotel[i].jiezhiriqi; hotel[i].yudingriqi=0; } else { cout<<"該房沒(méi)有被預(yù)訂過(guò)"<<endl; system("pause"); } } } else { cout<<"空房間有:"<<endl; for(intk=0;k<20;k++) { if(hotel[k].kong*ian==0) cout<<hotel[k].num<<""; } cout<<endl; cout<<"請(qǐng)輸入房間號(hào):"; cin>>b; for(i=0;i<20;i++) if(hotel[i].num==b) { cout<<"請(qǐng)依次輸入以下信息并加以核對(duì)(日期格式:年月日例如19920503)"<<endl; cout<<"姓名:"; cin>>hotel[i].name; cout<<"號(hào):"; cin>>hotel[i].ID; cout<<"聯(lián)系方式:"; cin>>hotel[i].lian*ifangshi; cout<<"押金:"; cin>>hotel[i].yajin; cout<<"天數(shù):"; cin>>hotel[i].tianshu; cout<<"入住日期:"; cin>>hotel[i].ruzhushijian; hotel[i].kong*ian=2; } } ofstream*ieru("賓館房間信息.t*t",ios::out);//寫(xiě)回文件 *ieru<<"房間號(hào)類(lèi)型價(jià)格是否空閑號(hào)聯(lián)系方式押金預(yù)定日期入住時(shí)間天數(shù)截止日期"<<endl; for(i=0;i<20;i++) *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; *ieru.close(); cout<<"登記成功"<<endl;}voidtuifang(){inta,b; ifstreamfin("賓館房間信息.t*t",ios::in); cout<<"請(qǐng)輸入房號(hào):"; cin>>a; intc=0,i=0; fin.seekg(117,ios::beg);//在輸入文件開(kāi)頭以參照位置為基礎(chǔ)移動(dòng)若干字節(jié)(beg=begin) while(i<20) { fin>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].num==a)//查詢(xún)客人房間 b=i; i++; } fin.close(); cout<<"房間信息為:"<<endl; cout<<":押金(元):入住時(shí)間:"<<endl; cout<<setw(6)<<hotel[b].name<<setw(8)<<hotel[b].yajin<<setw(20)<<hotel[b].ruzhushijian<<endl; cout<<"(注:日期輸入格式年月日例如20120101)"<<endl; cout<<"請(qǐng)輸結(jié)算入日期:"; intd; cin>>d; hotel[b].jiezhiriqi=d; intfei; cout<<"按小時(shí)/天數(shù)計(jì)費(fèi)(小時(shí)輸入1,天數(shù)輸入2):"; intt; cin>>t; if(t==2) fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100));//結(jié)算函數(shù),押金—(結(jié)算時(shí)間-入住時(shí)間)*價(jià)格 else fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100));//按小時(shí)計(jì)算 if(fei<0) { fei=-fei; cout<<"應(yīng)付費(fèi)用為:"<<fei<<"元"<<endl; } else { cout<<"總消費(fèi)金額為:"<<hotel[b].yajin-fei<<"元"<<endl; cout<<"押金足夠應(yīng)返還給您:"<<fei<<"元"<<endl; } fstreamjs**("結(jié)算信息.t*t",ios::out);js**<<"消費(fèi)信息為:"<<endl; js**<<":"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住時(shí)間:"<<hotel[b].ruzhushijian<<endl<<"結(jié)算時(shí)間:"<<d<<endl;if(t==2) js**<<"計(jì)費(fèi)方式:按天數(shù)計(jì)費(fèi)"<<endl; else js**<<"計(jì)費(fèi)方式:按小時(shí)計(jì)費(fèi)"<<endl;js**<<"總消費(fèi)金額為:"<<hotel[b].yajin-fei<<"元"<<endl; js**<<"押金足夠應(yīng)返還給您:"<<fei<<"元"<<endl; js**.close(); hotel[b].kong*ian=0;//房間結(jié)算后初始化房間信息 strcpy(hotel[b].name,"0"); strcpy(hotel[b].ID,"0"); strcpy(hotel[b].lian*ifangshi,"0"); hotel[b].yudingriqi=0; hotel[b].ruzhushijian=0; hotel[b].jiezhiriqi=0; hotel[b].yajin=0; hotel[b].tianshu=0; hotel[b].jiezhiriqi=0; fstream*ieru("賓館房間信息.t*t",ios::out);//生成文件 *ieru<<"房間號(hào)類(lèi)型價(jià)格是否空閑號(hào)聯(lián)系方式押金預(yù)定日期入住時(shí)間天數(shù)截止日期"<<endl; for(i=0;i<20;i++) { *ieru<<hotel[i].num<<''<<hotel[i].lei*ing<<''<<hotel[i].jiage<<''<<hotel[i].kong*ian<<''<<hotel[i].name <<''<<hotel[i].ID<<''<<hotel[i].lian*ifangshi<<''<<hotel[i].yajin<<''<<hotel[i].yudingriqi<<''<<hotel[i].ruzhushijian <<''<<hotel[i].tianshu<<''<<hotel[i].jiezhiriqi<<endl; } *ieru.close(); system("pause");}voidsearch_message()//對(duì)房間信息進(jìn)行查詢(xún)的函數(shù){ voidall_message(); voidempty_message(); voidruzhu*in*i(); voiddingfang*in*i(); cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; cout<<"\t\t%歡迎使用百康賓館管理系統(tǒng)%"<<endl; cout<<"\t\t%請(qǐng)輸入您要選擇的功能%"<<endl; cout<<"\t\t%1.房間應(yīng)用情況2.空房間信息%"<<endl; cout<<"\t\t%3.入住信息4.訂房信息%"<<endl; cout<<"\t\t%5返回主菜單%"<<endl; cout<<"\t\t%感**您*的*使*用%"<<endl; cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; inti; cout<<"請(qǐng)輸入選項(xiàng):"; cin>>i; while(i!=5) { switch(i)//用switch語(yǔ)句判斷選擇查詢(xún)的方法 { case1:all_message();break; case2:empty_message();break; case3:ruzhu*in*i();break; case4:dingfang*in*i();break;default:cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入"<<endl;//提示錯(cuò)誤命令 } cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; cout<<"\t\t%歡迎使用百康賓館管理系統(tǒng)%"<<endl; cout<<"\t\t%請(qǐng)輸入您要選擇的功能%"<<endl; cout<<"\t\t%1.房間應(yīng)用情況2.空房間信息%"<<endl; cout<<"\t\t%3.入住信息4.訂房信息%"<<endl; cout<<"\t\t%5返回主菜單%"<<endl; cout<<"\t\t%感**您*的*使*用%"<<endl; cout<<"\t\t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl; cout<<"請(qǐng)輸入選項(xiàng):"; cin>>i; } system("pause"); system("cls");}voidall_message(){ inti=0; ifstreamliulan("賓館房間信息.t*t",ios::in);//用輸入輸出流自定義信息文件 if(!liulan)//判斷文件是否打開(kāi)成功 { cerr<<"文件不能讀."<<endl;return; } else liulan.seekg(117,ios::beg); cout<<"(注:空房間用0表示,已經(jīng)入住用1表示,訂房用2表示)"<<endl; cout<<"房間號(hào)類(lèi)型價(jià)格(元/天)價(jià)格(元/小時(shí))空閑"<<endl; while(i<20) { liulan>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].lei*ing<<setw(10)<<hotel[i].jiage/100<<setw(10)<<hotel[i].jiage%100<<setw(13) <<hotel[i].kong*ian;//用setw()進(jìn)行界面排版 cout<<endl; i++; } system("pause"); liulan.close();}//關(guān)閉文件voidempty_message()//顯示空房間信息{ ifstreamaa("賓館房間信息.t*t",ios::in); inti=0; cout<<"房間號(hào)類(lèi)型房間價(jià)格(元/天)元/小時(shí)"<<endl; aa.seekg(117,ios::beg); while(i<20) { aa>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; if(hotel[i].kong*ian==0) cout<<setw(4)<<hotel[i].num<<setw(13)<<hotel[i].lei*ing<<setw(10)<<hotel[i].jiage/100<<setw(12)<<hotel[i].jiage%100<<endl; i++; } aa.close();}voidruzhu*in*i(){ ifstreamfin("賓館房間信息.t*t",ios::in); inti=0; fin.seekg(117,ios::beg); while(i<20) { fin>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>hotel[i].lian*ifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian >>hotel[i].tianshu>>hotel[i].jiezhiriqi; i++; } fin.close(); i=0; cout<<"入住信息表:"<<endl; cout<<"房間號(hào)類(lèi)型號(hào)聯(lián)系方式押金入住日期天數(shù)截止日期"<<endl; while(i<20) { if(hotel[i].jiezhiriqi!=0) cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].lei*ing<<setw(10)<<hotel[i].name<<setw(20) <<hotel[i].ID<<setw(13)<<hotel[i].lian*ifangshi<<setw(8)<<hotel[i].yajin <<setw(12)<<hotel[i].ruzhushijian<<setw(10)<<hotel[i].tianshu<<setw(10)<<hotel[i].jiezhiriqi<<endl; i++; } cout<<"顯示完畢"<<endl; system("pause");}voiddingfang*in*i(){ ifstreamfin("賓館房間信息.t*t",ios::in); inti=0; fin.seekg(117,ios::beg); while(i<20) { fin>>hotel[i].num>>hotel[i].lei*ing>>hotel[i].jiage>>hotel[i].kong*ian>>hotel[i].name >>hotel[i].ID>>ho
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二手房買(mǎi)賣(mài)合同線(xiàn)上線(xiàn)下融合營(yíng)銷(xiāo)服務(wù)合同4篇
- 二零二五年度石子購(gòu)銷(xiāo)合同的驗(yàn)收標(biāo)準(zhǔn)3篇
- 二零二五年科研課題合作研究合同5篇
- 2025版特色旅游線(xiàn)路導(dǎo)游人員勞動(dòng)合同范本4篇
- 2025年度綠色建筑個(gè)人工程承包施工合同范本2篇
- 2025年食品代加工食品安全與品質(zhì)提升協(xié)議3篇
- 2025年高精度設(shè)備維護(hù)與技術(shù)支持合同3篇
- 2025版事業(yè)單位教師崗位聘用合同續(xù)簽協(xié)議3篇
- 二零二五版文化創(chuàng)意產(chǎn)業(yè)園區(qū)勞務(wù)分包合同3篇
- 個(gè)性化離婚合同書(shū)范本(2024)版B版
- 2025-2030年中國(guó)陶瓷電容器行業(yè)運(yùn)營(yíng)狀況與發(fā)展前景分析報(bào)告
- 二零二五年倉(cāng)儲(chǔ)配送中心物業(yè)管理與優(yōu)化升級(jí)合同3篇
- 2025屆廈門(mén)高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂(lè)作品錄制許可
- 江蘇省無(wú)錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測(cè)試語(yǔ)文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語(yǔ)試卷(含答案解析)
- 開(kāi)題報(bào)告:AIGC背景下大學(xué)英語(yǔ)教學(xué)設(shè)計(jì)重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個(gè)人主要事跡
- 連鎖商務(wù)酒店述職報(bào)告
- 《實(shí)踐論》(原文)毛澤東
- 第三單元名著導(dǎo)讀《紅星照耀中國(guó)》(公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)+說(shuō)課稿)
評(píng)論
0/150
提交評(píng)論