畢業(yè)設(shè)計(jì)(論文)基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于J2EE的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于基于 j2eej2ee 的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘摘 要要公交查詢系統(tǒng)是城市道路交通的重要組成部分,是城市發(fā)展的必然產(chǎn)物,是聯(lián)系國(guó)民生活、社會(huì)生產(chǎn)和流通領(lǐng)域的關(guān)鍵環(huán)節(jié)。我國(guó)城市公交查詢系統(tǒng)的發(fā)展處于一個(gè)較落后的水平,人們可以獲得信息的方式很少,為了解決這種問(wèn)題,設(shè)計(jì)出基于 j2ee 的公交查詢系統(tǒng)。本論文詳細(xì)介紹了整個(gè)系統(tǒng)的已實(shí)現(xiàn)的功能。首先,實(shí)現(xiàn)多種查詢功能,包括根據(jù)商廈名稱、公交車號(hào)、日常站點(diǎn)、和任意兩個(gè)站點(diǎn)查詢乘車路線。其次,采用最短路徑算法查找任意兩個(gè)站點(diǎn)之間的最短乘車路線。最后,提供了用戶留言的功能、用戶管理功能和后臺(tái)車次管理功能;用戶留言功能,主要是

2、收集用戶的留言信息,可以根據(jù)用戶提供的留言信息或是提出的建議,對(duì)系統(tǒng)進(jìn)行修改和完善;用戶管理功能,主要是刪除用戶信息和修改用戶基本信息;后臺(tái)車次管理功能主要包含添加車次和站點(diǎn)功能、更新車次和站點(diǎn)功能、刪除車次和站點(diǎn)功能,這樣做到系統(tǒng)實(shí)時(shí)更新,為用戶查詢提供更為準(zhǔn)確的信息。關(guān)鍵詞:關(guān)鍵詞:j2ee;最短路徑算法;公交查詢design and realization of public transport inquiry system based on j2eeabstracturban public transportation is an important part in traffic a

3、nd transportation domain, and its also the inevitable result of social economys development in urban areas. as an important part of urban transportation system, urban public transportation system is acting a key role in human living, in social production and in transportation domain .but the inquiry

4、 system of public transportation developments in our country is in a comparatively backward level. the general passengers have less way to obtain the information. in order to solve this kind of problem, an inquiry system of public transport based on j2ee is designed.the thesis has introduced the rea

5、lized functions of entire system in detail. firstly, the system has realized many inquiry functions. the system can search bus route by the name of business mansion, the number of public transport, ordinary bus station and two arbitrary stations. secondly, the system uses the shortest path algorithm

6、 to find the shortest travel routes between any two stations. finally, the system provides the functions of consumer message, the bus number managing on the backstage and the consumer managing. the function of consumer message mainly collects suggestions from consumer to modify and perfect the syste

7、m functions. the function of user managing is to delete user information mainly and revises the fundamental user information. the functions of bus number managing are mainly to add, update and delete the bus number and the station on the backstage. these can enable the system have the quality of rea

8、l-time updating to provide the accurate information for user.key words:j2ee; shortest path algorithm; public transport inquiry目目 錄錄論文總頁(yè)數(shù):30 頁(yè)1 引言 .31.1 選題背景.31.2 項(xiàng)目的主要研究工作.31.3 開發(fā)環(huán)境.42 理論基礎(chǔ) .42.1 概念.42.1.1 j2ee 的概念.42.1.2 jsp 的概念.52.1.3 java bean 的概念.52.1.4 java servlet 的概念.52.1.5 session 對(duì)象.52.2 j2

9、ee 的結(jié)構(gòu) .52.3 j2ee 的容器類型 .62.4 j2ee 的體系與模式 .62.4.1 j2ee 的體系(分布式計(jì)算).62.4.2 j2ee 的模式.63 公交查詢系統(tǒng)功能分析 .63.1 公交查詢系統(tǒng)的需求.63.1.1 系統(tǒng)需求描述 .63.1.2 系統(tǒng)數(shù)據(jù)流圖 .73.2 公交查詢系統(tǒng)的功能.73.3 公交查詢系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì).83.3.1 e-r 圖.83.3.2 數(shù)據(jù)庫(kù)表設(shè)計(jì) .94 公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) .114.1 創(chuàng)建管理員登錄的 servlet.114.2 創(chuàng)建用戶登錄的 servlet.134.3 公交系統(tǒng)查詢模塊.144.3.1 商廈查詢.144.3.2

10、 車次信息查詢 .174.3.3 站點(diǎn)信息查詢 .194.3.4 兩個(gè)站點(diǎn)間的信息查詢 .204.4 公交系統(tǒng)添加模塊.254.4.1 添加車次 .254.4.2 添加站點(diǎn) .264.5 公交系統(tǒng)刪除模塊.264.5.1 刪除車次 .264.5.2 刪除站點(diǎn) .274.6 公交系統(tǒng)更新模塊.274.7 公交系統(tǒng)留言板模塊.284.7.1 發(fā)表留言 .284.7.2 查看留言 .284.7.3 刪除留言 .295 系統(tǒng)測(cè)試與分析 .29結(jié) 論 .30參考文獻(xiàn) .30致 謝 .錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。聲 明 .錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。第 3 頁(yè) 共 30 頁(yè)1 1 引言引言

11、1.11.1 選題背景選題背景20 多年來(lái),我國(guó)經(jīng)濟(jì)得到了持續(xù)、快速、穩(wěn)定、健康地發(fā)展。經(jīng)濟(jì)的快速增長(zhǎng),帶動(dòng)了汽車工業(yè)的蓬勃發(fā)展,并使交通狀況顯著改善。據(jù)統(tǒng)計(jì),中國(guó)公路通車總里程已達(dá) 130 余萬(wàn)公里,其中高速公路約 1.5 萬(wàn)公里。居民收入普遍提高,到 2000 年年底,人均 gdp 已超過(guò) 800 美元,沿海地區(qū)已達(dá) 20003000美元。按國(guó)際發(fā)展慣例,當(dāng)人均 gdp 超出 1000 美元,汽車消費(fèi)市場(chǎng)就將進(jìn)入快速增長(zhǎng)期。我國(guó)城市人口約有 2 億,略低于美國(guó)人口。東部沿海地區(qū)大部分居民已經(jīng)具備了汽車消費(fèi)實(shí)力。據(jù)中國(guó)消費(fèi)者協(xié)會(huì) 2000 年對(duì) 20 個(gè)大城市調(diào)查顯示,有 32%的消費(fèi)準(zhǔn)備在

12、未來(lái) 5 年內(nèi)購(gòu)買家用轎車,其中 30.6%的無(wú)車消費(fèi)者已經(jīng)有駕駛執(zhí)照。隨著個(gè)人信貸制度的啟動(dòng)和日漸完善,家庭轎車的快速增長(zhǎng)勢(shì)頭必將開掘出巨大的中國(guó)汽車市場(chǎng)。城市經(jīng)濟(jì)發(fā)展,城市規(guī)模越來(lái)越大,相應(yīng)的城市公交系統(tǒng)也越來(lái)越龐大。許多新建小區(qū)大量出現(xiàn),公交線路也日漸增多,給人們的出行帶來(lái)了極大便利,但是由于城市規(guī)模的不斷發(fā)展,給人們選擇出行乘車線路造成了一定的困難。即使一個(gè)在城市生活多年的人,給他任意兩個(gè)地點(diǎn),要他說(shuō)出這兩個(gè)地點(diǎn)之間的乘車方案,他往往也是很難說(shuō)出來(lái)的。但是如果給他一張交通地圖之后,他可以很快地找出圖上的任意兩點(diǎn)之間的乘車方案,所找出的方案即使不是最優(yōu)的,也是一條可供參考的備選方案。但是

13、這樣的查詢效率是相當(dāng)?shù)偷?,所以需要提供一個(gè)高效的查詢系統(tǒng),才是問(wèn)題更本所在。而基于 j2ee 的公交查詢系統(tǒng),就是利用 b/s 結(jié)構(gòu)開發(fā)出來(lái)的查詢系統(tǒng),它通過(guò)利用數(shù)據(jù)結(jié)構(gòu)當(dāng)中的最短路徑算法,可以查出任意兩個(gè)地點(diǎn)之間最短的乘車方案。它不僅可以用于公交公司管理系統(tǒng)中,也可以單獨(dú)作為公交管理系統(tǒng)的一個(gè)模塊存在,并可以制作成公交信息系統(tǒng)查詢網(wǎng),放置于城市的主要場(chǎng)所。這樣不僅可以體現(xiàn)出一個(gè)城市的智能公交系統(tǒng)的水平,更顯示出城市的數(shù)字化,信息化水平。目前,我國(guó)眾多大城市普遍存在交通擁擠,延誤人們平時(shí)上班時(shí)間。甚至影響了城市旅游業(yè)經(jīng)濟(jì)的可持續(xù)發(fā)展。所以為了切實(shí)的改善公交車內(nèi)擁擠狀況,適當(dāng)增加發(fā)車次數(shù)以縮短乘

14、客等車時(shí)間,但是能夠準(zhǔn)確為人們提供最短的乘車線路才是得到解決的最好辦法,這樣大大的縮短了人們的乘車時(shí)間。本項(xiàng)目研究的基于 j2ee 的公交查詢系統(tǒng),讓人們通過(guò)互聯(lián)網(wǎng)很快的查出該城市任意兩站點(diǎn)之間的最短乘車路線。1.21.2 項(xiàng)目的主要研究工作項(xiàng)目的主要研究工作本系統(tǒng)是從城市交通現(xiàn)狀出發(fā),根據(jù)人們的出行規(guī)律,設(shè)計(jì)了一個(gè)完整的第 4 頁(yè) 共 30 頁(yè)基于 j2ee 體系的公交車查詢系統(tǒng)。該系統(tǒng)可以根據(jù)商廈名稱,公交車號(hào),日常站點(diǎn)和站點(diǎn)之間為查詢條件分別進(jìn)行查詢,解決了市民出行乘坐公交車時(shí)經(jīng)常遇到的困難。本系統(tǒng)模型構(gòu)架分為下面四層結(jié)構(gòu),如下。(1)j2ee 應(yīng)用程序組件j2ee 應(yīng)用程序是由組件構(gòu)成

15、的。j2ee 組件是具有獨(dú)立功能的軟件單元,它們通過(guò)相關(guān)的類和文件組裝成 j2ee 應(yīng)用程序,并與其他組件交互。本系統(tǒng)包括如下組件:應(yīng)用客戶端程序及 j2ee 服務(wù)器。java servlet 和 javaserver pages(jsp)web 組件及 javabean。(2)web 層組件j2ee web 層組件包含 jsp 頁(yè)面或 servlet。按照 j2ee 規(guī)范,還包含某些javabean 對(duì)象來(lái)處理用戶輸入,并把輸入發(fā)送給運(yùn)行在業(yè)務(wù)邏輯層上的組件來(lái)進(jìn)行處理。(3)客戶層組件基于 web 方式的靜態(tài) html 頁(yè)面或是 applet 客戶端的小應(yīng)用程序。(4)編寫算法編寫最短路徑數(shù)

16、據(jù)結(jié)構(gòu)算法,解決完成站點(diǎn)之間最短乘車路徑查詢。1.31.3 開發(fā)環(huán)境開發(fā)環(huán)境開發(fā)工具:eclipse 3.2 + myeclipse 5.0ga。運(yùn)行環(huán)境:jsdk 1.5.0_04 虛擬機(jī)。服務(wù)器:tomcat 5.5。數(shù)據(jù)庫(kù):microsoft sql server 2000。操作系統(tǒng):windows xp。所需內(nèi)存:512 m。2 2 理論基礎(chǔ)理論基礎(chǔ)2.12.1 概念概念.1 j2eej2ee 的概念的概念j2ee 是一種利用 java 2 平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。j2ee 技術(shù)的基礎(chǔ)就是核心 java 平臺(tái)或 java 2 標(biāo)

17、準(zhǔn)平臺(tái)。j2ee 不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如“編寫一次、隨處運(yùn)行”的特性、方便存取數(shù)據(jù)庫(kù)的 jdbc api、corba 技術(shù)以及能夠在 internet 應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì) ejb(enterprise javabeans) 、java 第 5 頁(yè) 共 30 頁(yè)servlet api、jsp(java server pages)以及 xml 技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。.2 jspjsp 的概念的概念jsp 程序是一個(gè)服務(wù)端頁(yè)面腳本程序,可以在這個(gè)腳本中直接編寫客戶端瀏覽器需要顯示的

18、html 文檔內(nèi)容,當(dāng)然也可以依照 jsp 規(guī)范將 java 程序代碼嵌入腳本。jsp 腳本規(guī)范提供了若干內(nèi)部對(duì)象來(lái)簡(jiǎn)化 jsp 程序和瀏覽器之間的輸入輸出處理。由于 jsp 程序是從 html 頁(yè)面添加 java 動(dòng)態(tài)處理代碼而來(lái),因此,jsp 程序又稱為動(dòng)態(tài) jsp 頁(yè)面。.3 javajava beanbean 的概念的概念javabean 是一種 java 語(yǔ)言寫成的可重用組件,用戶可以使用 javabean 將功能、處理、值、數(shù)據(jù)庫(kù)訪問(wèn)和其他任何可以用 java 代碼創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開發(fā)者可以通過(guò)內(nèi)部的 jsp 頁(yè)面、servlet、其他javabean

19、、applet 程序或者應(yīng)用來(lái)使用這些對(duì)象。用戶可以認(rèn)為 javabean 提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。這個(gè)對(duì) j2ee 業(yè)務(wù)邏輯層處理具有相當(dāng)重要的部分。.4 javajava servletservlet 的概念的概念java servlet 使用的是一種請(qǐng)求/響應(yīng)機(jī)制,也就是說(shuō)通過(guò)特定的 java 程序設(shè)計(jì)技術(shù),由該 servlet 動(dòng)態(tài)產(chǎn)生的響應(yīng)向某一特定的請(qǐng)求做出響應(yīng)。servlet 所能應(yīng)用的請(qǐng)求/響應(yīng)場(chǎng)合很多,但常用的還是在 web 應(yīng)用程序中用于產(chǎn)生超文本傳輸協(xié)議響應(yīng)(http) 。據(jù)此,servlet 可能取代其他類型的 http

20、請(qǐng)求/響應(yīng)機(jī)制,譬如通用網(wǎng)關(guān)接口(cgi)腳本。.5 sessionsession 對(duì)象對(duì)象session 對(duì)象是類 javax.servlet.httpsession 的一個(gè)對(duì)象,是用來(lái)保存每個(gè)用戶信息(以會(huì)話的形式直接保存在 web 服務(wù)器端) ,以便跟蹤每個(gè)用戶的操作狀態(tài)。2.22.2 j2eej2ee 的結(jié)構(gòu)的結(jié)構(gòu)j2ee 結(jié)構(gòu)具有一個(gè)很大的特點(diǎn),就是與平臺(tái)無(wú)關(guān)性的 j2ee 結(jié)構(gòu)。所開發(fā)出來(lái)的程序可以在任何操作系統(tǒng)下運(yùn)行。這樣就使得 j2ee 程序的編寫變得十分簡(jiǎn)單,因?yàn)闃I(yè)務(wù)邏輯被封裝成可以復(fù)用的組件,并且 j2ee 服務(wù)器以容器的形式為所有的組件類型提供后臺(tái)服務(wù),所

21、以你可以集中精力解決手頭的業(yè)務(wù)邏輯。第 6 頁(yè) 共 30 頁(yè)2.32.3 j2eej2ee 的容器類型的容器類型j2ee 容器類型可以分為 web 容器和 ejb 容器。ejb 容器管理所有 j2ee 應(yīng)用程序中企業(yè)級(jí) bean 的執(zhí)行,enterprise bean和它們的容器運(yùn)行在 j2ee 服務(wù)器上。web 容器也是管理所有 j2ee 應(yīng)用程序中 jsp 和 servlet 組件執(zhí)行,同理web 組件和它們的容器也是運(yùn)行在 j2ee 服務(wù)器上的。2.42.4 j2eej2ee 的體系與模式的體系與模式 j2eej2ee 的體系的體系( (分布式計(jì)算分布式計(jì)算) )(1)表示

22、層:web page| html | http(2)控制層:jsp | servlets (3)邏輯層:javabean (4)數(shù)據(jù)層:database (5)jdbc.2 j2eej2ee 的模式的模式mvc(model view controller)頁(yè)面 bean 是一個(gè)模型(model) ,而 jsp 是一個(gè)視圖(view), servlet 是一個(gè)控制器(controller)。3 3 公交查詢系統(tǒng)功能分析公交查詢系統(tǒng)功能分析3.13.1 公交查詢系統(tǒng)的需求公交查詢系統(tǒng)的需求.1 系統(tǒng)需求描述系統(tǒng)需求描述公交查詢系統(tǒng)的需求最主要是通過(guò)站點(diǎn)與車次之間的關(guān)

23、系,利用數(shù)據(jù)結(jié)構(gòu)算法構(gòu)造一個(gè)公交查詢的網(wǎng)絡(luò)圖,然后通過(guò)最短路徑算法,為用戶準(zhǔn)確地提供兩站點(diǎn)之間的最短乘車路線。其次從業(yè)務(wù)實(shí)現(xiàn)上來(lái)說(shuō),需要在業(yè)務(wù)邏輯層上編寫最短路徑算法,同時(shí)還要編寫當(dāng)用戶查詢請(qǐng)求時(shí)必須的數(shù)據(jù)庫(kù)連接,然后根據(jù)用戶提供查詢站點(diǎn)信息,建立公交查詢網(wǎng)絡(luò)圖,最終調(diào)用算法獲取兩站點(diǎn)之間的最短乘車線路。當(dāng)查詢完成后,如果用戶需要進(jìn)行其它的操作,則釋放該連接資源。最后,為了讓公交線路信息得到及時(shí)的更新或是信息刪除,需要做出相應(yīng)的操作和處理。第 7 頁(yè) 共 30 頁(yè).2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖管理員登錄車次管理用戶登錄用戶注冊(cè) 帳 號(hào) 線路管理留言刪除用戶車輛信息庫(kù)線路信息留言

24、本站點(diǎn)管理站點(diǎn)信息公交車查詢用戶圖 3.1 系統(tǒng)數(shù)據(jù)流圖3.23.2 公交查詢系統(tǒng)的功能公交查詢系統(tǒng)的功能(1)通過(guò)選擇商廈名稱進(jìn)行相應(yīng)的信息查詢。(2)通過(guò)選擇車號(hào)進(jìn)行相應(yīng)的信息查詢。(3)通過(guò)選擇站點(diǎn)進(jìn)行相應(yīng)的信息查詢。(4)通過(guò)選擇任意兩個(gè)站點(diǎn),完成兩站點(diǎn)之間最短乘車路線查詢。(5)完成車次和站點(diǎn)添加功能。(6)完成車次和站點(diǎn)更新功能。(7)完成車次和站點(diǎn)刪除功能。(8)用戶登錄驗(yàn)證功能。(9)用戶注冊(cè)信息功能。(10)用戶注銷功能。(11)刪除用戶信息功能。 (12)添加用戶留言,刪除用戶留言,查看用戶留言。(13)管理員登錄驗(yàn)證功能。(14)管理員注銷功能。第 8 頁(yè) 共 30 頁(yè)3

25、.33.3 公交查詢系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)公交查詢系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì).1 e-r 圖圖用 戶用戶名密碼年齡地址郵箱提示問(wèn)題提示答案證件號(hào)碼圖 3.2 用戶實(shí)體及屬性管理員管理員帳號(hào)密碼圖 3.3 管理員實(shí)體及屬性留 言 板用戶名留言時(shí)間留言標(biāo)題留言內(nèi)容郵箱地址留言 id圖 3.4 留言板實(shí)體及屬性第 9 頁(yè) 共 30 頁(yè)車次信息終點(diǎn)站票價(jià)起點(diǎn)站車子檔次車號(hào)票價(jià)檔次站點(diǎn)信息站點(diǎn)號(hào)站點(diǎn)名稱經(jīng)過(guò)車號(hào)站點(diǎn)次序站點(diǎn)號(hào)圖 3.5 車次與站點(diǎn)之間關(guān)系.2 數(shù)據(jù)庫(kù)表設(shè)計(jì)數(shù)據(jù)庫(kù)表設(shè)計(jì)(1)用戶表 userinfo(如表 3.1)表 3.1 用戶表信息列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空user

26、name用戶名varchar50not nulluserpassword用戶密碼varchar50not nulluserage用戶年齡int4nulladdress地址varchar50nullemail郵箱varchar50nullquestion問(wèn)題varchar50nullanswer答案varchar50nullidnum證件號(hào)varchar50null第 10 頁(yè) 共 30 頁(yè)(2)管理員表 administrator(如表 3.2)表 3.2 管理員信息列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空adminiid管理員名varchar50not nulladminipassword密碼varc

27、har50not null(3)車次信息表 businfo(如表 3.3)表 3.3 車次信息表列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空busnum車號(hào)int4not nullbeginst起點(diǎn)站varchar50not nullendst終點(diǎn)站varchar50not nullticketnote票價(jià)varchar50nullbuslevel車子檔次varchar50nullnote票檔次varchar50null(4)站點(diǎn)信息表 stinfo(如表 3.4)表 3.4 站點(diǎn)信息表列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空stid站點(diǎn)號(hào)int4not nullstname站點(diǎn)名稱varchar50not null

28、(5)車次與站點(diǎn)關(guān)系表 busst(如表 3.5)表 3.5 車次與站點(diǎn)關(guān)系表列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空busnum車號(hào)int4not nullstid站點(diǎn)號(hào)int4not nullstorder站點(diǎn)次序int4not null(6)商廈信息表 publicplace(如表 3.6)表 3.6 商廈信息表列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空placesid商廈號(hào)int4not nullplacesname商夏名稱varchar50null第 11 頁(yè) 共 30 頁(yè)(7)站點(diǎn)與商廈關(guān)系表 stplace(如表 3.7)表 3.7 站點(diǎn)與商廈關(guān)系表列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空stid站點(diǎn)號(hào)int4

29、not nullplaceid商廈號(hào)int4not null(8)留言信息表 message(如表 3.8)表 3.8 留言信息表列名中文名稱數(shù)據(jù)類型長(zhǎng)度允許空username用戶名varchar50not nullmessagedate留言日期datetime8not nulltopic留言主題varchar50not nullemail郵箱varchar50nullmessagetext留言內(nèi)容varchar250not nullid留言序號(hào)int4not null4 4 公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)4.14.1 創(chuàng)建管理員登錄的創(chuàng)建管理員登錄的 servletserv

30、let(1)打開 eclipse 開工具,新建一個(gè) confirmservlet 類(如圖 4.1)圖 4.1 創(chuàng)建管理員登錄 confirmservlet 類(2)在已創(chuàng)建好 confirmservlet 類中,生成一個(gè)具有私有屬性的第 12 頁(yè) 共 30 頁(yè)login()方法,該方法就是對(duì)管理員請(qǐng)求過(guò)來(lái)的信息進(jìn)行驗(yàn)證。該方法首先利用 httpservletrequest,httpservletresponse 進(jìn)行對(duì)象初始化。利用httpservletrequest 的 getparameter()來(lái)獲取管理員頁(yè)面?zhèn)鱽?lái)的兩個(gè)參數(shù),一個(gè)是 adminname,另一個(gè)是 adminpasswo

31、rd。然后調(diào)用自定義連接數(shù)據(jù)庫(kù)類進(jìn)行數(shù)據(jù)庫(kù)對(duì)象實(shí)例化,最后在進(jìn)行驗(yàn)證的時(shí)候,獲取管理頁(yè)面驗(yàn)證碼,如果驗(yàn)證碼無(wú)誤就對(duì)管理員賬號(hào)和管理員密碼驗(yàn)證,最終將正確的管理員賬號(hào)和管理員密碼放入 session 會(huì)話變量中。管理員登錄界面(如圖 4.2)圖 4.2 管理員登錄界面相應(yīng)代碼:private void login(httpservletrequest request,httpservletresponse response)connection conn=null;statement stmt=null;resultset rs=null;httpsession session=request.

32、getsession(true);/如果用戶session為空重新分配一個(gè)新的session給用戶dbconnection2 db=dbconnection2.getinstance();string adminname=request.getparameter(adminname) =null ? : request.getparameter(adminname);adminname =exchange(adminname);/字符串亂碼處理string password = request.getparameter(password) = null ? : request.getparam

33、eter(password);password=exchange(password);/字符串亂碼處理string sql=;string rand=(string) session.getattribute(rand);string input=request.getparameter(vaild);int n=0;try第 13 頁(yè) 共 30 頁(yè)conn = db.getconnection();stmt = conn.createstatement();sql = select * from administrator where adminiid = +adminname+ and a

34、dminipassword = +password+;rs=stmt.executequery(sql);if(rs.next() & rs!= null)n+;if (n 0 & input.equals(rand)session.setattribute(adminname, adminname);session.setattribute(adminpassword, password);session.removeattribute(rand);response.sendredirect(loginsuccess.jsp);elseresponse.sendredirect(error.

35、jsp);catch(exception e)e.printstacktrace();finallytryif(stmt!=null)stmt.close();db.freeconnection(conn);catch(exception ee.printstacktrace();4.24.2 創(chuàng)建用戶登錄的創(chuàng)建用戶登錄的 servletservlet(1)打開 eclipse 開工具,新建一個(gè) userloginservlet 類(如圖 4.3)第 14 頁(yè) 共 30 頁(yè)圖 4.3 創(chuàng)建用戶登錄 userloginservlet 類(2)與管理員中的 confirmservlet 類一樣,也

36、生成一個(gè)具有私有屬性的login()方法,該方法也同樣的繼承了 httpservletrequest 和httpservletresponse 類,通過(guò)這個(gè)類來(lái)獲取用戶界面請(qǐng)求過(guò)來(lái)的參數(shù),當(dāng)通過(guò)用戶信息驗(yàn)證后,同樣也將用戶賬號(hào)和用戶的密碼放入 session 會(huì)話變量中,一旦用戶最終關(guān)閉瀏覽器,session 會(huì)話變量也隨即銷毀。用戶登錄界面(如圖 4.4)圖 4.4 用戶登錄界面4.34.3 公交系統(tǒng)查詢模塊公交系統(tǒng)查詢模塊.1 商廈查詢商廈查詢商廈查詢是為用戶提供按具體的名稱(如:歐尚)查詢,并顯示到這個(gè)地點(diǎn)所有公交車車次的相關(guān)信息(如:車號(hào),站點(diǎn)名稱,票價(jià),車子的檔次和這

37、個(gè)商廈的名稱等信息)。而查詢功能的實(shí)現(xiàn)是由系統(tǒng)的業(yè)務(wù)邏輯層中的 querydata 類來(lái)實(shí)現(xiàn)的。當(dāng)用戶傳來(lái)的車次提交信息,首先商廈查詢頁(yè)面先編譯成服務(wù)器上的第 15 頁(yè) 共 30 頁(yè)servlet,然后根據(jù)需要調(diào)用業(yè)務(wù)邏輯層中相應(yīng)類。商廈信息查詢結(jié)果(如圖 4.5)圖 4.5 商廈查詢相應(yīng)代碼:public arraylist queryplace(string placename,string page) arraylist arraylist = new arraylist();dbconnection2 db=dbconnection2.getinstance();connection

38、conn=null;statement stmt=null;resultset rs=null;string sql=;try if (placename != null) if (!placename.equals() placename = exchange(placename);/字符串轉(zhuǎn)碼int m = (integer.parseint(page) - 1) * pagesize;int i = 0;sql=select businfo.busnum,stinfo.stname,ticketnote,buslevel,note from stinfo,businfo,busst wh

39、ere busst.stid = stinfo.stid and businfo.busnum = busst.busnum and busst.stid in (select stid from stplace where placesid in (select placesid from publicplace where placesname = +placename+);conn = db.getconnection();stmt=conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_o

40、nly);rs = stmt.executequery(sql);if (rs.first() rs.absolute(m + 1); /將游標(biāo)放到指定位置再加1(也是開始的第一條記錄的序號(hào))第 16 頁(yè) 共 30 頁(yè)while(i pagesize & rs != null & !rs.isafterlast()hashmap hashmap = new hashmap();hashmap.put(busnum,+rs.getint(busnum);/將從數(shù)據(jù)庫(kù)中查出的值放入hashmap.put(stname,rs.getstring(stname);hashmap.put(ticketn

41、ote,rs.getstring(ticketnote);hashmap.put(buslevel,rs.getstring(buslevel);hashmap.put(note,rs.getstring(note);arraylist.add(hashmap); /將所有的hashmap放入arraylistrs.next();i+; catch (exception e) e.printstacktrace(); finally try if (stmt != null) stmt.close();db.freeconnection(conn); catch (exception e) e

42、.printstacktrace();return arraylist;調(diào)用此方法時(shí),在頁(yè)面中先引用包 com.bussystem.util,再創(chuàng)建 querydata類的對(duì)象,通過(guò)對(duì)象調(diào)用 queryplace()這個(gè)方法。第 17 頁(yè) 共 30 頁(yè).2 車次信息查詢車次信息查詢車次信息查詢是為用戶提供一個(gè)按公交車的車號(hào)(如:1 路)查詢,并顯示該公交車的相關(guān)信息(如:公交車的起點(diǎn)站、終點(diǎn)站、票價(jià)和車子的檔次等信息) 。而查詢功能的實(shí)現(xiàn)是由系統(tǒng)的業(yè)務(wù)邏輯層中的 querydata 類來(lái)實(shí)現(xiàn)的。車次信息查詢結(jié)果(如圖 4.6)圖 4.6 車次信息查詢相應(yīng)的代碼:public a

43、rraylist statisticsbybusinfo(string busnum,int page) arraylist arraylist = new arraylist();dbconnection2 db = dbconnection2.getinstance();connection conn = null;statement stmt = null;resultset rs = null;string sql = ;try int m = (page-1)*pagesize; /計(jì)算游標(biāo)的位置int i = 0;busnum = exchange(busnum);/字符串轉(zhuǎn)碼if

44、 (busnum.equals() | busnum = null) sql = select * from businfo; else busnum = exchange(busnum);/字符串轉(zhuǎn)碼sql = select * from businfo where busnum = +integer.parseint (busnum)+;conn = db.getconnection();第 18 頁(yè) 共 30 頁(yè)stmt= conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);

45、rs = stmt.executequery(sql);if (rs.first() rs.absolute(m + 1); /將游標(biāo)放到指定位置再加1(也是開始的第一條記錄的序號(hào))while (i e-h-i 就是查詢出來(lái)最短路徑。最短路徑算法相應(yīng)的程序(利用廣度優(yōu)先遍歷算法查找最短路徑):public stack getshortestpath2(object begin,object end)this.resetvertices();boolean done=false;arraylist vertexqueue=new arraylist();vertex beginvertex=(v

46、ertex) vertices.get(begin);vertex endvertex=(vertex) vertices.get(end);beginvertex.visit();vertexqueue.add(beginvertex);while(!done & !vertexqueue.isempty()vertex frontvertex=(vertex) vertexqueue.get(0); 第 25 頁(yè) 共 30 頁(yè)vertexqueue.remove(0); ierator edges=frontvertex.getneighboriterator();while(!done

47、& edges.hasnext()edge edgetonextneighbor=(edge) edges.next();vertex nextneighbor=edgetonextneighbor.getendvertex();if(!nextneighbor.isvisited()nextneighbor.visit();nextneighbor.setpredecessor(frontvertex);vertexqueue.add(nextneighbor);if(nextneighbor.equals(endvertex)done=true;stack path=new stack()

48、;path.push(endvertex);while(endvertex.getpredecessor()!=null)endvertex=endvertex.getpredecessor();path.push(endvertex);return path;4.44.4 公交系統(tǒng)添加模塊公交系統(tǒng)添加模塊.1 添加車次添加車次添加車次功能主要是增加一個(gè)車次詳細(xì)信息,其中包括:車次號(hào),起點(diǎn)站,終點(diǎn)站,票價(jià),汽車檔次,票價(jià)類型。需要注意,在添加起點(diǎn)站和終點(diǎn)站的時(shí)候,數(shù)據(jù)都是從站點(diǎn)庫(kù)獲得然后添加到起點(diǎn)站和終點(diǎn)站中去。因?yàn)樘砑榆嚧嗡簧婕暗杰嚧蔚脑敿?xì)信息,如果要想添加站點(diǎn),則需要在添

49、加站點(diǎn)功能頁(yè)面中進(jìn)行相應(yīng)的操作。添加車次頁(yè)面(如圖 4.12)第 26 頁(yè) 共 30 頁(yè)圖 4.12 添加車次.2 添加站點(diǎn)添加站點(diǎn)添加站點(diǎn)功能:(1)在添加站點(diǎn)的文本框中輸入要添加的站點(diǎn)名稱。 (2)提供了一個(gè)站點(diǎn)重名的查找功能,該功能可以對(duì)你輸入添加的站點(diǎn)名稱進(jìn)行名稱查重,通過(guò)查詢站點(diǎn)編碼表,顯示這個(gè)站點(diǎn)是否已經(jīng)存在。如果不存在,則將此新增站點(diǎn)名稱插入到站點(diǎn)編碼表中,如果存在,則不需將此站點(diǎn)名稱插入到站點(diǎn)編碼表中。 (3)通過(guò)下拉選擇框選擇新增站點(diǎn)所對(duì)應(yīng)的車次號(hào)。 (4)如果查詢站點(diǎn)總數(shù)在文本框中顯示為“0” ,則需要將起點(diǎn)站和終點(diǎn)站同新增的站點(diǎn)一起插入車次和站點(diǎn)的關(guān)系表中

50、。如果查詢站點(diǎn)總數(shù)在文本框中顯示不為“0” ,則只需將新增的站點(diǎn)插入車次和站點(diǎn)關(guān)系表中即可。添加站點(diǎn)頁(yè)面(如圖 4.13)圖 4.13 添加站點(diǎn)4.54.5 公交系統(tǒng)刪除模塊公交系統(tǒng)刪除模塊.1 刪除車次刪除車次刪除車次功能:分頁(yè)列出車次信息表中所有的車次信息,選擇操作中的刪除,就可以將對(duì)應(yīng)的車次信息刪除,但是在刪除車次信息的時(shí)候需要先刪除車次與站點(diǎn)關(guān)系表中所有對(duì)應(yīng)該車次的信息。如果不先刪除就會(huì)出現(xiàn)違反數(shù)據(jù)庫(kù)完整性。刪除車次頁(yè)面(如圖 4.14)圖 4.14 刪除車次第 27 頁(yè) 共 30 頁(yè).2 刪除站點(diǎn)刪除站點(diǎn)刪除站點(diǎn)功能:通過(guò)車次的下拉選擇框選擇車次,進(jìn)行查詢列出該車次的所有站點(diǎn)信息,然后點(diǎn)擊刪除操作就可以刪除該站點(diǎn)。需要注意:因?yàn)樵谲嚧沃袕钠瘘c(diǎn)站到終點(diǎn)站計(jì)算,其所有的站點(diǎn)是一個(gè)有次序的排列,所以刪除一個(gè)站點(diǎn),則它的下個(gè)站點(diǎn)次序號(hào)依次減少一位。刪除站點(diǎn)頁(yè)面(如圖 4.15)圖 4.15 刪除站點(diǎn)4.64.6 公交系統(tǒng)更新模塊公交系統(tǒng)更新模塊更新站點(diǎn)功能:通過(guò)車次的下拉選擇框選擇車次,進(jìn)行

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論