版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一、課程設(shè)計(jì)的目的</b></p><p> 學(xué)習(xí)綜合運(yùn)用C高級(jí)語(yǔ)言課程和其他先修課程的知識(shí),提高分析和解決實(shí)際問題的的能力,進(jìn)一步鞏固、加深和拓寬所學(xué)的知識(shí);進(jìn)一步加強(qiáng)結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對(duì)高級(jí)語(yǔ)言基本語(yǔ)言要素和控制結(jié)構(gòu)的理解。</p><p> 全面系統(tǒng)的學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念、基本語(yǔ)法和編程方法;獨(dú)立完成有一定工作
2、量的程序設(shè)計(jì)任務(wù),同時(shí)強(qiáng)調(diào)好的程序設(shè)計(jì)風(fēng)格。</p><p> 掌握程序設(shè)計(jì)中的常用算法和C語(yǔ)言的編程技巧和上機(jī)調(diào)試程序的方法。</p><p> 在參與一系列子項(xiàng)目的實(shí)踐過程中,提高如何綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力,以及獲得相關(guān)項(xiàng)目管理和團(tuán)隊(duì)合作等眾多方面的具體經(jīng)驗(yàn)。</p><p><b> 課程設(shè)計(jì)的任務(wù)</b></p&
3、gt;<p> 按照如下要求,運(yùn)用C++語(yǔ)言,編寫一套可用的較為完善的賓館住宿管理系統(tǒng)軟件(兩人分模塊合作)</p><p> 對(duì)賓館基本信息【房間數(shù)量、房間類別(標(biāo)間、單間、套房)、收費(fèi)標(biāo)準(zhǔn)等】在適當(dāng)范圍內(nèi)自行規(guī)定。</p><p> 能夠?qū)崿F(xiàn)預(yù)定登記、入住登記、退房結(jié)算等功能;房間狀態(tài)(空房、入住、預(yù)定)能夠以一定方式直觀地表現(xiàn)。</p><p&
4、gt; 能夠錄入住宿人員信息、計(jì)算客戶消費(fèi)總額并生成賬單,賬單信息存入到磁盤文件當(dāng)中去。</p><p> 能夠相對(duì)靈活地查詢房間狀態(tài)、入住情況、空房情況、預(yù)訂情況等內(nèi)容。</p><p> 能夠產(chǎn)生各類報(bào)表,如房間信息、入住信息、消費(fèi)表單等在磁盤文件當(dāng)中可以查看它們的信息。</p><p><b> 三、系統(tǒng)設(shè)計(jì)方案</b></
5、p><p><b> 3.1系統(tǒng)詳細(xì)描述</b></p><p> 3.1.1系統(tǒng)設(shè)計(jì)背景</p><p> 隨著人民生活水平的提高,旅游出行的人越來(lái)越多,賓館的客流量不斷增加,普通的手寫登記太過復(fù)雜經(jīng)常出現(xiàn)信息丟失,也不適合現(xiàn)在的節(jié)約型社會(huì)的發(fā)展,賓館在正常運(yùn)營(yíng)中需要對(duì)客房資源、顧客信息、退房信息等進(jìn)行管理,利用客房管理系統(tǒng)及時(shí)了解各個(gè)環(huán)節(jié)
6、中信息的變更,有利于提高管理的效率。 本項(xiàng)目作為c++課程設(shè)計(jì)的訓(xùn)練項(xiàng)目提出,目的是為了提高同學(xué)們系統(tǒng)的開發(fā),則提高大家的實(shí)踐能力。所以開發(fā)一個(gè)符合自身賓館實(shí)際情況的工作平臺(tái)是十分必要的。</p><p> 3.1.2系統(tǒng)設(shè)計(jì)詳細(xì)信息</p><p> 系統(tǒng)使用對(duì)象設(shè)定為百康賓館。百康賓館是一家鄉(xiāng)鎮(zhèn)中小型賓館,三層建筑,擁有各類房間共20間。其中一層均為單人間,共9間,房號(hào)101-10
7、9;二層為均雙人間,共6間,房號(hào)201-206;三層均為豪華套房,共5間,房號(hào)301-305。</p><p> 各類房間均設(shè)有電視、櫥柜、內(nèi)網(wǎng)電話、風(fēng)扇、暖氣等基礎(chǔ)設(shè)施,24小時(shí)熱水供應(yīng),可淋浴。</p><p> 一層前臺(tái)處設(shè)有便捷商店,當(dāng)時(shí)結(jié)算,不計(jì)入住宿賬單??赏ㄟ^內(nèi)網(wǎng)電話購(gòu)買,免費(fèi)送至房間。</p><p> A、收費(fèi)標(biāo)準(zhǔn):有按天計(jì)費(fèi)和按小時(shí)計(jì)費(fèi)兩種
8、收費(fèi)標(biāo)準(zhǔn)。</p><p> 按天計(jì)費(fèi),標(biāo)準(zhǔn)為單人間 170元/天,雙人間280元/天,豪華套房500元/天。</p><p> 按小時(shí)計(jì)費(fèi),標(biāo)準(zhǔn)為單人間20元/小時(shí),雙人間30元/小時(shí),豪華套房50元/小時(shí)。</p><p> B、計(jì)時(shí)標(biāo)準(zhǔn):按天計(jì)費(fèi)時(shí),從0時(shí)至次日0時(shí)計(jì)一天,不滿一天按一天計(jì)算;按小時(shí)計(jì)費(fèi)時(shí),不滿一小時(shí)按一小時(shí)計(jì)費(fèi)。(特殊情形的優(yōu)惠政策不在
9、本設(shè)計(jì)考慮范圍之內(nèi))</p><p> C、定金標(biāo)準(zhǔn):入住定金按(預(yù)計(jì)入住時(shí)間*其單日房費(fèi)+500元)收取,退房時(shí)充作房費(fèi)和房屋設(shè)施折損費(fèi)(抵償損壞的房?jī)?nèi)設(shè)施),多退少補(bǔ)。預(yù)定定金(按預(yù)計(jì)訂房時(shí)間*對(duì)應(yīng)房間按天計(jì)算住宿價(jià)格*40%)收取,若到時(shí)不入住且不續(xù)訂,則不再退還;若到時(shí)入住,充作入住定金,多退少補(bǔ)。電話預(yù)定無(wú)需繳納定金,但不確保屆時(shí)有空房間。</p><p> 注:定金數(shù)額可在
10、以上標(biāo)準(zhǔn)數(shù)額之上,退房結(jié)算時(shí)多退少補(bǔ)。</p><p> 退房時(shí),室內(nèi)設(shè)施經(jīng)確認(rèn)無(wú)損壞情況,則不收取房屋設(shè)施折損費(fèi)。</p><p><b> 3.2功能模塊劃分</b></p><p> 3.2.1功能模塊描述</p><p> 根據(jù)任務(wù)內(nèi)容要求及賓館相關(guān)情況等信息,百康賓館住宿管理系統(tǒng)需要實(shí)現(xiàn)查詢功能(包括客
11、房總體使用情況查詢、已入住客房查詢、已預(yù)訂客房查詢、閑置房間信息查詢等查詢方式),訂房登記,入住登記,退房結(jié)算等四大基本功能。系統(tǒng)應(yīng)實(shí)現(xiàn)對(duì)各類信息的靈活查找,客戶信息的錄入、保存與調(diào)用,自動(dòng)結(jié)算并生成賬單等操作。</p><p> 為了簡(jiǎn)化前臺(tái)人員操作并提高其工作效率,還應(yīng)實(shí)現(xiàn)開始前初始化詢問,訂房或入住登記時(shí)自動(dòng)顯示當(dāng)前閑置房間,入住前詢問是否已預(yù)訂,輸入錯(cuò)誤信息時(shí)進(jìn)行提醒等人性化功能。</p>
12、<p> 由以上分析,將系統(tǒng)主要分為以下四大功能模塊,如圖3.1所示:</p><p> 客房查詢:包括查詢客房總體使用情況、查詢當(dāng)前閑置房間信息、查詢已入住房間信息、查詢已預(yù)定房間信息等查詢功能;</p><p> 訂房登記:包括顯示當(dāng)前閑置房間信息、登記預(yù)定信息等功能;</p><p> 入住登記:包括顯示當(dāng)前房間總體使用情況、詢問是否預(yù)定過
13、房間、登記入住人信息等功能;</p><p> 退房結(jié)算:包括選擇結(jié)算方式、輸入結(jié)算時(shí)間、計(jì)算住宿費(fèi)用等功能。</p><p> 圖3.1功能模塊結(jié)構(gòu)圖</p><p> 注:我與網(wǎng)絡(luò)工程專業(yè)102001班王維康同學(xué)合作,共同完成本次有關(guān)于賓館住宿管理系統(tǒng)的程序設(shè)計(jì),我負(fù)責(zé)實(shí)現(xiàn)入住登記模塊、退房結(jié)算模;王維康同學(xué)負(fù)責(zé)編寫客房查詢和訂房登記兩個(gè)模塊的相關(guān)內(nèi)容。&
14、lt;/p><p><b> 3.2.2輸入項(xiàng)</b></p><p> 以下輸入項(xiàng)均為鍵盤輸入:</p><p> num——房間號(hào) ,int</p><p> kongxian——房間是否空閑 ,int </p><p> name[20]——名字定義, char name[20] &l
15、t;/p><p> ID[20]——身份證號(hào)(18位阿拉伯?dāng)?shù)字),char ID[20]</p><p> lianxifangshi[15]——聯(lián)系方式(11位阿拉伯?dāng)?shù)字),char lianxifangshi[15]</p><p> yajin——押金, int </p><p> yudingriqi——預(yù)定日期(日期均為8位阿
16、拉伯?dāng)?shù)字,格式為年月日), long </p><p> ruzhushijian——入住日期 ,long </p><p> tianshu——預(yù)計(jì)天數(shù), int </p><p> jiezhiriqi——截止日期 ,long </p><p> p——是否初始化(0或1), int</p><p> c
17、hose——選擇主菜單(1,2,3,4或5), int</p><p> t——計(jì)費(fèi)方式(1或2), int</p><p> i——子菜單選擇(1,2,3,4或5)(不同模塊可能定義不同), int</p><p> a——是否預(yù)定過房間(在ruzhudengji()定義的),int</p><p><b> 3.2.3輸
18、出項(xiàng)</b></p><p><b> 房間號(hào), int</b></p><p> 房間類型 ,char leixing[10]</p><p> 價(jià)格(元/天), int</p><p> 價(jià)格(元/小時(shí)) ,int</p><p><b> 是否空閑 ,int
19、</b></p><p> 客人姓名,char name[20]</p><p> 身份證,char ID[20]</p><p> 聯(lián)系方式 ,charlianxifangshi[15]</p><p> 押金(元), int</p><p> 預(yù)定日期 ,long</p><
20、;p> 入住時(shí)間 ,long</p><p><b> 預(yù)計(jì)天數(shù), int</b></p><p> 截止日期, long</p><p><b> 四、系統(tǒng)實(shí)現(xiàn)與測(cè)試</b></p><p> 4.1主菜單模塊實(shí)現(xiàn)</p><p> 4.1.1主菜單流程圖
21、</p><p> 圖4.1主菜單流程圖</p><p> 4.1.2主菜單代碼</p><p> void Menu_Display()</p><p><b> {</b></p><p> system("cls");</p><p>
22、 cout<<"\t\t###########################################"<<endl;</p><p> cout<<"\t\t# @歡迎使用百康賓館管理系統(tǒng)@ #"<<endl;</p><p> cout<<"
23、;\t\t# 請(qǐng)輸入您所需要的功能: #"<<endl;</p><p> cout<<"\t\t# 1.客房查詢 2.訂房登記 #"<<endl;</p><p> cout<<"\t\t# 3.入住登記
24、 4.退 房 #"<<endl;</p><p> cout<<"\t\t# 5. 退 出 #"<<endl;</p><p> cout<<"\t\t# 感 * 謝 * 您 * 的
25、* 使 * 用 #"<<endl;</p><p> cout<<"\t\t###########################################"<<endl;</p><p><b> }</b></p><p> void chushih
26、ua()</p><p><b> {</b></p><p> int i[3]={1,0,1},k=0;</p><p> for(;k<20;k++)</p><p><b> {</b></p><p> hotel[k].num=i[0]*100+i
27、[1]*10+i[2];</p><p> strcpy(hotel[k].ID,"0");</p><p> hotel[k].jiezhiriqi=0;</p><p> hotel[k].kongxian=0;</p><p> strcpy(hotel[k].lianxifangshi,"0&qu
28、ot;);</p><p> strcpy(hotel[k].name,"0");</p><p> hotel[k].ruzhushijian=0;</p><p> hotel[k].tianshu=0;</p><p> hotel[k].yudingriqi=0;</p><p>
29、 switch(i[0])</p><p><b> {</b></p><p> case 1:{hotel[k].jiage=17020;strcpy(hotel[k].leixing,"單人間");break;}</p><p> case 2:{hotel[k].jiage=28030;strcpy(hotel
30、[k].leixing,"雙人間");break;}</p><p> case 3:{hotel[k].jiage=50050;strcpy(hotel[k].leixing,"套房");break;}</p><p><b> }</b></p><p><b> if(k==8)&l
31、t;/b></p><p> i[0]++,i[2]=0;</p><p><b> if(k==14)</b></p><p> i[0]++,i[2]=0;</p><p><b> i[2]++;</b></p><p><b> }</
32、b></p><p> fstream xieru("賓館房間信息.txt",ios::out);</p><p> xieru<<"房間號(hào) 類型 價(jià)格 是否空閑 姓名 身份證號(hào) 聯(lián)系方式 押金 預(yù)定日期 入住時(shí)間 天數(shù) 截止日期 "<<endl;<
33、;/p><p> for(int x=0;x<20;x++)</p><p><b> {</b></p><p> xieru<<hotel[x].num<<' '<<hotel[x].leixing<<' '<<hotel[x].jiage&
34、lt;<' '<<hotel[x].kongxian<<' '<<hotel[x].name</p><p> <<' '<<hotel[x].ID<<' '<<hotel[x].lianxifangshi<<' '<<
35、hotel[x].yajin<<' '<<hotel[x].yudingriqi<<' '<<hotel[x].ruzhushijian</p><p> <<' '<<hotel[x].tianshu<<' '<<hotel[x].jiezhiriqi
36、<<endl; </p><p><b> }</b></p><p> xieru.close();</p><p><b> }</b></p><p> void main()</p><p><b> {</b></
37、p><p><b> int p=0;</b></p><p> cout<<"是否要初始化房間信息?";</p><p> cout<<"(是請(qǐng)輸入1,否請(qǐng)輸入0)"<<endl;</p><p><b> cin>>
38、p;</b></p><p><b> if(p==1)</b></p><p> chushihua();</p><p> int chose;</p><p> Menu_Display();</p><p> cout<<"請(qǐng)輸入選項(xiàng):"
39、;;</p><p> cin>>chose;</p><p> while(chose!=0)</p><p> {
40、
41、 </p><p> switch(chose)//用switch語(yǔ)句判斷選擇菜單的功能&
42、lt;/p><p><b> {</b></p><p> case 1:search_message();break; //客房查詢</p><p> case 2:dingfangdengji();break;//訂房間</p><p> case 3:ruzhudengji();break;//入住房間<
43、/p><p> case 4:tuifang();break;//退房</p><p> case 5:exit(0);</p><p> default:cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入"<<endl; //提示錯(cuò)誤命令</p><p><b> }</b></p
44、><p> cout<<"\t\t###########################################"<<endl;</p><p> cout<<"\t\t# @歡迎使用百康賓館管理系統(tǒng)@ #"<<endl;</p><p> c
45、out<<"\t\t# 請(qǐng)輸入您所需要的功能: #"<<endl;</p><p> cout<<"\t\t# 1.客房查詢 2.訂房登記 #"<<endl;</p><p> cout<<"\t\t#
46、 3.入住登記 4.退 房 #"<<endl;</p><p> cout<<"\t\t# 5. 退 出 #"<<endl;</p><p> cout<<"\t\t# 感 * 謝 * 您 *
47、 的 * 使 * 用 #"<<endl;</p><p> cout<<"\t\t###########################################"<<endl;</p><p> cout<<"請(qǐng)輸入選項(xiàng):";</p><p>
48、 cin>>chose;</p><p> while(chose==0)</p><p><b> {</b></p><p> cout<<"輸入錯(cuò)誤,按任意鍵退出程序:"<<endl;</p><p><b> exit(0);</b
49、></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 4.1.3主菜單模塊測(cè)試</p><p> 主菜單界面中顯示客房管理系統(tǒng)的功能選項(xiàng)模塊如圖4.2所示:
50、</p><p><b> 圖4.2主菜單</b></p><p> 4.2入住登記模塊實(shí)現(xiàn)</p><p> 4.2.1入住登記流程圖</p><p> 圖4.3入住登記流程圖</p><p> 4.2.2入住登記代碼</p><p> void ruzhud
51、engji()</p><p><b> {</b></p><p> int a,b=0;</p><p> string name;</p><p> ifstream liulan("賓館房間信息.txt",ios::in); //定義輸入文件流對(duì)象,以輸入方式打開磁盤文件旅信<
52、;/p><p> if(!liulan) //判斷文件是否打開成功</p><p><b> {</b></p><p> cerr<<"文件不能讀."<<endl;return;</p><p><b> }&l
53、t;/b></p><p><b> else</b></p><p> liulan.seekg(117,ios::beg);//在輸入文件開頭以參照位置為基礎(chǔ)移動(dòng)若干字節(jié)(beg=begin)</p><p> int i=0; //存放空閑房間的號(hào)碼</p><p> cout<<&qu
54、ot;房間號(hào) 類型 價(jià)格(元/天) 價(jià)格(元/小時(shí)) 空閑 "<<endl;</p><p> while (i<20)</p><p><b> {</b></p><p> liulan>>hotel[i].num>>hotel[i].leixing>
55、>hotel[i].jiage>>hotel[i].kongxian>>hotel[i].name</p><p> >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian</p
56、><p> >>hotel[i].tianshu>>hotel[i].jiezhiriqi;</p><p> cout<<setw(4)<<hotel[i].num<<setw(8)<<hotel[i].leixing<<setw(9)<<hotel[i].jiage/100<<s
57、etw(14)<<hotel[i].jiage%100<<setw(13)</p><p> <<hotel[i].kongxian; //輸出所有房間信息</p><p> i++,cout<<endl;</p><p><b> }</b></p><p>
58、; liulan.close(); //關(guān)閉文件</p><p> cout<<"(注:0表示空房間、1表示房間已入住、2表示房間已預(yù)訂)"<<endl;</p><p> cout<<"是否預(yù)訂過房間?"<<endl;</p><p> cout<<&
59、quot;是,請(qǐng)輸入1,否,請(qǐng)輸入2"<<endl;</p><p><b> cin>>a;</b></p><p><b> if(a==1)</b></p><p><b> {</b></p><p> cout<<
60、"請(qǐng)輸入房間號(hào):"<<endl;</p><p><b> cin>>b;</b></p><p> for(i=0;i<20;i++)</p><p> if(hotel[i].num==b)</p><p><b> {</b></
61、p><p> if(hotel[i].yudingriqi!=0)</p><p><b> {</b></p><p> cout<<"請(qǐng)輸入入住日期:";</p><p> cin>>hotel[i].ruzhushijian;</p><p>
62、 cout<<"請(qǐng)輸入截止日期:";</p><p> cin>>hotel[i].jiezhiriqi;</p><p> hotel[i].yudingriqi=0;</p><p><b> }</b></p><p><b> else</b&
63、gt;</p><p><b> {</b></p><p> cout<<"該房沒有被預(yù)訂過"<<endl;</p><p> system("pause");</p><p><b> }</b></p>&l
64、t;p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"空房間有:"<<
65、;endl;</p><p> for(int k=0;k<20;k++)</p><p><b> {</b></p><p> if(hotel[k].kongxian==0)</p><p> cout<<hotel[k].num<<" ";</p&
66、gt;<p><b> }</b></p><p> cout<<endl;</p><p> cout<<"請(qǐng)輸入房間號(hào):";</p><p><b> cin>>b;</b></p><p> for(i=0;i&l
67、t;20;i++)</p><p> if(hotel[i].num==b)</p><p><b> {</b></p><p> cout<<"請(qǐng)依次輸入以下信息并加以核對(duì) (日期格式:年月日 例如 19920503 )"<<endl;</p><p> cout
68、<<"姓 名:";</p><p> cin>>hotel[i].name;</p><p> cout<<"身份證號(hào):";</p><p> cin>>hotel[i].ID;</p><p> cout<<"聯(lián)系方式
69、:";</p><p> cin>>hotel[i].lianxifangshi;</p><p> cout<<"押金:";</p><p> cin>>hotel[i].yajin;</p><p> cout<<"天 數(shù):";
70、</p><p> cin>>hotel[i].tianshu;</p><p> cout<<"入住日期:";</p><p> cin>>hotel[i].ruzhushijian;</p><p> hotel[i].kongxian=2;</p><p
71、><b> }</b></p><p><b> }</b></p><p> ofstream xieru("賓館房間信息.txt",ios::out); //寫回文件</p><p> xieru<<"房間號(hào) 類型 價(jià)格 是否空閑 姓名 身份證號(hào)
72、 聯(lián)系方式 押金 預(yù)定日期 入住時(shí)間 天數(shù) 截止日期 "<<endl;</p><p> for(i=0;i<20;i++)</p><p> xieru<<hotel[i].num<<' '<<hotel[i].leixing<<' '<&
73、lt;hotel[i].jiage<<' '<<hotel[i].kongxian<<' '<<hotel[i].name</p><p> <<' '<<hotel[i].ID<<' '<<hotel[i].lianxifangshi<<&
74、#39; '<<hotel[i].yajin<<' '<<hotel[i].yudingriqi<<' '<<hotel[i].ruzhushijian</p><p> <<' '<<hotel[i].tianshu<<' '<<h
75、otel[i].jiezhiriqi<<endl; </p><p> xieru.close();</p><p> cout<<"登記成功"<<endl;</p><p> }4.2.3入住登記模塊測(cè)</p><p> 入住登記界面顯示了房間使用情況以及提示以前是否預(yù)訂過房
76、間如圖4.4所示:</p><p> 圖4.4入住登記界面</p><p> 如果客人預(yù)定過房間,則選擇“1”,然后輸入預(yù)訂房間號(hào)如圖4.5所示。輸入入住日期和截止日期則“登記成功”如圖4.6所示。</p><p> 圖4.5選擇訂過房間入住登記界面</p><p> 圖4.6訂過房間入住登記界面</p><p&g
77、t; 未預(yù)訂過房間則選擇“2” 則會(huì)顯示出目前的空房間信息如圖4.7所示,根據(jù)系統(tǒng)提示輸入客人的信息則“登記成功”如圖4.8所示。</p><p> 圖4.7選擇未訂過房間入住登記界面</p><p> 圖4.8選擇未訂過房間入住登記輸入信息界面</p><p> 4.3退房結(jié)算模塊實(shí)現(xiàn)</p><p> 4.3.1退房結(jié)算流程圖&
78、lt;/p><p> 圖4.9 退房結(jié)算流程圖</p><p> 4.3.2退房結(jié)算代碼</p><p> void tuifang()</p><p><b> {</b></p><p><b> int a,b;</b></p><p>
79、 ifstream fin("賓館房間信息.txt",ios::in);</p><p> cout<<"請(qǐng)輸入房號(hào):";</p><p><b> cin>>a;</b></p><p> int c=0,i=0;</p><p> fin.s
80、eekg(117,ios::beg);//在輸入文件開頭以參照位置為基礎(chǔ)移動(dòng)若干字節(jié)(beg=begin)</p><p> while(i<20)</p><p><b> {</b></p><p> fin>>hotel[i].num>>hotel[i].leixing>>hotel[i].
81、jiage>>hotel[i].kongxian>>hotel[i].name</p><p> >>hotel[i].ID>>hotel[i].lianxifangshi>>hotel[i].yajin>>hotel[i].yudingriqi>>hotel[i].ruzhushijian</p><p&g
82、t; >>hotel[i].tianshu>>hotel[i].jiezhiriqi;</p><p> if(hotel[i].num==a) //查詢客人房間</p><p><b> b=i;</b></p><p><b> i++;<
83、;/b></p><p><b> }</b></p><p> fin.close();</p><p> cout<<"房間信息為:"<<endl;</p><p> cout<<" 姓名: 押金(元): 入住時(shí)間:
84、"<<endl;</p><p> cout<<setw(6)<<hotel[b].name<<setw(8)<<hotel[b].yajin<<setw(20)<<hotel[b].ruzhushijian<<endl;</p><p> cout<<"(注
85、:日期輸入格式 年月日 例如 20120101 )"<<endl;</p><p> cout<<"請(qǐng)輸結(jié)算入日期:";</p><p><b> int d;</b></p><p><b> cin>>d;</b></p><p
86、> hotel[b].jiezhiriqi=d;</p><p><b> int fei;</b></p><p> cout<<"按小時(shí)/天數(shù)計(jì)費(fèi)(小時(shí)輸入1,天數(shù)輸入2):";</p><p><b> int t;</b></p><p><
87、;b> cin>>t;</b></p><p><b> if(t==2)</b></p><p> fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100)); //結(jié)算函數(shù),押金—(結(jié)算時(shí)間-入住時(shí)間)*價(jià)格</
88、p><p><b> else</b></p><p> fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100)); //按小時(shí)計(jì)算</p><p><b> if(fei<0)</b
89、></p><p><b> {</b></p><p><b> fei=-fei;</b></p><p> cout<<"應(yīng)付費(fèi)用為:"<<fei<<"元"<<endl;</p><p><
90、;b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"總消費(fèi)金額為:"<<hotel[b].yajin-fei<<"元"<<end
91、l;</p><p> cout<<"押金足夠 應(yīng)返還給您:"<<fei<<"元"<<endl;</p><p><b> }</b></p><p> fstream jsxx("結(jié)算信息.txt",ios::out);</
92、p><p> jsxx<<"消費(fèi)信息為:"<<endl;</p><p> jsxx<<"姓名:"<<hotel[b].name<<endl<<"押金(元):"<<hotel[b].yajin<<endl<<"入住
93、時(shí)間:"<<hotel[b].ruzhushijian<<endl<<"結(jié)算時(shí)間:"<<d<<endl;</p><p><b> if(t==2)</b></p><p> jsxx<<"計(jì)費(fèi)方式:按天數(shù)計(jì)費(fèi)"<<endl;<
94、;/p><p><b> else</b></p><p> jsxx<<"計(jì)費(fèi)方式:按小時(shí)計(jì)費(fèi)"<<endl;</p><p> jsxx<<"總消費(fèi)金額為:"<<hotel[b].yajin-fei<<"元"<&l
95、t;endl;</p><p> jsxx<<"押金足夠 應(yīng)返還給您:"<<fei<<"元"<<endl;</p><p> jsxx.close();</p><p> hotel[b].kongxian=0;
96、 //房間結(jié)算后初始化房間信息</p><p> strcpy(hotel[b].name,"0");</p><p> strcpy(hotel[b].ID,"0");</p><p> strcpy(hotel[b].lianxifangshi,"0");</p>
97、<p> hotel[b].yudingriqi=0;</p><p> hotel[b].ruzhushijian=0;</p><p> hotel[b].jiezhiriqi=0;</p><p> hotel[b].yajin=0;</p><p> hotel[b].tianshu=0;</p>
98、<p> hotel[b].jiezhiriqi=0;</p><p> fstream xieru("賓館房間信息.txt",ios::out);//生成文件</p><p> xieru<<"房間號(hào) 類型 價(jià)格 是否空閑 姓名 身份證號(hào) 聯(lián)系方式 押金 預(yù)定日期 入住時(shí)間
99、 天數(shù) 截止日期 "<<endl;</p><p> for(i=0;i<20;i++)</p><p><b> {</b></p><p> xieru<<hotel[i].num<<' '<<hotel[i].leixing<<'
100、; '<<hotel[i].jiage<<' '<<hotel[i].kongxian<<' '<<hotel[i].name</p><p> <<' '<<hotel[i].ID<<' '<<hotel[i].lianxifang
101、shi<<' '<<hotel[i].yajin<<' '<<hotel[i].yudingriqi<<' '<<hotel[i].ruzhushijian</p><p> <<' '<<hotel[i].tianshu<<'
102、39;<<hotel[i].jiezhiriqi<<endl; </p><p><b> }</b></p><p> xieru.close();</p><p> system("pause");</p><p><b> }</b><
103、;/p><p> 4.3.3退房結(jié)算模塊測(cè)試</p><p> 選擇退房功能輸入房間號(hào)則會(huì)顯示出客人的基本信息如圖4.10所示;根據(jù)系統(tǒng)提示輸入結(jié)算日期并選擇結(jié)算方式則“結(jié)算結(jié)束”如圖4.11和圖4.12所示。賬單信息存入到磁盤文件當(dāng)中去,如圖4.13所示。</p><p> 圖4.10退房結(jié)算輸入結(jié)算房間號(hào)后界面圖</p><p> 圖
104、4.11退房結(jié)算輸入日期界面</p><p> 圖4.12退房結(jié)算完成界面</p><p> 圖4.13退房結(jié)算信息文件</p><p> 五、程序調(diào)試中出現(xiàn)的問題及解決方法</p><p> 在調(diào)試程序過程中頻繁出現(xiàn)的問題就是分號(hào)的丟失以及書寫程序中一些最基本的字符要求沒有正確的書寫,導(dǎo)致一個(gè)程序里出現(xiàn)了大量的錯(cuò)誤,在改錯(cuò)時(shí)吸取教訓(xùn)
105、為后期的工作節(jié)省了很多時(shí)間,在整個(gè)程序運(yùn)行時(shí),由于有的函數(shù)之定義了,而后面卻沒有見這個(gè)函數(shù)寫完,導(dǎo)致整個(gè)程序無(wú)法運(yùn)行,開始解決的時(shí)候是將此函數(shù)全部清除然后運(yùn)行整個(gè)程序,后來(lái)在將函數(shù)寫完整放進(jìn)大的程序中去進(jìn)行運(yùn)行。</p><p> 在入住登記調(diào)試程序時(shí),房間信息顯示出現(xiàn)了無(wú)限循環(huán)的情況,經(jīng)過對(duì)語(yǔ)句的分析,發(fā)現(xiàn)是后面的i++書寫錯(cuò)誤導(dǎo)致的,經(jīng)過修改后錯(cuò)誤排出了。
106、 </p><p> 有時(shí)還會(huì)出現(xiàn)程序成功運(yùn)行后,但是在dos界面選擇一些功能時(shí)出現(xiàn)無(wú)限循環(huán),解決的方法是先看所寫的循環(huán)語(yǔ)句是否出現(xiàn)錯(cuò)誤,Debug/賓館住宿管理系統(tǒng)
107、.exe : fatal error LNK1120: 1 unresolved externals,運(yùn)行錯(cuò)誤提示,也總是出現(xiàn),經(jīng)過上網(wǎng)查詢找出解決方法原因是設(shè)置的參數(shù)有問題。</p><p><b> 六、參考文獻(xiàn)</b></p><p> [1]譚浩強(qiáng).C++程序設(shè)計(jì).北京:清華大學(xué)出版社. 2011</p><p> [2]鄭莉.C
108、++程序設(shè)計(jì)(第三版). 北京:清華大學(xué)出版社. 2005 </p><p> [3]錢能.C++程序設(shè)計(jì)教程. 北京:清華大學(xué)出版社. 2004</p><p> [4]武俊亮.visual c++課程設(shè)計(jì)與系統(tǒng)開發(fā)案例. 北京:清華出版社</p><p> [5]黃維通.Visual C++程序設(shè)計(jì)教程. 北京:清華大學(xué)出版社. 2005 </p&g
109、t;<p><b> 七、附錄:程序代碼</b></p><p> #include<iostream></p><p> #include<iomanip> //輸出流控制</p><p> #include<string></p><p> #inc
110、lude<fstream> //輸入輸出文件流</p><p> using namespace std;</p><p> void search_message();</p><p> void dingfangdengji();</p><p> void ruzhudengji();</p>
111、<p> void tuifang();</p><p> void all_message();</p><p> void empty_message();</p><p> void ruzhixinxi();</p><p> void dingfangxinxi();</p><p>
112、struct hotel //定義結(jié)構(gòu)體</p><p><b> {</b></p><p><b> int num;</b></p><p> char leixing[10];</p><p> int jiage;</p><p> int kong
113、xian;</p><p> char name[20];</p><p> char ID[20];</p><p> char lianxifangshi[15];</p><p> int yajin;</p><p> long yudingriqi;</p><p> lo
114、ng ruzhushijian;</p><p> int tianshu;</p><p> long jiezhiriqi;</p><p><b> }</b></p><p> hotel[20];</p><p> void Menu_Display()</p>
115、<p><b> {</b></p><p> system("cls");</p><p> cout<<"\t\t###########################################"<<endl;</p><p> cout<<
116、"\t\t# @歡迎使用百康賓館管理系統(tǒng)@ #"<<endl;</p><p> cout<<"\t\t# 請(qǐng)輸入您所需要的功能: #"<<endl;</p><p> cout<<"\t\t# 1.客房查詢
117、 2.訂房登記 #"<<endl;</p><p> cout<<"\t\t# 3.入住登記 4.退 房 #"<<endl;</p><p> cout<<"\t\t# 5. 退 出
118、 #"<<endl;</p><p> cout<<"\t\t# 感 * 謝 * 您 * 的 * 使 * 用 #"<<endl;</p><p> cout<<"\t\t###########################################"<
119、<endl;</p><p><b> }</b></p><p> void chushihua()</p><p><b> {</b></p><p> int i[3]={1,0,1},k=0;</p><p> for(;k<20;k++)&l
120、t;/p><p><b> {</b></p><p> hotel[k].num=i[0]*100+i[1]*10+i[2];</p><p> strcpy(hotel[k].ID,"0");</p><p> hotel[k].jiezhiriqi=0;</p><p&g
121、t; hotel[k].kongxian=0;</p><p> strcpy(hotel[k].lianxifangshi,"0");</p><p> strcpy(hotel[k].name,"0");</p><p> hotel[k].ruzhushijian=0;</p><p>
122、 hotel[k].tianshu=0;</p><p> hotel[k].yudingriqi=0;</p><p> switch(i[0])</p><p><b> {</b></p><p> case 1:{hotel[k].jiage=17020;strcpy(hotel[k].leixing,&
123、quot;單人間");break;}</p><p> case 2:{hotel[k].jiage=28030;strcpy(hotel[k].leixing,"雙人間");break;}</p><p> case 3:{hotel[k].jiage=50050;strcpy(hotel[k].leixing,"套房");break
124、;}</p><p><b> }</b></p><p><b> if(k==8)</b></p><p> i[0]++,i[2]=0;</p><p><b> if(k==14)</b></p><p> i[0]++,i[2]=0;
125、</p><p><b> i[2]++;</b></p><p><b> }</b></p><p> fstream xieru("賓館房間信息.txt",ios::out);</p><p> xieru<<"房間號(hào) 類型 價(jià)格 是否
126、空閑 姓名 身份證號(hào) 聯(lián)系方式 押金 預(yù)定日期 入住時(shí)間 天數(shù) 截止日期 "<<endl;</p><p> for(int x=0;x<20;x++)</p><p><b> {</b></p><p> xieru<<hotel[x].n
127、um<<' '<<hotel[x].leixing<<' '<<hotel[x].jiage<<' '<<hotel[x].kongxian<<' '<<hotel[x].name</p><p> <<' '<<
128、hotel[x].ID<<' '<<hotel[x].lianxifangshi<<' '<<hotel[x].yajin<<' '<<hotel[x].yudingriqi<<' '<<hotel[x].ruzhushijian</p><p> &l
129、t;<' '<<hotel[x].tianshu<<' '<<hotel[x].jiezhiriqi<<endl; </p><p><b> }</b></p><p> xieru.close();</p><p><b> }</
130、b></p><p> void main()</p><p><b> {</b></p><p><b> int p=0;</b></p><p> cout<<"是否要初始化房間信息?";</p><p> cout&l
131、t;<"(是請(qǐng)輸入1,否請(qǐng)輸入0)"<<endl;</p><p><b> cin>>p;</b></p><p><b> if(p==1)</b></p><p> chushihua();</p><p> int chose;<
132、;/p><p> Menu_Display();</p><p> cout<<"請(qǐng)輸入選項(xiàng):";</p><p> cin>>chose;</p><p> while(chose!=0)</p><p> {
133、
134、
135、 </p><p> switch(chose)//用switch語(yǔ)句判斷選擇菜單的功能</p><p><b> {</b></p><p> case 1:search_message();break; //客房查詢</p><p> case 2:d
136、ingfangdengji();break;//訂房間</p><p> case 3:ruzhudengji();break;//入住房間</p><p> case 4:tuifang();break;//退房</p><p> case 5:exit(0);</p><p> default:cout<<"
137、輸入錯(cuò)誤,請(qǐng)重新輸入"<<endl; //提示錯(cuò)誤命令</p><p><b> }</b></p><p> cout<<"\t\t###########################################"<<endl;</p><p> cout<&
138、lt;"\t\t# @歡迎使用百康賓館管理系統(tǒng)@ #"<<endl;</p><p> cout<<"\t\t# 請(qǐng)輸入您所需要的功能: #"<<endl;</p><p> cout<<"\t\t# 1.客房查詢
139、 2.訂房登記 #"<<endl;</p><p> cout<<"\t\t# 3.入住登記 4.退 房 #"<<endl;</p><p> cout<<"\t\t# 5. 退 出
140、 #"<<endl;</p><p> cout<<"\t\t# 感 * 謝 * 您 * 的 * 使 * 用 #"<<endl;</p><p> cout<<"\t\t###########################################"&
141、lt;<endl;</p><p> cout<<"請(qǐng)輸入選項(xiàng):";</p><p> cin>>chose;</p><p> while(chose==0)</p><p><b> {</b></p><p> cout<&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賓館住宿管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)賓館客房管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告賓館房間管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--賓館住宿信息管理系統(tǒng)
- 課程設(shè)計(jì)--賓館住宿子管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---賓館住宿管理系統(tǒng)
- 中小型賓館住宿管理系統(tǒng)設(shè)計(jì)-課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)-賓館管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- 銷售管理系統(tǒng)c++課程設(shè)計(jì)
- 《c++》課程設(shè)計(jì)倉(cāng)庫(kù)管理系統(tǒng)
- c++課程設(shè)計(jì)-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--酒店管理系統(tǒng)
- c++課程設(shè)計(jì)--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)學(xué)生通訊管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論