2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論