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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  C++程序設計課程設計</p><p><b>  酒店客房預訂管理</b></p><p><b>  指導教師:****</b></p><p>  專業(yè)班級:自動化**班</p><p>  設 計 者:**、**、**、**</p><p>  

2、設計時間:2011年**月</p><p><b>  目 錄</b></p><p>  一 需求分析·····················

3、3;··················3</p><p>  二 組員分工·············&#

4、183;··························4</p><p>  三 系統(tǒng)總框圖·····

5、;·································4</p><p>

6、;  四 系統(tǒng)軟硬件環(huán)境··································4<

7、;/p><p>  五 模塊設計分析································

8、····5</p><p>  六 函數(shù)定義及說明···························&

9、#183;······12</p><p>  七 使用說明························

10、3;···············18</p><p>  八 程序源代碼················

11、······················21</p><p>  九 結束語·········

12、3;································35</p><p>  十

13、 參考文獻····································

14、;····35</p><p><b>  酒店客房預訂管理</b></p><p><b>  一 需求分析</b></p><p><b>  1.1綜述</b></p><p>  隨著人類社會進入信息時代,計算機越來越多地活躍在社

15、會各個領域:管理,網(wǎng)絡,計算,控制,多媒體等。并且在某些方面成為不可缺少的工具,尤其在管理方面,管理軟件的出現(xiàn)使大量繁瑣復雜的問題變得簡單易行。</p><p>  現(xiàn)今酒店賓館的規(guī)模不斷擴大,客戶數(shù)量急劇增加,有關客戶的各種信息也成倍增長,尤其是大量的客房預訂信息。面對龐大的信息量,需要有客戶信息管理系統(tǒng)來提高客戶管理工作的效率。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學統(tǒng)計和快速的查詢,從而減少管理方面的工

16、作量。當前許多酒店正在逐步完善客戶信息管理工作,需要一個能滿足內部管理需求,提高管理效率的應用系統(tǒng)進行內部管理。許多賓館經過多年的發(fā)展,規(guī)模不斷擴大,客流量成倍增長,積累了大量的客戶信息急需進行統(tǒng)一管理以防信息的流失。因此,許多賓館需要一個功能全面的客戶信息管理系統(tǒng)來進行管理,以使管理客戶信息的工作在該系統(tǒng)的配合下更加高效和便捷。</p><p><b>  1.2系統(tǒng)功能分析</b><

17、;/p><p>  酒店客房預訂信息管理系統(tǒng)是一個對客戶全方面管理的程序。該客房預訂信息管理系統(tǒng)是在Visual C++ 6.0平臺下設計開發(fā),以TXT文檔為后臺數(shù)據(jù)庫,采用面向對象的語言開發(fā)而成,實現(xiàn)對客戶預訂信息的基本管理,包括客房信息、客戶信息的添加,修改和查詢。該系統(tǒng)充分考慮用戶的操作簡便性,實現(xiàn)快捷操作。它有以下幾個功能:</p><p> ?。?)客房設置:可以添加新客房,修改客房

18、描述(房間等級,內部設施等),刪除客房。</p><p>  (2)客戶設置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等??蓽蚀_了解每一客戶的預訂信息。</p><p>  (3)房間預訂情況查詢:可按客戶號、房號查詢。方便實用,在眾多房間、客戶中準確查詢到某一個房間或客戶。</p><p><b>  二 組員分工</b></p&g

19、t;<p><b>  封面設計:**</b></p><p>  程序設計:**、**、***、***</p><p>  程序勘誤:**、**</p><p>  報告編寫:**、***、***</p><p><b>  小組組長:**</b></p><p&

20、gt;<b>  三 系統(tǒng)總框圖</b></p><p>  設計一個程序來實現(xiàn)酒店客房預訂的管理,該程序應該包含信息錄入、輸出、修改、刪除和查詢等功能模塊。本程序各功能模塊結構總框圖如下:</p><p><b>  四 系統(tǒng)軟硬件環(huán)境</b></p><p>  WindowsXP、Visual C++6.0、CPU(

21、pentium4 2.4Hz)、內存(256MB)、硬盤(80G)</p><p><b>  五 模塊設計分析</b></p><p>  5.1模塊設計思路分析</p><p>  本程序共有五大功能模塊:新建模塊、更改模塊、刪除模塊、查詢模塊和顯示模塊。各模塊在功能上互相補充,在程序中互相融合,才能實現(xiàn)一個具有多種功能的管理系統(tǒng)。<

22、;/p><p> ?。?)新建模塊:實現(xiàn)所有客房、訂房客戶的錄入工作。</p><p> ?。?)更改模塊:提供數(shù)據(jù)的修改,包括客戶姓名、客房描述等。</p><p>  (3)刪除模塊:將已退訂的客戶從數(shù)據(jù)庫中刪除。</p><p>  (4)查詢模塊:本程序最重要的模塊,也是本系統(tǒng)的精髓所在。通過房間號或客戶號實現(xiàn)客房的預訂情況以及客戶入住情

23、況的查詢工作。</p><p> ?。?)顯示模塊:顯示所有客房、訂房客戶的基本信息。</p><p>  在程序設計上,我們的目標就是先實現(xiàn)單個模塊,進而實現(xiàn)整個程序。本程序正是本著這種思想,一步一步,有條不紊的進行規(guī)劃與設計。本程序通過四個類:客戶類、客戶庫類、客房類、客房庫類,并通過主函數(shù)調用類函數(shù)實現(xiàn)了這五大功能模塊的功能。</p><p>  5.2五大功

24、能模塊的實現(xiàn)</p><p><b>  5.2.1客戶類:</b></p><p>  class customer </p><p><b>  { </b></p><p><b>  private:</b></p><p>  

25、int tag; //刪除標記 1:已刪 0:未刪</p><p>  int no; //客戶編號</p><p>  char name[10]; //客戶姓名</p><p>  int borbook[Maxbor];

26、 //所訂房間</p><p><b>  public:</b></p><p>  customer() {}</p><p>  char *getname() {return name;}//獲取姓名</p><p>  int gettag() {return tag;} //獲取

27、刪除標記</p><p>  int getno() {return no;} //獲取客戶編號</p><p>  void setname(char na[]) //設置姓名</p><p><b>  { </b></p><p>  strcpy(name,na);</p>&

28、lt;p><b>  }</b></p><p>  void delbook(){ tag=1; } //設置刪除標記 1:已刪 0:未刪</p><p>  void addcustomer(int n,char *na) //增加客戶</p><p><b>  { </b></p>

29、<p><b>  tag=0;</b></p><p><b>  no=n;</b></p><p>  strcpy(name,na);</p><p>  for(int i=0;i<Maxbor;i++)</p><p>  borbook[i]=0;</p>

30、;<p><b>  }</b></p><p>  void borrowbook(int bookid) //預訂操作</p><p><b>  {</b></p><p>  for(int i=0;i<Maxbor;i++)</p><p><b>

31、;  { </b></p><p>  if (borbook[i]==0)</p><p><b>  {</b></p><p>  borbook[i]=bookid;</p><p><b>  return;</b></p><p><b> 

32、 }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int retbook(int bookid) //退訂操作</p><p><b>  { </b></p><

33、;p>  for(int i=0;i<Maxbor;i++)</p><p><b>  { </b></p><p>  if(borbook[i]==bookid)</p><p><b>  {</b></p><p>  borbook[i]=0;</p><

34、p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></

35、p><p>  void disp() //讀出客戶信息</p><p><b>  { </b></p><p>  cout << setw(5) << no <<setw(10) << name<<"\t 客房編號:[&qu

36、ot;;</p><p>  for(int i=0;i<Maxbor;i++)</p><p>  if(borbook[i]!=0)</p><p>  cout << borbook[i];</p><p>  cout << "]"<<endl;</p>&

37、lt;p><b>  }</b></p><p><b>  };</b></p><p>  5.2.2客戶庫類:</p><p>  class RDatabase</p><p><b>  { </b></p><p><b>

38、  private:</b></p><p>  int top; //客戶記錄指針</p><p>  customer read[Maxr]; //客戶記錄</p><p><b>  public:</b></p><p&g

39、t;  RDatabase() //構造函數(shù),將customer.txt讀到read[]中</p><p><b>  {</b></p><p>  customer s;</p><p><b>  top=-1;</b></p><p>  fstr

40、eam file("customer.txt",ios::in); //打開一個輸入文件</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  file.read((char *)&s,sizeof(s));</p>

41、<p>  if (!file)break;</p><p><b>  top++;</b></p><p>  read[top]=s;</p><p><b>  }</b></p><p>  file.close(); //關閉 custome

42、r.txt</p><p><b>  }</b></p><p>  void clear() //刪除所有客戶信息</p><p><b>  {</b></p><p><b>  top=-1;</b></p>&

43、lt;p><b>  }</b></p><p>  int addcustomer(int n,char *na) //添加客戶時先查找是否存在</p><p><b>  {</b></p><p>  customer *p=query(n);</p><p>  if (p==

44、NULL)</p><p><b>  {</b></p><p><b>  top++;</b></p><p>  read[top].addcustomer(n,na);</p><p><b>  return 1;</b></p><p>&

45、lt;b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  customer *query(int customerid) //按編號查找</p><p><b>  {<

46、/b></p><p>  for (int i=0;i<=top;i++)</p><p>  if (read[i].getno()==customerid && </p><p>  read[i].gettag()==0)</p><p><b>  {</b></p>

47、<p>  return &read[i];</p><p><b>  }</b></p><p>  return NULL;</p><p><b>  }</b></p><p>  void disp() //輸出所有客戶信息&

48、lt;/p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  read[i].disp();</p><p><b>  }</b></p><p>  void customerdata();

49、 //客戶庫維護</p><p>  ~RDatabase() //析構函數(shù),將read[]寫到customer.txt文件中</p><p><b>  {</b></p><p>  fstream file("customer.txt",ios::out)

50、;</p><p>  for (int i=0;i<=top;i++)</p><p>  if (read[i].gettag()==0)</p><p>  file.write((char *)&read[i],sizeof(read[i]));</p><p>  file.close();</p>&l

51、t;p><b>  }</b></p><p><b>  };</b></p><p><b>  5.2.3客房類:</b></p><p>  class Book</p><p><b>  {</b></p><p>

52、;<b>  private:</b></p><p>  int tag; //刪除標記 1:已刪 0:未刪</p><p>  int no; //客房編號</p><p>  char name[20];

53、 //客房描述</p><p>  int onshelf; //是否預訂 1:空房 2:已預訂</p><p><b>  public:</b></p><p><b>  Book(){}</b></p><p>  char *getname()

54、 { return name; } //獲取姓名</p><p>  int getno(){ return no; } //獲取客房編號</p><p>  int gettag(){ return tag; } //獲取刪除標記</p><p>  void setname(char na[]) //設置客房描述

55、</p><p><b>  {</b></p><p>  strcpy(name,na);</p><p><b>  }</b></p><p>  void delbook(){ tag=1;} //刪除客房</p><p>  void addb

56、ook(int n,char *na) //增加客房</p><p><b>  {</b></p><p><b>  tag=0;</b></p><p><b>  no=n;</b></p><p>  strcpy(name,na);</p>

57、<p>  onshelf=1;</p><p><b>  }</b></p><p>  int borrowbook() //預訂操作</p><p><b>  {</b></p><p>  if (onshelf==1)</p>

58、<p><b>  {</b></p><p>  onshelf=0;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p>

59、<p><b>  }</b></p><p>  void retbook() //退訂操作</p><p><b>  {</b></p><p>  onshelf=1;</p><p><b>  }</b></p

60、><p>  void disp() //輸出客房</p><p><b>  {</b></p><p>  cout << setw(6) << no << setw(18) << name << setw(10)</p>&l

61、t;p>  <<(onshelf==1? "空房":"已預訂") <<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  5.2.4客房庫類:</p><p>  cl

62、ass BDatabase</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int top; //客房記錄指針</p><p>  Book book[Maxb];

63、 //客房記錄</p><p><b>  public:</b></p><p>  BDatabase() //構造函數(shù),將book.txt讀到book[]中</p><p><b>  { </b></p><p><b> 

64、 Book b;</b></p><p><b>  top=-1;</b></p><p>  fstream file("book.txt",ios::in);</p><p><b>  while (1)</b></p><p><b>  {<

65、;/b></p><p>  file.read((char *)&b,sizeof(b));</p><p>  if (!file) break;</p><p><b>  top++;</b></p><p>  book[top]=b;</p><p><b> 

66、 }</b></p><p>  file.close();</p><p><b>  }</b></p><p>  void clear() //全刪</p><p><b>  {</b></p><p><

67、b>  top=-1;</b></p><p><b>  }</b></p><p>  int addbook(int n,char *na) //增加客房</p><p><b>  {</b></p><p>  Book *p=query(n);</p&

68、gt;<p>  if (NULL==p)</p><p><b>  {</b></p><p><b>  top++;</b></p><p>  book[top].addbook(n,na);</p><p><b>  return 1;</b><

69、;/p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  Book *query(int bookid) //查找客房</p><p>&l

70、t;b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if (book[i].getno()==bookid &&book[i].gettag()==0)</p><p><b>  {</b></p><p>  re

71、turn &book[i];</p><p><b>  }</b></p><p>  return NULL;</p><p><b>  }</b></p><p>  void bookdata(); //客房庫維護</p><p

72、>  void disp()</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if (book[i].gettag()==0)</p><p>  book[i].disp();</p><p><

73、b>  }</b></p><p>  ~BDatabase() //析構函數(shù),將book[]寫到book.txt文件中</p><p><b>  {</b></p><p>  fstream file("book.txt",ios::out);</p&g

74、t;<p>  for (int i=0;i<=top;i++)</p><p>  if (book[i].gettag()==0)</p><p>  file.write((char *)&book[i],sizeof(book[i]));</p><p>  file.close();</p><p>&l

75、t;b>  }</b></p><p><b>  };</b></p><p><b>  六 函數(shù)定義及說明</b></p><p><b>  6.1主函數(shù)</b></p><p>  void main()</p><p>&l

76、t;b>  { </b></p><p>  char choice;</p><p>  int bookid,customerid;</p><p>  RDatabase customerDB;</p><p>  customer *r;</p><p>  BDatabase Book

77、DB;</p><p><b>  Book *b;</b></p><p>  while(choice!='0')</p><p><b>  { </b></p><p>  cout <<endl<<endl<<"\t

78、\t 酒 店 客 房 預 訂 管 理\n\n\n";</p><p>  cout <<"\t\t\t1 訂 房\n\n\t\t\t2 退 訂\n\n\t\t\t3 客 房 信 息\n\n\t\t\t4 客 戶 信 息\n\n\t\t\t0 退 出"<<endl;</p&

79、gt;<p>  cin >> choice;</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  cout <<"==

80、==========\n輸入客戶編號:";</p><p>  cin >>customerid;</p><p>  cout <<"輸入客房編號:";</p><p>  cin >>bookid;</p><p>  r=customerDB.query(customer

81、id);//按編號查找</p><p>  if (NULL==r)</p><p><b>  {</b></p><p>  cout <<" 不存在的客戶,不能預訂"<< endl;</p><p><b>  break;</b></p&g

82、t;<p><b>  }</b></p><p>  b=BookDB.query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<" 不存在的客房,不能預訂"

83、<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if (b->borrowbook()==0)</p><p><b>  {</b></p><p>  

84、cout << " 該客房已預訂,不能預訂"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  r->borrowbook(b->getno());</p><p>

85、<b>  break;</b></p><p><b>  case '2':</b></p><p>  cout<<"============\n輸入客戶編號:";</p><p>  cin >>customerid;</p><p&g

86、t;  cout << "輸入客房編號:";</p><p>  cin >>bookid;</p><p>  r=customerDB.query(customerid);</p><p>  if (r==NULL)</p><p><b>  {</b></p&g

87、t;<p>  cout <<" 不存在的客戶,不能退訂" << endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b=BookDB.query(bookid);</p><

88、;p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<" 不存在的客房,不能退訂" <<endl;</p><p><b>  break;</b></p><p><b>  }&

89、lt;/b></p><p>  b->retbook();</p><p>  r->retbook(b->getno());</p><p><b>  break;</b></p><p><b>  case '3':</b></p>&

90、lt;p>  BookDB.bookdata();</p><p><b>  break;</b></p><p><b>  case '4':</b></p><p>  customerDB.customerdata();</p><p><b>  brea

91、k;</b></p><p>  default:cout<<"正在寫入數(shù)據(jù)庫......謝謝使用!";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></

92、p><p><b>  6.2客戶庫函數(shù)</b></p><p>  void RDatabase::customerdata()</p><p><b>  {</b></p><p>  char choice;</p><p>  char rname[20];</p

93、><p>  int customerid;</p><p>  customer *r;</p><p>  while (choice!='0')</p><p><b>  {</b></p><p>  cout <<"\n\n\t\t\t客 戶

94、信 息\n\n\n\t\t\t1 新 增\n\n\t\t\t2 更 改\n\n\t\t\t3 刪 除\n\n\t\t\t4 查 找\n\n\t\t\t5 顯 示\n\n\t\t\t6 全 刪\n\n\t\t\t0 返 回"<<endl;</p><p>  cin >> choi

95、ce;</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  cout << "輸入客戶編號:";</p><p>

96、;  cin >> customerid;</p><p>  cout << "輸入客戶姓名:";</p><p>  cin >> rname;</p><p>  addcustomer (customerid,rname);</p><p><b>  break;&l

97、t;/b></p><p><b>  case '2':</b></p><p>  cout << "輸入客戶編號:";</p><p>  cin >> customerid;</p><p>  r=query(customerid);</p

98、><p>  if (r==NULL)</p><p><b>  {</b></p><p>  cout << " 該客戶不存在 "<<endl;</p><p><b>  break;</b></p><p><b&g

99、t;  }</b></p><p>  cout << "輸入新的客戶姓名:";</p><p>  cin >> rname;</p><p>  r->setname(rname);</p><p><b>  break;</b></p>

100、<p><b>  case '3':</b></p><p>  cout << "輸入客戶編號:";</p><p>  cin >> customerid;</p><p>  r=query(customerid);</p><p>  if

101、(r==NULL)</p><p><b>  {</b></p><p>  cout <<" 該客戶不存在" << endl;</p><p><b>  break;</b></p><p><b>  }</b></p

102、><p>  r->delbook();</p><p><b>  break;</b></p><p><b>  case '4':</b></p><p>  cout << "輸入客戶編號:";</p><p>  

103、cin >> customerid;</p><p>  r=query(customerid);</p><p>  if (r==NULL)</p><p><b>  {</b></p><p>  cout <<" 該客戶不存在"<< endl;</

104、p><p><b>  break;</b></p><p><b>  }</b></p><p>  r->disp();</p><p><b>  break;</b></p><p><b>  case '5':&

105、lt;/b></p><p><b>  disp();</b></p><p><b>  break;</b></p><p><b>  case '6':</b></p><p><b>  clear();</b></

106、p><p><b>  break;</b></p><p>  default:cout<<"正在返回主界面...";break;</p><p><b>  }</b></p><p><b>  }</b></p><p&g

107、t;<b>  }</b></p><p><b>  6.3客房庫函數(shù)</b></p><p>  void BDatabase::bookdata()</p><p><b>  {</b></p><p>  char choice;</p><p&g

108、t;  char bname[40];</p><p>  int bookid;</p><p><b>  Book *b;</b></p><p>  while (choice!='0')</p><p><b>  {</b></p><p>  c

109、out <<"\n\n\n\t\t\t客 房 信 息 "<<endl<<endl;</p><p>  cout<<"\n\t\t\t1 新 增\n\n\t\t\t2 更 改\n\n\t\t\t3 刪 除\n\n\t\t\t4 查 找\n\n\t\t\t5 顯 示\n\n

110、\t\t\t6 全 刪\n\n\t\t\t0 返 回"<<endl;</p><p>  cin >> choice;</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case &#

111、39;1':</b></p><p>  cout << "輸入客房編號:";</p><p>  cin >> bookid;</p><p>  cout << "輸入客房描述:";</p><p>  cin >> bname;&

112、lt;/p><p>  addbook(bookid,bname);</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  cout << "輸入客房編號:";</p>

113、<p>  cin >> bookid;</p><p>  b=query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<" 該客房不存在 "<<endl;&

114、lt;/p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout << "輸入新的客房描述:";</p><p>  cin >> bname;</p><p>  b->

115、setname(bname);</p><p><b>  break;</b></p><p><b>  case '3':</b></p><p>  cout <<"輸入客房編號:";</p><p>  cin >> bookid

116、;</p><p>  b=query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p>  cout <<" 該客房不存在" << endl;</p><p><b> 

117、 break;</b></p><p><b>  }</b></p><p>  b->delbook();</p><p><b>  break;</b></p><p><b>  case '4':</b></p>&l

118、t;p>  cout << "輸入客房編號:";</p><p>  cin >> bookid;</p><p>  b=query(bookid);</p><p>  if (b==NULL)</p><p><b>  {</b></p><p

119、>  cout <<" 該客房不存在"<< endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  b->disp();</p><p><b>  break;&l

120、t;/b></p><p><b>  case '5':</b></p><p><b>  disp();</b></p><p><b>  break;</b></p><p><b>  case '6':</b&

121、gt;</p><p><b>  clear();</b></p><p><b>  break;</b></p><p>  default:cout<<"正在返回主界面...";</p><p><b>  }</b></p>

122、<p><b>  }</b></p><p><b>  }</b></p><p><b>  七 使用說明</b></p><p> ?。?)程序主界面:界面簡潔明了,一目了然,便于操作。選擇數(shù)字0-4進入相應功能。</p><p>  (2)客戶信息:主界

123、面選擇4進入客戶信息管理菜單。</p><p>  1.新增:系統(tǒng)提示輸入客戶號碼、姓名等信息,按要求錄入即可。</p><p>  2.更改:系統(tǒng)提示輸入要更改的客戶號,輸入后即可更改該客戶的個人信息。</p><p>  3.刪除:系統(tǒng)提示輸入要刪除的客戶號,輸入后即可刪除該客戶。</p><p>  4.查詢:系統(tǒng)提示輸入要查詢的客戶號

124、,輸入后即可查看該客戶的訂房信息。</p><p>  5.顯示:顯示所有預訂客戶的個人信息以及預訂房號。</p><p>  6.全刪:刪除所有客戶。</p><p>  0.返回:返回主界面。</p><p> ?。?)客房信息:主界面選擇3進入客房信息管理菜單。</p><p>  1.新增:系統(tǒng)提示輸入房間號、

125、房間描述等信息,按要求錄入即可。</p><p>  2.更改:系統(tǒng)提示輸入要更改的房間號,輸入后即可更改該房間的描述信息。</p><p>  3.刪除:系統(tǒng)提示輸入要刪除的房間號,輸入后即可刪除該房間。</p><p>  4.查詢:系統(tǒng)提示輸入要查詢的房間號,輸入后即可查看該房間的預訂情況。</p><p>  5.顯示:顯示所有房間的

126、描述信息以及預訂情況。</p><p>  6.全刪:刪除所有房間。</p><p>  0.返回:返回主界面。</p><p> ?。?)訂房:主界面選擇1進入訂房功能。</p><p>  (5)退房:主界面選擇2進入退房功能。</p><p>  (6)退出:主界面選擇0退出程序并保存數(shù)據(jù)庫。</p>

127、<p><b>  八 程序源代碼</b></p><p>  #include <iostream></p><p>  #include <iomanip></p><p>  #include <string></p><p>  #include <fstr

128、eam> //輸入/輸出文件流類</p><p>  using namespace std;</p><p>  const int Maxr=100; //最多的客戶</p><p>  const int Maxb=100; //最多的客房<

129、;/p><p>  const int Maxbor=5; //每位客戶最多預訂五間客房</p><p>  //客戶類,實現(xiàn)對客戶的信息的描述</p><p>  class customer </p><p><b>  { </b></p><p&

130、gt;<b>  private:</b></p><p>  int tag; //刪除標記 1:已刪 0:未刪</p><p>  int no; //客戶編號</p><p>  char name[10];

131、 //客戶姓名</p><p>  int borbook[Maxbor]; //所訂房間</p><p><b>  public:</b></p><p>  customer() {}</p><p>  char *getname() {return name;}//獲取姓名&l

132、t;/p><p>  int gettag() {return tag;} //獲取刪除標記</p><p>  int getno() {return no;} //獲取客戶編號</p><p>  void setname(char na[]) //設置姓名</p><p><b>  { </b&

133、gt;</p><p>  strcpy(name,na);</p><p><b>  }</b></p><p>  void delbook(){ tag=1; } //設置刪除標記 1:已刪 0:未刪</p><p>  void addcustomer(int n,char *na) //增加客戶&

134、lt;/p><p><b>  { </b></p><p><b>  tag=0;</b></p><p><b>  no=n;</b></p><p>  strcpy(name,na);</p><p>  for(int i=0;i<Max

135、bor;i++)</p><p>  borbook[i]=0;</p><p><b>  }</b></p><p>  void borrowbook(int bookid) //預訂操作</p><p><b>  {</b></p><p>  for(

136、int i=0;i<Maxbor;i++)</p><p><b>  { </b></p><p>  if (borbook[i]==0)</p><p><b>  {</b></p><p>  borbook[i]=bookid;</p><p><b&

137、gt;  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int retbook(int bookid) //退訂操作</p

138、><p><b>  { </b></p><p>  for(int i=0;i<Maxbor;i++)</p><p><b>  { </b></p><p>  if(borbook[i]==bookid)</p><p><b>  {</b>

139、;</p><p>  borbook[i]=0;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</

140、b></p><p><b>  }</b></p><p>  void disp() //讀出客戶信息</p><p><b>  { </b></p><p>  cout << setw(5) << no <&l

141、t;setw(10) << name<<"\t 客房編號:[";</p><p>  for(int i=0;i<Maxbor;i++)</p><p>  if(borbook[i]!=0)</p><p>  cout << borbook[i];</p><p>  c

142、out << "]"<<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  //客戶庫類,實現(xiàn)建立客戶的個人資料</p><p>  class RDatabase</p>&l

143、t;p><b>  { </b></p><p><b>  private:</b></p><p>  int top; //客戶記錄指針</p><p>  customer read[Maxr]; //客戶記錄</p&

144、gt;<p><b>  public:</b></p><p>  RDatabase() //構造函數(shù),將customer.txt讀到read[]中</p><p><b>  {</b></p><p>  customer s;</p><

145、;p><b>  top=-1;</b></p><p>  fstream file("customer.txt",ios::in); //打開一個輸入文件</p><p><b>  while (1)</b></p><p><b>  {</b></p&g

146、t;<p>  file.read((char *)&s,sizeof(s));</p><p>  if (!file)break;</p><p><b>  top++;</b></p><p>  read[top]=s;</p><p><b>  }</b><

147、/p><p>  file.close(); //關閉 customer.txt</p><p><b>  }</b></p><p>  void clear() //刪除所有客戶信息</p><p><b>  {</b>&

148、lt;/p><p><b>  top=-1;</b></p><p><b>  }</b></p><p>  int addcustomer(int n,char *na) //添加客戶時先查找是否存在</p><p><b>  {</b></p>&

149、lt;p>  customer *p=query(n);</p><p>  if (p==NULL)</p><p><b>  {</b></p><p><b>  top++;</b></p><p>  read[top].addcustomer(n,na);</p>

150、<p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  customer *query(int c

151、ustomerid) //按編號查找</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  if (read[i].getno()==customerid && </p><p>  read[i].gettag

152、()==0)</p><p><b>  {</b></p><p>  return &read[i];</p><p><b>  }</b></p><p>  return NULL;</p><p><b>  }</b></p&

153、gt;<p>  void disp() //輸出所有客戶信息</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  read[i].disp();</p><p><b>

154、;  }</b></p><p>  void customerdata(); //客戶庫維護</p><p>  ~RDatabase() //析構函數(shù),將read[]寫到customer.txt文件中</p><p><b>  {</b></p>

155、;<p>  fstream file("customer.txt",ios::out);</p><p>  for (int i=0;i<=top;i++)</p><p>  if (read[i].gettag()==0)</p><p>  file.write((char *)&read[i],sizeof

156、(read[i]));</p><p>  file.close();</p><p><b>  }</b></p><p><b>  };</b></p><p>  void RDatabase::customerdata()</p><p><b>  {

157、</b></p><p>  char choice;</p><p>  char rname[20];</p><p>  int customerid;</p><p>  customer *r;</p><p>  while (choice!='0')</p>&l

158、t;p><b>  {</b></p><p>  cout <<"\n\n\t\t\t客 戶 信 息\n\n\n\t\t\t1 新 增\n\n\t\t\t2 更 改\n\n\t\t\t3 刪 除\n\n\t\t\t4 查 找\n\n\t\t\t5 顯 示\n\n\t\t\t6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論