版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計說明書</b></p><p> 題 目 公交查詢系統(tǒng) </p><p> 英文并列題目 BusSearch System </p><p> 學(xué)院 計算機與電子信息 </p><p&g
2、t; 專業(yè) 計算機網(wǎng)絡(luò)技術(shù) </p><p> 班級 </p><p> 指導(dǎo)教師(職稱)(實驗師)</p><p> 完成時間 年 5 月 9日至 年 6 月15日</p><p> 畢 業(yè) 設(shè) 計 任 務(wù) 書</p><
3、p> 計算機與電子信息學(xué)院 系 計算機網(wǎng)絡(luò)技術(shù) 專業(yè) 班 學(xué)生 </p><p> 一、畢業(yè)設(shè)計(論文)課題 公交查詢系統(tǒng) </p><p> 二、畢業(yè)設(shè)計(論文)工作自 年5 月9日起至 年6月15日止</p><p> 三、畢業(yè)設(shè)計(論文)進行地
4、點 </p><p> 四、畢業(yè)設(shè)計(論文)的內(nèi)容要求</p><p> 設(shè)計并實現(xiàn)一個具有查詢功能的城市公交查詢系統(tǒng),具體要求如下:</p><p> 系統(tǒng)實現(xiàn)簡易的歡迎封面,有2種或2種以上的查詢功能選擇等。</p><p> 實現(xiàn)根據(jù)公交路線查詢出該路公
5、交的全部途經(jīng)路線,根據(jù)站點實現(xiàn)途經(jīng)該站點的公交線路;</p><p> 能夠?qū)崿F(xiàn)換乘查詢功能,或2點之間有無公車通過的線路;</p><p> 輸出全部公交線路和站點的信息。</p><p> 教研室負(fù)責(zé)人 </p><p> 指導(dǎo)教師
6、 </p><p> 接受設(shè)計論文任務(wù)開始執(zhí)行日期 年 5月 9 日</p><p> 學(xué)生簽名 </p><p><b> 摘 要</b></p><p> 公交乘客信息系統(tǒng)的發(fā)展處于一個較落后的水
7、平,廣大乘客可以獲得信息的方式很少,為了解決這種問題,加快發(fā)展城市公交信息化,設(shè)計一個城市公交查詢系統(tǒng)是具有一定實際應(yīng)用意義的。出于這個目的,在老師的指導(dǎo)下,我設(shè)計了這個城市公交出行線路查詢系統(tǒng)這個查詢系統(tǒng)。城市公交查詢系統(tǒng)能夠幫助出行者快速地選擇出行路徑、換乘路線等,既優(yōu)化了公交資源的配置,又提升了出行者的效率,提高了交通運輸?shù)男屎统鞘械男畔⒒健J紫确治隽?城市公交乘客信息系統(tǒng)的發(fā)展現(xiàn)狀,找出問題和不足。其次,在對公交乘客出行
8、心理特征進行分析的基礎(chǔ)上,考慮了乘客選擇公交線路決策的因素,建立了基于時間價值和費用價值的公交線路選擇合理的模型。在此基礎(chǔ)上,進行程序關(guān)鍵部分的框架設(shè)計,理清程序設(shè)計思路。之后是程序關(guān)鍵部分的具體實現(xiàn),包括關(guān)鍵程序原代碼。最后完成功能介紹和使用說明。</p><p> 關(guān)鍵詞 公交 查詢 C++ 數(shù)據(jù)統(tǒng)計</p><p><b> Abstract</b>
9、</p><p> The development of the bus passenger information system is in a level that fall behind of the city in maoming. The large part of passengers can acquire few ways of the information. So it's prac
10、tical for us to develop city's bus passenger information system in order to resolving this problem. For this purpose, I design this system procedure---bus circuit search system. From this design, First ,I analyzed th
11、e present condition of the bus passenger information and different people's needs, in order</p><p> Keyword Bus Search C++ DataStatistics</p><p><b> 目 錄</b></p><
12、;p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 目 錄III</b></p><p> 第一章 引 言1</p><p> 第二章 公交查詢系統(tǒng)的概述2</p><p> 2.1 系統(tǒng)的開
13、發(fā)背景2</p><p> 2.1.1 城市公交的發(fā)展史2</p><p> 2.1.2 公交現(xiàn)狀3</p><p> 2.2 系統(tǒng)的開發(fā)意義3</p><p> 2.3 系統(tǒng)的開發(fā)目標(biāo)3</p><p> 2.4 系統(tǒng)開發(fā)技術(shù)概述4</p><p> 2.4.1 C
14、++語言的介紹4</p><p> 2.4.2 數(shù)據(jù)庫的設(shè)計4</p><p> 2.4.3 開發(fā)環(huán)境介紹5</p><p> 2.5核心技術(shù):6</p><p> 2.5.1 KMP算法6</p><p> 2.5.2 樸素算法6</p><p> 2.6系統(tǒng)所用的工具
15、:8</p><p> 2.7系統(tǒng)運行所需要的環(huán)境8</p><p> 第三章 需求分析9</p><p> 3.1 應(yīng)用需求分析9</p><p> 3.2 功能需求9</p><p> 3.2.1條件查詢模塊10</p><p> 3.2.2 全局查詢模塊10<
16、;/p><p> 3.3 功能說明11</p><p> 3.4 可行性分析11</p><p> 3.4.1 經(jīng)濟可行性12</p><p> 3.4.2 技術(shù)可行性12</p><p> 3.4.3 開發(fā)可行性12</p><p> 第四章 概要設(shè)計13</p>
17、;<p> 4.1 系統(tǒng)總體功能流程圖13</p><p> 4.2 功能設(shè)計14</p><p> 4.2.1 根據(jù)公車線路查詢14</p><p> 4.2.2根據(jù)站點查詢線路14</p><p> 4.2.3 兩點間車次查詢15</p><p> 4.2.4 顯示所有信息16
18、</p><p> 第五章 系統(tǒng)實現(xiàn)17</p><p> 5.1 查詢模塊的功能實現(xiàn)17</p><p> 5.1.1 用戶界面核心代碼17</p><p> 5.2主查詢方式23</p><p> 5.2.1 根據(jù)公交線路查詢23</p><p> 5.2.2 根據(jù)站點
19、查詢經(jīng)過車次27</p><p> 5.2.3 查詢兩站間有無車次可通29</p><p> 5.2.4獲取線路和站點的信息31</p><p> 第六章 系統(tǒng)詳細(xì)設(shè)計與最終效果33</p><p> 6.1系統(tǒng)功能演示33</p><p> 6.2根據(jù)公交車查詢線路33</p>&
20、lt;p> 6.3 根據(jù)站點查詢經(jīng)過車次34</p><p> 6.4查詢兩點間有無車次通過35</p><p> 6.5輸出所有線路和站點信息35</p><p> 第七章 系統(tǒng)測試37</p><p> 7.1 確認(rèn)測試37</p><p> 7.2 系統(tǒng)測試37</p>
21、<p> 7.3 用戶驗收測試37</p><p> 7.4 系統(tǒng)難點分析37</p><p><b> 結(jié) 論38</b></p><p><b> 致 謝39</b></p><p><b> 參考文獻(xiàn)41</b></p>
22、<p><b> 第一章 引 言</b></p><p> 隨著我國經(jīng)濟的高速發(fā)展,人們生活水平的提高,越來越多的人開始熱衷于到外地旅游。那么對于這些外來旅游者,首先搞清這個城市的公交路線顯的很重要! ,作為一個旅游城市,每年都要吸引大量的游客,為了方便廣大游客,我的畢業(yè)設(shè)計就以公交查詢系統(tǒng)做為設(shè)計課題。我認(rèn)為這樣的系統(tǒng)應(yīng)該具有很好的實用性!乘客只需選擇車次或輸入要查詢的
23、站點,系統(tǒng)會快速的給出結(jié)果,同時還添加了2點之間查詢有無車次通過的功能。正是基于這樣的目的我開發(fā)了公交查詢系統(tǒng)。</p><p> 我國城市公交乘客信息系統(tǒng)的發(fā)展處于一個落后的水平,廣大乘客可以獲得信息的方式很少,公交信息的完整性和準(zhǔn)確性得不到保證,而且還沒有專門的機構(gòu)負(fù)責(zé)信息的發(fā)布和管理。我國公交乘客信息系統(tǒng)的現(xiàn)狀特點如下:</p><p> (1) 我國乘客一般獲得公交信息的方式局
24、限于電話,交通圖,向熟人問訊等常規(guī)方式。乘客可以獲得的公交信息較少.</p><p> (2)乘客出行中獲得信息困難,基本上沒有實時信息。除了幾個少數(shù)城市,乘客可以通過分布于城市中的若干電子站牌獲得一些公交車輛的運營信息以外,在其它城市“出行中”的乘客無法獲得任何實時信息。</p><p> 由上所述,我國公交乘客信息系統(tǒng)總體上處于較低水平。較低的發(fā)展水平既是發(fā)展的困難,也是發(fā)展的機遇
25、。我們應(yīng)將發(fā)展公交乘客信息系統(tǒng)作為一個提高公交效率,增強公交吸引力的重要手段。</p><p> 公交查詢系統(tǒng)根據(jù)公交線路的調(diào)整及時更新數(shù)據(jù)庫使得人們不必為自己的錯誤記憶或是不熟悉線路而付出時間和金錢的代價,目的才是最終想要的,所以準(zhǔn)確性才是最重要的.</p><p> 第二章 公交查詢系統(tǒng)的概述</p><p> 2.1 系統(tǒng)的開發(fā)背景</p>
26、<p> 2.1.1 城市公交的發(fā)展史</p><p> 近年來, 市委、市政府和市交通運輸局非常重視公交發(fā)展,積極采取措施優(yōu)先發(fā)展公交,加大政策扶持與資金投入,有效地推動了城市公交的發(fā)展。2009年7月,市政府出臺了《 市優(yōu)先發(fā)展城市公共交通的實施意見》,這是我市建市50年來首次以政府名義頒布的優(yōu)先發(fā)展城市公共交通的政策性文件,從而為公交持續(xù)、健康、穩(wěn)步發(fā)展提供了可靠政策保障;2010年8
27、月,市政府召開常務(wù)會議,原則通過《 市區(qū)公共交通規(guī)劃》,這是我市第一個較為完整的系統(tǒng)的公交規(guī)劃,通過規(guī)劃,我市城市公共交通目前存在的規(guī)劃滯后、站場建設(shè)差、公交車輛少、線路安排不合理等問題將會得到逐步解決,進一步促進城鄉(xiāng)公交一體化,為實現(xiàn)我市公交優(yōu)先發(fā)展和促進城市經(jīng)濟發(fā)展打下扎實的基礎(chǔ)。</p><p> 2009年,市政府投入了850萬元購置新公交車27輛,實現(xiàn)市區(qū)建成區(qū)全部通公交;2010年,又分兩批投入資
28、金1700多萬元購置68輛新公交車投入營運。為了提高服務(wù)質(zhì)量,對新公交車增加科技投入,全部安裝了GPS自動報站器、治安監(jiān)控錄像及發(fā)動機倉自動滅火器等高新技術(shù)設(shè)施,為市民提供高層次服務(wù)。“十一五”期間,共投入資金近3000萬元,購置、更新公交車152輛,新增線路11條,城市公交車每萬人擁有量從3.3標(biāo)臺增加到5標(biāo)臺。同時市政府常務(wù)會議明確從 年起4年內(nèi),每年安排2000萬元專項資金用于扶持市區(qū)公共交通建設(shè),要求今年內(nèi)實現(xiàn)市屬茂南、茂港兩
29、區(qū)鎮(zhèn)墟及行政村通公交,以促進公交事業(yè)大發(fā)展。</p><p> 2010年,總公司為配合市政府和市交通運輸局大力優(yōu)先發(fā)展城市公共交通戰(zhàn)略的實施,按照市交通運輸局潘北林局長關(guān)于“公交車承包經(jīng)營不符合公共交通發(fā)展要求,請市公共汽車公司對承包經(jīng)營的線路進行清理,采取措施收回自營”的批示精神,積極規(guī)劃新開線路,科學(xué)合理優(yōu)化線網(wǎng)布局,新增公交線路6條,收回承包線路3條,先后對4條線路進行優(yōu)化調(diào)整。</p>
30、<p> 年,總公司為加快市區(qū)公交發(fā)展步伐,計劃增加市區(qū)公交車運行密度和新開公交線路8條;計劃新增100輛LNG天然氣公交車,實現(xiàn)節(jié)能環(huán)保、低碳的公交車;在 大道等路段建設(shè)不銹鋼候車亭20個,繼續(xù)完善服務(wù)設(shè)施;實現(xiàn)茂南、茂港兩區(qū)具備通車條件的行政村全部通公交;規(guī)劃新建排河公交綜合站、高地片區(qū)公交綜合站和西城片區(qū)公交首末站,逐步解決公交站場和配套設(shè)施不足的問題;加大科技投入,安裝GPS/GPRS智能管理公交調(diào)度系統(tǒng),合理排班
31、科學(xué)調(diào)度,不斷完善各項管理制度,提高營運管理水平,以實現(xiàn)公共交通對市屬區(qū)具備條件通公交行政村的全覆蓋,提高服務(wù)水平,為群眾創(chuàng)造一個便捷、實惠的乘車環(huán)境,解決群眾出行難問題。</p><p> 2.1.2 公交的現(xiàn)狀</p><p> 目前 有公交車216輛,線路24條,公交線路總長度458.8公里,公交線路總長比三年前增加了近300公里,公交線網(wǎng)覆蓋我市城區(qū)及茂南、茂港區(qū)大部分鎮(zhèn)村
32、。 </p><p> 經(jīng)營范圍包括市內(nèi)客運,汽車出租、修理,車身、候車亭廣告,招待所,物業(yè)管理;內(nèi)設(shè)經(jīng)理辦、綜合辦、安全部、財務(wù)科、企管科、后勤服務(wù)中心、IC卡管理中心、修理廠、招待所、一分公司、二分公司、點鈔中心、材料供應(yīng)部和廣告分公司等14個部門(科室)。</p><p> 2.2 系統(tǒng)的開發(fā)意義</p><p> 本文所介紹的公交查詢系統(tǒng)是基于C++應(yīng)
33、用程序開發(fā)設(shè)計的,其主要特性是能動態(tài)、實時的完成信息的查詢,且具有高效的交互性,有效的處理客戶請求, 易于維護和更新,它規(guī)模適中,適合于個人開發(fā),能夠鍛煉同學(xué)的學(xué)習(xí)新知識能力,鍛煉同學(xué)的編程能力,鍛煉同學(xué)的軟件工程的思維方式.它的具體意義如下:</p><p> (1)目前,國內(nèi)各城市公交發(fā)展的速度不同,對于城市的民眾來說,在他們所居住的城市里活動,如何獲取有效、快速、實用的公交信息,是他們最渴望的,這將為城市
34、民眾提供很大的方便,同時也是他們對公交行業(yè)的有新的認(rèn)識的途經(jīng)。.</p><p> (2) 一個城市的公交查詢對來自別的城市的民眾同樣重要,在他們出差,旅行或跑業(yè)務(wù)的時候,通過對公交查詢系統(tǒng)的使用,能大大提高他們出行的效率。因此,一個簡單,實用,效率高的查詢系統(tǒng)是有必要的。</p><p> (3)一個實用高效的查詢系統(tǒng)也能體現(xiàn)出該城市或外來人士的為人民服務(wù),對人民關(guān)心體貼的宗旨。&l
35、t;/p><p> 2.3 系統(tǒng)的開發(fā)目標(biāo)</p><p> 現(xiàn)在大多數(shù)主流的公交查詢系統(tǒng)或網(wǎng)站界面都是比較簡潔的,對于使用者來說.一個簡單而明了的查詢系統(tǒng),可以讓他們迅速的了解如何使用,而且,使用者很大一部分都是在一個情況比較著急或立即需要的條件下才使用公交查詢系統(tǒng)的。因此,一個簡單高效又實用的查詢系統(tǒng)才是做到對用戶的一個考慮方向。并且,這也和編程語言中面向?qū)ο蟮淖谥际窍辔呛系?,所以本?/p>
36、統(tǒng)在界面上的開發(fā)并沒有過多的研究或加入復(fù)雜的元素。在查詢的功能上,本系統(tǒng)列出了4種其中包括3種查詢方式和一種查詢?nèi)謪?shù)方式,以便用戶自行參考使用。</p><p> 2.4 系統(tǒng)開發(fā)技術(shù)概述</p><p> 2.4.1 C++語言的介紹</p><p> C++是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計語言。它支持過程化程序設(shè)計、數(shù)據(jù)抽象、面
37、向?qū)ο蟪绦蛟O(shè)計、制作圖標(biāo)等等泛型程序設(shè)計等多種程序設(shè)計風(fēng)格,一種使用非常廣泛的計算機編程語言。C++語言運用在廣泛的領(lǐng)域,例如,主流的3種操作系統(tǒng)Windows,Linux,Unix,內(nèi)核都是用C語言和匯編寫的,上層高級特性是用C++寫的。</p><p> 2.4.2 數(shù)據(jù)庫設(shè)計:</p><p> 本系統(tǒng)的數(shù)據(jù)庫設(shè)計,采用了載入TXT文本文檔進行數(shù)據(jù)庫設(shè)計。通過對市場的調(diào)查,各建立
38、一個bus主文件夾和position主文件夾分別進行通過查詢線路得出途經(jīng)的站點和通過查詢站點得出途經(jīng)的公交路線。另外,還建立了3個名為線路名稱、busname、positionname的數(shù)據(jù)庫進行兩站點之間查詢有無車次通過的方法。</p><p> 其總體結(jié)構(gòu)分析如下:</p><p> busname用來保存線路名稱,即公交名。數(shù)據(jù)格式定義為:1路、2路、3路、6路、7路、8路、9路
39、、10路、11路、12路、16路、18路、201路、202路、203路,類型定義為文本。</p><p> Positionname用來保存站點名稱,數(shù)據(jù)格式定義為:百花大廈 春苑公園 婦幼保健院 公交商業(yè)城 官渡市場 廣東石油化工學(xué)院 河西汽車站 交通技工學(xué)校 大廈 火車站 人民廣場 人民醫(yī)院 市二技學(xué)校 市委大院 市政府 體育中心 銅鼓嶺 文化廣場 沃爾瑪 移動通訊公司 鎮(zhèn)盛街 市府中心廣場 等。
40、</p><p> 線路名稱用來保存公車路線的途徑上下行站點,發(fā)車起始時間,以及對應(yīng)的車票費用。</p><p> 2.4.3 開發(fā)環(huán)境介紹:</p><p> Visual C++是Microsoft C/C++ 7.0之后推出的新一代程序開發(fā)工具,它不僅繼承C++的特性,同時具備可視化程序語言(Visual Programming Language)及程序
41、產(chǎn)生器的概念。既然是面向?qū)ο笳Z言,當(dāng)然會提供系統(tǒng)基礎(chǔ)類給程序員再使用(Reuse)。在Visual C++ 中,延襲Microsoft C/C++7.0的作法,將原有的SDK函數(shù)重新封裝在適當(dāng)?shù)念愔?,?gòu)造了“基礎(chǔ)類函數(shù)庫(Microsoft Foundation Class Library,簡稱MFC)”,它提供了許多現(xiàn)成的框架對象,可供在使用Visual C++設(shè)計應(yīng)用程序是使用。此外,還提供“ClassWizard”與“AppWiz
42、ard”可幫助構(gòu)造基本的程序框架,從軟件再使用的技術(shù)觀點而言,已由SDK函數(shù)庫方式經(jīng)過面向?qū)ο蟪绦蛟O(shè)計方式進展到自動產(chǎn)生模板相關(guān)類程序代碼方式(Framework)。</p><p> 面向?qū)ο蟮某绦蛟O(shè)計是一種新型的程序設(shè)計方法,計算機環(huán)境本身就是一個對象的集合體,對象彼此之間通過消息相互作用,面向?qū)ο蟮某绦蛟O(shè)計提高了程序的模塊化和可維護性。面向?qū)ο蟮某绦蛟O(shè)計有幾個特點及優(yōu)點。首先,由于對象包含屬性和方法,因此
43、支持模塊化程序設(shè)計,而模塊化程序設(shè)計支持開發(fā)的便利性及代碼的可維護性。</p><p> Visual C++ 6.0是Microsoft公司推出的功能最強大、最復(fù)雜的語言產(chǎn)品之一,它是目前為止在Windows環(huán)境下進行大型軟件開發(fā)的首選。其具有如下特點:</p><p> (1)Visual C+ + 的語法符合ANSL C+ + 標(biāo)準(zhǔn),并在此基礎(chǔ)上針對Windows操作系統(tǒng)增加了一
44、些語句;</p><p> (2)集成了MFC(Microsoft Foundation Class)類庫,MFC封裝了Windows API函數(shù)和消息,使程序員可以使用MFC高效率地開發(fā)各種應(yīng)用程序;</p><p> (3)提供了MFC AppWizard,可方便地生成程序框架;</p><p> (4)提供了基于MFC的ClassWizard,通過它可以
45、輕松地完成對各種MFC類的使用與維護。</p><p> Visual C++ 6.0作為Visual Studio家族中的一員,是Microsoft公司以C++語言為基礎(chǔ)開發(fā)的可視化集成開發(fā)工具,與其他編程語言Visual Basic 6.0、Visual ForPro等一起,成為廣大程序員喜愛的開發(fā)平臺。</p><p><b> 2.5核心技術(shù):</b>&l
46、t;/p><p> 2.5 1 KMP算法</p><p> KMP算法是D.E.Knuth、J.H.Morris和V.R.Pratt共同提出的,簡稱KMP算法。</p><p> 2.5 2 樸素算法</p><p><b> 串的模式匹配算法</b></p><p> 1. 樸素模式匹配
47、算法(Brute-Force算法)</p><p> 求子串位置的定位函數(shù)Index( S, T, pos).</p><p> 模式匹配:子串的定位操作通常稱作串的模式匹配。</p><p><b> 目標(biāo)串:主串S。</b></p><p><b> 模式串:子串T。</b></p
48、><p> 匹配成功:若存在T的每個字符依次和S中的一個連續(xù)字符序列相等,則稱匹配成功。返回T中第一個字符在S中的位置。</p><p> 匹配不成功:返回0。</p><p> Brute-Force簡稱為BF算法,亦稱簡單匹配算法,其基本思路是:</p><p> 從目標(biāo)串s=“s1s2…sn"的第一個字符開始和模式串t=“
49、t1t2…tm"中的第一個字符比較,若相等,則繼續(xù)逐個比較后續(xù)字符;否則從目標(biāo)串s的第二個字符開始重新與模式串t的第一個字符進行比較。依次類推,若從模式串s的第i個字符開始,每個字符依次和目標(biāo)串t中的對應(yīng)字符相等,則匹配成功,該算法返回i;否則,匹配失敗,函數(shù)返回0。</p><p> 例如,設(shè)目標(biāo)串s=“cddcdc”,模式串t=“cdc”。s的長度為n(n=6),t的長度為m(m=3)。用指針i指
50、示目標(biāo)串s的當(dāng)前比較字符位置,用指針j指示模式串t的當(dāng)前比較字符位置。BF模式匹配過程如下所示。</p><p><b> 核心代碼:</b></p><p> 子串定位int Index( SString S, SString T, int pos)</p><p><b> {</b></p>&l
51、t;p> i= pos; j = 1;</p><p> while( i<=S[0] && j<=T[0]){</p><p> if(S[i] == T[j]){ ++i; ++j; }</p><p> else{ i = i-j+2; j =1; }</p><p><b>
52、 }</b></p><p> if(j>T[0]) return i-T[0];</p><p> else return 0;</p><p><b> }</b></p><p> 2.6系統(tǒng)所用的工具:</p><p> 主要開發(fā)工具:Microsoft vi
53、sual C++ 6.0。</p><p> 數(shù)據(jù)統(tǒng)計工具:TXT記事本。</p><p> 2.7系統(tǒng)運行所需要的環(huán)境</p><p><b> 硬件配置 :</b></p><p> 硬 盤:40GB以上硬盤;</p><p> 內(nèi) 存:256以上的DDR內(nèi)存;</p&g
54、t;<p> 顯 卡:128M以上顯存顯卡</p><p> 中央處理器(CPU) :P4 2.0G以上的處理器;</p><p> 軟件配置:WINDOWS XP 版本、Microsoft visual C++ 6.0。</p><p><b> 第三章 需求分析</b></p><p> 3
55、.1 應(yīng)用需求分析</p><p> 要設(shè)計一個良好的公交查詢系統(tǒng),就必須首先明確該應(yīng)用環(huán)境對系統(tǒng)的要求。公交查詢系統(tǒng)的應(yīng)用背景為:方便市民搭乘公交車出行;手動(目前)、自動(將來)、及時更新查詢數(shù)據(jù)。因此,該系統(tǒng)需滿足以下幾方面需求:</p><p><b> 1)問題分析</b></p><p> (1)功能需求:該模塊實現(xiàn)公交查詢功
56、能。該模塊實現(xiàn)數(shù)據(jù)的錄入、修改、刪除功能。</p><p> ?。?)性能需求:系統(tǒng)的相應(yīng)時間不能超過10ms。</p><p> ?。?)出錯處理需求:當(dāng)輸入的信息不全,或格式不正確時,提示出錯信息,即退出或繼續(xù)查詢。</p><p><b> 2)問題描述</b></p><p> ?。?)信息要求:可實現(xiàn)按起點-
57、中轉(zhuǎn)站-終點查詢查詢和按線路查詢,按站點查詢等三種查詢方式。</p><p> ?。?)處理要求:該模塊實現(xiàn)通過TXT文本文檔形式進行數(shù)據(jù)的錄入、修改、刪除功能。</p><p> (3)安全性與完整性要求。本系統(tǒng)并無在此方面進行復(fù)雜的設(shè)計,使用者僅需輸入查詢方式,再按查詢的方法進行查詢即可。</p><p><b> 3.2 功能需求 </b&
58、gt;</p><p> 本系統(tǒng)主要實現(xiàn)以下功能:</p><p> 3.2.1條件查詢模塊</p><p> 圖3-2 條件查詢</p><p> 3.2.2 全局查詢模塊</p><p> 圖3-3 全局查詢</p><p><b> 3.3 功能說明</
59、b></p><p><b> 主要功能:</b></p><p> 1)通過線路查詢:輸入查詢方式1,輸入要查詢的車次的名稱,如1路,結(jié)果顯示出該公車路線經(jīng)過的站點;</p><p> 2)通過站點查詢:輸入查詢方式2,輸入要查詢的站點的名稱,如沃爾瑪,結(jié)果顯示出途經(jīng)該站點的所有公車車次;</p><p>
60、 3)查詢兩點間有無車次經(jīng)過:輸入查詢方式3,輸入要查詢的兩站的名稱,如沃爾瑪、廣東石油化工學(xué)院,結(jié)果顯示出通過兩站點的車次;</p><p> 4)顯示全部信息:輸入查詢方式4,結(jié)果分別顯示出所有站點和所有公車路線的記錄;</p><p><b> 3.4 可行性分析</b></p><p> 可行性分析是對系統(tǒng)進行全面、概要的分析。
61、它的任務(wù)是確定項目開發(fā)時是否必要和可行。它的主要目標(biāo)是:進一步明確系統(tǒng)的目標(biāo)、規(guī)模和功能,對系統(tǒng)開發(fā)背景、必要性和意義進行調(diào)查分析,并且提出系統(tǒng)的邏輯模型和各種可能的方案,從而為系統(tǒng)開發(fā)項目的決策提供科學(xué)依據(jù)。主要從三個方面進行研究:</p><p> 3.4.1 經(jīng)濟可行性</p><p> 從這方面來說,本系統(tǒng)的開發(fā)作為課題來說不需要什么經(jīng)濟投入,因此來說也是可行的。本查詢系統(tǒng)是一
62、個簡潔明了、實用、使用簡單、具有人性化的特點。實現(xiàn)這個</p><p> 查詢系統(tǒng)并不需要花費大量的時間費用,使用的是Mircosoft visual C++ 6.0開發(fā)軟件。</p><p> 3.4.2 技術(shù)可行性</p><p> 技術(shù)可行性:以現(xiàn)有技術(shù)進行系統(tǒng)開發(fā)及系統(tǒng)實施,是完全可行的。首先,從自身來分析,經(jīng)過大學(xué)2年多的學(xué)習(xí)已經(jīng)初步掌握了C++、數(shù)
63、據(jù)庫等方面的編程技巧,對該軟件的設(shè)計有所了解。第二方面,在設(shè)計這個系統(tǒng)之前,我進行了一系列先期調(diào)研,查閱了有關(guān)使用C++進行數(shù)據(jù)庫開發(fā)方面的論著、教材和論文,更多是利用網(wǎng)絡(luò)的便利條件,從網(wǎng)上查閱了沈陽、大連、廣州、昆明等大型城市的公交查詢系統(tǒng),并認(rèn)真地對其進行了分析研究,由于時間緊,任務(wù)重,我沒有更多的時間來開發(fā)完整的系統(tǒng),所以就以查詢作為這個系統(tǒng)的核心。其次,從數(shù)據(jù)庫方面來分析,也是可行的。系統(tǒng)所建立的數(shù)據(jù)庫中包含有五個字段:bus
64、,busname, position, 線路名稱, positionname用來存放本查詢系統(tǒng)中所需要的全部數(shù)據(jù)。</p><p> 3.4.3 開發(fā)可行性</p><p> 本項目開發(fā)語言為C++,開發(fā)平臺為Window XP下的]編程環(huán)境,后臺數(shù)據(jù)支持采用TXT文本文檔。</p><p><b> 第四章 概要設(shè)計</b></p
65、><p> 4.1 系統(tǒng)總體功能流程圖</p><p> 圖4-1 系統(tǒng)總體流程圖</p><p><b> 功能流程說明如下:</b></p><p> (1)啟動Mircosoft visual C++ 6.0服務(wù)器程序,服務(wù)器對本系統(tǒng)編譯。</p><p><b> (2)運
66、行本系統(tǒng)。</b></p><p> (3)用戶查詢使用界面。</p><p> (4)用戶根據(jù)系統(tǒng)界面提供的4種方法自行選擇所需的方式查詢。</p><p> (5)查詢系統(tǒng)收到命令,根據(jù)查詢方式查找對應(yīng)類型的數(shù)據(jù)。</p><p> (6)打印輸出在查詢界面。</p><p> (7)當(dāng)用戶查
67、詢結(jié)束后,出現(xiàn)是否繼續(xù)Y/N。如繼續(xù)Y,則在系統(tǒng)中選擇其他方式操作。如退出N,則退出本系統(tǒng)。</p><p><b> (8)關(guān)閉本系統(tǒng)。</b></p><p><b> 4.2 功能設(shè)計</b></p><p> 4.2.1 根據(jù)公車線路查詢</p><p> 用戶通過選擇第一種查詢方式
68、,即通過輸入公車路線方式查詢該公車途經(jīng)的全部站點信息。</p><p> 圖4-2 根據(jù)公車路線查詢流程圖</p><p> 4.2.2根據(jù)站點查詢路線</p><p> 用戶通過輸入站點,即輸入站點查詢途徑該站點所有公車的線路信息。</p><p> 圖4-3 根據(jù)站點查詢路線流程圖</p><p>
69、4.2.3 兩點間車次查詢</p><p> 用戶通過輸入兩個站點,即輸入第一個站點和第二個站點查詢該兩站有無車次通過,并輸出通過兩個站點所有點公車路線。</p><p> 圖4-4 兩點間車次查詢流程圖</p><p> 4.2.4 顯示所有信息</p><p> 用戶通過輸入最后一種方式,即輸出所有公車的名稱和站點。</p&
70、gt;<p> 圖4-5 顯示所有信息流程圖</p><p><b> 第五章 系統(tǒng)實現(xiàn)</b></p><p> 5.1 查詢模塊的功能實現(xiàn)</p><p> 公交查詢模塊是用戶與系統(tǒng)進行交互的直接媒介。除了要完成用戶的請求外,更需要從用戶的角度出發(fā),以人為本。</p><p> 查詢模塊除了
71、顯示出簡易的歡迎文字外,直接顯示本系統(tǒng)所提供的幾種查詢方式。從實際出發(fā)對于公交查詢系統(tǒng)而言,用戶輸入公車線路或站點,后臺數(shù)據(jù)庫查詢?yōu)橄到y(tǒng)列出符合條件的公交班次。當(dāng)系統(tǒng)發(fā)現(xiàn)填寫有誤時,則提示“本系統(tǒng)暫時沒有收錄或該線路不存在,請確定您輸入是否正確”。并且提示是否繼續(xù)或退出。</p><p><b> 。</b></p><p> 5.1.1 用戶界面核心代碼<
72、/p><p> 公交查詢系統(tǒng)運行界面如圖5-1所示:</p><p><b> 核心代碼如下:</b></p><p> class userInterface</p><p><b> {</b></p><p> char getch;</p><
73、;p> char choice;</p><p> char* frPos;</p><p> char* toPos;</p><p> char* busName;</p><p><b> public:</b></p><p> void searchPassWay();
74、</p><p> void searchTrace();</p><p> void searchBuses();</p><p> void showInformation();</p><p> void loop();</p><p> void ifcontinue();</p>&l
75、t;p> userInterface();</p><p> ~userInterface();</p><p> };//class userInterface</p><p> void userInterface::searchTrace()</p><p><b> {</b></p>
76、<p> busName=new char[10];</p><p> cout<<endl<<"請輸入路線名(即公交車名):";</p><p> cin>>busName;</p><p><b> try</b></p><p><
77、b> {</b></p><p> bus BUS(busName);</p><p> cout<<endl;</p><p> cout<<BUS.note<<endl;</p><p> BUS.printInformation();</p><p>
78、;<b> }</b></p><p> catch(bus::Error)</p><p><b> {</b></p><p> cout<<endl<<"sorry! 您要查找的線路:"<<busName</p><p> &l
79、t;<",本系統(tǒng)暫時沒有收錄或者該線路不存在"<<endl<<"請確定您的輸入是否正確"<<endl;</p><p><b> }</b></p><p> }//userInterface::searchTrace</p><p> void userI
80、nterface::searchBuses()</p><p><b> {</b></p><p> char* positionName=new char[40];</p><p> cout<<endl<<"請輸入站點名稱:";</p><p> cin>&
81、gt;positionName;</p><p><b> try</b></p><p><b> {</b></p><p> position POSITION(positionName);</p><p> cout<<endl;</p><p>
82、 POSITION.printPassBuses();</p><p><b> }</b></p><p> catch(position::Error)</p><p><b> {</b></p><p> cout<<endl<<"Sorry! 本
83、系統(tǒng)暫時沒有收錄經(jīng)過"<<positionName<<"的線路"<<"!"<<endl<<"請確定您的輸入是否正確"<<endl;</p><p><b> }</b></p><p> }//userInterface::
84、searchBuses</p><p> void userInterface::searchPassWay()</p><p><b> {</b></p><p> cout<<endl<<"請輸入出發(fā)站點名稱:";</p><p> cin>>frPo
85、s;</p><p> cout<<endl<<"請輸入目標(biāo)站點名稱:";</p><p> cin>>toPos;</p><p><b> try</b></p><p><b> {</b></p><p>
86、; position* fromPosition=new position(frPos);</p><p> position* toPosition=new position(toPos);</p><p> fromPosition->isThrough(toPosition);</p><p><b> }</b></
87、p><p> catch(position::Error)</p><p><b> {</b></p><p> cout<<endl<<"Sorry! 本系統(tǒng)暫時沒有收錄經(jīng)過"<<frPos<<"或"<<toPos<<"
88、;的線路"<<"!"<<endl<<"請確定您的輸入是否正確"<<endl;</p><p><b> }</b></p><p> }//userInterface::searchPassWay</p><p> void userInte
89、rface::showInformation()</p><p><b> {</b></p><p><b> int i=0;</b></p><p> ifstream in_file;</p><p> in_file.open("source\\busname.txt&q
90、uot;, ios::in);</p><p> char* inbus=new char[5];</p><p> cout<<endl<<"線路信息如下:"<<endl;</p><p> while(!in_file.eof())</p><p><b> {&l
91、t;/b></p><p> in_file>>inbus;</p><p><b> ++i;</b></p><p> cout<<inbus;</p><p> if(!in_file.eof()) cout<<" ";</p>
92、<p> if(!(i%15)) cout<<endl;</p><p><b> }</b></p><p> cout<<endl;</p><p> in_file.close();</p><p> in_file.open("source\\position
93、name.txt", ios::in);</p><p> char* inpos=new char[40];</p><p> cout<<endl<<"站點信息如下:"<<endl;</p><p><b> i=0;</b></p><p>
94、 while(!in_file.eof())</p><p><b> {</b></p><p> in_file>>inpos;</p><p><b> ++i;</b></p><p> cout<<inpos<<' ';</
95、p><p> if(!(i%8)) cout<<endl;</p><p><b> }</b></p><p> cout<<endl;</p><p> in_file.close();</p><p> delete []inbus;</p>&l
96、t;p> delete []inpos;</p><p> }//userInterface::showInformation</p><p> void userInterface::loop()</p><p><b> {</b></p><p> cout<<endl;</p&g
97、t;<p> cout<<" %%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl;</p><p> cout<<" % 歡迎使用 公交查詢系統(tǒng) %"<<endl;</p><p> cout<<"
98、 %%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl;</p><p> cout<<endl;</p><p> cout<<"本系統(tǒng)能夠:"<<endl;</p><p> cout<<" %%%%%o(∩_∩)oo(∩_∩
99、)oo(∩_∩)o%%%%%%%%"<<endl;</p><p> cout<<" % ==> 1. 根據(jù)公交車名查詢路線; %"<<endl;</p><p> cout<<" % ==> 2. 根據(jù)站名查詢經(jīng)過的車次; %"<
100、<endl;</p><p> cout<<" % ==> 3. 查詢兩站間有無車次可通; %"<<endl;</p><p> cout<<" % ==> 4. 得到線路名稱和站點名稱的信息;%"<<endl;</p><p>
101、 cout<<" %%%%o(∩_∩)oo(∩_∩)oo(∩_∩)o%%%%%%%%%"<<endl;</p><p> cout<<"請選擇要查詢的方式(1、2 、3 or 4):";</p><p> cin>>choice;</p><p> switch(c
102、hoice)</p><p><b> {</b></p><p><b> case '1':</b></p><p> searchTrace();</p><p> ifcontinue();</p><p><b> break;&
103、lt;/b></p><p><b> case '2':</b></p><p> searchBuses();</p><p> ifcontinue();</p><p><b> break;</b></p><p><b>
104、 case '3':</b></p><p> searchPassWay();</p><p> ifcontinue();</p><p><b> break;</b></p><p><b> case '4':</b></p>
105、<p> showInformation();</p><p> ifcontinue();</p><p><b> break;</b></p><p><b> default:</b></p><p> cout<<"您的輸入不正確!"
106、;</p><p> ifcontinue();</p><p><b> }</b></p><p> }//userInterface::loop</p><p> void userInterface::ifcontinue()</p><p><b> {</b&
107、gt;</p><p> cout<<endl<<"是否繼續(xù)查詢(y/n)? ";</p><p> cin>>getch;</p><p> if(getch=='y') loop();</p><p> else exit(1);</p>&l
108、t;p> }//userInterface::ifcontinue</p><p> userInterface::userInterface()</p><p><b> {</b></p><p> frPos=new char[40];</p><p> toPos=new char[40];<
109、;/p><p> }//userInterface::userInterface</p><p> userInterface::~userInterface()</p><p><b> {</b></p><p> delete []busName;</p><p> delete []
110、frPos;</p><p> delete []toPos;</p><p> }//userInterface::~userInterface</p><p><b> 5.2主查詢方式</b></p><p> 本系統(tǒng)有4種查詢方式供用戶自行選擇,通過選擇用戶所需的方式進行有目的性的查詢。</p>
111、;<p> 5.2.1 根據(jù)公交線路查詢 </p><p><b> 核心代碼如下:</b></p><p><b> class bus</b></p><p><b> {</b></p><p><b> private:</b&g
112、t;</p><p> char* name;</p><p> char* trackName;</p><p> char* upTrack;</p><p> char* downTrack;</p><p> char* fromTime;</p><p> char* to
113、Time;</p><p> char* price;</p><p> int isExist(char*);</p><p> void initialize();</p><p><b> public:</b></p><p> bus(char* n);</p>
114、<p><b> ~bus();</b></p><p> char* note;</p><p> void printInformation();</p><p> class Error{};//異常類</p><p> };//class bus</p><p> v
115、oid bus::initialize()</p><p><b> {</b></p><p><b> int i;</b></p><p> trackName=new char[60];</p><p> upTrack=new char[600];</p><p
116、> downTrack=new char[600];</p><p> fromTime=new char[60];</p><p> toTime=new char[60];</p><p> price=new char[60];</p><p> char* locator=new char[30];</p>
117、<p> strcpy(locator,"source\\bus\\");</p><p> if(*name=='路') strcat((name+1),locator);</p><p> else strcat(locator,name);</p><p> strcat(locator,".
118、txt");</p><p> ifstream in_file;</p><p> in_file.open(locator, ios::in);</p><p> char* mystring[6];</p><p> mystring[0]=new char[60];</p><p> mys
119、tring[1]=new char[600];</p><p> mystring[2]=new char[600];</p><p> mystring[3]=new char[60];</p><p> mystring[4]=new char[60];</p><p> mystring[5]=new char[60];<
120、/p><p> for(i=0;i<=5&&in_file;i++)</p><p><b> {</b></p><p> in_file.getline(mystring[i],1000);</p><p><b> }</b></p><p>
121、 in_file.close();</p><p> strcpy(trackName,mystring[0]);</p><p> strcpy(upTrack,mystring[1]);</p><p> strcpy(downTrack,mystring[2]);</p><p> strcpy(fromTime,mystri
122、ng[3]);</p><p> strcpy(toTime,mystring[4]);</p><p> strcpy(price,mystring[5]);</p><p> for(i=0;i<=5;i++)</p><p><b> {</b></p><p> delet
123、e [] mystring[i];</p><p><b> }</b></p><p> delete []locator;</p><p> }//bus::initialize</p><p> bus::bus(char* n)</p><p><b> {</
124、b></p><p> note=new char[100];</p><p> strcpy(note,"");</p><p> name=new char[10];</p><p> strcpy(name,n);</p><p> if(isExist(name))</
125、p><p><b> {</b></p><p> initialize();</p><p> strcpy(note," find it !");</p><p><b> }</b></p><p> if(*name=='路'
126、)</p><p><b> {</b></p><p> if(isExist((name+1)))</p><p><b> {</b></p><p> initialize();</p><p> strcpy(note,"您要查找的線路:&quo
127、t;);</p><p> strcat(note,name);</p><p> strcat(note,"不存在或者本系統(tǒng)沒有記錄這條線路;下面這條線路供參考:");</p><p><b> }</b></p><p><b> }</b></p>&
128、lt;p><b> else</b></p><p><b> {</b></p><p> char* temp=new char[11];</p><p> strcpy(temp,"路");</p><p> strcat(temp,name);</p
129、><p> if(isExist(temp))</p><p><b> {</b></p><p> initialize();</p><p> strcpy(note,"您要查找的線路:");</p><p> strcat(note,name);</p>
130、;<p> strcat(note,"不存在或者本系統(tǒng)沒有記錄這條線路;下面這條線路供參考:");</p><p><b> }</b></p><p> delete []temp;</p><p><b> }</b></p><p> if(!*no
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公交車查詢系統(tǒng)
- 公交車查詢系統(tǒng).doc
- 公交車查詢系統(tǒng)報告
- 公交車查詢系統(tǒng)設(shè)計與實現(xiàn)
- 公交車自動報站系統(tǒng)畢業(yè)設(shè)計
- 公交車自動報站系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---公交車報站系統(tǒng)的設(shè)計
- 公交車智能語音播報系統(tǒng)畢業(yè)設(shè)計
- 軟件工程畢業(yè)論文-公交車查詢系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計--公交車智能報站
- 公交車自動報站的系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---公交車自動報站系統(tǒng)的設(shè)計
- 公交車自動報站系統(tǒng)的設(shè)計-畢業(yè)設(shè)計
- 智能公交車報站系統(tǒng)設(shè)計【畢業(yè)論文】
- 公交車查詢系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 畢業(yè)設(shè)計論文 公交查詢系統(tǒng)設(shè)計
- 公交車自動報站系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計--公交系統(tǒng)查詢
- 公交路線查詢系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計--公交車自動報站系統(tǒng)的硬件設(shè)計原理
評論
0/150
提交評論