




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘 要茂名公交乘客信息系統(tǒng)的發(fā)展處于一個(gè)較落后的水平,廣大乘客可以獲得信息的方式很少,為了解決這種問題,加快發(fā)展城市公交信息化,設(shè)計(jì)一個(gè)城市公交查詢系統(tǒng)是具有一定實(shí)際應(yīng)用意義的。出于這個(gè)目的,在老師的指導(dǎo)下,我設(shè)計(jì)了這個(gè)城市公交出行線路查詢系統(tǒng)這個(gè)查詢系統(tǒng)。城市公交查詢系統(tǒng)能夠幫助出行者快速地選擇出行路徑、換乘路線等,既優(yōu)化了公交資源的配置,又提升了出行者的效率,提高了交通運(yùn)輸?shù)男屎统鞘械男畔⒒健J紫确治隽嗣鞘泄怀丝托畔⑾到y(tǒng)的發(fā)展現(xiàn)狀,找出問題和不足。其次,在對(duì)公交乘客出行心理特征進(jìn)行分析的基礎(chǔ)上,考慮了乘客選擇公交線路決策的因素,建立了基于時(shí)間價(jià)值和費(fèi)用價(jià)值的公交線路選擇合理的模
2、型。在此基礎(chǔ)上,進(jìn)行程序關(guān)鍵部分的框架設(shè)計(jì),理清程序設(shè)計(jì)思路。之后是程序關(guān)鍵部分的具體實(shí)現(xiàn),包括關(guān)鍵程序原代碼。最后完成功能介紹和使用說明。關(guān)鍵詞 公交 查詢 C+ 數(shù)據(jù)統(tǒng)計(jì)AbstractThe 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 practical fo
3、r 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 the present condition of the bus passenger information and different people's needs, in
4、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 system(According to the line search、station search and between two stations search) and management update system(Bus stati
5、on 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 I can have from this research.Keyword Bus Search C+ DataStatistics目 錄摘 要IAbstractII目 錄III第一章 引 言1第二章 公交查詢系統(tǒng)的概述22.1 系統(tǒng)
6、的開發(fā)背景2茂名城市公交的發(fā)展史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+語言的介紹42.4.2 數(shù)據(jù)庫的設(shè)計(jì)42.4.3 開發(fā)環(huán)境介紹5核心技術(shù):62.5.1 KMP算法62.5.2 樸素算法62.6系統(tǒng)所用的工具:82.7系統(tǒng)運(yùn)行所需要的環(huán)境8第三章 需求分析9 應(yīng)用需求分析9 功能需求9條件查詢模塊10 全局查詢模塊103.3 功能說明11 可行性分析11 經(jīng)濟(jì)可行性123.4.2 技術(shù)可行性12 開發(fā)可行性12第四章 概要設(shè)計(jì)13 系統(tǒng)總體功能流程圖13 功能設(shè)計(jì)14 根據(jù)公車線路查詢14根據(jù)站點(diǎn)查詢線路144.2.3 兩
7、點(diǎn)間車次查詢154.2.4 顯示所有信息16第五章 系統(tǒng)實(shí)現(xiàn)175.1 查詢模塊的功能實(shí)現(xiàn)175.1.1 用戶界面核心代碼17主查詢方式23 根據(jù)公交線路查詢23 根據(jù)站點(diǎn)查詢經(jīng)過車次27 查詢兩站間有無車次可通29獲取線路和站點(diǎn)的信息31第六章 系統(tǒng)詳細(xì)設(shè)計(jì)與最終效果33系統(tǒng)功能演示33根據(jù)公交車查詢線路336.3 根據(jù)站點(diǎn)查詢經(jīng)過車次34查詢兩點(diǎn)間有無車次通過35輸出所有線路和站點(diǎn)信息35第七章 系統(tǒng)測試377.1 確認(rèn)測試377.2 系統(tǒng)測試377.3 用戶驗(yàn)收測試377.4 系統(tǒng)難點(diǎn)分析37結(jié) 論38參考文獻(xiàn)41 第一章 引 言 隨著我國經(jīng)濟(jì)的高速發(fā)展,人們生活水平的提高,越來越多的人
8、開始熱衷于到外地旅游。那么對(duì)于這些外來旅游者,首先搞清這個(gè)城市的公交路線顯的很重要!茂名,作為一個(gè)旅游城市,每年都要吸引大量的游客,為了方便廣大游客,我的畢業(yè)設(shè)計(jì)就以公交查詢系統(tǒng)做為設(shè)計(jì)課題。我認(rèn)為這樣的系統(tǒng)應(yīng)該具有很好的實(shí)用性!乘客只需選擇車次或輸入要查詢的站點(diǎn),系統(tǒng)會(huì)快速的給出結(jié)果,同時(shí)還添加了2點(diǎn)之間查詢有無車次通過的功能。正是基于這樣的目的我開發(fā)了公交查詢系統(tǒng)。我國城市公交乘客信息系統(tǒng)的發(fā)展處于一個(gè)落后的水平,廣大乘客可以獲得信息的方式很少,公交信息的完整性和準(zhǔn)確性得不到保證,而且還沒有專門的機(jī)構(gòu)負(fù)責(zé)信息的發(fā)布和管理。我國公交乘客信息系統(tǒng)的現(xiàn)狀特點(diǎn)如下:(1) 我國乘客一般獲得公交信息
9、的方式局限于 ,交通圖,向熟人問訊等常規(guī)方式。乘客可以獲得的公交信息較少(2)乘客出行中獲得信息困難,基本上沒有實(shí)時(shí)信息。除了幾個(gè)少數(shù)城市,乘客可以通過分布于城市中的若干電子站牌獲得一些公交車輛的運(yùn)營信息以外,在其它城市“出行中”的乘客無法獲得任何實(shí)時(shí)信息。由上所述,我國公交乘客信息系統(tǒng)總體上處于較低水平。較低的發(fā)展水平既是發(fā)展的困難,也是發(fā)展的機(jī)遇。我們應(yīng)將發(fā)展公交乘客信息系統(tǒng)作為一個(gè)提高公交效率,增強(qiáng)公交吸引力的重要手段。 公交查詢系統(tǒng)根據(jù)公交線路的調(diào)整及時(shí)更新數(shù)據(jù)庫使得人們不必為自己的錯(cuò)誤記憶或是不熟悉線路而付出時(shí)間和金錢的代價(jià),目的才是最終想要的,所以準(zhǔn)確性才是最重要的第二章 公交查詢
10、系統(tǒng)的概述2.1 系統(tǒng)的開發(fā)背景茂名城市公交的發(fā)展史近年來,茂名市委、市政府和市交通運(yùn)輸局非常重視公交發(fā)展,積極采取措施優(yōu)先發(fā)展公交,加大政策扶持與資金投入,有效地推動(dòng)了城市公交的發(fā)展。2009年7月,市政府出臺(tái)了茂名市優(yōu)先發(fā)展城市公共交通的實(shí)施意見,這是我市建市50年來首次以政府名義頒布的優(yōu)先發(fā)展城市公共交通的政策性文件,從而為公交持續(xù)、健康、穩(wěn)步發(fā)展提供了可靠政策保障;2010年8月,市政府召開常務(wù)會(huì)議,原則通過茂名市區(qū)公共交通規(guī)劃,這是我市第一個(gè)較為完整的系統(tǒng)的公交規(guī)劃,通過規(guī)劃,我市城市公共交通目前存在的規(guī)劃滯后、站場建設(shè)差、公交車輛少、線路安排不合理等問題將會(huì)得到逐步解決,進(jìn)一步促進(jìn)
11、城鄉(xiāng)公交一體化,為實(shí)現(xiàn)我市公交優(yōu)先發(fā)展和促進(jìn)城市經(jīng)濟(jì)發(fā)展打下扎實(shí)的基礎(chǔ)。2009年,市政府投入了850萬元購置新公交車27輛,實(shí)現(xiàn)市區(qū)建成區(qū)全部通公交;2010年,又分兩批投入資金1700多萬元購置68輛新公交車投入營運(yùn)。為了提高服務(wù)質(zhì)量,對(duì)新公交車增加科技投入,全部安裝了GPS自動(dòng)報(bào)站器、治安監(jiān)控錄像及發(fā)動(dòng)機(jī)倉自動(dòng)滅火器等高新技術(shù)設(shè)施,為市民提供高層次服務(wù)?!笆晃濉逼陂g,共投入資金近3000萬元,購置、更新公交車152輛,新增線路11條,城市公交車每萬人擁有量從3.3標(biāo)臺(tái)增加到5標(biāo)臺(tái)。同時(shí)市政府常務(wù)會(huì)議明確從2011年起4年內(nèi),每年安排2000萬元專項(xiàng)資金用于扶持市區(qū)公共交通建設(shè),要求今年
12、內(nèi)實(shí)現(xiàn)市屬茂南、茂港兩區(qū)鎮(zhèn)墟及行政村通公交,以促進(jìn)公交事業(yè)大發(fā)展。2010年,總公司為配合市政府和市交通運(yùn)輸局大力優(yōu)先發(fā)展城市公共交通戰(zhàn)略的實(shí)施,按照市交通運(yùn)輸局潘北林局長關(guān)于“公交車承包經(jīng)營不符合公共交通發(fā)展要求,請市公共汽車公司對(duì)承包經(jīng)營的線路進(jìn)行清理,采取措施收回自營”的批示精神,積極規(guī)劃新開線路,科學(xué)合理優(yōu)化線網(wǎng)布局,新增公交線路6條,收回承包線路3條,先后對(duì)4條線路進(jìn)行優(yōu)化調(diào)整。2011年,總公司為加快市區(qū)公交發(fā)展步伐,計(jì)劃增加市區(qū)公交車運(yùn)行密度和新開公交線路8條;計(jì)劃新增100輛LNG天然氣公交車,實(shí)現(xiàn)節(jié)能環(huán)保、低碳的公交車;在茂名大道等路段建設(shè)不銹鋼候車亭20個(gè),繼續(xù)完善服務(wù)設(shè)施
13、;實(shí)現(xiàn)茂南、茂港兩區(qū)具備通車條件的行政村全部通公交;規(guī)劃新建排河公交綜合站、高地片區(qū)公交綜合站和西城片區(qū)公交首末站,逐步解決公交站場和配套設(shè)施不足的問題;加大科技投入,安裝GPS/GPRS智能管理公交調(diào)度系統(tǒng),合理排班科學(xué)調(diào)度,不斷完善各項(xiàng)管理制度,提高營運(yùn)管理水平,以實(shí)現(xiàn)公共交通對(duì)市屬區(qū)具備條件通公交行政村的全覆蓋,提高服務(wù)水平,為群眾創(chuàng)造一個(gè)便捷、實(shí)惠的乘車環(huán)境,解決群眾出行難問題。茂名公交的現(xiàn)狀目前茂名有公交車216輛,線路24條,公交線路總長度458.8公里,公交線路總長比三年前增加了近300公里,公交線網(wǎng)覆蓋我市城區(qū)及茂南、茂港區(qū)大部分鎮(zhèn)村。 經(jīng)營范圍包括市內(nèi)客運(yùn),汽車出租、修理,車
14、身、候車亭廣告,招待所,物業(yè)管理;內(nèi)設(shè)經(jīng)理辦、綜合辦、安全部、財(cái)務(wù)科、企管科、后勤服務(wù)中心、IC卡管理中心、修理廠、招待所、一分公司、二分公司、點(diǎn)鈔中心、材料供應(yīng)部和廣告分公司等14個(gè)部門(科室)。 系統(tǒng)的開發(fā)意義本文所介紹的公交查詢系統(tǒng)是基于C+應(yīng)用程序開發(fā)設(shè)計(jì)的,其主要特性是能動(dòng)態(tài)、實(shí)時(shí)的完成信息的查詢,且具有高效的交互性,有效的處理客戶請求, 易于維護(hù)和更新,它規(guī)模適中,適合于個(gè)人開發(fā),能夠鍛煉同學(xué)的學(xué)習(xí)新知識(shí)能力,鍛煉同學(xué)的編程能力,鍛煉同學(xué)的軟件工程的思維方式.它的具體意義如下: (1)目前,國內(nèi)各城市公交發(fā)展的速度不同,對(duì)于城市的民眾來說,在他們所居住的城市里活動(dòng),如何獲取有效、快
15、速、實(shí)用的公交信息,是他們最渴望的,這將為城市民眾提供很大的方便,同時(shí)也是他們對(duì)公交行業(yè)的有新的認(rèn)識(shí)的途經(jīng)。.(2) 一個(gè)城市的公交查詢對(duì)來自別的城市的民眾同樣重要,在他們出差,旅行或跑業(yè)務(wù)的時(shí)候,通過對(duì)公交查詢系統(tǒng)的使用,能大大提高他們出行的效率。因此,一個(gè)簡單,實(shí)用,效率高的查詢系統(tǒng)是有必要的。(3)一個(gè)實(shí)用高效的查詢系統(tǒng)也能體現(xiàn)出該城市或外來人士的為人民服務(wù),對(duì)人民關(guān)心體貼的宗旨。2.3 系統(tǒng)的開發(fā)目標(biāo)現(xiàn)在大多數(shù)主流的公交查詢系統(tǒng)或網(wǎng)站界面都是比較簡潔的,對(duì)于使用者來說.一個(gè)簡單而明了的查詢系統(tǒng),可以讓他們迅速的了解如何使用,而且,使用者很大一部分都是在一個(gè)情況比較著急或立即需要的條件下
16、才使用公交查詢系統(tǒng)的。因此,一個(gè)簡單高效又實(shí)用的查詢系統(tǒng)才是做到對(duì)用戶的一個(gè)考慮方向。并且,這也和編程語言中面向?qū)ο蟮淖谥际窍辔呛系模员鞠到y(tǒng)在界面上的開發(fā)并沒有過多的研究或加入復(fù)雜的元素。在查詢的功能上,本系統(tǒng)列出了4種其中包括3種查詢方式和一種查詢?nèi)謪?shù)方式,以便用戶自行參考使用。2.4 系統(tǒng)開發(fā)技術(shù)概述 C+語言的介紹C+是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計(jì)語言。它支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、制作圖標(biāo)等等泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格,一種使用非常廣泛的計(jì)算機(jī)編程語言。C+語言運(yùn)用在廣泛的領(lǐng)域,例如,主流的3種操作系統(tǒng)Windows,Linux
17、,Unix,內(nèi)核都是用C語言和匯編寫的,上層高級(jí)特性是用C+寫的。2.4.2 數(shù)據(jù)庫設(shè)計(jì): 本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),采用了載入TXT文本文檔進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。通過對(duì)市場的調(diào)查,各建立一個(gè)bus主文件夾和position主文件夾分別進(jìn)行通過查詢線路得出途經(jīng)的站點(diǎn)和通過查詢站點(diǎn)得出途經(jīng)的公交路線。另外,還建立了3個(gè)名為線路名稱、busname、positionname的數(shù)據(jù)庫進(jìn)行兩站點(diǎn)之間查詢有無車次通過的方法。其總體結(jié)構(gòu)分析如下:busname用來保存線路名稱,即公交名。數(shù)據(jù)格式定義為:1路、2路、3路、6路、7路、8路、9路、10路、11路、12路、16路、18路、201路、202路、203路,類型
18、定義為文本。Positionname用來保存站點(diǎn)名稱,數(shù)據(jù)格式定義為:百花大廈 春苑公園 婦幼保健院 公交商業(yè)城 官渡市場 廣東石油化工學(xué)院 河西汽車站 交通技工學(xué)校 茂名大廈 茂名火車站 人民廣場 人民醫(yī)院 市二技學(xué)校 市委大院 市政府 體育中心 銅鼓嶺 文化廣場 沃爾瑪 移動(dòng)通訊公司 鎮(zhèn)盛街 市府中心廣場 等。線路名稱用來保存公車路線的途徑上下行站點(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í)具備可視化程序語言(Visual Programming Langua
19、ge)及程序產(chǎn)生器的概念。既然是面向?qū)ο笳Z言,當(dāng)然會(huì)提供系統(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)成的框架對(duì)象,可供在使用Visual C+設(shè)計(jì)應(yīng)用程序是使用。此外,還提供“ClassWizard”與“AppWizard”可幫助構(gòu)造基本的程序框架,從軟件再使用的技術(shù)觀點(diǎn)而言,已由SDK函數(shù)庫方式經(jīng)過面向?qū)ο蟪绦蛟O(shè)計(jì)方式進(jìn)展到自動(dòng)產(chǎn)生模板相關(guān)類程序代碼方式(Frame
20、work)。面向?qū)ο蟮某绦蛟O(shè)計(jì)是一種新型的程序設(shè)計(jì)方法,計(jì)算機(jī)環(huán)境本身就是一個(gè)對(duì)象的集合體,對(duì)象彼此之間通過消息相互作用,面向?qū)ο蟮某绦蛟O(shè)計(jì)提高了程序的模塊化和可維護(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ù)雜的語言產(chǎn)品之一,它是目前為止在Windows環(huán)境下進(jìn)行大型軟件開發(fā)的首選。其具有如下特點(diǎn):(1)Visual C+ + 的語法符合ANSL C+ + 標(biāo)準(zhǔn),并在此基礎(chǔ)上針對(duì)Windows操作系統(tǒng)增加了一些語句;(2)
21、集成了MFC(Microsoft Foundation Class)類庫,MFC封裝了Windows API函數(shù)和消息,使程序員可以使用MFC高效率地開發(fā)各種應(yīng)用程序;(3)提供了MFC AppWizard,可方便地生成程序框架;(4)提供了基于MFC的ClassWizard,通過它可以輕松地完成對(duì)各種MFC類的使用與維護(hù)。Visual C+ 6.0作為Visual Studio家族中的一員,是Microsoft公司以C+語言為基礎(chǔ)開發(fā)的可視化集成開發(fā)工具,與其他編程語言Visual Basic 6.0、Visual ForPro等一起,成為廣大程序員喜愛的開發(fā)平臺(tái)。核心技術(shù):2.5 1 KM
22、P算法KMP算法是D.E.Knuth、J.H.Morris和V.R.Pratt共同提出的,簡稱KMP算法。2.5 2 樸素算法串的模式匹配算法1. 樸素模式匹配算法(Brute-Force算法)求子串位置的定位函數(shù)Index( S, T, pos).模式匹配:子串的定位操作通常稱作串的模式匹配。目標(biāo)串:主串S。模式串:子串T。匹配成功:若存在T的每個(gè)字符依次和S中的一個(gè)連續(xù)字符序列相等,則稱匹配成功。返回T中第一個(gè)字符在S中的位置。匹配不成功:返回0。Brute-Force簡稱為BF算法,亦稱簡單匹配算法,其基本思路是:從目標(biāo)串s=“s1s2sn"的第一個(gè)字符開始和模式串t=“t1t
23、2tm"中的第一個(gè)字符比較,若相等,則繼續(xù)逐個(gè)比較后續(xù)字符;否則從目標(biāo)串s的第二個(gè)字符開始重新與模式串t的第一個(gè)字符進(jìn)行比較。依次類推,若從模式串s的第i個(gè)字符開始,每個(gè)字符依次和目標(biāo)串t中的對(duì)應(yīng)字符相等,則匹配成功,該算法返回i;否則,匹配失敗,函數(shù)返回0。例如,設(shè)目標(biāo)串s=“cddcdc”,模式串t=“cdc”。s的長度為n(n=6),t的長度為m(m=3)。用指針i指示目標(biāo)串s的當(dāng)前比較字符位置,用指針j指示模式串t的當(dāng)前比較字符位置。BF模式匹配過程如下所示。i = i j +2;j = 1;核心代碼:子串定位int Index( SString S, SString T,
24、int pos) i= pos; j = 1; while( i<=S0 && j<=T0) if(Si = Tj) +i; +j; else i = i-j+2; j =1; if(j>T0) return i-T0; else return 0;2.6系統(tǒng)所用的工具: 主要開發(fā)工具:。數(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
25、C+ 6.0。 第三章 需求分析 應(yīng)用需求分析要設(shè)計(jì)一個(gè)良好的公交查詢系統(tǒng),就必須首先明確該應(yīng)用環(huán)境對(duì)系統(tǒng)的要求。公交查詢系統(tǒng)的應(yīng)用背景為:方便市民搭乘公交車出行;手動(dòng)(目前)、自動(dòng)(將來)、及時(shí)更新查詢數(shù)據(jù)。因此,該系統(tǒng)需滿足以下幾方面需求:1)問題分析(1)功能需求:該模塊實(shí)現(xiàn)公交查詢功能。該模塊實(shí)現(xiàn)數(shù)據(jù)的錄入、修改、刪除功能。(2)性能需求:系統(tǒng)的相應(yīng)時(shí)間不能超過10ms。(3)出錯(cuò)處理需求:當(dāng)輸入的信息不全,或格式不正確時(shí),提示出錯(cuò)信息,即退出或繼續(xù)查詢。2)問題描述(1)信息要求:可實(shí)現(xiàn)按起點(diǎn)中轉(zhuǎn)站終點(diǎn)查詢查詢和按線路查詢,按站點(diǎn)查詢等三種查詢方式。(2)處理要求:該模塊實(shí)現(xiàn)通過TX
26、T文本文檔形式進(jìn)行數(shù)據(jù)的錄入、修改、刪除功能。(3)安全性與完整性要求。本系統(tǒng)并無在此方面進(jìn)行復(fù)雜的設(shè)計(jì),使用者僅需輸入查詢方式,再按查詢的方法進(jìn)行查詢即可。 功能需求 本系統(tǒng)主要實(shí)現(xiàn)以下功能:查詢方式通過公交線路通過站點(diǎn)兩站間公車所有公交信息圖31 公交查詢模塊圖條件查詢模塊選擇條件查詢方式選擇站點(diǎn)查詢選擇兩點(diǎn)間有無車次查詢選擇線路查詢繼續(xù)或退出圖3-2 條件查詢 全局查詢模塊選擇顯示全部公交信息顯示全部線路和站點(diǎn)繼續(xù)或退出圖3-3 全局查詢 功能說明主要功能:1)通過線路查詢:輸入查詢方式1,輸入要查詢的車次的名稱,如1路,結(jié)果顯示出該公車路線經(jīng)過的站點(diǎn);2)通過站點(diǎn)查詢:輸入查詢方式2,
27、輸入要查詢的站點(diǎn)的名稱,如沃爾瑪,結(jié)果顯示出途經(jīng)該站點(diǎn)的所有公車車次;3)查詢兩點(diǎn)間有無車次經(jīng)過:輸入查詢方式3,輸入要查詢的兩站的名稱,如沃爾瑪、廣東石油化工學(xué)院,結(jié)果顯示出通過兩站點(diǎn)的車次;4)顯示全部信息:輸入查詢方式4,結(jié)果分別顯示出所有站點(diǎn)和所有公車路線的記錄; 可行性分析 可行性分析是對(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)行研究: 經(jīng)濟(jì)可行性 從這方面來說,本系統(tǒng)的開發(fā)
28、作為課題來說不需要什么經(jīng)濟(jì)投入,因此來說也是可行的。本查詢系統(tǒng)是一個(gè)簡潔明了、實(shí)用、使用簡單、具有人性化的特點(diǎn)。實(shí)現(xiàn)這個(gè)查詢系統(tǒng)并不需要花費(fèi)大量的時(shí)間費(fèi)用,使用的是Mircosoft visual C+ 6.0開發(fā)軟件。3.4.2 技術(shù)可行性 技術(shù)可行性:以現(xiàn)有技術(shù)進(jìn)行系統(tǒng)開發(fā)及系統(tǒng)實(shí)施,是完全可行的。首先,從自身來分析,經(jīng)過大學(xué)2年多的學(xué)習(xí)已經(jīng)初步掌握了C+、數(shù)據(jù)庫等方面的編程技巧,對(duì)該軟件的設(shè)計(jì)有所了解。第二方面,在設(shè)計(jì)這個(gè)系統(tǒng)之前,我進(jìn)行了一系列先期調(diào)研,查閱了有關(guān)使用C+進(jìn)行數(shù)據(jù)庫開發(fā)方面的論著、教材和論文,更多是利用網(wǎng)絡(luò)的便利條件,從網(wǎng)上查閱了沈陽、大連、廣州、昆明等大型城市的公交查
29、詢系統(tǒng),并認(rèn)真地對(duì)其進(jìn)行了分析研究,由于時(shí)間緊,任務(wù)重,我沒有更多的時(shí)間來開發(fā)完整的系統(tǒng),所以就以查詢作為這個(gè)系統(tǒng)的核心。其次,從數(shù)據(jù)庫方面來分析,也是可行的。系統(tǒng)所建立的數(shù)據(jù)庫中包含有五個(gè)字段:bus ,busname, position, 線路名稱, positionname用來存放本查詢系統(tǒng)中所需要的全部數(shù)據(jù)。3.4.3 開發(fā)可行性 本項(xiàng)目開發(fā)語言為C+,開發(fā)平臺(tái)為Window XP下的編程環(huán)境,后臺(tái)數(shù)據(jù)支持采用TXT文本文檔。第四章 概要設(shè)計(jì) 系統(tǒng)總體功能流程圖 用戶公交查詢系統(tǒng)公交查詢模塊數(shù)據(jù)管理整個(gè)系統(tǒng)數(shù)據(jù)庫圖4-1 系統(tǒng)總體流程圖功能流程說明如下:(1)啟動(dòng)Mircosoft v
30、isual C+ 6.0服務(wù)器程序,服務(wù)器對(duì)本系統(tǒng)編譯。(2)運(yùn)行本系統(tǒng)。(3)用戶查詢使用界面。(4)用戶根據(jù)系統(tǒng)界面提供的4種方法自行選擇所需的方式查詢。(5)查詢系統(tǒng)收到命令,根據(jù)查詢方式查找對(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)。 功能設(shè)計(jì) 根據(jù)公車線路查詢用戶通過選擇第一種查詢方式,即通過輸入公車路線方式查詢該公車途經(jīng)的全部站點(diǎn)信息。開始輸入公車名稱提交是否有該公車公車輸入有誤正確輸出該公車途經(jīng)站點(diǎn)圖4-2 根據(jù)公車路線查詢流程圖根據(jù)站點(diǎn)查詢路線 用戶通過輸入
31、站點(diǎn),即輸入站點(diǎn)查詢途徑該站點(diǎn)所有公車的線路信息。圖4-3 根據(jù)站點(diǎn)查詢路線流程圖 兩點(diǎn)間車次查詢 用戶通過輸入兩個(gè)站點(diǎn),即輸入第一個(gè)站點(diǎn)和第二個(gè)站點(diǎn)查詢該兩站有無車次通過,并輸出通過兩個(gè)站點(diǎn)所有點(diǎn)公車路線。開始輸入兩個(gè)站點(diǎn)輸出途徑的公車格式有錯(cuò)格式正確圖4-4 兩點(diǎn)間車次查詢流程圖 顯示所有信息 用戶通過輸入最后一種方式,即輸出所有公車的名稱和站點(diǎn)。開始選擇最后一種輸出全部信息輸出全部信息圖4-5 顯示所有信息流程圖第五章 系統(tǒng)實(shí)現(xiàn)5.1 查詢模塊的功能實(shí)現(xiàn)公交查詢模塊是用戶與系統(tǒng)進(jìn)行交互的直接媒介。除了要完成用戶的請求外,更需要從用戶的角度出發(fā),以人為本。查詢模塊除了顯示出簡易的歡迎文字外
32、,直接顯示本系統(tǒng)所提供的幾種查詢方式。從實(shí)際出發(fā)對(duì)于公交查詢系統(tǒng)而言,用戶輸入公車線路或站點(diǎn),后臺(tái)數(shù)據(jù)庫查詢?yōu)橄到y(tǒng)列出符合條件的公交班次。當(dāng)系統(tǒng)發(fā)現(xiàn)填寫有誤時(shí),則提示“本系統(tǒng)暫時(shí)沒有收錄或該線路不存在,請確定您輸入是否正確”。并且提示是否繼續(xù)或退出。 用戶界面核心代碼公交查詢系統(tǒng)運(yùn)行界面如圖5-1所示:核心代碼如下:class userInterfacechar getch;char choice;char* frPos;char* toPos;char* busName;public:void searchPassWay();void searchTrace();void searchBus
33、es();void showInformation();void loop(); void ifcontinue(); userInterface();userInterface();/class userInterfacevoid userInterface:searchTrace() busName=new char10; cout<<endl<<"請輸入路線名(即公交車名):" cin>>busName;trybus BUS(busName);cout<<endl;cout<<BUS.note<<
34、endl;BUS.printInformation();catch(bus:Error)cout<<endl<<"sorry! 您要查找的線路:"<<busName<<",本系統(tǒng)暫時(shí)沒有收錄或者該線路不存在"<<endl<<"請確定您的輸入是否正確"<<endl;/userInterface:searchTracevoid userInterface:searchBuses() char* positionName=new char40; cout&l
35、t;<endl<<"請輸入站點(diǎn)名稱:" cin>>positionName;tryposition POSITION(positionName);cout<<endl;POSITION.printPassBuses();catch(position:Error)cout<<endl<<"Sorry! 本系統(tǒng)暫時(shí)沒有收錄經(jīng)過"<<positionName<<"的線路"<<"!"<<endl<<
36、"請確定您的輸入是否正確"<<endl;/userInterface:searchBusesvoid userInterface:searchPassWay()cout<<endl<<"請輸入出發(fā)站點(diǎn)名稱:"cin>>frPos;cout<<endl<<"請輸入目標(biāo)站點(diǎn)名稱:"cin>>toPos;tryposition* fromPosition=new position(frPos); position* toPosition=new positi
37、on(toPos);fromPosition->isThrough(toPosition);catch(position:Error)cout<<endl<<"Sorry! 本系統(tǒng)暫時(shí)沒有收錄經(jīng)過"<<frPos<<"或"<<toPos<<"的線路"<<"!"<<endl<<"請確定您的輸入是否正確"<<endl;/userInterface:searchPassWayv
38、oid userInterface:showInformation()int i=0;ifstream in_file;in_file.open("sourcebusname.txt", ios:in);char* inbus=new char5;cout<<endl<<"線路信息如下:"<<endl;while(!in_file.eof() in_file>>inbus;+i;cout<<inbus;if(!in_file.eof() cout<<" "if(!
39、(i%15) cout<<endl;cout<<endl;in_file.close();in_file.open("sourcepositionname.txt", ios:in);char* inpos=new char40;cout<<endl<<"站點(diǎn)信息如下:"<<endl;i=0;while(!in_file.eof() in_file>>inpos;+i;cout<<inpos<<' 'if(!(i%8) cout<<
40、endl;cout<<endl;in_file.close();delete inbus;delete inpos;/userInterface:showInformationvoid userInterface:loop()cout<<endl;cout<<" %"<<endl; cout<<" % 歡迎使用茂名公交查詢系統(tǒng) %"<<endl;cout<<" %"<<endl; cout<<endl;cout<<&
41、quot;本系統(tǒng)能夠:"<<endl;cout<<" %o(_)oo(_)oo(_)o%"<<endl; cout<<" % => 1. 根據(jù)公交車名查詢路線; %"<<endl; cout<<" % => 2. 根據(jù)站名查詢經(jīng)過的車次; %"<<endl; cout<<" % => 3. 查詢兩站間有無車次可通; %"<<endl;cout<<" % =&g
42、t; 4. 得到線路名稱和站點(diǎn)名稱的信息;%"<<endl;cout<<" %o(_)oo(_)oo(_)o%"<<endl; cout<<"請選擇要查詢的方式(1、2 、3 or 4):" cin>>choice; switch(choice) case '1': searchTrace(); ifcontinue(); break; case '2': searchBuses(); ifcontinue(); break; case '3
43、39;: searchPassWay(); ifcontinue(); break;case '4':showInformation();ifcontinue(); break;default:cout<<"您的輸入不正確!"ifcontinue();/userInterface:loopvoid userInterface:ifcontinue() cout<<endl<<"是否繼續(xù)查詢(y/n)? " cin>>getch; if(getch='y') loop(); e
44、lse exit(1);/userInterface:ifcontinueuserInterface:userInterface()frPos=new char40;toPos=new char40;/userInterface:userInterfaceuserInterface:userInterface()delete busName;delete frPos;delete toPos;/userInterface:userInterface主查詢方式本系統(tǒng)有4種查詢方式供用戶自行選擇,通過選擇用戶所需的方式進(jìn)行有目的性的查詢。 根據(jù)公交線路查詢 核心代碼如下:class buspriv
45、ate: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;/異常類;/class busvoid bus:initialize()int i;trackName=new char60;upTrack=new char600;downTr
46、ack=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 in_file;in_file.open(locator, ios:in);char* mystring
47、6;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,mystring1);strcpy(downTrack,mystring2);strc
48、py(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 it !");if(*na
49、me='路')if(isExist(name+1)initialize();strcpy(note,"您要查找的線路:");strcat(note,name);strcat(note,"不存在或者本系統(tǒng)沒有記錄這條線路;下面這條線路供參考:");elsechar* temp=new char11;strcpy(temp,"路");strcat(temp,name);if(isExist(temp)initialize();strcpy(note,"您要查找的線路:");strcat(note,nam
50、e);strcat(note,"不存在或者本系統(tǒng)沒有記錄這條線路;下面這條線路供參考:");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()cout<<trackName<<endl<<endl;co
51、ut<<upTrack<<endl<<downTrack<<endl; cout<<endl<<fromTime<<endl<<toTime<<endl;cout<<endl<<price<<endl;/printInformationint bus:isExist(char* busName)ifstream in_file;in_file.open("sourcebusname.txt", ios:in);char* instr
52、ing=new char10;while(in_file) in_file>>instring;if(!strcmp(busName,instring) in_file.close();return 1;in_file.close();return 0;/isExist 根據(jù)站點(diǎn)查詢經(jīng)過車次核心代碼如下:class positionprivate:char* name;char* passBuses;int isExist(char*);public:position(char* n);position();char* getName()return name;char* getP
53、assBuses()return passBuses;void printPassBuses()cout<<passBuses<<endl;void isThrough(position*);class Error;/異常類;/class position/=position members function=position:position(char* n)name=new char40;strcpy(name,n);if(isExist(name)char* locator=new char200;strcpy(locator,"sourceposition");strcat(locator,name); strcat(locator,".txt");ifstream in_file;in_file.open(locator, ios:in);char* mystr=new char600; in_file.getline(mystr,1000); in_file.close();passBuses=new char600; strcpy(passBuses,mystr); delete mystr; delete locator;elsethrow Error();/position:pos
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45755-2025纖維增強(qiáng)復(fù)合材料板材拉擠成型模
- GB/T 3241.2-2025電聲學(xué)倍頻程和分?jǐn)?shù)倍頻程濾波器第2部分:型式評(píng)價(jià)試驗(yàn)
- 蜜餞制作與水果加工副產(chǎn)物研發(fā)考核試卷
- 靈活可變包裝考核試卷
- 銀冶煉與循環(huán)經(jīng)濟(jì)考核試卷
- 羊的飼養(yǎng)羔羊飼養(yǎng)關(guān)鍵技術(shù)考核試卷
- 兒童口腔功能式矯治器
- 新生兒危重癥護(hù)理
- 呼吸機(jī)消毒與保養(yǎng)規(guī)范
- 呼氣性呼吸困難
- 糖尿病外周血管病變和糖尿病足培訓(xùn)課件
- 2022年N2觀光車和觀光列車司機(jī)考試技巧及N2觀光車和觀光列車司機(jī)考試試題
- 使市場在資源配置中起決定性作用 課件【新教材備課精講精研】高中政治統(tǒng)編版必修二經(jīng)濟(jì)與社會(huì)
- SB/T 10279-2017熏煮香腸
- GB/T 6185.2-20162型全金屬六角鎖緊螺母細(xì)牙
- GA/T 1394-2017信息安全技術(shù)運(yùn)維安全管理產(chǎn)品安全技術(shù)要求
- IB教育中的PYP介紹專題培訓(xùn)課件
- 2022年桂林市衛(wèi)生學(xué)校教師招聘筆試題庫及答案解析
- 欄桿安裝單元工程施工質(zhì)量驗(yàn)收評(píng)定表完整
- 外墻清洗服務(wù)工程項(xiàng)目進(jìn)度保障計(jì)劃
- 2×300MW火電廠電氣一次部分設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論