畢業(yè)設(shè)計(jì)論文-公交車查詢系統(tǒng)(含代碼)_第1頁(yè)
畢業(yè)設(shè)計(jì)論文-公交車查詢系統(tǒng)(含代碼)_第2頁(yè)
畢業(yè)設(shè)計(jì)論文-公交車查詢系統(tǒng)(含代碼)_第3頁(yè)
畢業(yè)設(shè)計(jì)論文-公交車查詢系統(tǒng)(含代碼)_第4頁(yè)
畢業(yè)設(shè)計(jì)論文-公交車查詢系統(tǒng)(含代碼)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(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、精品文檔畢業(yè)設(shè)計(jì)說(shuō)明書題 目 公交查詢系統(tǒng) 英文并列題目 BusSearch System 學(xué)院 計(jì)算機(jī)與電子信息 專業(yè) 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) 班級(jí) 指導(dǎo)教師(職稱)(實(shí)驗(yàn)師)完成時(shí)間 年 5 月 9日至 年 6 月15日系 主 任批準(zhǔn)日期畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書計(jì)算機(jī)與電子信息學(xué)院 系 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) 專業(yè) 班 學(xué)生 一、畢業(yè)設(shè)計(jì)(論文)課題 公交查詢系統(tǒng) 二、畢業(yè)設(shè)計(jì)(論文)工作自 年5 月9日起至 年6月15日止三、畢業(yè)設(shè)計(jì)(論文)進(jìn)行地點(diǎn) 四、畢業(yè)設(shè)計(jì)(論文)的內(nèi)容要求設(shè)計(jì)并實(shí)現(xiàn)一個(gè)具有查詢功能的城市公交查詢系統(tǒng),具體要求如下:1、 系統(tǒng)實(shí)現(xiàn)簡(jiǎn)易的歡迎封面,有2種或2種以上的查詢功能選擇等

2、。2、 實(shí)現(xiàn)根據(jù)公交路線查詢出該路公交的全部途經(jīng)路線,根據(jù)站點(diǎn)實(shí)現(xiàn)途經(jīng)該站點(diǎn)的公交線路;3、 能夠?qū)崿F(xiàn)換乘查詢功能,或2點(diǎn)之間有無(wú)公車通過(guò)的線路;4、 輸出全部公交線路和站點(diǎn)的信息。教研室負(fù)責(zé)人 指導(dǎo)教師 接受設(shè)計(jì)論文任務(wù)開始執(zhí)行日期 年 5月 9 日學(xué)生簽名 精品文檔摘 要 公交乘客信息系統(tǒng)的發(fā)展處于一個(gè)較落后的水平,廣大乘客可以獲得信息的方式很少,為了解決這種問(wèn)題,加快發(fā)展城市公交信息化,設(shè)計(jì)一個(gè)城市公交查詢系統(tǒng)是具有一定實(shí)際應(yīng)用意義的。出于這個(gè)目的,在老師的指導(dǎo)下,我設(shè)計(jì)了這個(gè)城市公交出行線路查詢系統(tǒng)這個(gè)查詢系統(tǒng)。城市公交查詢系統(tǒng)能夠幫助出行者快速地選擇出行路徑、換乘路線等,既優(yōu)化了公交

3、資源的配置,又提升了出行者的效率,提高了交通運(yùn)輸?shù)男屎统鞘械男畔⒒?。首先分析?城市公交乘客信息系統(tǒng)的發(fā)展現(xiàn)狀,找出問(wèn)題和不足。其次,在對(duì)公交乘客出行心理特征進(jìn)行分析的基礎(chǔ)上,考慮了乘客選擇公交線路決策的因素,建立了基于時(shí)間價(jià)值和費(fèi)用價(jià)值的公交線路選擇合理的模型。在此基礎(chǔ)上,進(jìn)行程序關(guān)鍵部分的框架設(shè)計(jì),理清程序設(shè)計(jì)思路。之后是程序關(guān)鍵部分的具體實(shí)現(xiàn),包括關(guān)鍵程序原代碼。最后完成功能介紹和使用說(shuō)明。關(guān)鍵詞 公交 查詢 C+ 數(shù)據(jù)統(tǒng)計(jì)AbstractThe development of the bus passenger information system is in a level th

4、at fall behind of the city in maoming. The large part of passengers can acquire few ways of the information. So its practical for us to develop citys bus passenger information system in order to resolving this problem. For this purpose, I design this system procedure-bus circuit search system. From

5、this design, First ,I analyzed the present condition of the bus passenger information and different peoples needs, in order to know what functions this equipment should contain. Second, I describe the systems main function modules in detail, these functions can be divided in to two parts-search syst

6、em(According to the line search、station search and between two stations search) and management update system(Bus station management and Bus line management). At last according to the problems that happened in the period of using, I summed up some ways to improve the system, and some experiences that

7、 I can have from this research.Keyword Bus Search C+ DataStatistics目 錄摘 要IAbstractII目 錄III第一章 引 言1第二章 公交查詢系統(tǒng)的概述22.1 系統(tǒng)的開發(fā)背景22.1.1 城市公交的發(fā)展史22.1.2 公交現(xiàn)狀32.2 系統(tǒng)的開發(fā)意義32.3 系統(tǒng)的開發(fā)目標(biāo)32.4 系統(tǒng)開發(fā)技術(shù)概述42.4.1 C+語(yǔ)言的介紹42.4.2 數(shù)據(jù)庫(kù)的設(shè)計(jì)42.4.3 開發(fā)環(huán)境介紹52.5核心技術(shù):62.5.1 KMP算法62.5.2 樸素算法62.6系統(tǒng)所用的工具:82.7系統(tǒng)運(yùn)行所需要的環(huán)境8第三章 需求分析93.1 應(yīng)用

8、需求分析93.2 功能需求93.2.1條件查詢模塊103.2.2 全局查詢模塊103.3 功能說(shuō)明113.4 可行性分析113.4.1 經(jīng)濟(jì)可行性123.4.2 技術(shù)可行性123.4.3 開發(fā)可行性12第四章 概要設(shè)計(jì)134.1 系統(tǒng)總體功能流程圖134.2 功能設(shè)計(jì)144.2.1 根據(jù)公車線路查詢144.2.2根據(jù)站點(diǎn)查詢線路144.2.3 兩點(diǎn)間車次查詢154.2.4 顯示所有信息16第五章 系統(tǒng)實(shí)現(xiàn)175.1 查詢模塊的功能實(shí)現(xiàn)175.1.1 用戶界面核心代碼175.2主查詢方式235.2.1 根據(jù)公交線路查詢235.2.2 根據(jù)站點(diǎn)查詢經(jīng)過(guò)車次275.2.3 查詢兩站間有無(wú)車次可通29

9、5.2.4獲取線路和站點(diǎn)的信息31第六章 系統(tǒng)詳細(xì)設(shè)計(jì)與最終效果336.1系統(tǒng)功能演示336.2根據(jù)公交車查詢線路336.3 根據(jù)站點(diǎn)查詢經(jīng)過(guò)車次346.4查詢兩點(diǎn)間有無(wú)車次通過(guò)356.5輸出所有線路和站點(diǎn)信息35第七章 系統(tǒng)測(cè)試377.1 確認(rèn)測(cè)試377.2 系統(tǒng)測(cè)試377.3 用戶驗(yàn)收測(cè)試377.4 系統(tǒng)難點(diǎn)分析37結(jié) 論38致 謝39參考文獻(xiàn)41精品文檔 第一章 引 言 隨著我國(guó)經(jīng)濟(jì)的高速發(fā)展,人們生活水平的提高,越來(lái)越多的人開始熱衷于到外地旅游。那么對(duì)于這些外來(lái)旅游者,首先搞清這個(gè)城市的公交路線顯的很重要! ,作為一個(gè)旅游城市,每年都要吸引大量的游客,為了方便廣大游客,我的畢業(yè)設(shè)計(jì)就以

10、公交查詢系統(tǒng)做為設(shè)計(jì)課題。我認(rèn)為這樣的系統(tǒng)應(yīng)該具有很好的實(shí)用性!乘客只需選擇車次或輸入要查詢的站點(diǎn),系統(tǒng)會(huì)快速的給出結(jié)果,同時(shí)還添加了2點(diǎn)之間查詢有無(wú)車次通過(guò)的功能。正是基于這樣的目的我開發(fā)了公交查詢系統(tǒng)。我國(guó)城市公交乘客信息系統(tǒng)的發(fā)展處于一個(gè)落后的水平,廣大乘客可以獲得信息的方式很少,公交信息的完整性和準(zhǔn)確性得不到保證,而且還沒(méi)有專門的機(jī)構(gòu)負(fù)責(zé)信息的發(fā)布和管理。我國(guó)公交乘客信息系統(tǒng)的現(xiàn)狀特點(diǎn)如下:(1) 我國(guó)乘客一般獲得公交信息的方式局限于電話,交通圖,向熟人問(wèn)訊等常規(guī)方式。乘客可以獲得的公交信息較少(2)乘客出行中獲得信息困難,基本上沒(méi)有實(shí)時(shí)信息。除了幾個(gè)少數(shù)城市,乘客可以通過(guò)分布于城市中

11、的若干電子站牌獲得一些公交車輛的運(yùn)營(yíng)信息以外,在其它城市“出行中”的乘客無(wú)法獲得任何實(shí)時(shí)信息。由上所述,我國(guó)公交乘客信息系統(tǒng)總體上處于較低水平。較低的發(fā)展水平既是發(fā)展的困難,也是發(fā)展的機(jī)遇。我們應(yīng)將發(fā)展公交乘客信息系統(tǒng)作為一個(gè)提高公交效率,增強(qiáng)公交吸引力的重要手段。 公交查詢系統(tǒng)根據(jù)公交線路的調(diào)整及時(shí)更新數(shù)據(jù)庫(kù)使得人們不必為自己的錯(cuò)誤記憶或是不熟悉線路而付出時(shí)間和金錢的代價(jià),目的才是最終想要的,所以準(zhǔn)確性才是最重要的第二章 公交查詢系統(tǒng)的概述2.1 系統(tǒng)的開發(fā)背景2.1.1 城市公交的發(fā)展史近年來(lái), 市委、市政府和市交通運(yùn)輸局非常重視公交發(fā)展,積極采取措施優(yōu)先發(fā)展公交,加大政策扶持與資金投入,

12、有效地推動(dòng)了城市公交的發(fā)展。2009年7月,市政府出臺(tái)了 市優(yōu)先發(fā)展城市公共交通的實(shí)施意見(jiàn),這是我市建市50年來(lái)首次以政府名義頒布的優(yōu)先發(fā)展城市公共交通的政策性文件,從而為公交持續(xù)、健康、穩(wěn)步發(fā)展提供了可靠政策保障;2010年8月,市政府召開常務(wù)會(huì)議,原則通過(guò) 市區(qū)公共交通規(guī)劃,這是我市第一個(gè)較為完整的系統(tǒng)的公交規(guī)劃,通過(guò)規(guī)劃,我市城市公共交通目前存在的規(guī)劃滯后、站場(chǎng)建設(shè)差、公交車輛少、線路安排不合理等問(wèn)題將會(huì)得到逐步解決,進(jìn)一步促進(jìn)城鄉(xiāng)公交一體化,為實(shí)現(xiàn)我市公交優(yōu)先發(fā)展和促進(jìn)城市經(jīng)濟(jì)發(fā)展打下扎實(shí)的基礎(chǔ)。2009年,市政府投入了850萬(wàn)元購(gòu)置新公交車27輛,實(shí)現(xiàn)市區(qū)建成區(qū)全部通公交;2010年

13、,又分兩批投入資金1700多萬(wàn)元購(gòu)置68輛新公交車投入營(yíng)運(yùn)。為了提高服務(wù)質(zhì)量,對(duì)新公交車增加科技投入,全部安裝了GPS自動(dòng)報(bào)站器、治安監(jiān)控錄像及發(fā)動(dòng)機(jī)倉(cāng)自動(dòng)滅火器等高新技術(shù)設(shè)施,為市民提供高層次服務(wù)。“十一五”期間,共投入資金近3000萬(wàn)元,購(gòu)置、更新公交車152輛,新增線路11條,城市公交車每萬(wàn)人擁有量從3.3標(biāo)臺(tái)增加到5標(biāo)臺(tái)。同時(shí)市政府常務(wù)會(huì)議明確從 年起4年內(nèi),每年安排2000萬(wàn)元專項(xiàng)資金用于扶持市區(qū)公共交通建設(shè),要求今年內(nèi)實(shí)現(xiàn)市屬茂南、茂港兩區(qū)鎮(zhèn)墟及行政村通公交,以促進(jìn)公交事業(yè)大發(fā)展。2010年,總公司為配合市政府和市交通運(yùn)輸局大力優(yōu)先發(fā)展城市公共交通戰(zhàn)略的實(shí)施,按照市交通運(yùn)輸局潘北林

14、局長(zhǎng)關(guān)于“公交車承包經(jīng)營(yíng)不符合公共交通發(fā)展要求,請(qǐng)市公共汽車公司對(duì)承包經(jīng)營(yíng)的線路進(jìn)行清理,采取措施收回自營(yíng)”的批示精神,積極規(guī)劃新開線路,科學(xué)合理優(yōu)化線網(wǎng)布局,新增公交線路6條,收回承包線路3條,先后對(duì)4條線路進(jìn)行優(yōu)化調(diào)整。 年,總公司為加快市區(qū)公交發(fā)展步伐,計(jì)劃增加市區(qū)公交車運(yùn)行密度和新開公交線路8條;計(jì)劃新增100輛LNG天然氣公交車,實(shí)現(xiàn)節(jié)能環(huán)保、低碳的公交車;在 大道等路段建設(shè)不銹鋼候車亭20個(gè),繼續(xù)完善服務(wù)設(shè)施;實(shí)現(xiàn)茂南、茂港兩區(qū)具備通車條件的行政村全部通公交;規(guī)劃新建排河公交綜合站、高地片區(qū)公交綜合站和西城片區(qū)公交首末站,逐步解決公交站場(chǎng)和配套設(shè)施不足的問(wèn)題;加大科技投入,安裝GP

15、S/GPRS智能管理公交調(diào)度系統(tǒng),合理排班科學(xué)調(diào)度,不斷完善各項(xiàng)管理制度,提高營(yíng)運(yùn)管理水平,以實(shí)現(xiàn)公共交通對(duì)市屬區(qū)具備條件通公交行政村的全覆蓋,提高服務(wù)水平,為群眾創(chuàng)造一個(gè)便捷、實(shí)惠的乘車環(huán)境,解決群眾出行難問(wèn)題。2.1.2 公交的現(xiàn)狀目前 有公交車216輛,線路24條,公交線路總長(zhǎng)度458.8公里,公交線路總長(zhǎng)比三年前增加了近300公里,公交線網(wǎng)覆蓋我市城區(qū)及茂南、茂港區(qū)大部分鎮(zhèn)村。 經(jīng)營(yíng)范圍包括市內(nèi)客運(yùn),汽車出租、修理,車身、候車亭廣告,招待所,物業(yè)管理;內(nèi)設(shè)經(jīng)理辦、綜合辦、安全部、財(cái)務(wù)科、企管科、后勤服務(wù)中心、IC卡管理中心、修理廠、招待所、一分公司、二分公司、點(diǎn)鈔中心、材料供應(yīng)部和廣告

16、分公司等14個(gè)部門(科室)。2.2 系統(tǒng)的開發(fā)意義本文所介紹的公交查詢系統(tǒng)是基于C+應(yīng)用程序開發(fā)設(shè)計(jì)的,其主要特性是能動(dòng)態(tài)、實(shí)時(shí)的完成信息的查詢,且具有高效的交互性,有效的處理客戶請(qǐng)求, 易于維護(hù)和更新,它規(guī)模適中,適合于個(gè)人開發(fā),能夠鍛煉同學(xué)的學(xué)習(xí)新知識(shí)能力,鍛煉同學(xué)的編程能力,鍛煉同學(xué)的軟件工程的思維方式.它的具體意義如下: (1)目前,國(guó)內(nèi)各城市公交發(fā)展的速度不同,對(duì)于城市的民眾來(lái)說(shuō),在他們所居住的城市里活動(dòng),如何獲取有效、快速、實(shí)用的公交信息,是他們最渴望的,這將為城市民眾提供很大的方便,同時(shí)也是他們對(duì)公交行業(yè)的有新的認(rèn)識(shí)的途經(jīng)。.(2) 一個(gè)城市的公交查詢對(duì)來(lái)自別的城市的民眾同樣重要

17、,在他們出差,旅行或跑業(yè)務(wù)的時(shí)候,通過(guò)對(duì)公交查詢系統(tǒng)的使用,能大大提高他們出行的效率。因此,一個(gè)簡(jiǎn)單,實(shí)用,效率高的查詢系統(tǒng)是有必要的。(3)一個(gè)實(shí)用高效的查詢系統(tǒng)也能體現(xiàn)出該城市或外來(lái)人士的為人民服務(wù),對(duì)人民關(guān)心體貼的宗旨。2.3 系統(tǒng)的開發(fā)目標(biāo)現(xiàn)在大多數(shù)主流的公交查詢系統(tǒng)或網(wǎng)站界面都是比較簡(jiǎn)潔的,對(duì)于使用者來(lái)說(shuō).一個(gè)簡(jiǎn)單而明了的查詢系統(tǒng),可以讓他們迅速的了解如何使用,而且,使用者很大一部分都是在一個(gè)情況比較著急或立即需要的條件下才使用公交查詢系統(tǒng)的。因此,一個(gè)簡(jiǎn)單高效又實(shí)用的查詢系統(tǒng)才是做到對(duì)用戶的一個(gè)考慮方向。并且,這也和編程語(yǔ)言中面向?qū)ο蟮淖谥际窍辔呛系?,所以本系統(tǒng)在界面上的開發(fā)并沒(méi)有

18、過(guò)多的研究或加入復(fù)雜的元素。在查詢的功能上,本系統(tǒng)列出了4種其中包括3種查詢方式和一種查詢?nèi)謪?shù)方式,以便用戶自行參考使用。2.4 系統(tǒng)開發(fā)技術(shù)概述 2.4.1 C+語(yǔ)言的介紹C+是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計(jì)語(yǔ)言。它支持過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、制作圖標(biāo)等等泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格,一種使用非常廣泛的計(jì)算機(jī)編程語(yǔ)言。C+語(yǔ)言運(yùn)用在廣泛的領(lǐng)域,例如,主流的3種操作系統(tǒng)Windows,Linux,Unix,內(nèi)核都是用C語(yǔ)言和匯編寫的,上層高級(jí)特性是用C+寫的。2.4.2 數(shù)據(jù)庫(kù)設(shè)計(jì): 本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì),采用了載入TXT文本文檔進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。

19、通過(guò)對(duì)市場(chǎng)的調(diào)查,各建立一個(gè)bus主文件夾和position主文件夾分別進(jìn)行通過(guò)查詢線路得出途經(jīng)的站點(diǎn)和通過(guò)查詢站點(diǎn)得出途經(jīng)的公交路線。另外,還建立了3個(gè)名為線路名稱、busname、positionname的數(shù)據(jù)庫(kù)進(jìn)行兩站點(diǎn)之間查詢有無(wú)車次通過(guò)的方法。其總體結(jié)構(gòu)分析如下:busname用來(lái)保存線路名稱,即公交名。數(shù)據(jù)格式定義為:1路、2路、3路、6路、7路、8路、9路、10路、11路、12路、16路、18路、201路、202路、203路,類型定義為文本。Positionname用來(lái)保存站點(diǎn)名稱,數(shù)據(jù)格式定義為:百花大廈 春苑公園 婦幼保健院 公交商業(yè)城 官渡市場(chǎng) 廣東石油化工學(xué)院 河西汽車站

20、 交通技工學(xué)校 大廈 火車站 人民廣場(chǎng) 人民醫(yī)院 市二技學(xué)校 市委大院 市政府 體育中心 銅鼓嶺 文化廣場(chǎng) 沃爾瑪 移動(dòng)通訊公司 鎮(zhèn)盛街 市府中心廣場(chǎng) 等。線路名稱用來(lái)保存公車路線的途徑上下行站點(diǎn),發(fā)車起始時(shí)間,以及對(duì)應(yīng)的車票費(fèi)用。2.4.3 開發(fā)環(huán)境介紹:Visual C+是Microsoft C/C+ 7.0之后推出的新一代程序開發(fā)工具,它不僅繼承C+的特性,同時(shí)具備可視化程序語(yǔ)言(Visual Programming Language)及程序產(chǎn)生器的概念。既然是面向?qū)ο笳Z(yǔ)言,當(dāng)然會(huì)提供系統(tǒng)基礎(chǔ)類給程序員再使用(Reuse)。在Visual C+ 中,延襲Microsoft C/C+7.0

21、的作法,將原有的SDK函數(shù)重新封裝在適當(dāng)?shù)念愔校瑯?gòu)造了“基礎(chǔ)類函數(shù)庫(kù)(Microsoft Foundation Class Library,簡(jiǎn)稱MFC)”,它提供了許多現(xiàn)成的框架對(duì)象,可供在使用Visual C+設(shè)計(jì)應(yīng)用程序是使用。此外,還提供“ClassWizard”與“AppWizard”可幫助構(gòu)造基本的程序框架,從軟件再使用的技術(shù)觀點(diǎn)而言,已由SDK函數(shù)庫(kù)方式經(jīng)過(guò)面向?qū)ο蟪绦蛟O(shè)計(jì)方式進(jìn)展到自動(dòng)產(chǎn)生模板相關(guān)類程序代碼方式(Framework)。面向?qū)ο蟮某绦蛟O(shè)計(jì)是一種新型的程序設(shè)計(jì)方法,計(jì)算機(jī)環(huán)境本身就是一個(gè)對(duì)象的集合體,對(duì)象彼此之間通過(guò)消息相互作用,面向?qū)ο蟮某绦蛟O(shè)計(jì)提高了程序的模塊化和

22、可維護(hù)性。面向?qū)ο蟮某绦蛟O(shè)計(jì)有幾個(gè)特點(diǎn)及優(yōu)點(diǎn)。首先,由于對(duì)象包含屬性和方法,因此支持模塊化程序設(shè)計(jì),而模塊化程序設(shè)計(jì)支持開發(fā)的便利性及代碼的可維護(hù)性。Visual C+ 6.0是Microsoft公司推出的功能最強(qiáng)大、最復(fù)雜的語(yǔ)言產(chǎn)品之一,它是目前為止在Windows環(huán)境下進(jìn)行大型軟件開發(fā)的首選。其具有如下特點(diǎn):(1)Visual C+ + 的語(yǔ)法符合ANSL C+ + 標(biāo)準(zhǔn),并在此基礎(chǔ)上針對(duì)Windows操作系統(tǒng)增加了一些語(yǔ)句;(2)集成了MFC(Microsoft Foundation Class)類庫(kù),MFC封裝了Windows API函數(shù)和消息,使程序員可以使用MFC高效率地開發(fā)各種應(yīng)

23、用程序;(3)提供了MFC AppWizard,可方便地生成程序框架;(4)提供了基于MFC的ClassWizard,通過(guò)它可以輕松地完成對(duì)各種MFC類的使用與維護(hù)。Visual C+ 6.0作為Visual Studio家族中的一員,是Microsoft公司以C+語(yǔ)言為基礎(chǔ)開發(fā)的可視化集成開發(fā)工具,與其他編程語(yǔ)言Visual Basic 6.0、Visual ForPro等一起,成為廣大程序員喜愛(ài)的開發(fā)平臺(tái)。2.5核心技術(shù):2.5 1 KMP算法KMP算法是D.E.Knuth、J.H.Morris和V.R.Pratt共同提出的,簡(jiǎn)稱KMP算法。2.5 2 樸素算法串的模式匹配算法1. 樸素模

24、式匹配算法(Brute-Force算法)求子串位置的定位函數(shù)Index( S, T, pos).模式匹配:子串的定位操作通常稱作串的模式匹配。目標(biāo)串:主串S。模式串:子串T。匹配成功:若存在T的每個(gè)字符依次和S中的一個(gè)連續(xù)字符序列相等,則稱匹配成功。返回T中第一個(gè)字符在S中的位置。匹配不成功:返回0。Brute-Force簡(jiǎn)稱為BF算法,亦稱簡(jiǎn)單匹配算法,其基本思路是:從目標(biāo)串s=“s1s2sn的第一個(gè)字符開始和模式串t=“t1t2tm中的第一個(gè)字符比較,若相等,則繼續(xù)逐個(gè)比較后續(xù)字符;否則從目標(biāo)串s的第二個(gè)字符開始重新與模式串t的第一個(gè)字符進(jìn)行比較。依次類推,若從模式串s的第i個(gè)字符開始,每

25、個(gè)字符依次和目標(biāo)串t中的對(duì)應(yīng)字符相等,則匹配成功,該算法返回i;否則,匹配失敗,函數(shù)返回0。例如,設(shè)目標(biāo)串s=“cddcdc”,模式串t=“cdc”。s的長(zhǎng)度為n(n=6),t的長(zhǎng)度為m(m=3)。用指針i指示目標(biāo)串s的當(dāng)前比較字符位置,用指針j指示模式串t的當(dāng)前比較字符位置。BF模式匹配過(guò)程如下所示。i = i j +2;j = 1;核心代碼:子串定位int Index( SString S, SString T, int pos) i= pos; j = 1; while( i=S0 & jT0) return i-T0; else return 0;2.6系統(tǒng)所用的工具: 主要開發(fā)工具:

26、Microsoft visual C+ 6.0。數(shù)據(jù)統(tǒng)計(jì)工具:TXT記事本。2.7系統(tǒng)運(yùn)行所需要的環(huán)境硬件配置 :硬 盤:40GB以上硬盤;內(nèi) 存:256以上的DDR內(nèi)存;顯 卡:128M以上顯存顯卡中央處理器(CPU) :P4 2.0G以上的處理器;軟件配置:WINDOWS XP 版本、Microsoft visual C+ 6.0。 精品文檔 第三章 需求分析3.1 應(yīng)用需求分析要設(shè)計(jì)一個(gè)良好的公交查詢系統(tǒng),就必須首先明確該應(yīng)用環(huán)境對(duì)系統(tǒng)的要求。公交查詢系統(tǒng)的應(yīng)用背景為:方便市民搭乘公交車出行;手動(dòng)(目前)、自動(dòng)(將來(lái))、及時(shí)更新查詢數(shù)據(jù)。因此,該系統(tǒng)需滿足以下幾方面需求:1)問(wèn)題分析(1

27、)功能需求:該模塊實(shí)現(xiàn)公交查詢功能。該模塊實(shí)現(xiàn)數(shù)據(jù)的錄入、修改、刪除功能。(2)性能需求:系統(tǒng)的相應(yīng)時(shí)間不能超過(guò)10ms。(3)出錯(cuò)處理需求:當(dāng)輸入的信息不全,或格式不正確時(shí),提示出錯(cuò)信息,即退出或繼續(xù)查詢。2)問(wèn)題描述(1)信息要求:可實(shí)現(xiàn)按起點(diǎn)中轉(zhuǎn)站終點(diǎn)查詢查詢和按線路查詢,按站點(diǎn)查詢等三種查詢方式。(2)處理要求:該模塊實(shí)現(xiàn)通過(guò)TXT文本文檔形式進(jìn)行數(shù)據(jù)的錄入、修改、刪除功能。(3)安全性與完整性要求。本系統(tǒng)并無(wú)在此方面進(jìn)行復(fù)雜的設(shè)計(jì),使用者僅需輸入查詢方式,再按查詢的方法進(jìn)行查詢即可。3.2 功能需求 本系統(tǒng)主要實(shí)現(xiàn)以下功能:查詢方式通過(guò)公交線路通過(guò)站點(diǎn)兩站間公車所有公交信息圖31 公

28、交查詢模塊圖3.2.1條件查詢模塊選擇條件查詢方式選擇站點(diǎn)查詢選擇兩點(diǎn)間有無(wú)車次查詢選擇線路查詢繼續(xù)或退出圖3-2 條件查詢3.2.2 全局查詢模塊選擇顯示全部公交信息顯示全部線路和站點(diǎn)繼續(xù)或退出圖3-3 全局查詢3.3 功能說(shuō)明主要功能:1)通過(guò)線路查詢:輸入查詢方式1,輸入要查詢的車次的名稱,如1路,結(jié)果顯示出該公車路線經(jīng)過(guò)的站點(diǎn);2)通過(guò)站點(diǎn)查詢:輸入查詢方式2,輸入要查詢的站點(diǎn)的名稱,如沃爾瑪,結(jié)果顯示出途經(jīng)該站點(diǎn)的所有公車車次;3)查詢兩點(diǎn)間有無(wú)車次經(jīng)過(guò):輸入查詢方式3,輸入要查詢的兩站的名稱,如沃爾瑪、廣東石油化工學(xué)院,結(jié)果顯示出通過(guò)兩站點(diǎn)的車次;4)顯示全部信息:輸入查詢方式4,

29、結(jié)果分別顯示出所有站點(diǎn)和所有公車路線的記錄;3.4 可行性分析 可行性分析是對(duì)系統(tǒng)進(jìn)行全面、概要的分析。它的任務(wù)是確定項(xiàng)目開發(fā)時(shí)是否必要和可行。它的主要目標(biāo)是:進(jìn)一步明確系統(tǒng)的目標(biāo)、規(guī)模和功能,對(duì)系統(tǒng)開發(fā)背景、必要性和意義進(jìn)行調(diào)查分析,并且提出系統(tǒng)的邏輯模型和各種可能的方案,從而為系統(tǒng)開發(fā)項(xiàng)目的決策提供科學(xué)依據(jù)。主要從三個(gè)方面進(jìn)行研究:3.4.1 經(jīng)濟(jì)可行性 從這方面來(lái)說(shuō),本系統(tǒng)的開發(fā)作為課題來(lái)說(shuō)不需要什么經(jīng)濟(jì)投入,因此來(lái)說(shuō)也是可行的。本查詢系統(tǒng)是一個(gè)簡(jiǎn)潔明了、實(shí)用、使用簡(jiǎn)單、具有人性化的特點(diǎn)。實(shí)現(xiàn)這個(gè)查詢系統(tǒng)并不需要花費(fèi)大量的時(shí)間費(fèi)用,使用的是Mircosoft visual C+ 6.0開

30、發(fā)軟件。3.4.2 技術(shù)可行性 技術(shù)可行性:以現(xiàn)有技術(shù)進(jìn)行系統(tǒng)開發(fā)及系統(tǒng)實(shí)施,是完全可行的。首先,從自身來(lái)分析,經(jīng)過(guò)大學(xué)2年多的學(xué)習(xí)已經(jīng)初步掌握了C+、數(shù)據(jù)庫(kù)等方面的編程技巧,對(duì)該軟件的設(shè)計(jì)有所了解。第二方面,在設(shè)計(jì)這個(gè)系統(tǒng)之前,我進(jìn)行了一系列先期調(diào)研,查閱了有關(guān)使用C+進(jìn)行數(shù)據(jù)庫(kù)開發(fā)方面的論著、教材和論文,更多是利用網(wǎng)絡(luò)的便利條件,從網(wǎng)上查閱了沈陽(yáng)、大連、廣州、昆明等大型城市的公交查詢系統(tǒng),并認(rèn)真地對(duì)其進(jìn)行了分析研究,由于時(shí)間緊,任務(wù)重,我沒(méi)有更多的時(shí)間來(lái)開發(fā)完整的系統(tǒng),所以就以查詢作為這個(gè)系統(tǒng)的核心。其次,從數(shù)據(jù)庫(kù)方面來(lái)分析,也是可行的。系統(tǒng)所建立的數(shù)據(jù)庫(kù)中包含有五個(gè)字段:bus ,bus

31、name, position, 線路名稱, positionname用來(lái)存放本查詢系統(tǒng)中所需要的全部數(shù)據(jù)。3.4.3 開發(fā)可行性 本項(xiàng)目開發(fā)語(yǔ)言為C+,開發(fā)平臺(tái)為Window XP下的編程環(huán)境,后臺(tái)數(shù)據(jù)支持采用TXT文本文檔。精品文檔 第四章 概要設(shè)計(jì)4.1 系統(tǒng)總體功能流程圖 用戶公交查詢系統(tǒng)公交查詢模塊數(shù)據(jù)管理整個(gè)系統(tǒng)數(shù)據(jù)庫(kù)圖4-1 系統(tǒng)總體流程圖功能流程說(shuō)明如下:(1)啟動(dòng)Mircosoft visual C+ 6.0服務(wù)器程序,服務(wù)器對(duì)本系統(tǒng)編譯。(2)運(yùn)行本系統(tǒng)。(3)用戶查詢使用界面。(4)用戶根據(jù)系統(tǒng)界面提供的4種方法自行選擇所需的方式查詢。(5)查詢系統(tǒng)收到命令,根據(jù)查詢方式查

32、找對(duì)應(yīng)類型的數(shù)據(jù)。(6)打印輸出在查詢界面。(7)當(dāng)用戶查詢結(jié)束后,出現(xiàn)是否繼續(xù)Y/N。如繼續(xù)Y,則在系統(tǒng)中選擇其他方式操作。如退出N,則退出本系統(tǒng)。(8)關(guān)閉本系統(tǒng)。4.2 功能設(shè)計(jì)4.2.1 根據(jù)公車線路查詢用戶通過(guò)選擇第一種查詢方式,即通過(guò)輸入公車路線方式查詢?cè)摴囃窘?jīng)的全部站點(diǎn)信息。開始輸入公車名稱提交是否有該公車公車輸入有誤正確輸出該公車途經(jīng)站點(diǎn)圖4-2 根據(jù)公車路線查詢流程圖4.2.2根據(jù)站點(diǎn)查詢路線 用戶通過(guò)輸入站點(diǎn),即輸入站點(diǎn)查詢途徑該站點(diǎn)所有公車的線路信息。圖4-3 根據(jù)站點(diǎn)查詢路線流程圖4.2.3 兩點(diǎn)間車次查詢 用戶通過(guò)輸入兩個(gè)站點(diǎn),即輸入第一個(gè)站點(diǎn)和第二個(gè)站點(diǎn)查詢?cè)搩烧?/p>

33、有無(wú)車次通過(guò),并輸出通過(guò)兩個(gè)站點(diǎn)所有點(diǎn)公車路線。開始輸入兩個(gè)站點(diǎn)輸出途徑的公車格式有錯(cuò)格式正確圖4-4 兩點(diǎn)間車次查詢流程圖4.2.4 顯示所有信息 用戶通過(guò)輸入最后一種方式,即輸出所有公車的名稱和站點(diǎn)。開始選擇最后一種輸出全部信息輸出全部信息圖4-5 顯示所有信息流程圖第五章 系統(tǒng)實(shí)現(xiàn)5.1 查詢模塊的功能實(shí)現(xiàn)公交查詢模塊是用戶與系統(tǒng)進(jìn)行交互的直接媒介。除了要完成用戶的請(qǐng)求外,更需要從用戶的角度出發(fā),以人為本。查詢模塊除了顯示出簡(jiǎn)易的歡迎文字外,直接顯示本系統(tǒng)所提供的幾種查詢方式。從實(shí)際出發(fā)對(duì)于公交查詢系統(tǒng)而言,用戶輸入公車線路或站點(diǎn),后臺(tái)數(shù)據(jù)庫(kù)查詢?yōu)橄到y(tǒng)列出符合條件的公交班次。當(dāng)系統(tǒng)發(fā)現(xiàn)填

34、寫有誤時(shí),則提示“本系統(tǒng)暫時(shí)沒(méi)有收錄或該線路不存在,請(qǐng)確定您輸入是否正確”。并且提示是否繼續(xù)或退出。5.1.1 用戶界面核心代碼公交查詢系統(tǒng)運(yùn)行界面如圖5-1所示:核心代碼如下:class userInterfacechar getch;char choice;char* frPos;char* toPos;char* busName;public:void searchPassWay();void searchTrace();void searchBuses();void showInformation();void loop(); void ifcontinue(); userInterf

35、ace();userInterface();/class userInterfacevoid userInterface:searchTrace() busName=new char10; coutendlbusName;trybus BUS(busName);coutendl;coutBUS.noteendl;BUS.printInformation();catch(bus:Error)coutendlsorry! 您要查找的線路:busName,本系統(tǒng)暫時(shí)沒(méi)有收錄或者該線路不存在endl請(qǐng)確定您的輸入是否正確endl;/userInterface:searchTracevoid userI

36、nterface:searchBuses() char* positionName=new char40; coutendlpositionName;tryposition POSITION(positionName);coutendl;POSITION.printPassBuses();catch(position:Error)coutendlSorry! 本系統(tǒng)暫時(shí)沒(méi)有收錄經(jīng)過(guò)positionName的線路!endl請(qǐng)確定您的輸入是否正確endl;/userInterface:searchBusesvoid userInterface:searchPassWay()coutendlfrPo

37、s;coutendltoPos;tryposition* fromPosition=new position(frPos); position* toPosition=new position(toPos);fromPosition-isThrough(toPosition);catch(position:Error)coutendlSorry! 本系統(tǒng)暫時(shí)沒(méi)有收錄經(jīng)過(guò)frPos或toPos的線路!endl請(qǐng)確定您的輸入是否正確endl;/userInterface:searchPassWayvoid userInterface:showInformation()int i=0;ifstrea

38、m in_file;in_file.open(sourcebusname.txt, ios:in);char* inbus=new char5;coutendl線路信息如下:inbus;+i;coutinbus;if(!in_file.eof() cout ;if(!(i%15) coutendl;coutendl;in_file.close();in_file.open(sourcepositionname.txt, ios:in);char* inpos=new char40;coutendl站點(diǎn)信息如下:inpos;+i;coutinpos ;if(!(i%8) coutendl;cou

39、tendl;in_file.close();delete inbus;delete inpos;/userInterface:showInformationvoid userInterface:loop()coutendl;cout %endl; cout % 歡迎使用 公交查詢系統(tǒng) %endl;cout %endl; coutendl;cout本系統(tǒng)能夠:endl;cout %o(_)oo(_)oo(_)o%endl; cout 1. 根據(jù)公交車名查詢路線; %endl; cout 2. 根據(jù)站名查詢經(jīng)過(guò)的車次; %endl; cout 3. 查詢兩站間有無(wú)車次可通; %endl;cout

40、4. 得到線路名稱和站點(diǎn)名稱的信息;%endl;cout %o(_)oo(_)oo(_)o%endl; coutchoice; switch(choice) case 1: searchTrace(); ifcontinue(); break; case 2: searchBuses(); ifcontinue(); break; case 3: searchPassWay(); ifcontinue(); break;case 4:showInformation();ifcontinue(); break;default:cout您的輸入不正確!;ifcontinue();/userInte

41、rface:loopvoid userInterface:ifcontinue() coutendlgetch; if(getch=y) loop(); else exit(1);/userInterface:ifcontinueuserInterface:userInterface()frPos=new char40;toPos=new char40;/userInterface:userInterfaceuserInterface:userInterface()delete busName;delete frPos;delete toPos;/userInterface:userInter

42、face5.2主查詢方式本系統(tǒng)有4種查詢方式供用戶自行選擇,通過(guò)選擇用戶所需的方式進(jìn)行有目的性的查詢。5.2.1 根據(jù)公交線路查詢 核心代碼如下:class busprivate:char* name;char* trackName;char* upTrack;char* downTrack;char* fromTime;char* toTime;char* price;int isExist(char*);void initialize();public:bus(char* n);bus();char* note;void printInformation();class Error;/異常

43、類;/class busvoid bus:initialize()int i;trackName=new char60;upTrack=new char600;downTrack=new char600;fromTime=new char60;toTime=new char60;price=new char60;char* locator=new char30;strcpy(locator,sourcebus);if(*name=路) strcat(name+1),locator);else strcat(locator,name);strcat(locator,.txt);ifstream

44、in_file;in_file.open(locator, ios:in);char* mystring6;mystring0=new char60;mystring1=new char600;mystring2=new char600;mystring3=new char60;mystring4=new char60;mystring5=new char60;for(i=0;i=5&in_file;i+)in_file.getline(mystringi,1000);in_file.close();strcpy(trackName,mystring0);strcpy(upTrack,myst

45、ring1);strcpy(downTrack,mystring2);strcpy(fromTime,mystring3);strcpy(toTime,mystring4);strcpy(price,mystring5);for(i=0;i=5;i+)delete mystringi; delete locator;/bus:initializebus:bus(char* n)note=new char100;strcpy(note,);name=new char10;strcpy(name,n);if(isExist(name)initialize();strcpy(note, find i

46、t !);if(*name=路)if(isExist(name+1)initialize();strcpy(note,您要查找的線路:);strcat(note,name);strcat(note,不存在或者本系統(tǒng)沒(méi)有記錄這條線路;下面這條線路供參考:);elsechar* temp=new char11;strcpy(temp,路);strcat(temp,name);if(isExist(temp)initialize();strcpy(note,您要查找的線路:);strcat(note,name);strcat(note,不存在或者本系統(tǒng)沒(méi)有記錄這條線路;下面這條線路供參考:);delete temp;if(!*note)throw Error();/busbus:bus()delete note;delete name;delete trackName;delete upTrack;delete downTrack;delete fromTime;delete toTime;delete price;/busvoid bus:printInformation()couttrackNameendlendl;coutupTrackendldownTrackendl; coutendlfromTimeendltoTimeendl;cou

溫馨提示

  • 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)論