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

下載本文檔

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

文檔簡介

操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告基于windows系統(tǒng)的java語言訂票系統(tǒng)實(shí)現(xiàn)課程設(shè)計(jì)課程設(shè)計(jì)要求:基于windows的課程設(shè)計(jì),任務(wù)要求為2個(gè)projects,完成一下兩個(gè)任務(wù)及要求:(1):進(jìn)程間的通信、并發(fā)(同步或者互斥)、文件讀寫等要求(2):內(nèi)存管理、dll、windows消息機(jī)制、io等等問題簡要描述和設(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ù)目自定問題具體描述和設(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)者之間的對應(yīng)關(guān)系可以在程序開始有一個(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)鏈接庫的實(shí)現(xiàn),dll是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)庫,dll不是可執(zhí)行文件。動(dòng)態(tài)鏈接庫提供了一種方法使進(jìn)程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于dll中,該dll包含一個(gè)或多個(gè)已被編譯、鏈接并使用他們的進(jìn)程分開存儲(chǔ)的函數(shù)。dll還有助于共享數(shù)據(jù)和資源。多個(gè)應(yīng)用程序可同時(shí)訪問內(nèi)存中單個(gè)dll副本的內(nèi)容。dll是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)庫。dll未實(shí)現(xiàn)的原因:動(dòng)態(tài)鏈接庫雖然跟容易地將更新應(yīng)用于各個(gè)模塊,不影響該程序的其他部分,但利用java實(shí)現(xiàn)起來難度有點(diǎn)大,而且不會(huì)利用java實(shí)現(xiàn)動(dòng)態(tài)鏈接庫。對于當(dāng)前windows程序設(shè)計(jì)的詳細(xì)分析: 在window課程設(shè)計(jì)中利用java語言實(shí)現(xiàn)一個(gè)簡單的訂票系統(tǒng)。對于訂票系統(tǒng)的詳細(xì)分析;(1)需求分析:需求分析是軟件設(shè)計(jì)的一個(gè)重要的環(huán)節(jié)。本階段對訂票系統(tǒng)的應(yīng)用情況作全面調(diào)查,以確定系統(tǒng)目標(biāo),并對系統(tǒng)所需要的基礎(chǔ)數(shù)據(jù)以及數(shù)據(jù)處理要求進(jìn)行分析,從而確定用戶的需求。用戶對系統(tǒng)的需求我們從以下幾方面進(jìn)行分析。功能需求:售票系統(tǒng)實(shí)現(xiàn)一下功能:a:查詢:分為對車次信息的查詢和客戶對已訂車票信息的查詢。要求:1)對車次的查詢,可以按照發(fā)車車次進(jìn)行查詢; 2)車次信息包括:車號、出發(fā)地、目的地、發(fā)車日期、開出時(shí)刻、票價(jià)。3)車次信息只能查詢不能修改。b:添加車票:通過查詢系統(tǒng),客戶根據(jù)自己的需求找到滿意的車次,再次輸入個(gè)人信息后直接通過訂票系統(tǒng)預(yù)定以選中的車票。要求:售票記錄應(yīng)包括:會(huì)員名、車號、發(fā)車日期、訂票數(shù)量、總價(jià)。 c:退票:可退票,通過查詢系統(tǒng),客戶可根據(jù)自己的車號找到自己訂票信息,通過退票模塊退去已購車票。數(shù)據(jù)需求:信息需求,即在系統(tǒng)中需要處理拿些數(shù)據(jù)。根據(jù)車站訂票系統(tǒng)的分析,本系統(tǒng)的信息需求如表所示:信息輸入輸出信息輸入信息處理信息輸出用戶輸入所需車次檢索系統(tǒng)文件符合用戶需求的車次及相關(guān)信息用戶輸入個(gè)人信息及所需購的車票信息更新系統(tǒng)中的訂票信息,將新信息存入文件操作反饋(如找零)對于系統(tǒng)總體設(shè)計(jì): a: 系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì):本訂票系統(tǒng)可分為信息查詢、網(wǎng)上訂票、退票三部分。其中查詢信息又可分為車次查詢和訂票查詢兩個(gè)部分。層次圖如圖所示:售票系統(tǒng)信息查詢車次查詢車票查詢 售票退出訂票系統(tǒng)的層次圖b:系統(tǒng)流程圖: 系統(tǒng)頂層流程圖如圖所示:查詢程序訂票程序 退票程序訂票系統(tǒng)文件系統(tǒng)事務(wù)相應(yīng)信息操作反饋系統(tǒng)流程輸入所需車次的重要信息查詢程序文件系統(tǒng)符合用戶需求的車次信息事務(wù)車次信息查詢系統(tǒng)流程圖售票程序文件系統(tǒng)操作反饋事務(wù)輸入售票信息訂單信息查詢系統(tǒng)流程圖退票程序文件系統(tǒng)操作反饋事務(wù)輸入退票信息退票系統(tǒng)流程圖c.程序流程圖本系統(tǒng)主界面為用戶設(shè)計(jì)了三個(gè)功能操作以供選擇:查詢,訂票,退票。另外,為方便用戶,還將“退出系統(tǒng)”也單另列了出來,用戶可以根據(jù)需要觸發(fā)不同事件。其處理流程如圖所示。(1).售票的系統(tǒng)主處理流程售票員系統(tǒng)主程序流程圖nnnyyynnyy查詢界面用戶輸入要查詢條件查詢讀數(shù)據(jù)文件輸出查詢結(jié)果關(guān)閉窗口結(jié)束開始售票售票界面繼續(xù)查詢車次信息查詢車次信息售票返回主頁(2).車次信息查詢處理流程車次信息查詢程序流程圖(3). 車票處理流程nnyynyny開始添加界面添加改輸入添加信息n返回主頁繼續(xù)售票提交信息有效性修改數(shù)據(jù)文件y關(guān)閉窗口結(jié)束錯(cuò)誤提示售票程序流程圖(4). 車票信息查詢處理流程nnnyyyny查詢界面讀數(shù)據(jù)文件輸出查詢結(jié)果關(guān)閉窗口結(jié)束開始y返回主頁主界面退票退票界面繼續(xù)查詢訂票信息查詢訂票信息退票訂票信息查詢模塊程序流程圖(5). 退票模塊處理流程nnyynyny開始退票界面退票n返回主頁繼續(xù)退票提交信息有效性y關(guān)閉窗口結(jié)束錯(cuò)誤提示輸入退票信息退票模塊程序流程圖詳細(xì)的代碼分析:主頁面:代碼: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(查詢);p1.add(b1); p1.add(b2); p1.add(b3);訂票頁面:對車次信息的查詢,系統(tǒng)提供了車次信息,進(jìn)行精確的查詢,系統(tǒng)經(jīng)過檢索,返回符合用戶要求的車次,再由用戶自行選擇滿意的車次。代碼: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(購買數(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);退票頁面:根據(jù)車票號碼來退票代碼: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);查詢頁面:選擇查詢條件代碼:jframe frame; int teformnum; / jframe frame; button b1,b2; panel p1; frame=new jframe(查詢: 請選擇查詢的方式:); 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(車次); b2=new button(始發(fā)抵達(dá)城市); p1.add(b1); p1.add(b2); 按車次查詢:輸入車次查詢:按始發(fā)城市查詢: 輸入始站和終站:訂票成功返回成功信息:文件系統(tǒng):代碼: /從文件中讀取車票信息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;/將車票信息寫入文件public void ticketwriter()outputstream os = null; file file = new file(ticket.txt); string str = ;/str用于存放車票信息for(int

溫馨提示

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

評論

0/150

提交評論