綜合練習影院售票系統(tǒng)_第1頁
綜合練習影院售票系統(tǒng)_第2頁
綜合練習影院售票系統(tǒng)_第3頁
綜合練習影院售票系統(tǒng)_第4頁
綜合練習影院售票系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章綜合練習-電影院售票系統(tǒng)1第一單元本章相關(guān)學習資源《使用Java高級實用技術(shù)》第7章《綜合練習-電影院售票系統(tǒng)》第2頁/共21頁學生用書項目覆蓋技能點第3頁/共21頁能夠分析系統(tǒng)功能并合理提取對象和類使用屬性和方法構(gòu)建類使用繼承、多態(tài)實現(xiàn)良好復用和擴展性使用泛型集合使用枚舉讀取XML文件使用序列化和反序列化保存和恢復信息項目演示及需求詳解“青鳥影院”開始營業(yè),需要一個售票系統(tǒng):支持實時查看電影放映場次時間、電影概況、座位支持購票,打印電影票第4頁/共21頁演示示例:影院售票系統(tǒng)開發(fā)步驟設(shè)計類結(jié)構(gòu)實現(xiàn)查看新放映實現(xiàn)購票用戶選票計算票價保存銷售狀況實現(xiàn)繼續(xù)售票第5頁/共21頁串講:設(shè)計類結(jié)構(gòu)需求說明:以面向?qū)ο笏枷朐O(shè)計各種類結(jié)構(gòu),寫出代碼訓練要點:面向?qū)ο蟪绦蛟O(shè)計思路分析:

1、創(chuàng)建類 2、編寫類的屬性 3、編寫類的方法第6頁/共21頁串講:設(shè)計類結(jié)構(gòu)幾個重要類第7頁/共21頁Cinema類座位已售票集合放映日程…放映日程類放映場次集合獲取放映列表的方法放映場次類放映時間放映的電影電影票類所在座位所屬場次…電影類名稱、演員等電影院管理類Schedule

ScheduleItem演示示例:分析和講解代碼串講:查看新放映列表及座位號第8頁/共21頁需求說明獲取電影放映列表把電影信息存儲在XML文件中讀取放映列表XML文件并將電影名稱、放映時間以及其他信息輸出顯示電影院座位號思路分析編寫方法解析XML文件將XML文件中的電影信息放置到一個集合中以循環(huán)的方式輸出座位號串講:查看新放映列表及座位號難點提示類關(guān)系Cinema類管理當天放映計劃Schedule對象Schedule對象管理放映場次集合對象分析XML文件使用枚舉類型保存電影類型第9頁/共21頁演示示例:分析和講解代碼privateList<ScheduleItem>items;//放映場次集合對象每場電影的信息和場次放映時間串講:查看新放映列表及座位號難點提示采用循環(huán)嵌套的方式遍歷XML文件根據(jù)標簽名稱獲取元素的文本信息由于每種電影有多個放映時間,所以Schedule元素中有多個Item元素,遍歷到每個Schedule時還需要再遍歷Item元素第10頁/共21頁演示示例:分析和講解代碼串講:查看新放映列表及座位號難點提示遍歷XML文件需判斷節(jié)點類型,當nodeType為1時才能強制轉(zhuǎn)化為Element類型,從而獲取文本信息第11頁/共21頁關(guān)鍵代碼if(list.item(i).getNodeType()==1){NodetagNameBigNode=list.item(i);ElementtagNameBigElement=(Element)tagNameBigNode;NodeListchildList=tagNameBigElement.getChildNodes();……}串講:用戶選票需求說明提示用戶輸入待購電影的名字、場次、座位號以及票的類別等,并校驗格式影院提供3類電影票:普通票、贈票和學生票思路分析在測試類中分別編寫chooseName()、chooseTime()、chooseType()、chooseSeat()方法校驗信息第12頁/共21頁演示示例:分析和講解代碼串講:計算票價需求說明根據(jù)選票情況,計算票價贈票免費、學生票有不同折扣思路分析編寫Ticket類及其子類難點提示StudentTicke類和FreeTicket類繼承Ticket類子類重寫父類實際票價計算方法第13頁/共21頁演示示例:分析和講解代碼串講:購票需求說明根據(jù)用戶購票情況將電影票打印輸出到指定的txt文件中用(電影名座位號時間)作為當前影票名稱思路分析Ticket子類重寫父類print()方法,實現(xiàn)電影票的不同打印格式編寫TicketFactory工廠類,調(diào)用方法判斷用戶輸入票的種類,創(chuàng)建不同類型的影票對象第14頁/共21頁串講:購票難點提示向指定文件寫入信息第15頁/共21頁關(guān)鍵代碼演示示例:分析和講解代碼

FileWriterfs=newFileWriter(fileName,true);BufferedWritersw=newBufferedWriter(fs);sw.write("***************************");sw.newLine();sw.write("青鳥影院");sw.newLine();…………sw.close();fs.close();文件路徑串講:繼續(xù)售票需求說明保存當前銷售情況選擇“繼續(xù)售票”,加載之前銷售狀況,如果用戶選擇已售出的影票則提示該票已售出思路分析將已售出的票放到集合中,將集合序列化到指定的txt文件中編寫save()方法序列化已售出影票集合,保存當前銷售情況編寫load()反序列化獲得已買影票對象集合編寫checkTicket()判斷該票是否已在集合中第16頁/共21頁串講:繼續(xù)售票難點提示序列化與反序列化影票集合第17頁/共21頁關(guān)鍵代碼publicvoidload()throwsFileNotFoundException,IOException,ClassNotFoundException{//加載已售票Filefile=newFile("c:/ticket");Filefile2=newFile("c:/ticket/ticket.txt");if(!file.exists()){//判斷文件是否存在file.mkdirs();//創(chuàng)建文件}if(file2.length()!=0){FileInputStreamfi=newFileInputStream("c:/ticket/ticket.txt");ObjectInputStreamis=newObjectInputStream(fi);soldTickets=(ArrayList<Ticket>)is.readObject();is.close();fi.close();}}publicvoidsave()throwsFileNotFoundException,IOException{//存儲已售票的集合FileOutputStreamfo=newFileOutputStream("c:/ticket/ticket.txt");ObjectOutputStreamfs=newObjectOutputStream(fo);fs.writeObject(soldTickets);fs.close();fo.close();}序列化的文件路徑演示示例:分析和講解代碼答疑時間同學們請就以下方面的問題請教老師(教員備課時自行填寫)第18頁/共21頁學員項目總結(jié)講解要點

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論