版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> C++程序設(shè)計課程設(shè)計報告</p><p> 選題名稱: 客房管理 </p><p> 系(院): 計算機工程學(xué)院</p><p> 專 業(yè): 通信工程(多媒體通信)</p><p> 班 級: xxxxxx </p&g
2、t;<p> 姓 名: xxxxxx 學(xué) 號: xxxxxx </p><p> 指導(dǎo)教師: xxxxxxx </p><p> 學(xué)年學(xué)期: 2011 ~ 2012 學(xué)年 第 1 學(xué)</p><p> 2011年 12 月 26 日
3、</p><p><b> 設(shè)計任務(wù)書</b></p><p><b> 摘要</b></p><p> 客房管理系統(tǒng)包括客戶基本信息的錄入,統(tǒng)計,查詢,修改,刪除功能。系統(tǒng)開發(fā)由分析,設(shè)計,實施,調(diào)試,測試等階段組成,其中信息管理為開發(fā)重點,在程序設(shè)計中結(jié)構(gòu)體的調(diào)用與文件的閱讀為編譯的重點部分。包括客戶信息管理、客
4、房信息管理、入住和退房管理客房類型管理、費用管理和價目信息管理等6大功能模塊,并提供了各功能模塊的查詢和更新功能,其中客戶信息管理、入住和退房管理是系統(tǒng)開發(fā)的重點。本系統(tǒng)由需求分析、概念設(shè)計、邏輯設(shè)計等組成。根據(jù)設(shè)計的需要,運用了類函數(shù)、指針數(shù)組、結(jié)構(gòu)語句、if語句、for語句、switch語句等。系統(tǒng)按功能將分為三個模塊,分別為添加模塊,調(diào)用模塊,查詢模塊。 </p><p> 整個系統(tǒng)比較適合小型的
5、賓館客房使用。沒有過多的其他附加功能,只是簡單得將如何訂房、入住、退房、查詢功能實現(xiàn),然后在此基礎(chǔ)上進行了遞階性的開發(fā)。</p><p> 關(guān)鍵詞:結(jié)構(gòu)體的調(diào)用;查詢函數(shù)的運用;循環(huán)語句的運用;函數(shù)的調(diào)用。</p><p><b> 目錄</b></p><p> 1.課題綜述..........................
6、...............................51.1課題來源........................................................51.2課題意義........................................................51.3預(yù)期目標..................................................
7、......51.4面對的問題......................................................51.5需要解決的關(guān)鍵技術(shù)...............................................5</p><p> 2.需求分析..........................................................6
8、</p><p> 2.1題目分析........................................................6</p><p> 2.2系統(tǒng)功能模塊圖...................................................6</p><p> 3.總體設(shè)計...................
9、.......................................7</p><p> 3.1.模塊設(shè)計........................................................7</p><p> 3.2.總體業(yè)務(wù)圖......................................................73.3.
10、業(yè)務(wù)流程圖......................................................8</p><p> 4.詳細設(shè)計..........................................................8</p><p> 4.1主函數(shù)部分.........................................
11、.............84.2各功能的實現(xiàn).....................................................84.2.1定義成員函數(shù)...................................................94.2.2類的運用......................................................94.2.3指針和結(jié)構(gòu)指針
12、的運用...........................................104.2.4 if_else語句,for語句和switch語句的運用..........................11</p><p> 5.上機操作.........................................................14 5.1.工程任務(wù)...........
13、...........................................14 5.2.操作步驟......................................................146.總結(jié).............................................................17</p><p> 7.致謝.............
14、................................................188.附錄 源代碼......................................................199.參考文獻.........................................................2810.教師評語 ..............................
15、.........................29一.課題綜述 1.1課題來源 利用C++所學(xué)的知識,設(shè)計一個小型的客房管理系統(tǒng),充分利用C語言的知識,把相關(guān)設(shè)計用代碼形式表示出來。所設(shè)計的管理系統(tǒng)要完整并且可行,要達到預(yù)期的效果,通過對代碼的編寫,充分了解所學(xué)C++知識,牢記并掌握C++在實際應(yīng)用中的重要作用。1.2課題意義 通過對小型客房管理系統(tǒng)的設(shè)計,幫助學(xué)生鞏固所學(xué)的C++基礎(chǔ)知識,培養(yǎng)學(xué)
16、生的動手操作能力,提高學(xué)生的團隊合作能力。培養(yǎng)學(xué)生的自主創(chuàng)新能力,使學(xué)生更用心、更謹慎</p><p> 客戶信息包括身份證號,姓名,房間號,試設(shè)計一個客房管理系統(tǒng),使之能提供以下功能: (1)系統(tǒng)以菜單方式提供</p><p> ?。?)客戶信息錄入功能</p><p> (3)客戶信息統(tǒng)計功能</p><p> (4)客戶信息查
17、詢功能,查詢方式(5)客戶信息修改功能【提示】 建立客戶信息結(jié)構(gòu)體,結(jié)構(gòu)體成員包括身份證號,姓名,房間號,費用,客房狀態(tài)。1.4面對的問題 (1)主菜單的設(shè)計該如何提供用戶選擇界面;</p><p> (2)各功能的實現(xiàn)需要運用哪些函數(shù)和如何調(diào)用函數(shù); (3)如何提供給客戶最清晰、最簡單的選擇操作。</p><p> 1.5需要解決的關(guān)鍵技術(shù) (1)C++
18、編譯器中的Visual C++ 6.0作為軟件開發(fā)工具,提供代碼編寫和程序的調(diào)試;</p><p> ?。?)在程序設(shè)計過程中,相關(guān)代碼的編寫要運用不同的函數(shù),相關(guān)函數(shù)的分析運用和調(diào)試需要運用不同的知識。</p><p> 二.需求分析 2.1 題目分析 根據(jù)題目要求,要求對客戶信息進行輸入,輸出等操作;在程序中需要瀏覽客戶信 息,應(yīng)提供顯示,
19、統(tǒng)計,查詢,修改等操作。</p><p> 2.2 系統(tǒng)功能模塊圖</p><p> 圖一:系統(tǒng)功能模塊圖</p><p> 三.總體設(shè)計 1.根據(jù)需求分析,可以對這個系統(tǒng)的設(shè)計分為以下幾個模塊:</p><p> 圖二:客房信息管理系統(tǒng)圖</p><p><b> 2.總體業(yè)務(wù)圖
20、</b></p><p><b> 圖三:總體業(yè)務(wù)圖</b></p><p><b> 3.業(yè)務(wù)流程圖</b></p><p><b> 圖四:業(yè)務(wù)流程圖</b></p><p><b> 四.詳細設(shè)計</b></p>
21、<p><b> 1.主函數(shù)部分:</b></p><p> 主函數(shù)一般設(shè)計比較簡潔,只提供輸入,處理和輸出部分的函數(shù)調(diào)用,其中各功能模塊用菜單方式選擇。 主函數(shù)代碼: </p><p> void main() </p><p><b> {</b></p><p>
22、; char choice='1';</p><p> initial_room(); </p><p> welcome(); </p><p> while(choice=='1')</p><p><b> {</b></p><p> ent
23、er(); </p><p> cout<<endl;</p><p> cout<<"繼續(xù)使用本系統(tǒng)請按\"1\",退出請按\"2\"! ";</p><p> cin>>choice;</p><p> if(choice==
24、39;2')</p><p> {cout<<"**************************"<<endl;</p><p> cout<<"****謝謝使用本系統(tǒng)!****"<<endl;</p><p> cout<<"******
25、********************"<<endl;</p><p><b> }</b></p><p> cout<<endl;</p><p><b> }</b></p><p><b> }</b></p>
26、<p> 2.各功能的實現(xiàn)
27、 </p><p> (1)定義成員函數(shù):</
28、p><p> a.結(jié)構(gòu)的運用:結(jié)構(gòu)是一種復(fù)合數(shù)據(jù)類型,結(jié)構(gòu)體類型定義時可以嵌套,即結(jié)構(gòu)體的某個成員也可以是結(jié)構(gòu)體類型。b.結(jié)構(gòu)類型定義格式:struct 結(jié)構(gòu)類型名{數(shù)據(jù)類型 成員名1;</p><p> 數(shù)據(jù)類型 成員名2;</p><p><b> ………</b></p><p> 數(shù)據(jù)類型
29、成員名 N;};</p><p> c.用結(jié)構(gòu)函數(shù)實現(xiàn)房間信息的定義,代碼設(shè)計:</p><p> struct Room </p><p><b> {</b></p><p> int number;</p><p><b> int dank;&l
30、t;/b></p><p> int price;</p><p> int state; </p><p><b> };</b></p><p> ?。?)類的運用:a.用類來把數(shù)據(jù)和函數(shù)封裝在一起。1.類成員</p><p> 數(shù)據(jù)成員,它們指定了該類對象的內(nèi)部表示成員函數(shù)
31、,它們指定該類的操作。</p><p><b> 類成員訪問權(quán)限</b></p><p> 公有(public)成員:可以在類外訪問。</p><p> 私有(private)成員:只能被該類的成員函數(shù)訪問。</p><p> 保護(protected)成員:只能被該類的成員函數(shù)或派生類的成員函數(shù)訪問。</
32、p><p> 數(shù)據(jù)成員通常是私有的。</p><p> 成員函數(shù)通常有一部分是公有的,一部分是私有的。公有成員函數(shù)可在類外被訪問,也稱之為類的接口。</p><p><b> 2.代碼設(shè)計:</b></p><p> class Customer </p><p><b&g
33、t; {</b></p><p><b> public:</b></p><p> Customer();</p><p> void set_name(char *n){strcpy(name,n);}</p><p> void set_ID(char *p){strcpy(ID,p);}&l
34、t;/p><p> void set_room_number(int n){room_number=n;}</p><p> void set_day(int d){day=d;}</p><p> void set_prepaid(int p){prepaid=p;}</p><p> char *get_name(){return n
35、ame;}</p><p> char *get_ID(){return ID;}</p><p> int get_room_number(){return room_number;}</p><p> int get_day(){return day;}</p><p> int get_prepaid(){return p
36、repaid;} </p><p> virtual ~Customer();</p><p><b> private: </b></p><p> char name[10],ID[19]; </p><p> int room_number;</p><p> int prep
37、aid;</p><p> int change;</p><p><b> int day;</b></p><p><b> };</b></p><p> b.析構(gòu)函數(shù):析構(gòu)函數(shù)用來釋放分配給對象的內(nèi)存空間。 1.析構(gòu)函數(shù)的定義格式如下:<類名>::~<類名&
38、gt;(){<函數(shù)體>}2.析構(gòu)函數(shù)的特點: *析構(gòu)函數(shù)的名字是在類名前加一個“~”構(gòu)成;</p><p> *析構(gòu)函數(shù)沒有參數(shù),也沒有返回值,而且不能重載,所以在一個類中只能有一個析構(gòu)函數(shù); *對象注銷時,系統(tǒng)自動調(diào)用析構(gòu)函數(shù); *如果一個類中沒有定義析構(gòu)函數(shù),系統(tǒng)會自動生成一個缺省的析構(gòu)函數(shù),其形式為:類名::~類名(){}</p><p>&l
39、t;b> [代碼設(shè)計]:</b></p><p> Customer::~Customer()</p><p><b> {</b></p><p> cout<<"該顧客退房成功!"<<endl;</p><p><b> }</b
40、></p><p> c.靜態(tài)數(shù)據(jù)成員函數(shù):靜態(tài)數(shù)據(jù)成員屬于整個類,使用是可用以下格式:類名::靜態(tài)數(shù)據(jù)成員 或者 對象名.靜態(tài)數(shù)據(jù)成員名</p><p> ?。?)指針與結(jié)構(gòu)指針的運用:a.指針定義格式:數(shù)據(jù)類型 *指針名</p><p> b.指針與一維數(shù)組:假如有數(shù)組a和指針p,且p=a;則有a[i]、*(a+i)、p[i]、*(p
41、+i)四種形式等價,均是對a[i]元素的引用。c.結(jié)構(gòu)指針:當(dāng)用點操作符時,它的左邊應(yīng)是一個結(jié)構(gòu)變量,當(dāng)用箭頭操作符時,它的左邊應(yīng)是一個結(jié)構(gòu)指針。d.用結(jié)構(gòu)指針來訪問結(jié)構(gòu)成員,代碼設(shè)計:</p><p><b> 例如:</b></p><p> void check_in()</p><p><b> {</b>
42、;</p><p> char name1[10],id1[19];</p><p> int ding_or_no;</p><p> int prepaid;</p><p> cout<<"該顧客訂房了嗎? (1->訂了 2->沒訂) ";</p><p>
43、 cin>>ding_or_no;</p><p> if(ding_or_no==1)</p><p><b> {</b></p><p> cout<<"請輸入顧客的姓名:"<<endl;</p><p> cin>>name1;</
44、p><p> cout<<"請輸入顧客的身份證號碼:"<<endl;</p><p><b> cin>>id1;</b></p><p> for(int j=0;j<=i;j++)</p><p><b> {</b></p
45、><p> if((strcmp(customer[j]->get_name(),name1)==0)&&(strcmp(customer[j]->get_ID(),id1)==0)) </p><p><b> {</b></p><p> int num=customer[j]->get_room_nu
46、mber(); </p><p> cout<<"顧客"<<name1<<"今天入住本賓館! 房間號碼為: "<<num<<endl;</p><p> switch(num/100)</p><p><b> {</b></p&g
47、t;<p><b> case 6:</b></p><p> prepaid=customer[j]->get_day()*150;</p><p> customer[j]->set_prepaid(prepaid);</p><p> cout<<"請收房費 "<&l
48、t;prepaid<<"元整!"<<endl; </p><p> room[num%100-1].state=2; </p><p><b> break;</b></p><p><b> case 7:</b></p>
49、<p> prepaid=customer[j]->get_day()*200;</p><p> customer[j]->set_prepaid(prepaid);</p><p> cout<<"請收房費 "<<prepaid<<"元整!"<<endl;</p&g
50、t;<p> room[19+num%100].state=2;</p><p><b> break;</b></p><p><b> case 8:</b></p><p> prepaid=customer[j]->get_day()*300;</p><p>
51、 customer[j]->set_prepaid(prepaid);</p><p> cout<<"請收房費 "<<prepaid<<"元整!"<<endl;</p><p> room[39+num%100].state=2;</p><p><b>
52、 break;</b></p><p><b> case 9:</b></p><p> prepaid=customer[j]->get_day()*600;</p><p> customer[j]->set_prepaid(prepaid);</p><p> cout<&l
53、t;"請收房費 "<<prepaid<<"元整!"<<endl;</p><p> room[59+num%100].state=2;</p><p><b> break;</b></p><p><b> }</b></p>
54、<p><b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> } </b></p><p> C.new與delete:new類似與函數(shù)malloc(
55、),分配堆內(nèi)存,但比malloc()更簡練。new的操作數(shù)為數(shù)據(jù)類型,它可以帶初始化值表或單元個數(shù)。New返回一個具有操作數(shù)之?dāng)?shù)據(jù)類型的指針。返回delete類似于函數(shù)free(),釋放堆內(nèi)存。Delete的操作數(shù)是new返回的指針,當(dāng)返回的是new分配的數(shù)組時,應(yīng)帶[]。</p><p><b> [代碼設(shè)計]</b></p><p> customer[i]
56、=new Customer;</p><p> int room_standard,day;</p><p> cout<<"請您選擇預(yù)定房間的標準:\n"; </p><p> cout<<"1.單人間/天150元\n2.雙人間/天200元\n3.標準間/天300元\n4.總統(tǒng)套房/天600元\n&quo
57、t;; </p><p> cin>>room_standard; </p><p> cout<<"請輸入住宿天數(shù)\n"; </p><p> cin>>day; </p><p> customer[i]->set_day(day);</p><p&
58、gt; cout<<"退房核算清楚,請按1: ";</p><p> ////////////////////</p><p> cin>>account;</p><p> if(account=='1')</p><p><b> {</b>&l
59、t;/p><p> for(int k=0;k<80;k++)</p><p><b> {</b></p><p> if(room[k].number==customer[j]->get_room_number()) </p><p> room[k].state=0;</p><
60、p><b> }</b></p><p><b> i--;</b></p><p> for(;j<i;j++)</p><p><b> {</b></p><p> customer[j]=customer[j+1];</p><
61、p><b> }</b></p><p> delete customer[i];</p><p><b> }</b></p><p> (4).if...else語句; switch語句的運用;for語句的運用</p><p> a.常用的構(gòu)成選擇結(jié)構(gòu)的if語句有兩種形式,如下:
62、*.if(條件) 語句1</p><p> Else 語句2</p><p> *.if(條件) 語句1</p><p> else if(條件) 語句2else if(條件) 語句3……else 語句</p><p> b.switch語句:</p><p> 用switch語句
63、構(gòu)成選擇結(jié)構(gòu)的格式為:switch(表達式){case 常量表達式1:語句塊1 [break;]case 常量表達式2:語句塊2 [break;]</p><p> ………case 常量表達式n:語句塊n [break;]c.for語句形式:for(表達式1;表達式2;表達式3) {循環(huán)體語句塊}注意:1.for循環(huán)通常用于有確定次數(shù)的循環(huán);</p><
64、p> 2.for語句中三個表達式中任何一個均可以省略,但兩個分號不可以省略; 3.for循環(huán)可以有多個循環(huán)變量,此時,循環(huán)變量的表達式之間用逗號隔 開;</p><p> 4.循環(huán)語句能夠在另一個循環(huán)語句的循環(huán)體內(nèi),即循環(huán)能夠被嵌套。d.代碼設(shè)計:</p><p> void book_room()</p><p>
65、<b> {</b></p><p> customer[i]=new Customer;</p><p> int room_standard,day;</p><p> cout<<"請您選擇預(yù)定房間的標準:\n"; </p><p> cout<<"1
66、.單人間/天150元\n2.雙人間/天200元\n3.標準間/天300元\n4.總統(tǒng)套房/天600元\n"; </p><p> cin>>room_standard; </p><p> cout<<"請輸入預(yù)定天數(shù)\n"; </p><p> cin>>day; </p>&l
67、t;p> customer[i]->set_day(day);</p><p> switch(room_standard) </p><p><b> { </b></p><p><b> int n;</b></p><p><b> case 1:</b
68、></p><p> cout<<"住房費用總共為: "<<day*150<<"元\n"; </p><p> for(n=0;n<20;n++) </p><p><b> {</b></p><p> if
69、(room[n].state==0) </p><p><b> {</b></p><p> cout<<"預(yù)定成功!房間號碼為: "<<room[n].number<<endl;</p><p> room[n].state=1;</p><p&
70、gt; customer[i]->set_room_number(room[n].number);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> b
71、reak; </b></p><p><b> case 2:</b></p><p> cout<<"住房費用總共為: "<<day*200<<" 元\n"; </p><p> for(n=20;n<40;n++)</p>&l
72、t;p><b> {</b></p><p> if(room[n].state==0)</p><p><b> {</b></p><p> cout<<"預(yù)定成功!房間號碼為: "<<room[n].number<<endl;</p>
73、<p> room[n].state=1;</p><p> customer[i]->set_room_number(room[n].number);</p><p><b> break;</b></p><p><b> }</b></p><p><b>
74、 }</b></p><p><b> break; </b></p><p><b> case 3:</b></p><p> cout<<"住房費用總共為: "<<day*300<<" 元\n"; </p>
75、<p> for(n=40;n<60;n++)</p><p><b> {</b></p><p> if(room[n].state==0)</p><p><b> {</b></p><p> cout<<"預(yù)定成功!房間號碼為: "
76、<<room[n].number<<endl;</p><p> room[n].state=1;</p><p> customer[i]->set_room_number(room[n].number);</p><p><b> break;</b></p><p><b&
77、gt; }</b></p><p><b> }</b></p><p><b> break; </b></p><p><b> case 4:</b></p><p> cout<<"住房費用總共為: "<<
78、;day*600<<"元\n"; </p><p> for(n=60;n<80;n++)</p><p><b> {</b></p><p> if(room[n].state==0)</p><p><b> {</b></p>&l
79、t;p> cout<<"預(yù)定成功!房間號碼為: "<<room[n].number<<endl;</p><p> room[n].state=1;</p><p> customer[i]->set_room_number(room[n].number);</p><p><b>
80、 break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break; </b></p><p><b> } </b></p><p>
81、;<b> i++; </b></p><p><b> }</b></p><p> 五.上機操作1.工程任務(wù)A.界面設(shè)計;B.輸入客戶信息,包括姓名、身份證號等;C.輸出每個客戶的信息。2.操作步驟(1)輸出界面:根據(jù)要求,輸入用戶名和密碼,登錄到系統(tǒng)首界面</p><p><b> 圖
82、 1</b></p><p> (2)訂房實現(xiàn):根據(jù)提示,選擇服務(wù)類別,選一進入訂房管理系統(tǒng)</p><p><b> 圖 2</b></p><p> ?。?)入住實現(xiàn):根據(jù)提示選二進入入住管理系統(tǒng)</p><p><b> 圖 3</b></p><p>
83、; (4)退房實現(xiàn):根據(jù)提示輸入3進入退房管理系統(tǒng)</p><p><b> 圖 4</b></p><p> ?。?)查詢功能:a.房間信息查詢</p><p><b> 圖 5</b></p><p><b> b.顧客信息查詢</b></p>&l
84、t;p><b> 圖 6</b></p><p><b> ?。?)退出系統(tǒng)</b></p><p> 圖7 </p&g
85、t;<p><b> 總結(jié)</b></p><p> 此次課程設(shè)計中,我成功做出了課堂上老師要求的內(nèi)容。雖然最后的一個模塊是通過網(wǎng)絡(luò)找的,但是也通過這個模塊學(xué)到了一些在課堂上沒有真正掌握的文件部分的自如運用。 通過此次課程設(shè)計,我對所學(xué)知識有了更深層次的理解,我更加理解和懂得運用結(jié)構(gòu)化程序設(shè)計的思想和方法,初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法,學(xué)會調(diào)試同一個較長程
86、序的基本方法,進一步掌握和提高利用C語言進行程序設(shè)計的能力。這次C++課程設(shè)計不僅是一次動手的機會,更讓我們在實踐中對這一學(xué)期所學(xué)的知識有了很好的復(fù)習(xí),鞏固和提高。 在設(shè)計中遇到了好多的調(diào)試不出結(jié)果的問題通過大家的合作,得到了好多以后可以避免錯誤的經(jīng)驗,通過老師的幫助,也得到了很多沒有接觸過的知識。通過實踐,建立課程設(shè)計的整體思想,鍛煉編寫程序、調(diào)試程序的能力,學(xué)習(xí)文檔編寫規(guī)范,培養(yǎng)獨立學(xué)習(xí)、吸取他人經(jīng)驗、探索前沿知識的習(xí)慣,樹
87、立團隊協(xié)作精神。 通過實習(xí),我還明白一些做人的道理。不論是什么,做出來的成果永遠是最值得驕傲的。想象重要,動手更重要。我們不可能掌握所有的知識,但是我們可以從實踐中學(xué)到很多我們平時不太熟悉的知識。平時我們不太注重的細節(jié),往往會導(dǎo)致</p><p><b> 致謝</b></p><p> 這次的C++課程設(shè)計能夠順利圓滿的完成不僅是個人的功勞,還要感謝那
88、些給予我?guī)椭娜撕蛥⒖嘉墨I,實踐地點。首先要感謝淮陰工學(xué)院計算機工程學(xué)院,感謝淮陰工學(xué)院給我們提供了良好的硬件設(shè)施,給我們提供了一個動手的平臺;其次還要感謝淮陰工學(xué)院計算機工程學(xué)院的老師們。 在這次課程設(shè)計中,多虧了同學(xué)的指導(dǎo),讓我在實踐中學(xué)到了很多知識,同學(xué)幫我糾正了很多錯誤,幫我更好地完善我的報告。回顧著過去的一周,我發(fā)現(xiàn)自己收獲了很多,也成長了很多懂得如何去多方位地查找資料,完善和創(chuàng)新一些舊的思維方式,懂的如何同老師和同學(xué)
89、交流協(xié)作。在這一周里,我從很多地方去查找資料來完善我的課程設(shè)計,同學(xué)們給予我很大的幫助,我很多知識掌握的不好,同學(xué)會很有耐心地講給我聽。在設(shè)計過程中,才發(fā)現(xiàn)自己對好多知識都沒有理解透徹,通過大家的互幫互助,我們克服了很多困難。不光在學(xué)習(xí)方面,我得到了許多人的幫助,同時在人際交往方面自己也能更好的體會。雖然在這次課程設(shè)計上花了一定的時間,但我認為這是值得的。我也要感謝老師的耐心教導(dǎo)和悉心的講解。任勞任怨,默默奉獻著,在我們遇到編程上的困難
90、時,她給了我們最細致入微的輔導(dǎo),與我們一起探討代碼上出</p><p> 對于指導(dǎo)老師和同學(xué)的幫助我再次 深深的謝意!沒有他們的幫助我相信自己一個人很難及時完成任務(wù)。真的很感謝他們!</p><p><b> 附錄源代碼:</b></p><p> #include<iostream.h> </p><p
91、> #include<string.h></p><p> //***********************************************************************************</p><p> void initial_room(); //初始化80個房間信息</p><p> voi
92、d welcome(); //驗證用戶登陸,登陸成功顯示歡迎信息</p><p> void enter();</p><p> void book_room();</p><p> void check_in();</p><p> void check_out();</p><p> void inq
93、uire();</p><p><b> int i=0;</b></p><p> //***********************************************************************************</p><p> struct Room // room的結(jié)
94、構(gòu)聲明</p><p><b> {</b></p><p> int number;</p><p><b> int dank;</b></p><p> int price;</p><p> int state; </p><p>&
95、lt;b> };</b></p><p> class Customer //類的運用</p><p><b> {</b></p><p><b> public:</b></p><p> Customer();</p><p>
96、 void set_name(char *n){strcpy(name,n);}</p><p> void set_ID(char *p){strcpy(ID,p);}</p><p> void set_room_number(int n){room_number=n;}</p><p> void set_day(int d){day=d;}</p
97、><p> void set_prepaid(int p){prepaid=p;}</p><p> char *get_name(){return name;}</p><p> char *get_ID(){return ID;}</p><p> int get_room_number(){return room_number;}
98、</p><p> int get_day(){return day;}</p><p> int get_prepaid(){return prepaid;} </p><p> virtual ~Customer();</p><p><b> private: </b></p><p
99、> char name[10],ID[19]; </p><p> int room_number;</p><p> int prepaid;</p><p> int change;</p><p><b> int day;</b></p><p><b>
100、 };</b></p><p> Customer::Customer()</p><p><b> {</b></p><p> cout<<"請您輸入顧客的姓名\n";</p><p> cin>>name;</p><p>
101、 cout<<"請您輸入顧客的身份證號碼\n"; </p><p><b> cin>>ID; </b></p><p> prepaid=change=day=0;</p><p><b> }</b></p><p> Customer::~C
102、ustomer()</p><p><b> {</b></p><p> cout<<"該顧客退房成功!"<<endl;</p><p><b> }</b></p><p> //********************************
103、***************************************************</p><p> Room room[80];</p><p> Customer *customer[80];</p><p> void main() //程序入口從這里開始運行</p><p><b> {<
104、;/b></p><p> char choice='1';</p><p> initial_room(); //初始化80個房間的信息,分四個等級</p><p> welcome(); //驗證用戶登陸,登陸成功顯示歡迎信息</p><p> while(choice=='1')<
105、/p><p><b> {</b></p><p> enter(); //根據(jù)用戶的選擇執(zhí)行不同的功能</p><p> cout<<endl;</p><p> cout<<"繼續(xù)使用本系統(tǒng)請按\"1\",退出請按\"2\"! &qu
106、ot;;</p><p> cin>>choice;</p><p> cout<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> //系統(tǒng)登陸界面******************
107、*****************************************************</p><p> void welcome() //驗證用戶登陸,登陸成功顯示歡迎信息</p><p><b> {</b></p><p> char name[4],code[7];</p><p>
108、 cout<<"請輸入用戶名和密碼(以空格隔開):\n"; </p><p> cin>>name>>code;</p><p> while((strcmp(name,"000")!=0)||(strcmp(code,"666666")!=0)) //比較兩個字符串</p>
109、<p><b> {</b></p><p> cout<<"用戶名或密碼輸入有誤,請重新輸入!\n";</p><p> cin>>name>>code;</p><p><b> }</b></p><p> cout
110、<<endl;</p><p> cout<<endl;</p><p> cout<<" ▲***************************▲\n"; </p><p> cout<<"
111、 △ 歡迎使用***系統(tǒng)!△\n"; </p><p> cout<<" ▲***************************▲\n"; </p><p> cout<<endl;</p><p><b> }</b></p>
112、;<p> //系統(tǒng)入口***************************************************************************</p><p> void enter()</p><p><b> {</b></p><p> int kind_of_service;<
113、/p><p> cout<<"請選擇服務(wù)類別:訂房、入住、退房還是查詢? \n"; </p><p> cout<<" 1->定房 2->入住 3->退房 4->查詢: ";</p><p> cin>>kind_of_service; </p>
114、<p> if((kind_of_service>4) || (kind_of_service<1)) </p><p><b> {</b></p><p> cout<<"您的輸入有誤,請重試!\n"; </p><p> cin>>kind_of_service
115、;</p><p><b> } </b></p><p><b> else </b></p><p> switch(kind_of_service) </p><p><b> {</b></p><p> case 1: book_ro
116、om();</p><p><b> break;</b></p><p> case 2: check_in();</p><p><b> break;</b></p><p> case 3: check_out();</p><p><b> br
117、eak;</b></p><p> case 4: inquire();</p><p><b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p> //訂房實現(xiàn)*
118、**************************************************************************</p><p> void book_room()</p><p><b> {</b></p><p> customer[i]=new Customer;</p><
119、p> int room_standard,day;</p><p> cout<<"請您選擇預(yù)定房間的標準:\n"; </p><p> cout<<"1.單人間/天150元\n2.雙人間/天200元\n3.標準間/天300元\n4.總統(tǒng)套房/天600元\n"; </p><p> cin
120、>>room_standard; </p><p> cout<<"請輸入預(yù)定天數(shù)\n"; </p><p> cin>>day; </p><p> customer[i]->set_day(day);</p><p> switch(room_standard) <
121、;/p><p><b> { </b></p><p><b> int n;</b></p><p><b> case 1:</b></p><p> cout<<"住房費用總共為: "<<day*150<<&qu
122、ot;元\n"; //計算住房費用</p><p> for(n=0;n<20;n++) //從第一個級別的房間中查找一個空閑的房間</p><p><b> {</b></p><p> if(room[n].state==0) //state=0表示該住房沒有被預(yù)定的</p>
123、<p><b> {</b></p><p> cout<<"預(yù)定成功★房間號碼為: "<<room[n].number<<endl;</p><p> room[n].state=1;</p><p> customer[i]->set_room_number
124、(room[n].number);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break; </b></p><p>
125、;<b> case 2:</b></p><p> cout<<"住房費用總共為: "<<day*200<<" 元\n"; </p><p> for(n=20;n<40;n++)</p><p><b> {</b></p&
126、gt;<p> if(room[n].state==0)</p><p><b> {</b></p><p> cout<<"預(yù)定成功★房間號碼為: "<<room[n].number<<endl;</p><p> room[n].state=1;</p&g
127、t;<p> customer[i]->set_room_number(room[n].number);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p>&l
128、t;b> break; </b></p><p><b> case 3:</b></p><p> cout<<"住房費用總共為: "<<day*300<<" 元\n"; </p><p> for(n=40;n<60;n++)<
129、/p><p><b> {</b></p><p> if(room[n].state==0)</p><p><b> {</b></p><p> cout<<"預(yù)定成功★房間號碼為: "<<room[n].number<<endl;&
130、lt;/p><p> room[n].state=1;</p><p> customer[i]->set_room_number(room[n].number);</p><p><b> break;</b></p><p><b> }</b></p><p>
131、;<b> }</b></p><p><b> break; </b></p><p><b> case 4:</b></p><p> cout<<"住房費用總共為: "<<day*600<<"元\n"; <
132、;/p><p> for(n=60;n<80;n++)</p><p><b> {</b></p><p> if(room[n].state==0)</p><p><b> {</b></p><p> cout<<"預(yù)定成功★房間號碼
133、為: "<<room[n].number<<endl;</p><p> room[n].state=1;</p><p> customer[i]->set_room_number(room[n].number);</p><p><b> break;</b></p><p&
134、gt;<b> }</b></p><p><b> }</b></p><p><b> break; </b></p><p><b> } </b></p><p> i++; //住房的顧客數(shù)加1</p><p
135、><b> }</b></p><p> //入住登記***************************************************************************</p><p> void check_in()</p><p><b> {</b></p>
136、;<p> char name1[10],id1[19];</p><p> int ding_or_no,prepaid;</p><p> cout<<"該顧客訂房了嗎? (1->訂了 2->沒訂) ";</p><p> cin>>ding_or_no;</p>&l
137、t;p> if(ding_or_no==1)</p><p><b> {</b></p><p> cout<<"請輸入顧客的姓名:"<<endl;</p><p> cin>>name1;</p><p> cout<<"請
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客房管理系統(tǒng)課程設(shè)計
- 客房管理系統(tǒng)-課程設(shè)計報告
- 賓館客房管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計-客房管理系統(tǒng)
- c++課程設(shè)計賓館客房管理系統(tǒng)
- 酒店客房管理系統(tǒng)課程設(shè)計
- 酒店客房管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計報告---客房管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--客房管理系統(tǒng)
- 數(shù)據(jù)庫客房管理系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計-賓館客房管理軟件
- 軟件工程課程設(shè)計--- 賓館客房管理系統(tǒng)
- 賓館客房管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 關(guān)于酒店管理的課程設(shè)計--旅館客房管理系統(tǒng)
- 數(shù)據(jù)庫應(yīng)用課程設(shè)計--客房管理系統(tǒng)
- c語言課程設(shè)計-賓館客房管理軟件
- 數(shù)據(jù)庫原理課程設(shè)計--賓館客房管理系統(tǒng)
- c++課程設(shè)計--酒店客房管理系統(tǒng)
- c語言課程設(shè)計-酒店客房管理系統(tǒng)
- 課程設(shè)計---賓館客房管理程序的設(shè)計與實現(xiàn)
評論
0/150
提交評論