版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 面向對象程序課程設計</p><p> ?。?012/2013學年第一學期第20周)</p><p><b> 指導教師: </b></p><p> 班級:計算機科學與技術(1)班</p><p><b> 學號: </b></p><p>&l
2、t;b> 姓名:***</b></p><p> 面向對象程序課程設計任務書</p><p> 【題目】電影院自動售票機</p><p><b> 【目的】</b></p><p> 通過設計一個小型電影院的自動售票系統(tǒng),訓練綜合運用所學知識處理實際問題的能力,強化面向對象的程序設計理念,使自
3、己的程序設計與調試水平有一個明顯的提高。</p><p><b> 【要求】</b></p><p> 1、每個學生必須獨立完成;</p><p> 2、課程設計時間為1周;</p><p> 3、設計語言采用C++;</p><p> 4、學生有事離校必須請假。課程設計期間,無故缺席按
4、曠課處理;缺席時間達四分之一以上者,未按規(guī)定上交實驗報告的學生,其成績按不及格處理。</p><p><b> 【內容簡介】 </b></p><p> 有一個小型的電影院,這個電影院只有一個放映廳,廳里有10排座位,每排10個座位。這個電影院從早上8:00開始營業(yè),每2小時放映一部電影,營業(yè)至次日凌晨2點結束。這個電影院現(xiàn)在打算使用自動售票機,來讓觀眾自己購票。
5、現(xiàn)在請你為這個自動售票機編寫一個程序,使得這個自動售票機能夠正確工作。</p><p><b> 【考核標準】</b></p><p> 1、能夠正確出售某一場次,某一座位的票,成績≥60;</p><p> 2、能夠統(tǒng)計每一場次的出票情況,成績≥70;</p><p> 3、能夠統(tǒng)計每一天每一場次的出票情況,成
6、績≥80;</p><p> 4、能夠考慮不同場次的票價,不同座位的票價,界面設計友好,成績≥90。</p><p> 請仔細考慮這個題目中出現(xiàn)的各個實體,考慮如何保存數(shù)據(jù)。</p><p> 【工作內容及工作計劃】</p><p> 面向對象程序課程設計</p><p><b> 目 錄&l
7、t;/b></p><p><b> 題目</b></p><p><b> 需求分析</b></p><p><b> 系統(tǒng)結構圖</b></p><p><b> 類的設計</b></p><p><b>
8、; 程序代碼與說明</b></p><p><b> 運行結果與分析</b></p><p><b> 心得與體會</b></p><p><b> 一、題目</b></p><p><b> 【題目】</b></p>
9、<p><b> 電影院自動售票機</b></p><p><b> 【目的】</b></p><p> 通過設計一個小型電影院的自動售票系統(tǒng),訓練綜合運用所學知識處理實際問題的能力,強化面向對象的程序設計理念,使自己的程序設計與調試水平有一個明顯的提高。</p><p><b> 【要求】&l
10、t;/b></p><p> 1、每個學生必須獨立完成;</p><p> 2、課程設計時間為1周;</p><p> 3、設計語言采用C++;</p><p> 4、學生有事離校必須請假。課程設計期間,無故缺席按曠課處理;缺席時間達四分之一以上者,未按規(guī)定上交實驗報告的學生,其成績按不及格處理。</p><
11、p><b> 【內容簡介】 </b></p><p> 有一個小型的電影院,這個電影院只有一個放映廳,廳里有10排座位,每排10個座位。這個電影院從早上8:00開始營業(yè),每2小時放映一部電影,營業(yè)至次日凌晨2點結束。這個電影院現(xiàn)在打算使用自動售票機,來讓觀眾自己購票?,F(xiàn)在請你為這個自動售票機編寫一個程序,使得這個自動售票機能夠正確工作。</p><p>&l
12、t;b> 需求分析</b></p><p> 電影院自動售票機用戶使用時,必須先登錄或者注冊,不同的用戶登錄后進入不同功能界面,管理員賬戶系統(tǒng)默認“CFY”,密碼:“1101”,顧客賬戶,由顧客自己注冊,然后每個顧客會有一個以賬戶名為文件名的txt文本,文本中第一行存賬戶密碼,接下來,存的是用戶的訂票信息。管理員賬戶則不用建立相應的文本,只有有一個MovieInfo.txt用來存儲影片信息即
13、可。</p><p> 電影院自動售票機主要功能可分為兩個板塊:1、管理員板塊 2、售票板塊。</p><p> 管理員板塊擁有最高權限,可對電影的信息進行修改,比如:錄入(input)、顯示(show)、查找(search)、修改(change)、刪除(del);而售票系統(tǒng)則只進行售票(book)和退票(refund)。</p><p> 顧客板塊擁有最小權
14、限,只能對影片的預定(book)和退訂(refund)兩項功能。</p><p><b> 三、系統(tǒng)結構圖</b></p><p><b> 系統(tǒng)的結構圖如下:</b></p><p> 管理員賬戶無法注冊,系統(tǒng)默認賬戶名:CFY,密碼:1101。</p><p> 顧客無論是注冊還是登錄成
15、功,都會自動轉入售票模塊,然后由用戶進行相應的選擇。</p><p> 管理員登錄成功后,系統(tǒng)會自動進入管理板塊,在進入管理板塊時,先通過read()把MovieInfo.txt中的數(shù)據(jù)讀入管理員類中自定義的vector中,然后管理員可實現(xiàn)對影片的諸多操作,</p><p> 錄入功能:根據(jù)影訊錄入新的電影信息。</p><p> 顯示功能:將電影的播放時間與
16、系統(tǒng)時間比較,以判斷電影是否已經(jīng)播放或正在播放。</p><p> 查找功能:有按電影名稱查詢和按播放時間查詢兩種查詢方式。</p><p> 修改功能:可對影片的每個屬性進行修改。</p><p> 刪除功能:通入輸入要刪除的影片名,通過vector自身的刪除函數(shù)erase()。</p><p> 管理員退出后,系統(tǒng)調用save()
17、函數(shù),把vector中的數(shù)據(jù)寫入文件MovieInfo.txt,MovieInfo.txt的打開方式為清空。</p><p> 顧客登錄或注冊成功后,系統(tǒng)自動進入售票板塊,顧客可進行訂票與退票兩項操作。</p><p> 訂票功能:系統(tǒng)先分別沖MovieInfo.txt中和用戶文本中讀入相應的數(shù)據(jù)到customer的vector容器P中和User的vector容器Q中,然后通過預定,得
18、到相應的訂票信息。結束訂票時,把兩個容器中的數(shù)據(jù)更新到兩個文本中,并清空容器中的數(shù)據(jù)。</p><p> 退票功能:同樣需要先從文本中讀入信息,然后通過P Q兩容器中的數(shù)據(jù),先將Q容器中的信息輸出到屏幕,可直觀得到已定的票的情況,然后根據(jù)P Q兩容器中的數(shù)據(jù)信息,對所要退的票進行判斷,判斷能否退票。最后同樣更新文件中的數(shù)據(jù),清空P Q容器中的數(shù)據(jù)。</p><p><b>
19、類的設計</b></p><p> 首先設計一個電影信息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類中建立相應的數(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類派生,主要包含一個Ticket容器和對基類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,類中主要包含一個Ticket的vector容器P及其迭代器pos和User的vector容器Q已經(jīng)
32、迭代器pos1;和兩個帶參功能函數(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類中的四個函數(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ù)顯示簡單明了,類中兩成員函數(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> 此類實現(xiàn)對賬戶的注冊與登錄。其實管理員只能登錄,無法注冊!</p><p><b> 程序代碼與說明</b></p><
39、;p><b> 一、功能函數(shù):</b></p><p><b> 1、注冊</b></p><p> //——————————————注冊——————————————</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<<"請輸入您要注冊的用戶名:\n";</p><p> g
41、ets(IDName);</p><p> cout<<"請輸入您要注冊的密碼(6位):\n";</p><p> gets(password);</p><p> if(strcmp(IDName,"CFY")==0) //保證不能注冊管理員賬戶</p><p><b>
42、 {</b></p><p> cout<<"CFY為管理員賬戶,您不能注冊!請重新注冊"<<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<<"注冊成功,系統(tǒng)即將為您轉入購票系統(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<<"對不起,您注冊的賬戶名已存在,請重新輸入一個新的賬戶名"<<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<<"請輸入用戶名:\n";</p><p> gets(IDName);</p><p> cout<<"請輸入密碼:\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,正在為您轉入管理員系統(tǒ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> <<"請重輸入正確用戶信息或進行注冊"<<"\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<<",正在為您轉入訂票系統(tǒ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<<"用戶名或密碼錯誤,請重新登錄!"<<endl</p><p> <<"請重新登錄或退出注冊"<<"\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<<"原庫中不存在電影,請管理員添加"<<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請輸入日期(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請輸入放映時間(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請輸入場次:";</p><p><b> cin>>n;</b></p><p> Movie.setNum(n);</p><p> cout<<"\n請輸入電影名稱:";</p><p><b
81、> cin>>na;</b></p><p> Movie.setMovieName(na);</p><p> cout<<"\n請輸入電影票價:";</p><p><b> cin>>y1;</b></p><p> Movie.s
82、etPrice(y1);</p><p> cout<<"\n請輸入會員折扣:";</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時-間\t場次\t電影名稱\t票價\t折扣\t余票"<<endl<<endl;</p><p><b> time_t
91、 t;</b></p><p> struct tm *tim;</p><p> t=time(NULL);//獲取當前系統(tǒng)時間</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);//獲取當前系統(tǒng)時間</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請輸入查找模式:";</p><p> cin>>choice;</p><p> if(choice!=1&&choice!=2)</p><p> cout<<"\n\a\t\t\t\t選擇有誤!請選擇正確的查找模式。"<<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<<"請輸入要查找的影片名\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 查找結果如下:"<<endl;</p><p> cout<<"_______________________________________________________________________________"<<endl;</p><p>
109、; cout<<"日----期\t時-間\t場次\t電影名稱\t票價\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該影片當前預訂情況\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<<"對不起,您查找的電影還未上映或者已經(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;"請輸入要查找的日期(年-月-日)"<<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 查找結果如下:"<<endl;</p><p> cout<<"_______________________________________________________________________________"<<endl;</p><p> co
123、ut<<"日----期\t時-間\t場次\t電影名稱\t票價\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該影片當前預訂情況\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<<"對不起,您所查找的當天沒有影訊"<<endl;</p><p><b> }</b></p><p><b
131、> }</b></p><p><b> 8、管理員——刪除</b></p><p> //——————————————刪除——————————————</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請輸入需要刪除的影片名:";&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未找到結果,刪除失?。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> //——————————————存儲——————————————</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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影院售票系統(tǒng)_oracle課程設計
- 自動售票機十進制課程設計
- 電影院售票系統(tǒng)(軟件系統(tǒng)分析與建模課程設計)
- 航空售票系統(tǒng)+c++課程設計
- 電影院網(wǎng)站的課程設計--bs模式的電影院網(wǎng)站的設計與實現(xiàn)
- 電影院售票系統(tǒng)的設計與實現(xiàn).pdf
- 電影院設計
- 畢業(yè)論文-電影院售票系統(tǒng)的設計與實現(xiàn)
- c++課程設計報告
- 自動售票機軟件的設計與實現(xiàn).pdf
- 電影院設計規(guī)范
- 電影院可行性報告
- 軟件工程課程設計--影院售票系統(tǒng)
- c++掃雷課程設計報告
- 基于SAF的電影院售票及管理系統(tǒng)的設計與實現(xiàn).pdf
- 地鐵車站售票機
- 地鐵售票機改良設計——以南京地鐵自助售票機為例.pdf
- 電影院訂票.zip
- 基于FPGA的地鐵自動售票機系統(tǒng)設計.pdf
- 地鐵車站售票機
評論
0/150
提交評論