【正文】
t admit even to himself that there were some things other people could do better. If you kept beating him at anything you had to be cheating. He started a nasty argument over it one nightcould have gotten seriousbut Gerard and Caine broke it up. G ive Caine that. He took my part that time. Poor guy . . . Hell of a way to go, you know? His throat . . . Well, anyhow, there I was in Texorami, making music and women, winning at cards and jockeying around the sky. Palm trees and nightblooming wallflowers. Lots of good port smellsspices, coffee, tar, saltyou know. Gentlefolk, merchants, and peons the same straights as in most other places. Sailo。m good and I39。s about the only thing I wouldn39。t wait. And the air currents were fabulous. I had a little red sail plane I used to go sky surfing in, every couple of days. It was the good life. I played drums till all hours in a basement spot up the river where the walls sweated almost as much as the customers and the smoke used to wash around the lights like streams of milk. When I was done playing I39。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。 ( 4)學(xué)??稍试S學(xué)位論文被查閱或借閱。 ( 2)學(xué)??梢圆捎糜坝?、縮印或其他復(fù)制方式保存學(xué)位論文。除非另有說明,本文的工作是原始性工作。 在論文完成過程中,本人還得到了其他老師和許多同學(xué)的熱心幫助,本人向他們表示深深的謝意! 最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 作者簡介 姓 名:劉應(yīng)嘉 性別: 男 出生年月: 1984/05/25 民族:漢 Email: 第 27頁 共 27頁 聲 明 本論文的工作是 2021 年 2 月至 2021 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。 參考文獻(xiàn) [1] Ted Husted 著 . Struts in Action[M].美國. 亞馬遜出版社 . . [2] 耿祥義著 . JSP 實用教程 [M]. 北京. 清華大學(xué)出版社 . . [3] Erich Gamma 著.設(shè)計模式 [M].北京.機械工業(yè)出版社. . [4] 耿祥義著 . JAVA2 實用教程 [M].北京. 清華大學(xué)出版社 . . [5] 林勝利著.精通 J2ME 無線編程 [M] .北京.中國鐵道出版社. . [6] 阮文江等著. JavaScript 程序設(shè)計基礎(chǔ)教程 [M] .北京.人民郵電出版社. . [7] 張文建等著. JSP 案例開發(fā) [M] .北京.中國水利水電出版社. . 第 26頁 共 27頁 致 謝 本文是 在張仕斌老師和陳念偉老師的熱情關(guān)心和指導(dǎo)下完成的,他們淵博的知識和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對順利完成本課題起到了極大的作用。 手機網(wǎng)絡(luò)資源以其豐富的信息容量、良好的人機交互界面、隨時隨地的信息獲取 ,極大地滿足了人們?nèi)找嬖鲩L的咨詢需求。對手機而言,在 JAVA手機迅猛發(fā)展的大環(huán)境下,適時的推出這個手機公交查詢系統(tǒng)無疑會對人們的出行和出差產(chǎn)生極大的幫助。這對以后的專業(yè)發(fā)展是極其重要的。 通過對基于 J2ME 的手機公交查詢系統(tǒng)的開發(fā),本人對 J2EE 和 J2ME 都有了更深入的了解 ,同時對手機無線網(wǎng)絡(luò)有了更深刻的理解。證實了該系統(tǒng)的可行性及實用價值 ,不足之處在于由于目前手機上網(wǎng)仍比較昂貴 ,用戶無法承擔(dān)大流量 ,故無法實現(xiàn)遠(yuǎn)程地圖定位功能 . 結(jié) 論 本畢業(yè)設(shè)計采用 B/S 和 C/S 相結(jié)合的結(jié)構(gòu),綜合運用以前所學(xué)的專業(yè)知識,設(shè)計開發(fā)了一個功能較完善的基于手機的公 交查詢系統(tǒng),并且提出了基于站點優(yōu)先級和鄰接矩陣的公交換乘算法和上下矩陣算法。 解決方法:手機客戶端上增加網(wǎng)絡(luò)設(shè)置功能。 解決方法:將成都市唯一兩路環(huán)城公交車 27 路和 34 路獨立出來,單獨處理。 解決方法:換成 JDBC 直連,并且使用連接池。 圖 13 線路查詢結(jié)果界面 第 24頁 共 27頁 測試結(jié)果 本系統(tǒng)采用白盒和黑盒測試相結(jié)合的方法,非開發(fā)人員(測試用戶)隨意進(jìn)行查詢,開發(fā)人員跟蹤服務(wù)器 LOG,觀察 Exception 出錯信 息,并做出判斷,經(jīng)過一個月的測試,發(fā)現(xiàn)問題和解決方法總結(jié)如下: ( 1)最開始使用 EJB+Weblogic,用戶反映查詢換乘速度太慢。 第 23頁 共 27頁 圖 11 手機客戶端主界面 ( 2)進(jìn)入線路查詢界面,如圖 12 所示。 } 手機 網(wǎng)絡(luò)設(shè)置 這里需要提到網(wǎng)絡(luò)設(shè)置問題,因為中國移動設(shè)置了 2 個網(wǎng)絡(luò)接入點 CMNET和 CMWAP,以 NOKIA 為代表的手機往往默認(rèn)接入點是 CMNET,而摩托羅拉之類的手機的默認(rèn)接入點常常是 CMWAP,所以本系統(tǒng)添加了網(wǎng)絡(luò)設(shè)置這個選項,以便讓用戶選擇自己的網(wǎng)絡(luò)情況,如果用戶不清楚,也可以在查詢出錯時看到提示。 //將讀入的流轉(zhuǎn)換為字符串輸出 (())。 iStrm = ()。 (XOnlineHost,:8080)。//給用戶提示信息 //如果網(wǎng)絡(luò)情況是 CMNET,則直接進(jìn)行連 接 if((true)){ = (HttpConnection) ( + cdbusapp/findline?busno= + no, , true)。 查詢方法基于 HTTP 原理和 JAVA 線程技術(shù),查詢到需要的數(shù)據(jù)后就斷開連接,節(jié)約用戶的流量,執(zhí)行查詢時先啟動查詢線程,判斷當(dāng)前網(wǎng)絡(luò)是 CMWAP還是 CMNET,然后連接到服務(wù)器接口 Servlet ,再將查詢數(shù)據(jù)發(fā)送給服務(wù)器,然后從服務(wù)器那里讀取返回數(shù)據(jù),讀取完畢后關(guān)閉連接。 ()。 } //如果按下確定按鈕,則調(diào)用查詢方法 if(c==okCommand1){ SearchAction searchaction=new SearchAction()。 代碼顯示效果如圖 11 所示,其中 將用戶輸入鎖定為數(shù)字,起到了入口數(shù)據(jù)控制作用。 addCommand(okCommand1)。//確定按鈕 //把控件添加到屏幕上 append(searchField)。 backCommand1=new Command(返回 ,1)。 客戶端工 作原理 下面以線路查詢功能為例,詳細(xì)說明 J2ME 手機客戶端工作原理。 //添加監(jiān)聽器 (this)。 //添加控件 (exitCommand)。 exitCommand = new Command(退出 , , 1)。 mainnokCommand = new Command(確定 , , 1)。 } 然后將結(jié)果顯示在用戶手機上: wml card id=selectNumber title=查詢結(jié)果 p align=center %=result% /p p align=left a href=返回 /a 第 20頁 共 27頁 /p p align=left a href=返回首頁 /a /p /card /wml 手機客戶端的實現(xiàn) 客戶端界面的實現(xiàn) 界面使用了內(nèi)部類技術(shù),整個界面是一個大類,里面的每一個選項都是一個內(nèi)部類,并且部署監(jiān)聽器,實現(xiàn)按鍵事件監(jiān)聽。//調(diào)用業(yè)務(wù)處理方法 Iterator itr=() 。//用戶查詢計數(shù)器加 1 Dealbus dealbus=new Dealbus()。 第 19頁 共 27頁 圖 10 客戶端下載頁面 詳細(xì)原理以線路查詢?yōu)槔€路查詢提交代碼如 下: go href= method=post postfield name=busno value=$(busno:n)/ /go 其中 $(busno:n)為變量的表示方法,: n 的意思為變量中沒有 ESCAPE 字符,即不需要進(jìn)行 ESCAPE 八進(jìn)制轉(zhuǎn)碼。 WAP 模塊主要有首頁,功能選擇頁面,線路查詢頁面,站站查詢頁面等組成,部分頁面顯示如下: 功能選擇頁面,讓用戶選擇使用哪種方式進(jìn)行查詢,如圖 9 所示。它可以顯示各種文字、圖像等數(shù)據(jù),是由 WAP 論壇( 備用戶提供交互界面而設(shè)計的,目前版本為 版。 return ((error)) 。 } catch (Exception e) { //將錯誤信息放到 request中傳遞到錯誤頁面 (errorMsg, ())。 result=null。 (null)。 圖 8 查詢頁面 Action 作為中央控制器負(fù)責(zé)執(zhí)行判斷用戶輸入和查 詢,以線路查詢?yōu)槔诵拇a如下: 判斷用戶提交內(nèi)容: //如果用戶按公交車號查詢 if (busno != null) try { busnoresult = (busno) 。首頁顯示圖 7 所示。 Web 端的實現(xiàn) 本 系統(tǒng) Web 端采用 Struts 框架,嚴(yán)格遵循 MVC 模式,用戶提交信息后先放到 FormBean 中暫存,然后在 Action 中實現(xiàn)業(yè)務(wù)方法的調(diào)用,實現(xiàn)代碼的高度封裝性和分離性。 ()。 } result+=\n+()。 Iterator itr=() 。發(fā)送信息關(guān)鍵代碼如下: (CONTENT_TYPE)。 至此站站查詢?nèi)客瓿伞? } return twohg。 (find one)。 } 最后把起點到第一換乘站,第一換乘站到第二換乘站,第二換乘站到終點站3 段線路連接到一個 String 中并將改 String 添加到集合中,最后返回該集合: result=從 +stop1+站出發(fā) ,乘坐 +busno1+到 +huanchengstop1+站轉(zhuǎn)+()+到 + huanchengstop2+站轉(zhuǎn) +busno2+到 +stop2。 nonstop3=(Nonstop)().next()。 busno1+=()+,。 } } 找到一條可行的線路后,再開始查找起點到轉(zhuǎn)乘點 1 的線路和轉(zhuǎn)乘點 2 到重點的線路 ,并放到一個 String 中: //第 1 站到第 2 站的車號 while(().hasNext()){ (step3)。 } } //外層 break if(!()){ (break2+())。 第 15頁 共 27頁 } //內(nèi)層 break if(!()){ (找到中途換乘 +())。 String sop2=(String)()。 Iterator key2= ().iterator()。 在分別 找到起點和終點能直達(dá)的站點集合后,就開始進(jìn)行循環(huán)查找,開始檢驗起點能直達(dá)的站點中是否有能直達(dá)終點能直達(dá)站點的站點,如有,則證明可以進(jìn)行二次換乘。 (stopname,rubbish)。 while(()){ Iterator initr1=searchbusline((String)()).iterator()。//經(jīng)過