c++課程設(shè)計(jì)報(bào)告--電影院自動(dòng)售票機(jī)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  面向?qū)ο蟪绦蛘n程設(shè)計(jì)</p><p> ?。?012/2013學(xué)年第一學(xué)期第20周)</p><p><b>  指導(dǎo)教師: </b></p><p>  班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)(1)班</p><p><b>  學(xué)號(hào): </b></p><p>&l

2、t;b>  姓名:***</b></p><p>  面向?qū)ο蟪绦蛘n程設(shè)計(jì)任務(wù)書</p><p>  【題目】電影院自動(dòng)售票機(jī)</p><p><b>  【目的】</b></p><p>  通過設(shè)計(jì)一個(gè)小型電影院的自動(dòng)售票系統(tǒng),訓(xùn)練綜合運(yùn)用所學(xué)知識(shí)處理實(shí)際問題的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計(jì)理念,使自

3、己的程序設(shè)計(jì)與調(diào)試水平有一個(gè)明顯的提高。</p><p><b>  【要求】</b></p><p>  1、每個(gè)學(xué)生必須獨(dú)立完成;</p><p>  2、課程設(shè)計(jì)時(shí)間為1周;</p><p>  3、設(shè)計(jì)語言采用C++;</p><p>  4、學(xué)生有事離校必須請(qǐng)假。課程設(shè)計(jì)期間,無故缺席按

4、曠課處理;缺席時(shí)間達(dá)四分之一以上者,未按規(guī)定上交實(shí)驗(yàn)報(bào)告的學(xué)生,其成績(jī)按不及格處理。</p><p><b>  【內(nèi)容簡(jiǎn)介】 </b></p><p>  有一個(gè)小型的電影院,這個(gè)電影院只有一個(gè)放映廳,廳里有10排座位,每排10個(gè)座位。這個(gè)電影院從早上8:00開始營(yíng)業(yè),每2小時(shí)放映一部電影,營(yíng)業(yè)至次日凌晨2點(diǎn)結(jié)束。這個(gè)電影院現(xiàn)在打算使用自動(dòng)售票機(jī),來讓觀眾自己購票。

5、現(xiàn)在請(qǐng)你為這個(gè)自動(dòng)售票機(jī)編寫一個(gè)程序,使得這個(gè)自動(dòng)售票機(jī)能夠正確工作。</p><p><b>  【考核標(biāo)準(zhǔn)】</b></p><p>  1、能夠正確出售某一場(chǎng)次,某一座位的票,成績(jī)≥60;</p><p>  2、能夠統(tǒng)計(jì)每一場(chǎng)次的出票情況,成績(jī)≥70;</p><p>  3、能夠統(tǒng)計(jì)每一天每一場(chǎng)次的出票情況,成

6、績(jī)≥80;</p><p>  4、能夠考慮不同場(chǎng)次的票價(jià),不同座位的票價(jià),界面設(shè)計(jì)友好,成績(jī)≥90。</p><p>  請(qǐng)仔細(xì)考慮這個(gè)題目中出現(xiàn)的各個(gè)實(shí)體,考慮如何保存數(shù)據(jù)。</p><p>  【工作內(nèi)容及工作計(jì)劃】</p><p>  面向?qū)ο蟪绦蛘n程設(shè)計(jì)</p><p><b>  目 錄&l

7、t;/b></p><p><b>  題目</b></p><p><b>  需求分析</b></p><p><b>  系統(tǒng)結(jié)構(gòu)圖</b></p><p><b>  類的設(shè)計(jì)</b></p><p><b>

8、;  程序代碼與說明</b></p><p><b>  運(yùn)行結(jié)果與分析</b></p><p><b>  心得與體會(huì)</b></p><p><b>  一、題目</b></p><p><b>  【題目】</b></p>

9、<p><b>  電影院自動(dòng)售票機(jī)</b></p><p><b>  【目的】</b></p><p>  通過設(shè)計(jì)一個(gè)小型電影院的自動(dòng)售票系統(tǒng),訓(xùn)練綜合運(yùn)用所學(xué)知識(shí)處理實(shí)際問題的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計(jì)理念,使自己的程序設(shè)計(jì)與調(diào)試水平有一個(gè)明顯的提高。</p><p><b>  【要求】&l

10、t;/b></p><p>  1、每個(gè)學(xué)生必須獨(dú)立完成;</p><p>  2、課程設(shè)計(jì)時(shí)間為1周;</p><p>  3、設(shè)計(jì)語言采用C++;</p><p>  4、學(xué)生有事離校必須請(qǐng)假。課程設(shè)計(jì)期間,無故缺席按曠課處理;缺席時(shí)間達(dá)四分之一以上者,未按規(guī)定上交實(shí)驗(yàn)報(bào)告的學(xué)生,其成績(jī)按不及格處理。</p><

11、p><b>  【內(nèi)容簡(jiǎn)介】 </b></p><p>  有一個(gè)小型的電影院,這個(gè)電影院只有一個(gè)放映廳,廳里有10排座位,每排10個(gè)座位。這個(gè)電影院從早上8:00開始營(yíng)業(yè),每2小時(shí)放映一部電影,營(yíng)業(yè)至次日凌晨2點(diǎn)結(jié)束。這個(gè)電影院現(xiàn)在打算使用自動(dòng)售票機(jī),來讓觀眾自己購票。現(xiàn)在請(qǐng)你為這個(gè)自動(dòng)售票機(jī)編寫一個(gè)程序,使得這個(gè)自動(dòng)售票機(jī)能夠正確工作。</p><p>&l

12、t;b>  需求分析</b></p><p>  電影院自動(dòng)售票機(jī)用戶使用時(shí),必須先登錄或者注冊(cè),不同的用戶登錄后進(jìn)入不同功能界面,管理員賬戶系統(tǒng)默認(rèn)“CFY”,密碼:“1101”,顧客賬戶,由顧客自己注冊(cè),然后每個(gè)顧客會(huì)有一個(gè)以賬戶名為文件名的txt文本,文本中第一行存賬戶密碼,接下來,存的是用戶的訂票信息。管理員賬戶則不用建立相應(yīng)的文本,只有有一個(gè)MovieInfo.txt用來存儲(chǔ)影片信息即

13、可。</p><p>  電影院自動(dòng)售票機(jī)主要功能可分為兩個(gè)板塊:1、管理員板塊 2、售票板塊。</p><p>  管理員板塊擁有最高權(quán)限,可對(duì)電影的信息進(jìn)行修改,比如:錄入(input)、顯示(show)、查找(search)、修改(change)、刪除(del);而售票系統(tǒng)則只進(jìn)行售票(book)和退票(refund)。</p><p>  顧客板塊擁有最小權(quán)

14、限,只能對(duì)影片的預(yù)定(book)和退訂(refund)兩項(xiàng)功能。</p><p><b>  三、系統(tǒng)結(jié)構(gòu)圖</b></p><p><b>  系統(tǒng)的結(jié)構(gòu)圖如下:</b></p><p>  管理員賬戶無法注冊(cè),系統(tǒng)默認(rèn)賬戶名:CFY,密碼:1101。</p><p>  顧客無論是注冊(cè)還是登錄成

15、功,都會(huì)自動(dòng)轉(zhuǎn)入售票模塊,然后由用戶進(jìn)行相應(yīng)的選擇。</p><p>  管理員登錄成功后,系統(tǒng)會(huì)自動(dòng)進(jìn)入管理板塊,在進(jìn)入管理板塊時(shí),先通過read()把MovieInfo.txt中的數(shù)據(jù)讀入管理員類中自定義的vector中,然后管理員可實(shí)現(xiàn)對(duì)影片的諸多操作,</p><p>  錄入功能:根據(jù)影訊錄入新的電影信息。</p><p>  顯示功能:將電影的播放時(shí)間與

16、系統(tǒng)時(shí)間比較,以判斷電影是否已經(jīng)播放或正在播放。</p><p>  查找功能:有按電影名稱查詢和按播放時(shí)間查詢兩種查詢方式。</p><p>  修改功能:可對(duì)影片的每個(gè)屬性進(jìn)行修改。</p><p>  刪除功能:通入輸入要?jiǎng)h除的影片名,通過vector自身的刪除函數(shù)erase()。</p><p>  管理員退出后,系統(tǒng)調(diào)用save()

17、函數(shù),把vector中的數(shù)據(jù)寫入文件MovieInfo.txt,MovieInfo.txt的打開方式為清空。</p><p>  顧客登錄或注冊(cè)成功后,系統(tǒng)自動(dòng)進(jìn)入售票板塊,顧客可進(jìn)行訂票與退票兩項(xiàng)操作。</p><p>  訂票功能:系統(tǒng)先分別沖MovieInfo.txt中和用戶文本中讀入相應(yīng)的數(shù)據(jù)到customer的vector容器P中和User的vector容器Q中,然后通過預(yù)定,得

18、到相應(yīng)的訂票信息。結(jié)束訂票時(shí),把兩個(gè)容器中的數(shù)據(jù)更新到兩個(gè)文本中,并清空容器中的數(shù)據(jù)。</p><p>  退票功能:同樣需要先從文本中讀入信息,然后通過P Q兩容器中的數(shù)據(jù),先將Q容器中的信息輸出到屏幕,可直觀得到已定的票的情況,然后根據(jù)P Q兩容器中的數(shù)據(jù)信息,對(duì)所要退的票進(jìn)行判斷,判斷能否退票。最后同樣更新文件中的數(shù)據(jù),清空P Q容器中的數(shù)據(jù)。</p><p><b>  

19、類的設(shè)計(jì)</b></p><p>  首先設(shè)計(jì)一個(gè)電影信息Ticket類作為基類:</p><p>  class Ticket</p><p><b>  {</b></p><p>  protected:</p><p>  char MovieName[20];</p&g

20、t;<p>  double price;</p><p>  double discount;</p><p><b>  int num;</b></p><p><b>  int year;</b></p><p>  int month;</p><p&g

21、t;<b>  int day;</b></p><p><b>  int hour;</b></p><p>  int minute;</p><p><b>  int rest;</b></p><p>  bool map[10][10];</p>&

22、lt;p><b>  };</b></p><p>  基類Ticket包含了影片的所有基本信息,以便被管理員Manager類和顧客Custom類繼承。</p><p>  用戶信息User類:</p><p>  class User</p><p><b>  {</b></p>

23、;<p>  char name[20];</p><p><b>  int year;</b></p><p>  int month;</p><p><b>  int day;</b></p><p><b>  int hour;</b></p&

24、gt;<p>  int minute;</p><p><b>  int n;</b></p><p>  int Seat[10][10];</p><p><b>  };</b></p><p>  User類中包含了用戶訂票的信息,方便在Custom類中建立相應(yīng)的數(shù)據(jù)容器。

25、</p><p>  管理員Manager類:</p><p>  class Manager :public Ticket</p><p><b>  {</b></p><p>  vector<Ticket> P;</p><p>  vector<Ticket>::

26、 iterator pos;</p><p>  static string UserName;</p><p>  static string Password;</p><p><b>  public:</b></p><p>  void input();</p><p>  void s

27、how();</p><p>  void search();</p><p>  void change();</p><p>  void del();</p><p>  void read();</p><p>  void save();</p><p>  string getUse

28、rName(){return UserName;}</p><p>  string getPassword(){return Password;}</p><p>  bool cmp(Ticket a,Ticket b);</p><p><b>  };</b></p><p>  管理員Manager類由Tick

29、et類派生,主要包含一個(gè)Ticket容器和對(duì)基類Ticket數(shù)據(jù)處理的功能函數(shù)。</p><p>  顧客Custom類:</p><p>  class Customer :public Ticket</p><p><b>  {</b></p><p>  vector<Ticket> P;</p

30、><p>  vector<User> Q;</p><p>  vector<Ticket>:: iterator pos;</p><p>  vector<User>:: iterator pos1;</p><p><b>  public:</b></p><

31、p>  void book(char IDName[]);</p><p>  void refund(char IDName[]);</p><p><b>  };</b></p><p>  顧客Custom類 同樣繼承于Ticket,類中主要包含一個(gè)Ticket的vector容器P及其迭代器pos和User的vector容器Q已經(jīng)

32、迭代器pos1;和兩個(gè)帶參功能函數(shù)book(char [ ])和defund(char []);</p><p>  界面Interface類:</p><p>  class Interface</p><p><b>  {</b></p><p><b>  public:</b></p

33、><p>  void display();</p><p>  void IntroduceFace();</p><p>  void ManagerFace();</p><p>  void CustomerFace();</p><p><b>  };</b></p><

34、;p>  界面Interface類中的四個(gè)函數(shù)分別顯示不同的界面,display()為登錄界面,IntroduceFace();為歡迎界面,ManagerFace();為管理員功能界面,CustomerFace();顧客功能界面。</p><p><b>  菜單Menu類:</b></p><p>  class Menu</p><p&g

35、t;<b>  {</b></p><p><b>  public:</b></p><p>  void manager(Interface cfy);</p><p>  void customer(Interface cfy,char IDName[] );</p><p><b>

36、;  };</b></p><p>  此類設(shè)計(jì),是為了主函數(shù)顯示簡(jiǎn)單明了,類中兩成員函數(shù) manager(Interface cfy);customer(Interface cfy,char IDName[] );分別顯示管理與售票的功能,接收功能選擇。</p><p>  賬戶操作UserInfo類:</p><p>  class UserInfo

37、</p><p><b>  {</b></p><p>  char IDName[30];</p><p>  char password[7];</p><p><b>  public:</b></p><p>  UserInfo();</p><

38、;p>  void Login();</p><p>  void Register();</p><p><b>  };</b></p><p>  此類實(shí)現(xiàn)對(duì)賬戶的注冊(cè)與登錄。其實(shí)管理員只能登錄,無法注冊(cè)!</p><p><b>  程序代碼與說明</b></p><

39、;p><b>  一、功能函數(shù):</b></p><p><b>  1、注冊(cè)</b></p><p>  //——————————————注冊(cè)——————————————</p><p>  void UserInfo::Register()</p><p><b>  {<

40、/b></p><p>  char id[30];</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入您要注冊(cè)的用戶名:\n";</p><p>  g

41、ets(IDName);</p><p>  cout<<"請(qǐng)輸入您要注冊(cè)的密碼(6位):\n";</p><p>  gets(password);</p><p>  if(strcmp(IDName,"CFY")==0) //保證不能注冊(cè)管理員賬戶</p><p><b>

42、  {</b></p><p>  cout<<"CFY為管理員賬戶,您不能注冊(cè)!請(qǐng)重新注冊(cè)"<<endl;</p><p><b>  continue;</b></p><p><b>  }</b></p><p>  strcpy(id

43、,IDName);</p><p>  strcat(IDName,".txt");</p><p>  ifstream iFile(IDName,ios::in);</p><p>  if(!iFile){</p><p>  ofstream oFile(IDName,ios::out|ios::app);<

44、/p><p>  oFile.write((char *) &password,sizeof(password));</p><p>  oFile.close();</p><p>  cout<<id<<"注冊(cè)成功,系統(tǒng)即將為您轉(zhuǎn)入購票系統(tǒng)"<<endl<<endl;</p>

45、<p>  for(int i=1;i<=3;i++)</p><p><b>  {</b></p><p>  cout<<i<<"秒……"<<endl;</p><p>  Sleep(1000);</p><p><b>  }&l

46、t;/b></p><p>  system("cls");</p><p><b>  Menu com;</b></p><p>  Interface cfy;</p><p>  com.customer(cfy,IDName);</p><p><b>

47、;  break;</b></p><p><b>  }</b></p><p><b>  else{</b></p><p>  cout<<"對(duì)不起,您注冊(cè)的賬戶名已存在,請(qǐng)重新輸入一個(gè)新的賬戶名"<<endl;</p><p>  i

48、File.close();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2、登錄</b></p><p>  //——————

49、————————登錄——————————————</p><p>  void UserInfo::Login()</p><p><b>  {</b></p><p>  char pw[7];</p><p>  char id[30];</p><p><b>  Menu co

50、m;</b></p><p>  Interface cfy;</p><p>  cout<<"請(qǐng)輸入用戶名:\n";</p><p>  gets(IDName);</p><p>  cout<<"請(qǐng)輸入密碼:\n";</p><p> 

51、 gets(password);</p><p>  strcpy(id,IDName);</p><p>  strcat(IDName,".txt");</p><p>  ifstream iFile(IDName,ios::in);</p><p>  if(!iFile)</p><p>

52、<b>  {</b></p><p>  if(strcmp(IDName,"CFY.txt")==0&&strcmp(password,"1101")==0)</p><p><b>  {</b></p><p>  cout<<"歡迎管理

53、員CFY,正在為您轉(zhuǎn)入管理員系統(tǒng),請(qǐng)稍后……"<<endl;</p><p>  for(int i=1;i<=3;i++)</p><p><b>  {</b></p><p>  cout<<i<<"秒……"<<endl;</p><p

54、>  Sleep(1000);</p><p><b>  }</b></p><p>  com.manager(cfy);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>

55、  {</b></p><p>  cout<<id<<" 用戶不存在!"<<endl</p><p>  <<"請(qǐng)重輸入正確用戶信息或進(jìn)行注冊(cè)"<<"\n\n\n摁回車鍵繼續(xù)……"<<endl;</p><p>  get

56、char();</p><p>  system("cls");</p><p>  cfy.display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b&

57、gt;</p><p><b>  {</b></p><p>  iFile.read((char *) &pw,sizeof(pw));</p><p>  if(strcmp(pw,password)==0)</p><p><b>  {</b></p><p&g

58、t;  cout<<"歡迎顧客"<<id<<",正在為您轉(zhuǎn)入訂票系統(tǒng),請(qǐng)稍后……"<<endl;</p><p>  for(int i=1;i<=3;i++)</p><p><b>  {</b></p><p>  cout<<i&l

59、t;<"秒……"<<endl;</p><p>  Sleep(1000);</p><p><b>  }</b></p><p>  com.customer(cfy,IDName);</p><p><b>  }</b></p><p

60、><b>  else</b></p><p><b>  {</b></p><p>  cout<<"用戶名或密碼錯(cuò)誤,請(qǐng)重新登錄!"<<endl</p><p>  <<"請(qǐng)重新登錄或退出注冊(cè)"<<"\n\n\n摁

61、回車鍵繼續(xù)……"<<endl;</p><p>  getchar();</p><p>  system("cls");</p><p>  cfy.display();</p><p><b>  }</b></p><p><b>  }

62、</b></p><p><b>  }</b></p><p><b>  管理員功能選擇:</b></p><p>  //——————————————選擇———————————————</p><p>  void Menu::manager(Interface cfy)</

63、p><p><b>  {</b></p><p>  system("cls");</p><p>  Manager boss;</p><p>  boss.read();</p><p>  int choice2;</p><p>  cfy.Ma

64、nagerFace();</p><p>  cin>>choice2;</p><p><b>  do</b></p><p><b>  {</b></p><p>  switch(choice2)</p><p><b>  {</b&g

65、t;</p><p><b>  case 1:</b></p><p>  boss.input();</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  boss.show();&

66、lt;/p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  boss.search();</p><p><b>  break;</b></p><p><b>  case 4:

67、</b></p><p>  boss.change();</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  boss.del();</p><p><b>  break;<

68、/b></p><p><b>  case 6:</b></p><p><b>  default:</b></p><p>  boss.save();</p><p>  system("pause");</p><p>  system(&

69、quot;cls");</p><p>  cfy.display();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  getchar();</p><p>  getchar();</p>

70、;<p>  system("cls");</p><p>  cfy.ManagerFace();</p><p>  cin>>choice2;</p><p><b>  }</b></p><p><b>  while(1);</b><

71、/p><p><b>  }</b></p><p>  4、管理員——從文件中讀取</p><p>  //——————————————讀取———————————————</p><p>  void Manager::read()</p><p><b>  {</b><

72、;/p><p>  ifstream iFile("MovieInfo.txt",ios::in);</p><p>  /*if(!iFile)</p><p>  cout<<"原庫中不存在電影,請(qǐng)管理員添加"<<endl;*/</p><p><b>  Ticket

73、 s;</b></p><p>  iFile.read((char *)&s,sizeof(Ticket));</p><p>  while(!iFile.eof())</p><p><b>  {</b></p><p>  P.push_back(s);</p><p&g

74、t;  iFile.read((char *)&s,sizeof(Ticket));</p><p><b>  }</b></p><p>  iFile.close();</p><p><b>  }</b></p><p><b>  5、管理員——錄入</b>

75、</p><p>  //——————————————錄入——————————————</p><p>  void Manager::input()</p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<

76、<"\n\n\n\t\t\t\t《錄入模塊》\n\n\n"<<endl;</p><p>  Ticket Movie;</p><p><b>  char ch;</b></p><p><b>  while(1)</b></p><p><b>

77、;  {</b></p><p>  int date[5],n;</p><p>  char na[20];</p><p>  double y1,y2;</p><p>  cout<<"\n請(qǐng)輸入日期(2013-01-21):";</p><p>  cin>

78、>date[0]>>ch>>date[1]>>ch>>date[2];</p><p>  Movie.setYear(date[0]);</p><p>  Movie.setMonth(date[1]);</p><p>  Movie.setDay(date[2]);</p><p>

79、;  cout<<"\n請(qǐng)輸入放映時(shí)間(12:30):";</p><p>  cin>>date[3]>>ch>>date[4];</p><p>  Movie.setHour(date[3]);</p><p>  Movie.setMinute(date[4]);</p>&l

80、t;p>  cout<<"\n請(qǐng)輸入場(chǎng)次:";</p><p><b>  cin>>n;</b></p><p>  Movie.setNum(n);</p><p>  cout<<"\n請(qǐng)輸入電影名稱:";</p><p><b

81、>  cin>>na;</b></p><p>  Movie.setMovieName(na);</p><p>  cout<<"\n請(qǐng)輸入電影票價(jià):";</p><p><b>  cin>>y1;</b></p><p>  Movie.s

82、etPrice(y1);</p><p>  cout<<"\n請(qǐng)輸入會(huì)員折扣:";</p><p><b>  cin>>y2;</b></p><p>  Movie.setDiscount(y2);</p><p>  //Movie.setMap();</p>

83、;<p>  //Movie.setRest(100);</p><p>  P.push_back(Movie);</p><p>  cout<<"\n是否繼續(xù)添加(y/n):";</p><p><b>  cin>>ch;</b></p><p>  if

84、(ch=='y')</p><p><b>  continue;</b></p><p>  if(ch=='n')</p><p><b>  break;</b></p><p><b>  }</b></p><p

85、><b>  }</b></p><p><b>  6、管理員——顯示</b></p><p>  //——————————————顯示——————————————</p><p>  int Ticket::timecmp(int a[],int b[],int n)</p><p>&l

86、t;b>  {</b></p><p><b>  int i; </b></p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(a[i]>b[i])</p><p><b&

87、gt;  return 1;</b></p><p>  if(a[i]<b[i])</p><p>  return -1;</p><p><b>  }</b></p><p><b>  if(i==n)</b></p><p><b> 

88、 return 0;</b></p><p><b>  }</b></p><p>  void Manager::show()</p><p><b>  {</b></p><p>  system("cls");</p><p>  c

89、out<<"\n\n\n\t\t\t\t《顯示模塊》\n\n\n"<<endl;</p><p>  cout<<" 所有電影信息如下:"<<endl;</p><p>  cout<<"_____________________

90、__________________________________________________________"<<endl;</p><p>  cout<<"日----期\t時(shí)-間\t場(chǎng)次\t電影名稱\t票價(jià)\t折扣\t余票"<<endl<<endl;</p><p><b>  time_t

91、 t;</b></p><p>  struct tm *tim;</p><p>  t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間</p><p>  tim=localtime(&t);</p><p>  int array[5]={tim->tm_year+1900,tim->tm_mon+1,tim

92、->tm_mday,tim->tm_hour,tim->tm_min};</p><p>  pos=P.begin();</p><p>  for(pos=P.begin();pos!=P.end();pos++)</p><p><b>  {</b></p><p>  int datatime

93、[5];</p><p>  datatime[0]=pos->getYear();</p><p>  datatime[1]=pos->getMonth();</p><p>  datatime[2]=pos->getDay();</p><p>  datatime[3]=pos->getHour();<

94、/p><p>  datatime[4]=pos->getMinute();</p><p>  int r=timecmp(datatime,array,5);</p><p>  cout<<pos->getYear()<<"-"<<pos->getMonth()<<"-

95、"<<pos->getDay()<<"\t";</p><p>  cout<<pos->getHour()<<":"<<pos->getMinute()<<"\t";</p><p>  cout<<pos->g

96、etNum()<<"\t"<<pos->getMovieName()<<"\t\t";</p><p>  cout<<pos->getPrice()<<"\t"<<pos->getDiscount()<<"\t"<<po

97、s->getRest();</p><p><b>  if(r<=0)</b></p><p>  cout<<"\a(已播放?。?quot; <<endl; </p><p><b>  else</b></p><p>  cout<<

98、endl; </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  7、管理員——查找</b></p><p>  //——————————————查找——————————————</p><p> 

99、 void Manager::search()</p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n\t\t\t\t《查找板塊》\n\n\n"<<endl;</p><p>

100、<b>  time_t t;</b></p><p>  struct tm *tim;</p><p>  t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間</p><p>  tim=localtime(&t);</p><p>  int array[5]={tim->tm_year+1900,tim

101、->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};</p><p>  int choice;</p><p><b>  int ok=0;</b></p><p><b>  do</b></p><p><b>

102、;  {</b></p><p>  cout<<endl<<"\t\t\t\t1.按影片名查找";</p><p>  cout<<endl<<"\t\t\t\t2.按日期查找";</p><p>  cout<<endl<<"\t

103、\t\t\t請(qǐng)輸入查找模式:";</p><p>  cin>>choice;</p><p>  if(choice!=1&&choice!=2)</p><p>  cout<<"\n\a\t\t\t\t選擇有誤!請(qǐng)選擇正確的查找模式。"<<endl;</p><

104、;p>  }while(choice!=1&&choice!=2);</p><p>  if(choice==1)</p><p><b>  {</b></p><p>  char na[20];</p><p>  cout<<"請(qǐng)輸入要查找的影片名\n";&

105、lt;/p><p><b>  cin>>na;</b></p><p>  for(pos=P.begin();pos!=P.end();pos++)</p><p><b>  {</b></p><p>  if(strcmp(pos->getMovieName(),na)==0

106、)</p><p><b>  {</b></p><p>  int datatime[5];</p><p>  datatime[0]=pos->getYear();</p><p>  datatime[1]=pos->getMonth();</p><p>  datatim

107、e[2]=pos->getDay();</p><p>  datatime[3]=pos->getHour();</p><p>  datatime[4]=pos->getMinute();</p><p>  int r=timecmp(datatime,array,5);</p><p>  cout<<

108、"\n 查找結(jié)果如下:"<<endl;</p><p>  cout<<"_______________________________________________________________________________"<<endl;</p><p>

109、;  cout<<"日----期\t時(shí)-間\t場(chǎng)次\t電影名稱\t票價(jià)\t折扣\t余票"<<endl<<endl;</p><p>  cout<<pos->getYear()<<"-"<<pos->getMonth()<<"-"<<pos->

110、;getDay()<<"\t";</p><p>  cout<<pos->getHour()<<":"<<pos->getMinute()<<"\t";</p><p>  cout<<pos->getNum()<<"

111、\t"<<pos->getMovieName()<<"\t\t";</p><p>  cout<<pos->getPrice()<<"\t"<<pos->getDiscount()<<"\t"<<pos->getRest();</

112、p><p><b>  if(r<=0)</b></p><p>  cout<<"\a(已播放?。?quot; <<endl; </p><p><b>  else</b></p><p>  cout<<endl; </p><

113、;p>  cout<<"\t\t\t\t該影片當(dāng)前預(yù)訂情況\n";</p><p>  for(int i=0;i<10;i++)</p><p><b>  {</b></p><p>  for(int j=0;j<10;j++)</p><p><b> 

114、 {</b></p><p>  if(pos->getMap(i,j)==0)</p><p>  cout<<"[空位] ";</p><p><b>  else</b></p><p>  cout<<"[有人] ";</p&

115、gt;<p><b>  }</b></p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  ok=1;</b></p><p><b>  }</b></p>

116、<p><b>  }</b></p><p><b>  if(!ok)</b></p><p>  cout<<"對(duì)不起,您查找的電影還未上映或者已經(jīng)下映"<<endl;</p><p><b>  }</b></p><

117、p>  else if(choice==2)</p><p><b>  {</b></p><p>  int date[3];</p><p>  int temp[3];</p><p><b>  char ch;</b></p><p>  cout<&

118、lt;"請(qǐng)輸入要查找的日期(年-月-日)"<<endl;</p><p>  cin>>date[0]>>ch>>date[1]>>ch>>date[2];</p><p>  for(pos=P.begin();pos!=P.end();pos++)</p><p><

119、;b>  {</b></p><p>  temp[0]=pos->getYear();</p><p>  temp[1]=pos->getMonth();</p><p>  temp[2]=pos->getDay();</p><p>  if(timecmp(temp,date,3)==0)<

120、/p><p><b>  {</b></p><p>  int datatime[5];</p><p>  datatime[0]=pos->getYear();</p><p>  datatime[1]=pos->getMonth();</p><p>  datatime[2]=

121、pos->getDay();</p><p>  datatime[3]=pos->getHour();</p><p>  datatime[4]=pos->getMinute();</p><p>  int r=timecmp(datatime,array,5);</p><p>  cout<<"

122、;\n 查找結(jié)果如下:"<<endl;</p><p>  cout<<"_______________________________________________________________________________"<<endl;</p><p>  co

123、ut<<"日----期\t時(shí)-間\t場(chǎng)次\t電影名稱\t票價(jià)\t折扣\t余票"<<endl<<endl;</p><p>  cout<<pos->getYear()<<"-"<<pos->getMonth()<<"-"<<pos->getD

124、ay()<<"\t";</p><p>  cout<<pos->getHour()<<":"<<pos->getMinute()<<"\t";</p><p>  cout<<pos->getNum()<<"\t&qu

125、ot;<<pos->getMovieName()<<"\t\t";</p><p>  cout<<pos->getPrice()<<"\t"<<pos->getDiscount()<<"\t"<<pos->getRest();</p>

126、<p><b>  if(r<=0)</b></p><p>  cout<<"\a(已播放?。?quot; <<endl; </p><p><b>  else</b></p><p>  cout<<endl; </p><p>

127、;  cout<<"\t\t\t\t該影片當(dāng)前預(yù)訂情況\n";</p><p>  for(int i=0;i<10;i++)</p><p><b>  {</b></p><p>  for(int j=0;j<10;j++)</p><p><b>  {<

128、;/b></p><p>  if(pos->getMap(i,j)==0)</p><p>  cout<<"[空位] ";</p><p><b>  else</b></p><p>  cout<<"[有人] ";</p>

129、<p><b>  }</b></p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  ok=1;</b></p><p><b>  }</b></p><

130、p><b>  }</b></p><p><b>  if(!ok)</b></p><p>  cout<<"對(duì)不起,您所查找的當(dāng)天沒有影訊"<<endl;</p><p><b>  }</b></p><p><b

131、>  }</b></p><p><b>  8、管理員——?jiǎng)h除</b></p><p>  //——————————————?jiǎng)h除——————————————</p><p>  void Manager::del()</p><p><b>  {</b></p>

132、<p>  system("cls");</p><p>  cout<<"\n\n\n\t\t\t\t《刪除模塊》\n\n\n"<<endl;</p><p>  char na[20];</p><p>  cout<<"\n請(qǐng)輸入需要?jiǎng)h除的影片名:";&l

133、t;/p><p><b>  cin>>na;</b></p><p>  pos=P.begin();</p><p><b>  int ok=0;</b></p><p>  for(pos=P.begin();pos!=P.end();pos++)</p><p&

134、gt;<b>  {</b></p><p>  if(strcmp(pos->getMovieName(),na)==0)</p><p><b>  {</b></p><p>  P.erase(pos);</p><p>  cout<<endl<<"

135、\t\t\t\t刪除成功!\n";</p><p><b>  ok=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(!ok)</b></p><

136、p><b>  {</b></p><p>  cout<<"\n\a\t\t\t\t未找到結(jié)果,刪除失敗!\n"<<endl;</p><p>  system("pause");//任意鍵繼續(xù) </p><p><b>  return;</b>&l

137、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  9、管理員——數(shù)據(jù)存入文本</p><p>  //——————————————存儲(chǔ)——————————————</p><p>  void Manager::save()&l

138、t;/p><p><b>  {</b></p><p>  ofstream oFile("MovieInfo.txt",ios::out|ios::app);</p><p>  if(!oFile)</p><p><b>  {</b></p><p>

139、;  cout<<"Can not open the file!"<<endl;</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  for(int i=0;i<P.size();i++)</p>

140、<p>  oFile.write((char *) &P[i],sizeof(Ticket));</p><p>  oFile.close();</p><p>  P.clear();</p><p><b>  }</b></p><p><b>  10、顧客功能選擇</b&g

141、t;</p><p>  //——————————————選擇——————————————</p><p>  void Menu::customer(Interface cfy,char IDName[])</p><p><b>  {</b></p><p>  system("cls");&l

142、t;/p><p>  cfy.CustomerFace();</p><p>  Customer ct;</p><p>  int choice2;</p><p><b>  do{</b></p><p>  cin>>choice2;</p><p>  

143、switch (choice2)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  ct.book(IDName);</p><p><b>  break;</b></p><p><

144、b>  case 2:</b></p><p>  ct.refund(IDName);</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p><b>  default:</b></p&g

145、t;<p>  system("pause");</p><p>  system("cls");</p><p>  cfy.display();</p><p><b>  return ;</b></p><p><b>  }</b>&l

146、t;/p><p>  getchar();</p><p>  getchar();</p><p>  system("cls");</p><p>  cfy.CustomerFace();</p><p><b>  }</b></p><p><

147、;b>  while(1);</b></p><p><b>  }</b></p><p><b>  11、顧客——訂票</b></p><p>  //——————————————訂票——————————————</p><p>  void Customer::book(c

148、har IDName[])</p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n\t\t\t\t《訂票模塊》\n\n\n"<<endl;</p><p>  ifstream

149、 iFile1(IDName,ios::in);</p><p>  if(!iFile1)</p><p><b>  {</b></p><p>  cout<<"賬戶不存在"<<endl;</p><p><b>  return ;</b><

150、/p><p><b>  }</b></p><p>  char s1[7];</p><p>  iFile1.read((char *) &s1,sizeof(s1));</p><p><b>  User a;</b></p><p>  iFile1.read

151、((char *)&a,sizeof(User));</p><p>  while(!iFile1.eof())</p><p><b>  {</b></p><p>  Q.push_back(a);</p><p>  iFile1.read((char *)&a,sizeof(User));&l

152、t;/p><p><b>  }</b></p><p>  iFile1.close();</p><p>  ifstream iFile("MovieInfo.txt",ios::in);</p><p>  if(!iFile)</p><p><b>  {&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論