版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
內(nèi)蒙古科技大學本科生《C++程序設(shè)計》課程設(shè)計說明書題目:電影院售票系統(tǒng)學生姓名:學號:專業(yè):計算機科學與技術(shù)班級:計2010-1班指導教師:
成績評定標準課程設(shè)計的驗收答辯采取“講解程序+提問+即時編程”的方式。考核項目評價質(zhì)量成績程序功能完全實現(xiàn),并能通過答辯。(60%)A能完全正確回答提問;B問題回答的基本意思正確;C不能回答或回答錯誤,抽取程序小的功能即時編程,能完成;D不能回答或回答錯誤,即時編程無法完成;程序設(shè)計符合面向?qū)ο蟮乃枷牒驮瓌t,結(jié)構(gòu)合理(15)A程序結(jié)構(gòu)層次分明,提取出各個實體類,類的設(shè)計合理;B程序結(jié)構(gòu)層次分明,具有客戶類和服務類;C類的設(shè)計基本正確;D幾乎在一個類或者方法中實現(xiàn)了大部分的邏輯,結(jié)構(gòu)不夠清晰;程序的風格(10%)A遵守編碼規(guī)范,有良好的風格;以下問題每出現(xiàn)一項成績降一個等級:1.類、方法和變量命名不符合規(guī)范;2.方法和屬性前缺少注釋;3.程序沒有適當縮進;設(shè)計說明書(15%)從以下幾方面考核:1.結(jié)構(gòu)完整2.圖表正確3.文字通順4.版面工整目錄TOC\o"1-5"\h\z\o"CurrentDocument"成績評定標準2【摘要】5第一章問題描述61.1電影院售票管理系統(tǒng)的設(shè)計6第二章問題分析8\o"CurrentDocument"2.1闡述你對問題的理解、解決問題的方案說明8\o"CurrentDocument"2.2系統(tǒng)功能模塊的劃分8第三章數(shù)據(jù)模型10\o"CurrentDocument"3.1相關(guān)數(shù)據(jù)結(jié)構(gòu)的說明類的設(shè)計10\o"CurrentDocument"3.2程序結(jié)構(gòu)說明,即程序各個部分之間如何協(xié)調(diào)來完成任務12\o"CurrentDocument"3.3全局變量,重要形式參數(shù)、局部變量等等,它們的命名及用途解釋15第四章算法描述17\o"CurrentDocument"4.1解題算法的設(shè)計思路介紹17\o"CurrentDocument"4.2主要程序代碼,加上詳細的注釋19\o"CurrentDocument"4.3畫出程序流程圖43第五章設(shè)計總結(jié)54第六章附錄55參考文獻74【摘要】電影院售票管理系統(tǒng)兩個模塊管理系統(tǒng)和售票系統(tǒng)。管理系統(tǒng)具有如下功能:(1)錄入信息:且可不定時增加數(shù)據(jù)。并根據(jù)放映時間排序。(2)瀏覽信息:可顯示出某日期所有放映信息,如果當前系統(tǒng)時間超過了某電影的放映時間,則顯示“此電影放映結(jié)束”的提示信息。(3)查詢電影:可按日期或電影名查詢。并顯示目標的詳細信息。(4)修改信息:可根據(jù)電影名修改該電影的各種信息(余票除外)并簡單排序。(5)刪除電影:根據(jù)電影名找到該電影并刪除。售票系統(tǒng)功能如下:(1)售票:售票即為影片預定??筛鶕?jù)輸出的可預訂信息選擇訂票,如果該影片已放映,則提示不能訂票,如果售票成功,自動跟新座位數(shù)。(2)退票:影片退訂即退票。根據(jù)放映時間和系統(tǒng)時間來判斷是否能進行退票,并自動更新座位數(shù)。其他參數(shù):程序中定義了一個node結(jié)構(gòu)和一個ticket類。結(jié)構(gòu)用來存信息,節(jié)點類存節(jié)點長度,和管理里面的數(shù)據(jù)。第一章問題描述1.1電影院售票管理系統(tǒng)的設(shè)計設(shè)計資料及參數(shù):用C++設(shè)計一個系統(tǒng),能提供下列服務:(1)錄入放映信息,格式為:放映日期放映時間場次電影名稱票價會員折扣剩余座位2011-11-210:301桃姐308782011-11-214:002桃姐30886可不定時地增加放映數(shù)據(jù)。(2)瀏覽放映信息,可顯示出某日期所有放映信息,如果當前系統(tǒng)時間超過了某電影的放映時間,則顯示“此電影放映結(jié)束”的提示信息。(3)查詢電影:可按日期或電影名查詢。(4)售票和退票功能A:查詢電影名。當剩余座位數(shù)大于0,并且當前系統(tǒng)時間小于放映時間時才能售票,計算會員折扣,售票后自動更新剩余座位數(shù)。B:退票時,輸入退票的電影名和場次,當電影未放映時才能退票,如果以會員折扣購買的電影票,退票按照折扣價退款,退票后自動更新剩余座位數(shù)。設(shè)計要求及成果根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)分析系統(tǒng)中的各個實體之間的關(guān)系及其屬性和行為;(2)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(3)完成類層次中各個類的描述(包括屬性和力一法);完成類中各個成.員函數(shù)的定義;完成系統(tǒng)的應用模塊;功能調(diào)試;完成系統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書。第二章問題分析2.1闡述你對問題的理解、解決問題的方案說明由設(shè)計題目知電影院售票管理系統(tǒng)主要可分為兩個大模塊:1.管理系統(tǒng)2.售票系統(tǒng)。對整個系統(tǒng)進行功能分析不難發(fā)現(xiàn),管理系統(tǒng)和售票系統(tǒng)的權(quán)限是不一樣的,管理系統(tǒng)具有管理員權(quán)限,可以對所有數(shù)據(jù)的信息進行操作,比如:錄入(input)、顯示(show)、查找(search)、修改(change)、刪除(del);而售票系統(tǒng)則只進行售票(sell)和退票(refund)。所以需要設(shè)計一個manager和customer函數(shù)來區(qū)分權(quán)限的函數(shù)。所以,manager里包含了需要實現(xiàn)的input、show、search、change>del等函數(shù)來滿足管理要求的功能。Customer包含sell和refundo2.2系統(tǒng)功能模塊的劃分系統(tǒng)的模塊圖如下:管理函數(shù)進入時需要管理密碼:1234運行程序時,需要先輸入數(shù)據(jù),根據(jù)需要在對數(shù)據(jù)進行簡單操作。錄入時,每錄入一個信息就會對現(xiàn)有信息進行插入排序。顯示數(shù)據(jù)時,會先跟系統(tǒng)時間比較,如果小于系統(tǒng)當前時間,則輸出提示“已播放”。查找時滿足要求的按名字查找和按日期查找。找到之后與系統(tǒng)時間比較輸出提示,如果沒找到,輸出提示。修改函數(shù)支持多種修改,可以避免輸入的一些錯誤。也可以修改日期,以調(diào)整放映時間。刪除函數(shù)是為防止輸入錯誤,或是內(nèi)存不夠用而設(shè)計的。比如前幾天已播放的,在內(nèi)存中如果作用不是很大,完全是可以刪除的。這樣能跟有效利用資源。售票系統(tǒng)設(shè)計較為簡單,主要是訂票和退票。訂票函數(shù)中會先給出可預訂的提示,這樣可以更有效訂票。輸入之后會先檢查是否播放,若播放則給出提示,退出。若未找到,則同樣給出提示。如果票賣光了,仍然有提示,如果電影達到預定要求,則先給出現(xiàn)有座位的預訂情況,方便用戶高效率訂票。當客戶輸入一座位時程序會判斷這個作為是否被預訂,如果是,則給出提示;如果no就輸出用戶需要支付的金額,并記錄在座位號對應的數(shù)組中。方便退票時退款。訂票成功后還會輸出現(xiàn)有座位的信息方便核實。其中訂票和退票函數(shù)都是用大篇幅(一兩百行)來構(gòu)建起強大而有完善的提示功能,趨于人性化的設(shè)計跟拉近了與客戶的距離。
第三章數(shù)據(jù)模型3.1相關(guān)數(shù)據(jù)結(jié)構(gòu)的說明類的設(shè)計程序中定義的數(shù)據(jù):structnode{intyear;structnode{intyear;intmonth;intday;inthour;intminute;intdatetime[5];//裝時間intnum;stringname;floatprice;floatdiscount;intrest;floatseat[10][10];};nodetic[N];intlen;public:ticket();方便比較~ticket();intsort(inti);voidinput();voidshow();voidsearch();voidchange();voiddel();voidsell();voidrefund();}tick;對系統(tǒng)進行數(shù)據(jù)分析就會知道電影院售票管理系統(tǒng)主要處理的是基本電影信息。每個電影的基本信息放在structnode中定義,包括基本的放映日期(date),時間(time),場次(num),影片名(name),票價(price),會員折扣(discount)及余座(rest)。其中日期是包含有年、月、日,時間包含時、分,整形數(shù)據(jù),其中還有一個數(shù)組(detetime[5])是把該影片時間存儲進去,方便以后的排序和與系統(tǒng)時間比較。還有一個而二維數(shù)組seat[10][10],是用來存儲座位信息(初始化全為0),如果此座位被預定,則對應的座位存的就是訂票時的付款,這也方便了退票時的退款。還要解決數(shù)據(jù)的組織問題,怎么才能把不同的電影存起來呢?方法目前只學了兩種,數(shù)組和鏈表。數(shù)組和鏈表各有優(yōu)缺點。用鏈表實現(xiàn)雖然對空間進行了充分利用,但其對數(shù)據(jù)的存儲讓人實在無奈,并且操作也不容易實現(xiàn)。剩下就是數(shù)組了,雖然需要定義一個大點的數(shù)組,但其對數(shù)據(jù)操作非常方便,這深受初學者的我們的青睞。所以在ticket類中定義了個node[50]。如果需要擴大直接改文件前的#defineN后的數(shù)字就可以了。其實質(zhì)隨意選擇把電影信息存在結(jié)構(gòu)體而不是類中,主要考慮到,結(jié)構(gòu)體存取數(shù)據(jù)的方便性,而采用類無疑會給程序很多負擔存取。數(shù)據(jù)組織結(jié)構(gòu)圖:ticket類Input()Show()Search()Change()Del()Sell()Refund()lennode[50]3.2程序結(jié)構(gòu)說明,即程序各個部分之間如何協(xié)調(diào)來完成任務程序的主要實現(xiàn)過程是在ticket類中定義的成員函數(shù)來實現(xiàn)完成,并且在類外定義。這樣方便了對數(shù)據(jù)進行操作。并且定義了一個全局的比較函數(shù)timecmp,可以比較兩個時間數(shù)組的大小。此函數(shù)在程序中用途很廣泛,每次輸入輸出都需要與系統(tǒng)時間進行比較,所以在每個操作函數(shù)中都用到了。此外sort函數(shù)也是非常有用的,它主要用在輸入和修改上。每次更新數(shù)據(jù)都會根據(jù)現(xiàn)有數(shù)據(jù)的時間進行排序。這也方便了讀數(shù)據(jù)的客戶。其中程序總很多代碼是重復用到的,但是沒有寫成函數(shù)來調(diào)用有兩點原因。首先如果寫成函數(shù)調(diào)用的話會降低程序的可讀性,其次寫成函數(shù)的話,代碼就固定下來了,使得程序不夠靈活。所以在程序不必要的地方,就用代碼來代替函數(shù)調(diào)用。舉個例子說,在修改,刪除,訂票,退票中都會用到按電影名查找。可是沒有單獨把按電影名查找單獨寫成函數(shù)來調(diào)用,是因為在按電影名查找會輸出很多詳細的電影信息,會使客戶感覺到是在浪費時間。下面是按電影名查找的代碼片段:for(i=0;i<tick.len;i++)//遍^{if(timecmp(tick.tic[i].datetime,temp,3)==0)//找到0{k++;//找到的記錄數(shù)if(j==1){cout<<"\n查找結(jié)果如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次\t電影名稱\t票價\t折扣\t余票"<<endl<<endl;}j++;cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};ints;s=timecmp(tick.tic[i].datetime,array,5);//與系統(tǒng)時間比較if(s<=0){cout<<"\a(已播放!)"<<endl;}else{cout<<endl;}cout<<endl<<"\t\t\t\t當前預訂情況";for(intm=0;m<10;m++){cout<<endl<<"\t";for(intn=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}cout<<endl;}}if(j!=1){cout<<endl;system("pausen);//任意鍵繼續(xù)return;}if(i==tick.len&&k==0){cout<<"\n\a\t\t\t\t未找到結(jié)果!"<<endl;system("pausen);//任意鍵繼續(xù)return;}}而在另一些函數(shù)種植需要提示用戶找沒找到就可以了。下面是del函數(shù)的按電影名查找for(i=0;i<tick.len;i++){if(tick.tic[i].name==na)/俄至0{j++;for(intj=i+1;j<tick.len;j++){tick.tic[j-1]=tick.tic[j];}cout<<endl<<"\t\t\t\t刪除成功!\n";tick.len--;}}if(i==tick.len&&j==0){cout<<"\n\a\t\t\t\t未找到結(jié)果,刪除失??!\n"<<endl;system("pausen);//任意鍵繼續(xù)return;}后面的就不再一一列舉。classticket{private:nodetic[N];//存電影的數(shù)組intlen;//classticket{private:nodetic[N];//存電影的數(shù)組intlen;//現(xiàn)有電影數(shù)量public:ticket。;//構(gòu)造函數(shù)~ticket();//析構(gòu)函數(shù)intsort(inti);//排序voidinputOy/錄入voidshow();//顯示voidsearch。;//查找voidchange();//修改voiddel();//刪除voidsell();//訂票voidrefund()//退票;}tick;#defineN50//可存電影總數(shù)程序中定義的數(shù)據(jù):structnode{intyear;//年intmonth;//月intday;//日inthour;//時intminute;//分intdatetime[5];//裝時間,方便比較intnum^/場次stringname;//電影名floatprice;//票價floatdiscount;//會員折扣intrest;//余票floatseat[10][10];//座位信息};3.inttimecmp(inta[],intb[],intn)//時間比較函數(shù),先把時間裝入兩個數(shù)組,把數(shù)組地址傳進來,比較a,b分別是數(shù)組名。n表示循環(huán)比較的次數(shù)。charch;//接受日期中的字符一或:stringna;//輸入的姓名time_tt;//時間變量,已包含在頭文件庫函數(shù)ctime中。structtm*tim;//時間類型的結(jié)構(gòu)體t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);10.intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};//將系統(tǒng)時間裝入數(shù)組,方便比較11.intk=0;//標記找到的記錄12.r=timecmp(tick.tic[i].datetime,array,5);//與系統(tǒng)時間比較,返回值給j=0;//修改函數(shù)中標記修改數(shù)量stringinpass;//manager函數(shù)中的管理員密碼初始值1234Flag,as,choice//是用來存接受的選擇的第四章算法描述4.1解題算法的設(shè)計思路介紹timecmp函數(shù)是用來比較日期時間函數(shù),它需要先把兩個時間裝入數(shù)組再傳進來地址,然后從年月日時分進行比較。如果有大小區(qū)分,直接返回。inttimecmp(inta[],intb[],intn){for(inti=0;i<n;i++){if(a[i]>b[i]){return1;}if(a[i]<b[i]){return-1;}}if(i==n){return0;}}//////Sort函數(shù)主要是對第i個元素進行插入排序。需要先遍歷數(shù)組然后插入到第一個比他大的元素前面。intticket::sort(inti){intr,n,j;for(j=0;j<i;j++)//從首元素開始比較日期{r=timecmp(tick.tic[i].datetime,tick.tic[j].datetime,5);if(r==-1)//找到第一個比他大的日期,插入其前面{break;}}if(j==tick.len-1){returnj;}if(j==i){一for(j=i+1;j<tick.len;j++)//從首元素開始比較日期{r=timecmp(tick.tic[i].datetime,tick.tic[j].datetime,5);if(r==-1)//找到第一個比他大的日期,插入其前面{break;}}}nodetemp=tick.tic[i];if(j<i){for(n=i;n>j;n--){tick.tic[n]=tick.tic[n-1];}tick.tic[j]=temp;returnj;}else{if(j==tick.len){for(n=i;n<j-1;n++){tick.tic[n]=tick.tic[n+1];}}else{for(n=i;n<j;n++){tick.tic[n]=tick.tic[n+1];}}tick.tic[n]=temp;returnn;}}4.2主要程序代碼,加上詳細的注釋下面簡單介紹一下程序運行結(jié)果主函數(shù)開始運行界面:do{cout<<endl<<endl<<endl<<endl;cout<<"\t\t\t\t歡迎使用電影售票系統(tǒng)”;cout<<endl<<endl<<endl;cout<<"\n\t\t\t\t1.管理系統(tǒng)”;cout<<"\n\t\t\t\t2.售票系統(tǒng)";cout<<"\n\n\n\t\t\t\t請選擇:";cin>>choice;switch(choice){case'1':manager();break;case'2':customer();break;default:exit(0);}}while(1);Manager系統(tǒng)代碼及運行截圖密碼輸入界面代碼do{cout<<endl<<"請輸入管理員密碼:”stringinpass;chara;cin>>inpass;if(inpass==password){break;}else{cout<<endl<<"\a\t\t\t\t密碼錯誤!”;}cout<<endl<<"是否繼續(xù)輸入?(Y/N)"cin>>a;if(a=='N'||a=='n'){exit(0);}}while(1);選擇菜單代碼do{cout<<"\n\t\t\t\t歡迎進入管理系統(tǒng)\n\n";cout<<"\n\t\t\t\t1.錄入影片”;cout<<"\n\t\t\t\t2.顯示影片”;cout<<"\n\t\t\t\t3.查找影片”;cout<<"\n\t\t\t\t4.修改影片”;cout<<"\n\t\t\t\t5.刪除影片”;cout<<"\n\t\t\t\t6.退出";cout<<"\n\n\n\t\t\t\t請選擇:";cin>>as;switch(as){caseT:tick.input();break;case'2':tick.show();break;case'3':tick.search();break;case'4':tick.change();break;case'5':tick.del();break;case'6':default:system("pausen);return;//任意鍵繼續(xù)}}while(1);}選擇1——管理系統(tǒng)一一>輸入密碼匚:*U5ers\hsp\Desktop\E?i&4\4.exe"密怛君誤!密怛君誤!取迎進人管理系統(tǒng)請輸人管理員密祜12斧否繼續(xù)輸入?「53請輸入菅理員密嗎:1234新影新影寰A小校改節(jié)錄顯查修欖■■■■■■123456選擇1>錄入voidticket::input()//錄入信息{system(ncls");//清屏charch;//接受日期中的字符一或:cout<<"\n\n\n\t\t\t\t《錄入模塊》\n\n\n"<<endl;for(inti=tick.len;i<N;i++){cout<<"\n請輸入日期(2011-11-11):";cin>>tick.tic[i].year>>ch>>tick.tic[i].month>>ch>>tick.tic[i].day;cout<<"\n請輸入放映時間(12:30):";cin>>tick.tic[i].hour;cin>>ch;cin>>tick.tic[i].minute;tick.tic[i].datetime[0]=tick.tic[i].year;tick.tic[i].datetime[1]=tick.tic[i].month;tick.tic[i].datetime[2]=tick.tic[i].day;tick.tic[i].datetime[3]=tick.tic[i].hour;tick.tic[i].datetime[4]=tick.tic[i].minute;cout<<"\n請輸入場次:";cin>>tick.tic[i].num;cout<<"\n請輸入電影名稱:";cin>>tick.tic[i].name;cout<<"\n請輸入電影票價:";cin>>tick.tic[i].price;cout<<"\n請輸入會員折扣:";cin>>tick.tic[i].discount;tick.tic[i].rest=100;for(intm=0;m<10;m++){for(intn=0;n<10;n++)tick.tic[i].seat[m][n]=0;}tick.len++;//個數(shù)加1if(i!=0)//按時間,插入排序{intj=sort(i);}cout<<endl;cout<<"是否繼續(xù)錄入?(y/n):";while(1){cin>>ch;if(ch=='y'IIch=='Y'IIch=='n'IIch=='N')break;elsecout<<"輸入錯誤請重新輸入:";}if(ch=='n'IIch=='N')break;}選擇n退出——>選2顯示。代碼如下cout<<"\n\n\n\t\t\t\t《顯示模塊》\n\n\n"<<endl;cout<<"所有電影信息如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次\t電影名稱"票價\t折扣\t余票"<<endl<<endl;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};intr;for(inti=0;i<tick.len;i++){r=timecmp(tick.tic[i].datetime,array,5);cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;if(r<=0){cout<<"\a(已播放!)"<<endl;}else{cout<<endl;}}時-同電影名稱折扣UUWana21*11〔已播放、?。﹊mm時-同電影名稱折扣UUWana21*11〔已播放、?。﹊mm〔已播放.!)砍迎迸入管理系統(tǒng)影影影影影
入示找改蚩
錄顯查修顰-----S1#344t>請選擇;選擇1>繼續(xù)錄入■1'C:\LJsers\h5p\De5ktop\KlTH4X4,&xe"《尿;R模塊》所有電影:信息如下,選擇2>顯示E)"C:\Users\hsp\Desktop\SciS4\4.exe'|■=■||回||^^|所有電影信息如下:1B-一期時-間場次電影名稱票價折扣2011-12-1112:202UWU222100(已固放?。?011-12-1910:301qqq111100(已腐成!)2011-12-2210:303eee3331001選3>查找查找的界面代碼cout<<"\n\n\n\t\t\t\t《查找模塊》\n\n\n"<<endl;do{cout<<endl<<"\t\t\t\t1.按影片名查找”;cout<<endl<<"\t\t\t\t2.按日期查找”;cout<<endl<<"\t\t\t\t請輸入查找模式:";cin>>flag;if(flag!='1'&&flag!='2'){cout<<"\n\a\t\t\t\t選擇有誤!請選擇正確的查找模式。"<<endl;}}while(flag!='1'&&flag!='2');按電影名查找代碼stringna;intj=1;cout<<"\n請輸入影片名:";cin>>na;for(i=0;i<tick.len;i++){if(tick.tic[i].name==na)/俄至0{k++;//找到的記錄數(shù)if(j=1){cout<<"\n查找結(jié)果如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次\t電影名稱\t票價\t折扣\t余票"<<endl<<endl;j++;cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};intr;r=timecmp(tick.tic[i].datetime,array,5);//與系統(tǒng)時間比較if(r<=0){cout<<"\a(已播放!)"<<endl;}else{cout<<endl;}cout<<endl<<"\t\t\t\t當前預訂情況";for(intm=0;m<10;m++){cout<<endl<<"\t";for(intn=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}}}if(j!=1){cout<<endl;system("pausen);//任意鍵繼續(xù)return;}if(i==tick.len&&k==0)
{cout<<"\n\a\t\t\t\t未找到結(jié)果!"<<endl;system(Hpausen);//任意鍵繼續(xù)return;}按日期查找代碼charch;inttemp[3];cout<<"\n請輸入放映日期:";cin>>temp[0]>>ch>>temp[1]>>ch>>temp[2];intj=1;for(i=0;i<tick.len;i++)//遍^{if(timecmp(tick.tic[i].datetime,temp,3)==0)//找到0{k++;//找到的記錄數(shù)if(j==1){cout<<"\n查找結(jié)果如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次\t電影名稱"票價"折扣\t余票"<<endl<<endl;}j++;cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};ints;s=timecmp(tick.tic[i].datetime,array,5);//與系統(tǒng)時間比較if(s<=0){cout<<"\a(已播放!)"<<endl;}else{cout<<endl;}cout<<endl<<"\t\t\t\t當前預訂情況";for(intm=0;m<10;m++){cout<<endl<<"\t";for(intn=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}cout<<endl;}}if(j!=1){cout<<endl;system("pausen);//任意鍵繼續(xù)
return;}if(i==tick.len&&k==0){cout<<"\n\a\t\t\t\t未找到結(jié)果!"<<endl;system(Hpausen);//任意鍵繼續(xù)return;}未找到落里!詰輸/V放II央廿朗:2011-12-21未找到落里!清按任意鋌繼簌一退出后選4>修改修改界面的源代碼if(tick.tic[i].name==na)//找至0{j++;chara;do{cout<<endl<<"\t\t\t\t1修改放映日期(2011-11-11)";cout<<endl<<"\t\t\t\t2修改放映時間(12:30)”;cout<<endl<<"\t\t\t\t3修改放映場次”;coutvvendlvv"\t\t\t\t4修改影片名稱”;coutvvendlvv"\t\t\t\t5修改影片票價”;coutvvendlvv"\t\t\t\t6修改會員折扣”;cout<<endl<<endl<<endl;coutv<endl<v"\t\t\t\t請選擇修改項:";intflag;cin>>flag;charch;switch(flag){case1:coutvv"\n請輸入放映日期:”;cin>>tick.tic[i].year>>ch>>tick.tic[i].month>>ch>>tick.tic[i].day;tick.tic[i].datetime[0]=tick.tic[i].year;tick.tic[i].datetime[1]=tick.tic[i].month;tick.tic[i].datetime[2]=tick.tic[i].day;i=sort(i);break;case2:coutvv"\n請輸入放映時間:”;cin>>tick.tic[i].hour>>ch>>tick.tic[i].minute;tick.tic[i].datetime[3]=tick.tic[i].hour;tick.tic[i].datetime[4]=tick.tic[i].minute;i=sort(i);break;case3:coutvv"\n請輸入放映場次:”;cin>>tick.tic[i].num;break;case4:coutvv"\n請輸入影片名:”;cin>>tick.tic[i].name;break;case5:coutvv"\n請輸入票價:”;cin>>tick.tic[i].price;break;case6:coutvv"\n請輸入會員折扣:”;cin>>tick.tic[i].discount;break;default:break;}coutvvendlvv"是否繼續(xù)修改此影片?(Y/N)";cin>>a;}while(a!='N'&&a!='n');coutvv"當前電影信息如下:"vvendl;退出后選4>修改coutvv"日----期\t時-間\t場次"電影名稱"票價"折扣\t余票"vvendlvvendl;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};intr;r=timecmp(tick.tic[i].datetime,array,5);cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;if(r<=0){cout<<"\a(已播放!)"<<endl;}else{cout<<endl;}system("pausen);//任意鍵繼續(xù)return;}青按任意鍵繼續(xù)E5"C:\Users\hsp\Desktop\SdS4\4.exe'青按任意鍵繼續(xù)E5"C:\Users\hsp\Desktop\SdS4\4.exe'《修改模塊》請輸入影片名;Md未找到結(jié)果,修改失敗!■3"C:\Users\h§p\DesIctop、改進4\4,exe'■<■<修改模塊》請輸入影片名:qqq(2011-11-11?(12:30>(2011-11-11?(12:30>放放放影影會
改改改改改改請輸入放映日期:2011-12-23是否繼續(xù)修改此影片?W/N)n當前電影信息如下:時-間場次電影名稱票價折扣余票011-12-2310:301qqq時-間場次電影名稱票價折扣余票011-12-2310:301qqq111100T"C:\LJ5ers\hsp\Desktop\Sj2:4\4.exenUII回所有電影信息如下:日——期時-間場次電影名稱票價折扣2011-12-1112:202UIJU222100(已播放!')2011-12-2210:303eee3331002011-12-2310:301qqq111100T-退出選5——>刪除刪除代碼如下system(nclsn);//清屏cout<<"\n\n\n\t\t\t\t《刪除模塊》\n\n\n"<<endl;stringna;inti;intj=0;//標記刪除的數(shù)量cout<<"\n請輸入需要刪除的影片名:";cin>>na;for(i=0;i<tick.len;i++){if(tick.tic[i].name==na)//找至0{j++;for(intj=i+1;j<tick.len;j++){tick.tic[j-1]=tick.tic[j];}cout<<endl<<"\t\t\t\t刪除成功!\n";tick.len--;}}if(i==tick.len&&j==0){cout<<"\n\a\t\t\t\t未找到結(jié)果,刪除失敗!\n"<<endl;system("pausen);//任意鍵繼續(xù)return;}?!"C;\Uscrs\hsp\Drsktop\Eftj24\4,exc"再顯示?'*C:\IJ5ers\hsp\Desktop\StiS4\4.exe"TOT回所有電影信息如下:日----期時-間場次電戢名稱票價折扣余票2011-12-1112:202vjuij222100(已播方2011-12-2310:301qqq111100攵!)選6>退出P五"C:\Users\hsp\Desktop\exe'|=i||回田1襖迎使,用電乾售享系統(tǒng)請詵擇,2.進入售票系統(tǒng)選1——>訂票"C:\UsersXhsp\Desktop\改?4\4.exe"歡迎進入售票翅統(tǒng)定訂定訂II--123請選擇:1可預訂電影信息輸出cout<<"\n\n\n\t\t\t\t《售票模塊》\n\n\n"<<endl;cout<<"可預訂的電影信息如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次章電影名稱\t票價"折扣\t余票"<<endl<<endl;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};intr,i;intk=0;//標記可供預定的影片數(shù)量for(i=0;i<tick.len;i++){r=timecmp(tick.tic[i].datetime,array,5);if(r>0){k++;cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest<<endl;}}查找信息if(i==tick.len&&k==0){cout<<"\n\a\t\t\t\t沒有找到您要預定的電影!"<<endl;system("pausen);//任意鍵繼續(xù)return;}已播放顯示不能訂票s=timecmp(tick.tic[i].datetime,array,5);/與系統(tǒng)時間比較if(s<=0){cout<<"\a\n\t\t\t此電影已播放,無法訂票!"<<endl;system("pausen);//任意鍵繼續(xù)return;}如果滿足訂票條件for(m=0;m<10;m++){cout<<endl<<"\t";for(n=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}cout<<endl<<"\n請輸入預訂的座位號(1~100):"intseatnum;cin>>seatnum;if(seatnum>100llseatnum<1){cout<<endl<<"\a\t\t對不起,無此座位!”;system(Hpausen);//任意鍵繼續(xù)return;}m=(seatnum-1)/10;n=(seatnum-1)%10;if(tick.tic[i].seat[m][n]==0&&tick.tic[i].rest!=0){cout<<endl<<"\n是否以會員權(quán)限購買(Y/N):";chara;cin>>a;if(a!='N'&&a!='n'){tick.tic[i].seat[m][n]=tick.tic[i].price*tick.tic[i].discount/10;}else{tick.tic[i].seat[m][n]=tick.tic[i].price;}tick.tic[i].rest--;cout<<endl<<"\t\t\t\t您需要支付:"<<tick.tic[i].seat[m][n]<<"元。"<<endl;cout<<endl<<"\t\t\t\t您的座位號是:"<<seatnum<<endl;cout<<endl<<"\t\t\t\t預訂成功!”;for(intm=0;m<10;m++){cout<<endl<<"\t";for(intn=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}:1*C:\Users\hsp\Desktop\?|jS4\4.exe1*一:ILL可預訂的電影信息如下a----期時-間場次電影名稱*一:ILL可預訂的電影信息如下a----期時-間場次電影名稱票價折扣余票2011-12-2310:301皿111100青輸入要預訂的影片名:四I查找結(jié)果如下:a----期時-間場次電影名稱票價折扣余票2011-12-2310:301皿111100_,,,當煎預訂情形,,,,[無人n無入n無入n無人][無人h無人J[無*J[無人1[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無入n無人n無人][無人h無人J[無*J[無*J[無入n無人】[無人n無人n無人n無人][無人h無人][無人h無人h無人n無人】請輸入預訂的座位號(1^100):2旦否以會員權(quán)限購*5〉;y您需要支付;「1元『您的座位號是;2[兀人H「尢,時:xA]:XA]:XA]:XA]:XA]:XA]:XA]:XA]:XA]:XA]r±AjtTeAjr^cAjr^cAjr^cAjr^cAjr^cAjr^cAjr^cAjr^cAj[無人J[無人J[無人J[無人J[無人J[無人J[無人J[無人J[無人J[無人ir±AjtTeAjtTeAjtTeAjtTeAjtTeAjtTeAjtTeAjtTeAjtTeAj[無/■*i[無/■*i[無/■*i[無/■*i[無/■*i[無/■*i[無/■*i[無/■*i[無/■*i[無/■*1[無人」[無人」[無人」[無人」[無人」[無人」[無人」[無人」[無人」[無人」[無人亶無人亶無人亶無人亶無人亶無人亶無人亶無人亶無人亶無人][無入1[無入1[無入1[無入1[無入1[無入1[無入1[無入1[無入1[無入1請按任意鍵批續(xù)…繼續(xù)預訂座位號判斷if(seatnum>100llseatnum<1){cout<<endl<<"\a\t\t對不起,無此座位!”system(Hpausen);//任意鍵繼續(xù)return;}elseif(tick.tic[i].seat[m][n]!=0)
{cout<<endl<<"\a\t\t對不起,無此座位或此座位已被預訂!"system(Hpausen);//任意鍵繼續(xù)return;}."WC:\Users\hsp\Desktop\Efc.lft4\4.exe"1~^11~^~1[^1諾輸人蘿而il的彩片";qg*1直找結(jié)果如下;回II二二期u^-fn]場次電彰名稱爭價折捫集票liUll-12-231qqq1119?當前丁,tw*兄,,,,[無入1[有入]1:無1:無入11:無外,11:無入11:無入11:無入11:無外1[無入1L無人」L齊人」L無人JL無人JL無人JL無人JL無人JL無人JL無人JL無人JL無人」L無人」L無人JL無AJL^AJL無人業(yè)無人JL無人JL無人JL無人Jr?L/\irX/x1rJL/?jrJL/?jrJL/xjr^L/xTr^L/xTr^L/xTr^L/vir五於、ir五於、i匚七hi匚七hi「無於、i「五於、i匚七i匚七i匚七ii[無人M無人n無人亶無人亶無人亶無人亶天人亶天人亶天人H無人.1L無人」L無人」L無人JL無人JL無人JL無人JL無人JL無人JL無人JL無人JL無人」L無入」1_無入"無無無無入JL無入JL無入JL無入J[無E[無■][無人-1「九於、1rAA11九於、1「九於、1[無,x1[無,x1[無人,】t.Tr.A.]c.^.A.]c.Tr.A.]c.^.A.]c.^.A.]c.^.A.]c.Tr.Ajc.^.A.]c.^.A.]c.^.A.i請輸入予頁訂的座位號:it*3對小起,九此座位!i青按任苣鋌繼縝——.7T*C:\U5Ekh卯\腿5Mop\a5r-iS4\4.|11曰|[■£3?|《莒芋模均分可預訂的電影信息如E口二二期II寸問場次也膨名稱票價折扣余票IM:JM1<vaq1117H詰輸/■、*我訂的常J|備;g"塵找詁果如h=□——期II寸問場次電影:名稱票價折扣.金票CfCfCfJ[無入][無入][無入][無入][無入][無入][無入1[無入」H無入1[無入1[無入1[無人1[無人1[無人1[無人1[無人1」1_九人JL九,%JL玄,%JL九人JL九/%JL九/%JL九/%JL尢AJ11無'、11無'、11有'、11無於、11無於、11無於、11無於、11無於、1JE>LA3E>LA3E>LA3E>LA3E>LA3E>LA3E>LA3E元人】jL.^r.A.jL.^r.A.jL.^r.A.jL.^r.A.jL.?T.A.JL.?T.A.JL.?T.A.Jl.Te.A.J1r無,A"r無,A"r無,A"r無,A、1r無,A"r無,A"r無,A">■無.人"1[九八宜九八宜九八宜九八11:九八11:九八11:九八1[九八1Jl.?tAjl.Tt;Ajl.Tt;Ajl.Tt;Ajl.TtAjl.TtA.jl.TtA.JA.Ji「無人,i「無人,1「無人,1rXA11無人11無人11無人irXA1CfCfCf詰輸入預訂的座位號「“MM)=:”.利不起,無出,座伯或山;座伯1胡預訂!造嚀仟離帽坦繾.--■選2>退票查找不到if(i==tick.len&&k==0){cout<<"\n\a\t\t沒有找到您要退定的電影!"<<endl;system(Hpausen);//任意鍵繼續(xù)return;}正確退票流程cout<<endl<<"\t\t\t\t當前預訂情況";intm,n;for(m=0;m<10;m++){cout<<endl<<"\t";for(n=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}cout<<endl<<"\n請輸入退訂的座位號(1~100):"intseatnum;cin>>seatnum;if(seatnum>100||seatnum<1){cout<<endl<<"\a\t\t對不起,無此座位!”;system("pausen);//任意鍵繼續(xù)
return;}m=(seatnum-1)/10;n=(seatnum-1)%10;if(tick.tic[i].seat[m][n]!=0){tick.tic[i].rest++;cout<<endl<<"\t\t\t\t您要退訂座位號是:"<<seatnum<<endl;cout<<endl<<"\t\t\t\t退給您:"<<tick.tic[i].seat[m][n]<<"元。"<<endl;cout<<endl<<"\t\t\t\t退訂成功!”;tick.tic[i].seat[m][n]=0;}.i"C:\UsersXhsp\Deslk±op\6Sj?4\4.exe"查找結(jié)果如F=日、日、J-間場次電景它稱慕價折扣示票E0111-12-23偵=3恐1qqq111Ir?!赣小肛l?、ir兀於、1胡?、件成■兀'1「兀'1「兀、ir兀水1L無人」L無人」1_無/\JL無人JL無人JL無AJL無JL無JL無JL無人J[無人1[無人1I:無入1I:無入1I:無入1I:無人1I:無入1[無入1[無入1[無人1I無人II無人II無KII無KII有人II無入、II無入、II無入、II無入、II無入、1[尢人直尢人尢人J[尢人J[尢人J[尢人亶尢人亶尢人亶尢人1[尢人1L無人JL無人JL無人JL無人JL無人JL無人JL無/JL無/JL無/JL無[無入M無入.1[無入直無入直無入直無入M無人直無入直無入一.U無入]I無入II無入II無方、II無方、II無方、II無入II無/、II無/、II無/、II無人、1[尢人1[尢人尢人][尢人1[尢人1[尢人1[尢人1[尢人1[尢人H尢人E0111-12-23請輸入退訂的座位號Cr喚):2您要退訂座位號是,H退給您:1一1元-]]]]]]]]]].AXAXl^AXAXl^
七七記七上無七記無上-[]]]]]]]]]].AXAXl^AXAXl^
七七記七上無七記無上-[TJ4人人^Jyc人人人婦y:[[[[[[[[[[—akaxayakaxa^[[[[[[[[[[—akaxayakaxa^[[[[[[[[[[人夕::b,7<-b/::b^;E入人人AJ人入人人AJ人Hi無無X有九無無X無無>!"[[[[[[[[[[—凸父—犬—個八—八—大^^[[[[[[[[[[丘七丘七丘七七丘忙丘else{cout<<endl<<"\a\t\t\n對不起,此座位未預訂,無法退票!\n";system("pausen);//任意鍵繼續(xù)return;
sers\hsp\Desk±op\£Sj24\4.exe"|i=i||0|請輸入影片名:查找結(jié)果如卜=□4J
析司
□4J
析司
_
04avaxiaav.^丘丘七忙丘丘七代丘E人A]A]A入A:A]A人A][[[[[[[[[[A.A.—八—△—八—■■■■?■■■八人—■■■?■■■八[[[[[[[[[[A.A.—八—△—八—■■■■?■■■八人—■■■?■■■八[[[[[[[[[[A:A]A3AA]A:A]AA]A]=丘丘七無丘七無無丘七[[[[[[[[[[AA]A]A人A:A]A人A]-兀無尢有兀無尢無X無[[[[[[[[[[A.A.A.—AI---?<x—?A[[[[[[[[[[A.A.A.—AI---?<x—?A[[]]AA.A-l△A—■■■■7■■公]]]]]]]J]]—八—八—■■■■■?■△1△—■■■■?■■■八—分請輸入退訂的座位號(1~100):1.時不起,此座位未預ij,無法退票諾技仟意健繼蒙….退出Z〔I"C:\LIsers\hsZ〔I"C:\LIsers\hsp\Desktop\改進4\4exeA2-售票系統(tǒng)請選擇:4.3畫出程序流程圖程序中函數(shù)的流程圖:
2.manager()3.input()4.show()5.search()6.change()7.del()8.customer()9.sell()10.refund()當前預訂退出更新座位退票,退款當前預訂退出更新座位退票,退款第五章設(shè)計總結(jié)這次課程設(shè)計中我感覺設(shè)計的比較滿意的是訂票和退票函數(shù),根據(jù)提示信息就可以輕松完成訂票和退票。這次的代碼已經(jīng)是我寫的第三份了。其中前兩份都或多或少出現(xiàn)了大漏洞,先拿第一份來說,雖然功能比較完善,里面定義了六個類,40的個成員函數(shù),總代碼量1000多行,然而卻犯了最致命的錯誤,里面存儲數(shù)據(jù)使用鏈表實現(xiàn),可是開辟內(nèi)存單元卻在局部函數(shù),這樣局部函數(shù)執(zhí)行完內(nèi)存單元動消失,造成數(shù)據(jù)丟失。因此我放棄了第一份,重寫了第二份,第二份中吸取了第一份的教訓,同樣適用鏈表實現(xiàn),定義了兩個類,寫了十幾個函數(shù),雖然已經(jīng)能運行,但是其中函數(shù)傳遞參數(shù)頻繁降低了程序的可讀性。所以再此放棄修改。最后設(shè)計了一個結(jié)構(gòu)體,一個類,10個函數(shù)同樣實現(xiàn)了基本功能,同時增加了一些修改排序功能。當然這個程序也是有瑕疵的,在修改日期后可以完成排序,可是修改了時間會造成排序不正確。這可能需要答辯之后在進行修改了。還有就是整個程序的設(shè)計思想,大型一點的程序設(shè)計,如果從上向下考慮功能的實現(xiàn)會節(jié)約很多時間,這也是比較合理的設(shè)計方法。以上是我的總結(jié)。第六章附錄#include<iostream>#include<string>#include<conio.h>#include<ctime>#defineN50//可存電影總數(shù)
usingnamespacestd;structnode{intyear;intmonth;intday;inthour;intminute;intdatetime[5];//裝時間,方便比較
intnum;stringname;floatprice;floatdiscount;intrest;floatseat[10][10];};//////classticket{private:nodetic[N];intlen;public:ticket();~ticket();intsort(inti);voidinput();voidshow();voidsearch();voidchange();voiddel();voidsell();voidrefund();}tick;//////ticket::ticket(){};ticket::~ticket(){};////
//
inttimecmp(inta[],intb[],intn){inti;for(i=0;i<n;i++){if(a[i]>b[i]){return1;}if(a[i]<b[i]){return-1;}}if(i==n){return0;}}//////intticket::sort(inti)//============================
{intr,n,j;for(j=0;j<i;j++)//從首元素開始比較日期{r=timecmp(tick.tic[i].datetime,tick.tic[j].datetime,5);if(r==-1)//找到第一個比他大的日期,插入其前面{break;}}if(j==tick.len-1){returnj;}if(j==i){for(j=i+1;j<tick.len;j++)//從首元素開始比較日期{r=timecmp(tick.tic[i].datetime,tick.tic[j].datetime,5);if(r==-1)//找到第一個比他大的日期,插入其前面{break;}}}
nodetemp=tick.tic[i];
if(j<i){for(n=i;n>j;n--){tick.tic[n]=tick.tic[n-1];}
tick.tic[j]=temp;returnj;}else{if(j==tick.len){for(n=i;n<j-1;n++){tick.tic[n]=tick.tic[n+1];}}
else{for(n=i;n<j;n++){tick.tic[n]=tick.tic[n+1];}}tick.tic[n]=temp;returnn;}}//////voidticket::input()//錄入信息{system(ncls");//清屏charch;//接受日期中的字符一或:cout<<"\n\n\n\t\t\t\t《錄入模塊》\n\n\n"<<endl;for(inti=tick.len;i<N;i++){cout<<"\n請輸入日期(2011-11-11):";cin>>tick.tic[i].year>>ch>>tick.tic[i].month>>ch>>tick.tic[i].day;cout<<"\n請輸入放映時間(12:30):";cin>>tick.tic[i].hour;cin>>ch;cin>>tick.tic[i].minute;tick.tic[i].datetime[0]=tick.tic[i].year;tick.tic[i].datetime[1]=tick.tic[i].month;tick.tic[i].datetime[2]=tick.tic[i].day;tick.tic[i].datetime[3]=tick.tic[i].hour;tick.tic[i].datetime[4]=tick.tic[i].minute;cout<<"\n請輸入場次:";
cin>>tick.tic[i].num;cout<<"\n請輸入電影名稱:";cin>>tick.tic[i].name;cout<<"\n請輸入電影票價:";cin>>tick.tic[i].price;cout<<"\n請輸入會員折扣:";
cin>>tick.tic[i].discount;tick.tic[i].rest=100;for(intm=0;m<10;m++){for(intn=0;n<10;n++)tick.tic[i].seat[m][n]=0;}tick.len++;//個數(shù)加1if(i!=0)//按時間,插入排序{intj=sort(i);}cout<<endl;cout<<"是否繼續(xù)錄入?(y/n):";while(1){cin>>ch;if(ch=='y'IIch=='Y'IIch=='n'IIch=='N')break;elsecout<<"輸入錯誤請重新輸入:";}if(ch=='n'IIch=='N')break;}}//////
voidticket::show(){system(ncls");//清屏
cout<<"\n\n\n\t\t\t\t《顯示模塊》\n\n\n"<<endl;cout<<"所有電影信息如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次章電影名稱"票價"折扣\t余票"<<endl<<endl;
time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間
tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};intr;for(inti=0;i<tick.len;i++){r=timecmp(tick.tic[i].datetime,array,5);cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;if(r<=0){cout<<"\a(已播放!)"<<endl;}
else{cout<<endl;}}}//////voidticket::search(){charflag;inti;intk=0;//標記找到的記錄
system(ncls");//清屏cout<<"\n\n\n\t\t\t\t《查找模塊》\n\n\n"<<endl;do{cout<<endl<<"\t\t\t\t1.按影片名查找”;
cout<<endl<<"\t\t\t\t2.按日期查找”;
cout<<endl<<"\t\t\t\t請輸入查找模式:”;cin>>flag;if(flag!='1'&&flag!='2'){
cout<<"\n\a\t\t\t\t選擇有誤!請選擇正確的查找模式。"<<endl;}}while(flag!='1'&&flag!='2');if(flag=T){
stringna;intj=1;cout<<"\n請輸入影片名:";cin>>na;for(i=0;i<tick.len;i++){if(tick.tic[i].name==na)/俄至0{k++;//找到的記錄數(shù)if(j=1){cout<<"\n查找結(jié)果如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次\t電影名稱"票價\t折扣\t余票"<<endl<<endl;}j++;cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day<<"\t”;cout<<tick.tic[i].hour<<”:"<<tick.tic[i].minute<<"\t”;cout<<tick.tic[i].num<<"\t"<<tick.tic[i].name<<"\t\t”;cout<<tick.tic[i].price<<"\t"<<tick.tic[i].discount<<"\t"<<tick.tic[i].rest;time_tt;structtm*tim;t=time(NULL);//獲取當前系統(tǒng)時間tim=localtime(&t);intarray[5]={tim->tm_year+1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min};intr;r=timecmp(tick.tic[i].datetime,array,5);//與系統(tǒng)時間比較if(r<=0){cout<<"\a(已播放!)"<<endl;}else{cout<<endl;}cout<<endl<<"\t\t\t\t當前預訂情況";for(intm=0;m<10;m++){cout<<endl<<"\t";for(intn=0;n<10;n++){cout<<"[";if(tick.tic[i].seat[m][n]!=0){cout<<"有人";}else{cout<<"無人";}cout<<"]";}}}}if(j!=1){cout<<endl;system(Hpausen);//任意鍵繼續(xù)return;}if(i==tick.len&&k==0){cout<<"\n\a\t\t\t\t未找到結(jié)果!"<<endl;system("pausen);//任意鍵繼續(xù)return;}}else{charch;inttemp[3];cout<<"\n請輸入放映日期:";cin>>temp[0]>>ch>>temp[1]>>ch>>temp[2];intj=1;for(i=0;i<tick.len;i++)//遍^{if(timecmp(tick.tic[i].datetime,temp,3)==0)//找到0{k++;//找到的記錄數(shù)if(j==1){cout<<"\n查找結(jié)果如下:"<<endl;cout<<""<<endl;cout<<"日----期\t時-間\t場次\t電影名稱"票價\t折扣\t余票"<<endl<<endl;}j++;cout<<tick.tic[i].year<<"-"<<tick.tic[i].month<<"-"<<tick.tic[i].day
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉗工考試題庫寶典及答案
- 人教版地理八年級上學期期末綜合測試(含答案)
- 輔警法治培訓
- 蛋種鴨養(yǎng)殖技術(shù)培訓課件
- 2026年深圳中考語文考前3天預測試卷(附答案可下載)
- 2026年深圳中考物理高頻考點精練試卷(附答案可下載)
- 光伏光熱一體化項目合作協(xié)議
- 2026年廣州中考政治讓友誼之樹常青試卷(附答案可下載)
- 校長赴深圳考察學習有感
- 人工智能在工業(yè)制造中的技術(shù)要領(lǐng)
- 萬科施工管理辦法
- 2025至2030中國養(yǎng)老健康行業(yè)深度發(fā)展研究與企業(yè)投資戰(zhàn)略規(guī)劃報告
- Roland羅蘭樂器AerophoneAE-20電吹管ChineseAerophoneAE-20OwnersManual用戶手冊
- 2025年保安員資格考試題目及答案(共100題)
- 黨群工作部室部管理制度
- 2025至2030年中國兔子養(yǎng)殖行業(yè)市場現(xiàn)狀調(diào)查及投資方向研究報告
- 委外施工安全試題及答案
- DBT29-320-2025 天津市建筑工程消能減震隔震技術(shù)規(guī)程
- 產(chǎn)品技術(shù)維護與保養(yǎng)手冊
- 2024年國家電網(wǎng)招聘之電工類考試題庫(突破訓練)
- 中建公司建筑機電設(shè)備安裝工程標準化施工手冊
評論
0/150
提交評論