基于windows系統(tǒng)的JAVA語(yǔ)言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)說(shuō)明書(shū)(含源程序).doc_第1頁(yè)
基于windows系統(tǒng)的JAVA語(yǔ)言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)說(shuō)明書(shū)(含源程序).doc_第2頁(yè)
基于windows系統(tǒng)的JAVA語(yǔ)言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)說(shuō)明書(shū)(含源程序).doc_第3頁(yè)
基于windows系統(tǒng)的JAVA語(yǔ)言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)說(shuō)明書(shū)(含源程序).doc_第4頁(yè)
基于windows系統(tǒng)的JAVA語(yǔ)言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)說(shuō)明書(shū)(含源程序).doc_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告基于windows系統(tǒng)的java語(yǔ)言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)課程設(shè)計(jì)要求:基于windows的課程設(shè)計(jì),任務(wù)要求為2個(gè)projects,完成一下兩個(gè)任務(wù)及要求:(1):進(jìn)程間的通信、并發(fā)(同步或者互斥)、文件讀寫(xiě)等要求(2):內(nèi)存管理、dll、windows消息機(jī)制、io等等問(wèn)題簡(jiǎn)要描述和設(shè)計(jì)要求:(1):多個(gè)進(jìn)程之間的相互通信 :其中一組進(jìn)程(生產(chǎn)者)從外部獲取數(shù)據(jù):另外一組進(jìn)程(消費(fèi)者)接受并顯示數(shù)據(jù) (2):設(shè)計(jì)并實(shí)現(xiàn)這樣一個(gè)系統(tǒng)。兩組進(jìn)程的數(shù)目自定問(wèn)題具體描述和設(shè)計(jì)要求: (1):完成n個(gè)生產(chǎn)者和m個(gè)消費(fèi)者之間的并發(fā)控制,n、m不低于5,數(shù)據(jù)發(fā)送和接收緩沖區(qū)大小不小于10個(gè)。 (2):某個(gè)生產(chǎn)者進(jìn)程生產(chǎn)的消息供k個(gè)消費(fèi)者進(jìn)程消費(fèi)。k=m。某些消費(fèi)進(jìn)程消費(fèi)多個(gè)生產(chǎn)者生產(chǎn)的消息。生產(chǎn)者和消費(fèi)者之間的對(duì)應(yīng)關(guān)系可以在程序開(kāi)始有一個(gè)文件中讀入,也可以動(dòng)態(tài)調(diào)整。 課程設(shè)計(jì)目的:(1)掌握并能夠靈活使用進(jìn)程間通信機(jī)制(2)掌握并能夠靈活使用同步互斥機(jī)制(3)掌握并能夠靈活使用io技術(shù) 課程設(shè)計(jì)分析:多個(gè)進(jìn)程之間的相互通信:(1):其中一組進(jìn)程(生產(chǎn)者)從外部獲取數(shù)據(jù)(2):另外一組進(jìn)程(消費(fèi)者)接收并顯示數(shù)據(jù) 已實(shí)現(xiàn)的功能:1 設(shè)計(jì)實(shí)現(xiàn)基于線程的多任務(wù)程序2 完成生產(chǎn)者消費(fèi)者程序設(shè)計(jì)3 實(shí)現(xiàn)線程之間的消息通信程序 未實(shí)現(xiàn)的功能: dll的功能:動(dòng)態(tài)鏈接庫(kù)的實(shí)現(xiàn),dll是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)庫(kù),dll不是可執(zhí)行文件。動(dòng)態(tài)鏈接庫(kù)提供了一種方法使進(jìn)程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于dll中,該dll包含一個(gè)或多個(gè)已被編譯、鏈接并使用他們的進(jìn)程分開(kāi)存儲(chǔ)的函數(shù)。dll還有助于共享數(shù)據(jù)和資源。多個(gè)應(yīng)用程序可同時(shí)訪問(wèn)內(nèi)存中單個(gè)dll副本的內(nèi)容。dll是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)庫(kù)。dll未實(shí)現(xiàn)的原因:動(dòng)態(tài)鏈接庫(kù)雖然跟容易地將更新應(yīng)用于各個(gè)模塊,不影響該程序的其他部分,但利用java實(shí)現(xiàn)起來(lái)難度有點(diǎn)大,而且不會(huì)利用java實(shí)現(xiàn)動(dòng)態(tài)鏈接庫(kù)。對(duì)于當(dāng)前windows程序設(shè)計(jì)的詳細(xì)分析: 在window課程設(shè)計(jì)中利用java語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的訂票系統(tǒng)。對(duì)于訂票系統(tǒng)的詳細(xì)分析;(1)需求分析:需求分析是軟件設(shè)計(jì)的一個(gè)重要的環(huán)節(jié)。本階段對(duì)訂票系統(tǒng)的應(yīng)用情況作全面調(diào)查,以確定系統(tǒng)目標(biāo),并對(duì)系統(tǒng)所需要的基礎(chǔ)數(shù)據(jù)以及數(shù)據(jù)處理要求進(jìn)行分析,從而確定用戶(hù)的需求。用戶(hù)對(duì)系統(tǒng)的需求我們從以下幾方面進(jìn)行分析。功能需求:售票系統(tǒng)實(shí)現(xiàn)一下功能:a:查詢(xún):分為對(duì)車(chē)次信息的查詢(xún)和客戶(hù)對(duì)已訂車(chē)票信息的查詢(xún)。要求:1)對(duì)車(chē)次的查詢(xún),可以按照發(fā)車(chē)車(chē)次進(jìn)行查詢(xún); 2)車(chē)次信息包括:車(chē)號(hào)、出發(fā)地、目的地、發(fā)車(chē)日期、開(kāi)出時(shí)刻、票價(jià)。3)車(chē)次信息只能查詢(xún)不能修改。b:添加車(chē)票:通過(guò)查詢(xún)系統(tǒng),客戶(hù)根據(jù)自己的需求找到滿(mǎn)意的車(chē)次,再次輸入個(gè)人信息后直接通過(guò)訂票系統(tǒng)預(yù)定以選中的車(chē)票。要求:售票記錄應(yīng)包括:會(huì)員名、車(chē)號(hào)、發(fā)車(chē)日期、訂票數(shù)量、總價(jià)。 c:退票:可退票,通過(guò)查詢(xún)系統(tǒng),客戶(hù)可根據(jù)自己的車(chē)號(hào)找到自己訂票信息,通過(guò)退票模塊退去已購(gòu)車(chē)票。數(shù)據(jù)需求:信息需求,即在系統(tǒng)中需要處理拿些數(shù)據(jù)。根據(jù)車(chē)站訂票系統(tǒng)的分析,本系統(tǒng)的信息需求如表所示:信息輸入輸出信息輸入信息處理信息輸出用戶(hù)輸入所需車(chē)次檢索系統(tǒng)文件符合用戶(hù)需求的車(chē)次及相關(guān)信息用戶(hù)輸入個(gè)人信息及所需購(gòu)的車(chē)票信息更新系統(tǒng)中的訂票信息,將新信息存入文件操作反饋(如找零)對(duì)于系統(tǒng)總體設(shè)計(jì): a: 系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì):本訂票系統(tǒng)可分為信息查詢(xún)、網(wǎng)上訂票、退票三部分。其中查詢(xún)信息又可分為車(chē)次查詢(xún)和訂票查詢(xún)兩個(gè)部分。層次圖如圖所示:售票系統(tǒng)信息查詢(xún)車(chē)次查詢(xún)車(chē)票查詢(xún) 售票退出訂票系統(tǒng)的層次圖b:系統(tǒng)流程圖: 系統(tǒng)頂層流程圖如圖所示:查詢(xún)程序訂票程序 退票程序訂票系統(tǒng)文件系統(tǒng)事務(wù)相應(yīng)信息操作反饋系統(tǒng)流程輸入所需車(chē)次的重要信息查詢(xún)程序文件系統(tǒng)符合用戶(hù)需求的車(chē)次信息事務(wù)車(chē)次信息查詢(xún)系統(tǒng)流程圖售票程序文件系統(tǒng)操作反饋事務(wù)輸入售票信息訂單信息查詢(xún)系統(tǒng)流程圖退票程序文件系統(tǒng)操作反饋事務(wù)輸入退票信息退票系統(tǒng)流程圖c.程序流程圖本系統(tǒng)主界面為用戶(hù)設(shè)計(jì)了三個(gè)功能操作以供選擇:查詢(xún),訂票,退票。另外,為方便用戶(hù),還將“退出系統(tǒng)”也單另列了出來(lái),用戶(hù)可以根據(jù)需要觸發(fā)不同事件。其處理流程如圖所示。(1).售票的系統(tǒng)主處理流程售票員系統(tǒng)主程序流程圖nnnyyynnyy查詢(xún)界面用戶(hù)輸入要查詢(xún)條件查詢(xún)讀數(shù)據(jù)文件輸出查詢(xún)結(jié)果關(guān)閉窗口結(jié)束開(kāi)始售票售票界面繼續(xù)查詢(xún)車(chē)次信息查詢(xún)車(chē)次信息售票返回主頁(yè)(2).車(chē)次信息查詢(xún)處理流程車(chē)次信息查詢(xún)程序流程圖(3). 車(chē)票處理流程nnyynyny開(kāi)始添加界面添加改輸入添加信息n返回主頁(yè)繼續(xù)售票提交信息有效性修改數(shù)據(jù)文件y關(guān)閉窗口結(jié)束錯(cuò)誤提示售票程序流程圖(4). 車(chē)票信息查詢(xún)處理流程nnnyyyny查詢(xún)界面讀數(shù)據(jù)文件輸出查詢(xún)結(jié)果關(guān)閉窗口結(jié)束開(kāi)始y返回主頁(yè)主界面退票退票界面繼續(xù)查詢(xún)訂票信息查詢(xún)訂票信息退票訂票信息查詢(xún)模塊程序流程圖(5). 退票模塊處理流程nnyynyny開(kāi)始退票界面退票n返回主頁(yè)繼續(xù)退票提交信息有效性y關(guān)閉窗口結(jié)束錯(cuò)誤提示輸入退票信息退票模塊程序流程圖詳細(xì)的代碼分析:主頁(yè)面:代碼:final display dis=new display();final tuipiao tui=new tuipiao();jframe frame; button b1,b2,b3; panel p1;frame=new jframe(訂票系統(tǒng)啟動(dòng):);frame.setsize(500,400);frame.setlocation(480,380);/frame.pack();frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setbackground(color.light_gray);frame.setresizable(false);frame.setlayout(new borderlayout(5,5);p1=new panel(new gridlayout(5,5,35,15);frame.add(p1,borderlayout.center);b1=new button(訂票); b2=new button(退票); b3=new button(查詢(xún));p1.add(b1); p1.add(b2); p1.add(b3);訂票頁(yè)面:對(duì)車(chē)次信息的查詢(xún),系統(tǒng)提供了車(chē)次信息,進(jìn)行精確的查詢(xún),系統(tǒng)經(jīng)過(guò)檢索,返回符合用戶(hù)要求的車(chē)次,再由用戶(hù)自行選擇滿(mǎn)意的車(chē)次。代碼:this.dingpiao=true;/創(chuàng)建窗體和容器final jframe jf = new jframe(dingpiao);jpanel jp = new jpanel();/創(chuàng)建組件final choice city = new choice();final choice city1 = new choice();city.add(北京); city.add(上海); city.add(廣州);city1.add(北京); city1.add(上海);city1.add(廣州);jbutton but = new jbutton(確定); jlabel j1 = new jlabel(起始站:);jlabel j2 = new jlabel(終點(diǎn)站:); jlabel j3 = new jlabel(剩余票數(shù):);jlabel j4 = new jlabel(單價(jià):) ;jlabel j5 = new jlabel(購(gòu)買(mǎi)數(shù)量:);jlabel j6 = new jlabel(合計(jì):); jlabel j7 = new jlabel(付款:);jlabel j8 = new jlabel(找零:); final jtextfield jtf1 = new jtextfield();final jtextfield jtf2 = new jtextfield();final jtextfield jtf3 = new jtextfield();final jtextfield jtf4 = new jtextfield();final jtextfield jtf5 = new jtextfield();final jtextfield jtf6 = new jtextfield();/布局jp.setlayout(null); j1.setbounds(0,0,80,30);city.setbounds(80,0,80,30); j2.setbounds(160,0,80,30);city1.setbounds(240,0,80,30); j3.setbounds(320,0,80,30);jtf1.setbounds(400,0,80,30); j4.setbounds(0,40,80,30);jtf2.setbounds(80,40,80,30); j5.setbounds(160,40,80,30);jtf3.setbounds(240,40,80,30); j6.setbounds(320,40,80,30);jtf4.setbounds(400,40,80,30); j7.setbounds(0,80,80,30);jtf5.setbounds(80,80,80,30); j8.setbounds(160,80,80,30);jtf6.setbounds(240,80,80,30); but.setbounds(400,80,80,30);/將組件添加到容器jp.add(j1); jp.add(j2); jp.add(j3); jp.add(j4);jp.add(j5); jp.add(j6); jp.add(j7); jp.add(j8);jp.add(but); jp.add(jtf1); jp.add(jtf2); jp.add(jtf3);jp.add(jtf4); jp.add(jtf5); jp.add(jtf6); jp.add(city); jp.add(city1);/將容器添加到窗體jf.add(jp);/設(shè)置窗體jf.setsize(500,200); jf.setvisible(true);退票頁(yè)面:根據(jù)車(chē)票號(hào)碼來(lái)退票代碼:this.tuipiao=true; button but; final jtextfield tf1;panel p1; frame=new jframe(tuipiao);frame.setsize(500,450);frame.setlocation(480,430);/frame.pack();frame.setlayout(new borderlayout(5,5);p1=new panel(new gridlayout(1,1,5,5); /p2=new panel(new gridlayout(200,0,10,10); frame.add(p1,borderlayout.north);frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setvisible(true); jpanel jetextfield=new jpanel();jetextfield.setlayout(new borderlayout(1,0);jetextfield.add(new jlabel(enter the number),borderlayout.west);jetextfield.add(jtfmessage,borderlayout.center);/getcontentpane().add(jetextfield,borderlayout.north);tf1=new jtextfield(30); /存放顯示區(qū)tf1.seteditable(false); p1.add(jetextfield);jtfmessage.sethorizontalalignment(jtextfield.right);jtfmessage.addactionlistener( this);but=new button(ok); p1.add(but);查詢(xún)頁(yè)面:選擇查詢(xún)條件代碼:jframe frame; int teformnum; / jframe frame; button b1,b2; panel p1; frame=new jframe(查詢(xún): 請(qǐng)選擇查詢(xún)的方式:); frame.setsize(500,500); frame.setlocation(480,480); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setbackground(color.light_gray); frame.setresizable(false); frame.setlayout(new borderlayout(5,5); p1=new panel(new gridlayout(5,5,35,15); frame.add(p1,borderlayout.center); b1=new button(車(chē)次); b2=new button(始發(fā)抵達(dá)城市); p1.add(b1); p1.add(b2); 按車(chē)次查詢(xún):輸入車(chē)次查詢(xún):按始發(fā)城市查詢(xún): 輸入始站和終站:訂票成功返回成功信息:文件系統(tǒng):代碼: /從文件中讀取車(chē)票信息public arraylist ticketreader()fileinputstream is = null;file file = new file(ticket.txt);/創(chuàng)建byte數(shù)組,用于存放信息byte b = new byte(int)file.length();try is =new fileinputstream(file); is.read(b);string str = new string(b); string temp = str.split(;);for(int i = 0;itemp.length;i+)string s = tempi.split(,); ticket t = new ticket();t.setstart(s0); t.setlast(s1); t.setprice(double.valueof(s2);t.setnum(integer.valueof(s3); ticket.add(t); catch (filenotfoundexception e) / todo auto-generated catch blocke.printstacktrace(); catch (ioexception e) / todo auto-generated catch blocke.printstacktrace();return ticket;/將車(chē)票信息寫(xiě)入文件public void ticketwriter()outputstream os = null; file file = new file(ticket.txt); string str = ;/str用于存放車(chē)票信息for(int

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論