版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 面向?qū)ο蟪绦蛘n程設(shè)計</p><p> ?。?012/2013學(xué)年第一學(xué)期第20周)</p><p><b> 指導(dǎo)教師: </b></p><p> 班級:計算機科學(xué)與技術(shù)(1)班</p><p><b> 學(xué)號: </b></p><p>&l
2、t;b> 姓名:***</b></p><p> 面向?qū)ο蟪绦蛘n程設(shè)計任務(wù)書</p><p> 【題目】電影院自動售票機</p><p><b> 【目的】</b></p><p> 通過設(shè)計一個小型電影院的自動售票系統(tǒng),訓(xùn)練綜合運用所學(xué)知識處理實際問題的能力,強化面向?qū)ο蟮某绦蛟O(shè)計理念,使自
3、己的程序設(shè)計與調(diào)試水平有一個明顯的提高。</p><p><b> 【要求】</b></p><p> 1、每個學(xué)生必須獨立完成;</p><p> 2、課程設(shè)計時間為1周;</p><p> 3、設(shè)計語言采用C++;</p><p> 4、學(xué)生有事離校必須請假。課程設(shè)計期間,無故缺席按
4、曠課處理;缺席時間達(dá)四分之一以上者,未按規(guī)定上交實驗報告的學(xué)生,其成績按不及格處理。</p><p><b> 【內(nèi)容簡介】 </b></p><p> 有一個小型的電影院,這個電影院只有一個放映廳,廳里有10排座位,每排10個座位。這個電影院從早上8:00開始營業(yè),每2小時放映一部電影,營業(yè)至次日凌晨2點結(jié)束。這個電影院現(xiàn)在打算使用自動售票機,來讓觀眾自己購票。
5、現(xiàn)在請你為這個自動售票機編寫一個程序,使得這個自動售票機能夠正確工作。</p><p><b> 【考核標(biāo)準(zhǔn)】</b></p><p> 1、能夠正確出售某一場次,某一座位的票,成績≥60;</p><p> 2、能夠統(tǒng)計每一場次的出票情況,成績≥70;</p><p> 3、能夠統(tǒng)計每一天每一場次的出票情況,成
6、績≥80;</p><p> 4、能夠考慮不同場次的票價,不同座位的票價,界面設(shè)計友好,成績≥90。</p><p> 請仔細(xì)考慮這個題目中出現(xiàn)的各個實體,考慮如何保存數(shù)據(jù)。</p><p> 【工作內(nèi)容及工作計劃】</p><p> 面向?qū)ο蟪绦蛘n程設(shè)計</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è)計</b></p><p><b>
8、; 程序代碼與說明</b></p><p><b> 運行結(jié)果與分析</b></p><p><b> 心得與體會</b></p><p><b> 一、題目</b></p><p><b> 【題目】</b></p>
9、<p><b> 電影院自動售票機</b></p><p><b> 【目的】</b></p><p> 通過設(shè)計一個小型電影院的自動售票系統(tǒng),訓(xùn)練綜合運用所學(xué)知識處理實際問題的能力,強化面向?qū)ο蟮某绦蛟O(shè)計理念,使自己的程序設(shè)計與調(diào)試水平有一個明顯的提高。</p><p><b> 【要求】&l
10、t;/b></p><p> 1、每個學(xué)生必須獨立完成;</p><p> 2、課程設(shè)計時間為1周;</p><p> 3、設(shè)計語言采用C++;</p><p> 4、學(xué)生有事離校必須請假。課程設(shè)計期間,無故缺席按曠課處理;缺席時間達(dá)四分之一以上者,未按規(guī)定上交實驗報告的學(xué)生,其成績按不及格處理。</p><
11、p><b> 【內(nèi)容簡介】 </b></p><p> 有一個小型的電影院,這個電影院只有一個放映廳,廳里有10排座位,每排10個座位。這個電影院從早上8:00開始營業(yè),每2小時放映一部電影,營業(yè)至次日凌晨2點結(jié)束。這個電影院現(xiàn)在打算使用自動售票機,來讓觀眾自己購票。現(xiàn)在請你為這個自動售票機編寫一個程序,使得這個自動售票機能夠正確工作。</p><p>&l
12、t;b> 需求分析</b></p><p> 電影院自動售票機用戶使用時,必須先登錄或者注冊,不同的用戶登錄后進入不同功能界面,管理員賬戶系統(tǒng)默認(rèn)“CFY”,密碼:“1101”,顧客賬戶,由顧客自己注冊,然后每個顧客會有一個以賬戶名為文件名的txt文本,文本中第一行存賬戶密碼,接下來,存的是用戶的訂票信息。管理員賬戶則不用建立相應(yīng)的文本,只有有一個MovieInfo.txt用來存儲影片信息即
13、可。</p><p> 電影院自動售票機主要功能可分為兩個板塊:1、管理員板塊 2、售票板塊。</p><p> 管理員板塊擁有最高權(quán)限,可對電影的信息進行修改,比如:錄入(input)、顯示(show)、查找(search)、修改(change)、刪除(del);而售票系統(tǒng)則只進行售票(book)和退票(refund)。</p><p> 顧客板塊擁有最小權(quán)
14、限,只能對影片的預(yù)定(book)和退訂(refund)兩項功能。</p><p><b> 三、系統(tǒng)結(jié)構(gòu)圖</b></p><p><b> 系統(tǒng)的結(jié)構(gòu)圖如下:</b></p><p> 管理員賬戶無法注冊,系統(tǒng)默認(rèn)賬戶名:CFY,密碼:1101。</p><p> 顧客無論是注冊還是登錄成
15、功,都會自動轉(zhuǎn)入售票模塊,然后由用戶進行相應(yīng)的選擇。</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)調(diào)用save()
17、函數(shù),把vector中的數(shù)據(jù)寫入文件MovieInfo.txt,MovieInfo.txt的打開方式為清空。</p><p> 顧客登錄或注冊成功后,系統(tǒng)自動進入售票板塊,顧客可進行訂票與退票兩項操作。</p><p> 訂票功能:系統(tǒng)先分別沖MovieInfo.txt中和用戶文本中讀入相應(yīng)的數(shù)據(jù)到customer的vector容器P中和User的vector容器Q中,然后通過預(yù)定,得
18、到相應(yīng)的訂票信息。結(jié)束訂票時,把兩個容器中的數(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、類的設(shè)計</b></p><p> 首先設(shè)計一個電影信息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類派生,主要包含一個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ù)顯示簡單明了,類中兩成員函數(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)即將為您轉(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<<"對不起,您注冊的賬戶名已存在,請重新輸入一個新的賬戶名"<<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,正在為您轉(zhuǎn)入管理員系統(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<<",正在為您轉(zhuǎn)入訂票系統(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);//獲取當(dāng)前系統(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);//獲取當(dāng)前系統(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 查找結(jié)果如下:"<<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該影片當(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<<"對不起,您查找的電影還未上映或者已經(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 查找結(jié)果如下:"<<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該影片當(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<<"對不起,您所查找的當(dāng)天沒有影訊"<<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未找到結(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> //——————————————存儲——————————————</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)系上傳者。文件的所有權(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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影院售票系統(tǒng)_oracle課程設(shè)計
- 自動售票機十進制課程設(shè)計
- 電影院售票系統(tǒng)(軟件系統(tǒng)分析與建模課程設(shè)計)
- 航空售票系統(tǒng)+c++課程設(shè)計
- 電影院網(wǎng)站的課程設(shè)計--bs模式的電影院網(wǎng)站的設(shè)計與實現(xiàn)
- 電影院售票系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 電影院設(shè)計
- 畢業(yè)論文-電影院售票系統(tǒng)的設(shè)計與實現(xiàn)
- c++課程設(shè)計報告
- 自動售票機軟件的設(shè)計與實現(xiàn).pdf
- 電影院設(shè)計規(guī)范
- 電影院可行性報告
- 軟件工程課程設(shè)計--影院售票系統(tǒng)
- c++掃雷課程設(shè)計報告
- 基于SAF的電影院售票及管理系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 地鐵車站售票機
- 地鐵售票機改良設(shè)計——以南京地鐵自助售票機為例.pdf
- 電影院訂票.zip
- 基于FPGA的地鐵自動售票機系統(tǒng)設(shè)計.pdf
- 地鐵車站售票機
評論
0/150
提交評論