版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于MFC/Access的交通換乘路線設(shè)計(jì)摘 要現(xiàn)如今,人們的出行方式有了更多的選擇,城市公交系統(tǒng)作為交通運(yùn)輸?shù)闹黧w得到了迅速的發(fā)展,但是目前我國(guó)的城市公交換乘信息系統(tǒng)還未發(fā)展到較為先進(jìn)的水平,廣大的城市民從公交信息系統(tǒng)得到的信息不是很全面,信息量比較少,為了解決這種狀況,使城市公交加速發(fā)展,更加信息化,設(shè)計(jì)一個(gè)公交換乘信息系統(tǒng)有較為現(xiàn)實(shí)的應(yīng)用意義。本次設(shè)計(jì)是基于MFC/Access的公交換乘路線信息系統(tǒng)。首先將公交路線網(wǎng)抽象成一個(gè)帶權(quán)圖,然后根據(jù)用戶提供的起始站點(diǎn)和目的站點(diǎn),運(yùn)用dijkstra算法進(jìn)行搜索,為用戶提供一個(gè)最優(yōu)的乘車方案。本系統(tǒng)使用Microsoft Visual C+6.0
2、作為開發(fā)工具,用VC+中的MFC應(yīng)用程序框架來(lái)實(shí)現(xiàn)。這個(gè)公交換乘信息系統(tǒng)主要包含兩個(gè)模塊,分別是查詢模塊(按照線路、站點(diǎn)和兩站點(diǎn)查詢)和管理更新模塊(公交線路管理和管理員賬戶管理),最后根據(jù)本系統(tǒng)在開發(fā)階段和調(diào)試階段出現(xiàn)的問題,得到了系統(tǒng)需要改進(jìn)完善的地方,總結(jié)了設(shè)計(jì)開發(fā)本系統(tǒng)所得到的經(jīng)驗(yàn)和收獲。關(guān)鍵詞:dijkstra,路線換乘,MFC架構(gòu) Design of Transfer bus route based on Dijkstra algorithm AbstractThe development of the bus passenger information system is in
3、a level that fall behind of the city in our country. The large part of passengers can acquire few ways of the information. So it's practical for us to develop city's bus passenger information system in order to resolving this problem. The design is based on the dijkstra algorithm bus transfe
4、r line query system. First, Its need to change the bus route network into a weighted graph abstraction, Then the system searches use by the dijkstra algorithm according to the initial site and destination site which provided by user, and provides users with an optimal travel program. The system uses
5、 Microsoft Visual C+6.0 as development tool,achieves by the MFC application framework which in VC+. these functions can be divided in to two parts-search system (Including the line search、station search and between two stations search) and management update system(Including Bus line management and A
6、dministrator account 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.Keywords :dijkstra,Tranfer line,Structure of MFC1 緒論1.1 課題背景意義為了使城市市民的出行更加便捷、迅速出現(xiàn)了城市公交這樣的客運(yùn)企業(yè)
7、,城市公交發(fā)展至今已經(jīng)成為城市社會(huì)和經(jīng)濟(jì)活動(dòng)的重要組成部分。隨著國(guó)民經(jīng)濟(jì)的快速發(fā)展和城市建設(shè)的日益繁榮,人口的逐漸增加,解決好人們出行的需求成為一個(gè)城市需要面對(duì)的重要課題。城市公交的發(fā)展水平直接體現(xiàn)出城市的經(jīng)濟(jì)建設(shè)和城市居民的生活水平,對(duì)一個(gè)城市的發(fā)展具有著全局性、先導(dǎo)性的作用,城市公交以其方便、快捷、覆蓋廣、容量大成為了城市交通客運(yùn)的主體。但是隨著客運(yùn)產(chǎn)業(yè)的不斷發(fā)展,城市公交系統(tǒng)也在日益壯大,這時(shí)在市民面前出現(xiàn)一個(gè)難題,出行的市民很難得到全面而準(zhǔn)確的公交信息,造成城市公交發(fā)展了而市民出行困難了。因此,急需一個(gè)全面、準(zhǔn)確、易用、便捷的公交換乘信息系統(tǒng)。在城市經(jīng)濟(jì)快速發(fā)展的推動(dòng)下城市建設(shè)的步伐不
8、斷加快,導(dǎo)致城市規(guī)模不斷擴(kuò)大,人口基數(shù)急劇增長(zhǎng),解決日益突出城市交通運(yùn)輸問題迫在眉睫,面對(duì)這樣的問題急需找到有效的解決方案。要有效的解決城市交通運(yùn)輸問題就必須降低市民的出行時(shí)間,這樣做將會(huì)為公交乘坐者和交通運(yùn)輸企業(yè)帶來(lái)更大的效益,與此同時(shí)便捷的交通,準(zhǔn)確詳盡的換乘信息和廣闊的市場(chǎng)也可以提升城市公交運(yùn)輸?shù)恼w形象,進(jìn)而增加城市公交的客運(yùn)量和運(yùn)輸效率。在絕大多數(shù)市民出行時(shí),城市公交已經(jīng)成為了這些出行者的首選交通方式,由于城市公共交通運(yùn)輸覆蓋面廣、出行成本低、便捷,各地城市政府也在全力扶持城市公交運(yùn)輸?shù)陌l(fā)展與建設(shè)。在城市公交運(yùn)輸發(fā)展前景如此廣闊的條件下,城市有必要為公交系統(tǒng)建設(shè)相對(duì)應(yīng)的城市公交換乘信
9、息系統(tǒng),以滿足當(dāng)?shù)厥忻窕蛘呤峭鈦?lái)游玩、出差、探親等急需了解本地道路情況的人對(duì)換乘路線的便捷查詢要求,為他們的出行和生活提供更多的幫助,讓出行者能夠?qū)崿F(xiàn)便捷出行。 目前,我國(guó)城市公交換乘信息系統(tǒng)建設(shè)不夠完善,廣大乘客獲取公交換乘信息的方式有限,,并且很難保證公交換乘信息全面而準(zhǔn)確。人民現(xiàn)在的生活消費(fèi)水平日益增高,出行的次數(shù)和里程都在增加,作為城市樞紐的城市公交系統(tǒng)將會(huì)承擔(dān)越來(lái)越重大的客運(yùn)任務(wù)。同時(shí),為了讓公交線路覆蓋更多的地區(qū),公交車數(shù)量迅速增加,公交對(duì)市民服務(wù)時(shí)間和到站路程不斷增長(zhǎng),公交乘運(yùn)服務(wù)不斷人性化,徹底的改變了人們的生活和出行方式。在全球性的油價(jià)上漲、能源短缺大環(huán)境下,城市公交運(yùn)營(yíng)系統(tǒng)
10、成為人們的出行的最大依賴、保障。隨著人們出行所涉及的區(qū)域不斷擴(kuò)大,出行方式很難做到乘坐一個(gè)線路公交直達(dá)目的地,出往往需要在途中換乘多輛公交,如何在耗時(shí)最短、換乘次數(shù)最少、出行成本最低的情況下最有效率的到達(dá)目的地,成為了出行者要思考的問題。基于MFC/Access利用Dijkstra算法設(shè)計(jì)的公交換乘信息系統(tǒng)能夠解決在乘客給出任意起點(diǎn)的情況下,動(dòng)態(tài)查詢選擇最短出行路徑的常用算法。該公交換乘信息系統(tǒng)的設(shè)計(jì)將會(huì)對(duì)開發(fā)公交換乘查詢系統(tǒng)和方便乘客規(guī)劃出行路線有著重要的意義。1.2設(shè)計(jì)的主要內(nèi)容1.建立公交路網(wǎng)信息:對(duì)實(shí)際的公交道路圖中的路段屬性,如單行、路口轉(zhuǎn)向、距離、行駛時(shí)間等信息進(jìn)行編碼,提供公交路
11、網(wǎng)信息管理功能,包括:錄入信息、修改信息、刪除信息和查詢信息等常用功能。 2.建立公交路網(wǎng)模型:將公交道路網(wǎng)用賦權(quán)有向圖表示,把一條道路的十字路口或一條道路的終點(diǎn)看做賦權(quán)有向圖中的一個(gè)結(jié)點(diǎn);兩個(gè)節(jié)點(diǎn)之間的道路定義為一條弧;把每條弧的上述屬性定義為路段權(quán)重。在賦權(quán)有向圖上,一條路徑的始點(diǎn)和終點(diǎn)分別為和,這條路徑表示為一個(gè)弧的序列,并且滿足前一個(gè)弧的終點(diǎn)是下一個(gè)弧的始點(diǎn),第一個(gè)弧的始點(diǎn)是,最后一個(gè)弧的終點(diǎn)是,用這樣一個(gè)有序的點(diǎn)集來(lái)表示一條公交路線,一條路徑的代價(jià)是這條路徑上所有弧的權(quán)重之和,由此建立公交道路網(wǎng)模型。 3.出行路線的自動(dòng)診斷:根據(jù)建立完成的公交路網(wǎng)模型,利用Dijkstra算法判斷出
12、始點(diǎn)到終點(diǎn)的最短公交線路,并為應(yīng)用者提供出行線路的查詢、保存、打印等常用功能。1.3算法完善Dijkstra算法是在圖論學(xué)等科領(lǐng)域中計(jì)算最短路的經(jīng)典算法,該算法對(duì)于道路網(wǎng)或計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)很適合,通過對(duì)Dijkstra算法的改進(jìn),判斷出最為便捷的公交出行線路方案。在原來(lái)公交換乘線路設(shè)計(jì)中用到的Dijkstra算法,只能給出從起始站點(diǎn)到終點(diǎn)站點(diǎn)所要途徑的所有公交站點(diǎn)的集合,這對(duì)于應(yīng)用城市公交換乘信息系統(tǒng)的出行者來(lái)說是不夠方便的,因?yàn)槌鲂谐丝驮诔鲂袝r(shí)只會(huì)在意要坐哪個(gè)線路的車,在這條線路車途徑的哪個(gè)站點(diǎn)下車進(jìn)行公交換乘繼續(xù)出行,至于公交車在運(yùn)行階段所要途經(jīng)的站點(diǎn)信息并不是很關(guān)注,不會(huì)去刻意了解。
13、當(dāng)然該城市公交換乘信息系統(tǒng)也涵蓋了改進(jìn)完善之前的Dijkstra算法的一些優(yōu)點(diǎn),例如在公交路線表中便捷的查詢得到某條公交線路包含的所有站點(diǎn)。但是由于城市公交網(wǎng)絡(luò)中涉及的數(shù)據(jù)量太過龐大,且公交線路具有有向性的特點(diǎn),這使的利用Dijkstra算法進(jìn)行計(jì)算要消耗較大的時(shí)間成本,于是需要基于運(yùn)算時(shí)間較長(zhǎng)和公交網(wǎng)絡(luò)的自身特性這兩方面作出改進(jìn)。例如,我們要查詢從A公交站點(diǎn)到B公交站點(diǎn)的最佳公交換乘線路,在查詢經(jīng)過A公交站點(diǎn)的所有公交線路集合的同時(shí)也能夠查詢得到經(jīng)過B公交站點(diǎn)的所有公交線路的集合。在查詢從a站點(diǎn)到站點(diǎn)b的最優(yōu)路線的過程中,首先看a、b站點(diǎn)之間是否能夠直達(dá),若能直達(dá),則按照所有線路的權(quán)值進(jìn)行排
14、序,選擇出最優(yōu)路線;若不能直達(dá),則查詢a站點(diǎn)和b站點(diǎn)可以直達(dá)的所有站點(diǎn),對(duì)這兩個(gè)集合取交集,若是交集不為,結(jié)束迭代,按照線路的權(quán)值進(jìn)行排序,選擇出最優(yōu)公交路線,否則,仍然繼續(xù)迭代。查詢由A公交站點(diǎn)出發(fā),在途中必須要進(jìn)行一次公交換乘才能到達(dá)的目標(biāo)站點(diǎn)集合,與可以不用進(jìn)行公交換乘,直接到達(dá)B公交站點(diǎn)的所有目標(biāo)站點(diǎn)集合進(jìn)行取交集,若取得的交集不為,則迭代結(jié)束,這樣便得到必須換乘兩次才能到達(dá)目的地的公交換乘方案,按照線路的權(quán)值進(jìn)行排序,選擇出最優(yōu)線路。否則,迭代繼續(xù)進(jìn)行,直至查詢得到最優(yōu)乘坐公交的換乘路線方案或者所有公交站點(diǎn)完成迭代為止。1.4論文的組織結(jié)構(gòu)論文第2章是開發(fā)系統(tǒng)所需要的工具工具與所需具
15、備的環(huán)境的概述,介紹了該系統(tǒng)設(shè)計(jì)開發(fā)使用的Visual C+6.0中的C+開發(fā)語(yǔ)言和系統(tǒng)在數(shù)據(jù)庫(kù)的設(shè)計(jì)開發(fā)中使用的數(shù)據(jù)庫(kù)連接技術(shù)ADO,并介紹了開發(fā)該系統(tǒng)所需要具備的計(jì)算機(jī)環(huán)境。第3章是需求分析,包括系統(tǒng)功能需求,系統(tǒng)數(shù)據(jù)庫(kù)需求等。第4章是系統(tǒng)設(shè)計(jì)與架構(gòu),包括劃分系統(tǒng)的功能模塊,數(shù)據(jù)庫(kù)設(shè)計(jì)及建立。第5章是測(cè)試。包括測(cè)試的內(nèi)容、方法和用例。2 系統(tǒng)的開發(fā)工具與環(huán)境基于MFC/Access利用dijkstra算法的設(shè)計(jì)的公交換乘線路信息系統(tǒng)屬于計(jì)算機(jī)軟件開發(fā)的范疇。就目前的計(jì)算機(jī)軟件開發(fā),它要求程序的可維護(hù)性、可擴(kuò)充性及可伸展性。為保證軟件的質(zhì)量,可采用相應(yīng)的不同的設(shè)計(jì)方案。由于面向?qū)ο蟪绦蛟O(shè)計(jì)具
16、有繼承、封裝以及多態(tài)等特點(diǎn),所以在城市公交信息查詢系統(tǒng)的設(shè)計(jì)和編程階段都能夠有效降低程序復(fù)雜度。本軟件開發(fā)使用了面向?qū)ο笳Z(yǔ)言C+實(shí)現(xiàn),使用了微軟公司的VC開發(fā)工具下的MFC來(lái)編程。用到了MFC中的基礎(chǔ)類,做到了代碼的重用,為軟件的開發(fā)節(jié)省了不少時(shí)間。2.1開發(fā)平臺(tái)Visual C+6.0Visual C+ 6.0,簡(jiǎn)稱為VC或VC6.0,是由微軟公司開發(fā)推出的一款C+編譯器,這款Visual C+ 6.0程序是可以將“高級(jí)語(yǔ)言”翻譯為“低級(jí)語(yǔ)言”的。Visual C+開發(fā)工具有非常強(qiáng)大的的功能,可以實(shí)現(xiàn)可視化軟件開發(fā)。在1993年Microsoft公司推出首款Visual C+系列程序Visu
17、al C+1.0之后,Visual C+不斷的推出新的版本,隨著Visual C+的不斷更新,功能不斷增強(qiáng),現(xiàn)如今不少的專業(yè)程序員在進(jìn)行程序編寫編譯時(shí)的首選工具便是Visual C+。此后,雖然微軟公司在Visual C+ 6.0之后還繼續(xù)新的版本Visual C+.NET也稱為Visual C+7.0,但因?yàn)閂isual C+.NET在應(yīng)用時(shí)它的局限性很大,程序只適用于Windows 2000、Windows XP以及Windows NT4.0這些系統(tǒng)。所以在實(shí)際的寬肩開發(fā)過程中,Visual C+6.成為了主要的程序開發(fā)編譯平臺(tái)。Visual C+6.0不僅僅是一個(gè)簡(jiǎn)單的C+的編譯器,同時(shí)
18、還是Windows操作系統(tǒng)環(huán)境下的一個(gè)可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C+6.0程序包含了許多的組件,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 Visual C+6.0程序所包含的所有組件由Developer Studio這一個(gè)組件集成為和諧的、穩(wěn)定的軟件開發(fā)環(huán)境。Visual C+大概可以分成三個(gè)主要的部分: 1Developer Studio。在日常的程序開發(fā)工作中99%的做業(yè)都是在這一個(gè)集成開發(fā)環(huán)境完成的。Developer Studio雖然擁有者一個(gè)很出
19、色的編輯器以及眾多Wizard,但是它本身并不包含程序編譯或者鏈接程序的程序功能。而且Developer Studio并不是提供予VC專門使用的,它還同樣的可以運(yùn)用在于VB,VJ,VID等Visual Studio家族的其他成員編程編譯過程中。2MFC。它是微軟的基礎(chǔ)類,在C+的環(huán)境中,通常要編寫一個(gè)應(yīng)用程序的框架和引擎時(shí)用到MFC這個(gè)微軟基礎(chǔ)類。MFC提供大部分用來(lái)進(jìn)行界面開發(fā)的類,關(guān)聯(lián)一個(gè)窗口的動(dòng)作,但它所提供所有類中,有許多的類并不是與窗口進(jìn)行關(guān)聯(lián),也就是說這些類是不實(shí)現(xiàn)對(duì)一個(gè)窗口對(duì)象的控制的,這些類的作用并不是一個(gè)界面類,而是一些在WinDOS(用MFC編寫的程序絕大部分都在WinDO
20、S中運(yùn)行)中進(jìn)行內(nèi)部處理的類,例如數(shù)據(jù)庫(kù)的管理類就是這樣就是這樣的一種實(shí)現(xiàn)。 3Platform SDK。它是整個(gè)Visual Studio以及Visual C+的核心內(nèi)容和靈魂所在。它的核心是Microsoft C/C+編譯器,并且配合MASM同時(shí)借助其他一些工具和文檔資料輔助做業(yè)。2.2 Access 2003 微軟在1992年基于Windows 3.0推出了第一個(gè)版本的Access 1.1。微軟公司在Windows的桌面關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)的基礎(chǔ)上推出Access,常用微軟Office軟件的知道Office系列應(yīng)用軟件之中就包含有Access。Access提供了7種用來(lái)建立數(shù)
21、據(jù)庫(kù)系統(tǒng)的對(duì)象,他們分別是表、查詢、報(bào)表、窗體、宏、頁(yè)、模塊;提供了模板、生成器以及多種向?qū)?,?guī)范了界面設(shè)計(jì)、報(bào)表生成、數(shù)據(jù)查詢和數(shù)據(jù)存儲(chǔ)等操作;使得建立功能完善的數(shù)據(jù)庫(kù)管理系統(tǒng)過程更加簡(jiǎn)便易行,這樣普通用戶在實(shí)現(xiàn)大部分?jǐn)?shù)據(jù)管理操作過程中便可以不需要編寫代碼就能進(jìn)行想要的操作。 Access是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),主要有以下特點(diǎn): (1)存儲(chǔ)方式單一 Access包括表、查詢、窗體、報(bào)表、頁(yè)、宏和模塊七個(gè)管理對(duì)象,這些管理對(duì)象都存放在的數(shù)據(jù)庫(kù)文件中,文件的后綴為(.mdb),使用戶的操作和管理更為簡(jiǎn)單方便。 (2)面向?qū)ο?Access這個(gè)開發(fā)工具是面向?qū)ο蟮?,將各種功能利用面向?qū)ο蟮姆绞?/p>
22、在數(shù)據(jù)庫(kù)管理系統(tǒng)中進(jìn)行對(duì)象化,把不同的功能看作為不同的對(duì)象,并且將數(shù)據(jù)庫(kù)管理的各種功能封裝于各類對(duì)象中。Access將一個(gè)應(yīng)用系統(tǒng)表示為眾多對(duì)象的集合,每一個(gè)對(duì)象都附帶有一組屬性和方法,以這些屬性和方法來(lái)描述眾多對(duì)象的行為,用戶還可以基于自己的實(shí)際要求、需求來(lái)增加擴(kuò)展對(duì)象的屬性和方法。通過借助對(duì)象的方法、屬性進(jìn)行對(duì)數(shù)據(jù)庫(kù)的操作和管理,方便用戶在開發(fā)過程中進(jìn)行使用。同時(shí),這種基于面向?qū)ο蟮拈_發(fā)方式能夠使開發(fā)應(yīng)用程序變的更為簡(jiǎn)單易行。 (3)界面友好且易操作 Access是一個(gè)可視化的開發(fā)工具,它的開發(fā)風(fēng)格和Windows是相同的,用戶若是想要生成對(duì)象并應(yīng)用,只需要拖放鼠標(biāo)即可使用,操作非常的簡(jiǎn)便
23、、直觀。Access同時(shí)還提供了報(bào)表設(shè)計(jì)器、查詢生成器、表生成器和查詢向?qū)?、?shù)據(jù)庫(kù)向?qū)А⒈硐驅(qū)?、?bào)表向?qū)б约按绑w向?qū)У裙ぞ撸沟瞄_發(fā)操作變得更加容易,減少開發(fā)人員的使用難度。 (4)集成環(huán)境與處理多種數(shù)據(jù)信息 Access需要在Windows操作系統(tǒng)下的集成開發(fā)環(huán)境中進(jìn)行工作,由于在這個(gè)環(huán)境中已經(jīng)涵蓋了各種生成器工具以及向?qū)?,因而使開發(fā)人員的工作效率有了大幅度的提高,縮短了程序開發(fā)的周期時(shí)間,因而能夠高效有序地進(jìn)行建立數(shù)據(jù)庫(kù)、創(chuàng)建表、設(shè)計(jì)數(shù)據(jù)查詢、設(shè)計(jì)用戶界面和報(bào)表打印等數(shù)據(jù)庫(kù)的基本操作。 (5)Access是支持ODBC(開發(fā)數(shù)據(jù)庫(kù)互連,Open Data Base Connectivity
24、)的,在Access數(shù)據(jù)庫(kù)中借助其強(qiáng)大的DDE(動(dòng)態(tài)數(shù)據(jù)交換)和OLE(對(duì)象的聯(lián)接和嵌入)特性還可以做到添加聲音、位圖、Excel表格和Word文檔。Access還可以通過網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)上的動(dòng)態(tài)數(shù)據(jù)進(jìn)行聯(lián)接。2.3程序設(shè)計(jì)語(yǔ)言C+C+語(yǔ)言是在C語(yǔ)言的基礎(chǔ)上發(fā)展而來(lái)的一種優(yōu)良的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,但但是與C語(yǔ)言相比較起來(lái),C+語(yǔ)言更為容易被用戶學(xué)習(xí)和掌握。C+語(yǔ)言在計(jì)算機(jī)科學(xué)的各個(gè)領(lǐng)域中應(yīng)用是很廣泛的,因?yàn)镃+語(yǔ)言有著其特有的特有的語(yǔ)言機(jī)制。在原本結(jié)構(gòu)化程序設(shè)計(jì)方法基礎(chǔ)上將面向?qū)ο蟮脑O(shè)計(jì)思想進(jìn)行了進(jìn)一步的的一個(gè)提升,在C+語(yǔ)言上面完美地體現(xiàn)著面向?qū)ο笤O(shè)計(jì)方式的各種優(yōu)勢(shì)與特色。C+主要特點(diǎn):
25、完全支持C語(yǔ)言與面向?qū)ο?。C+基于C語(yǔ)言發(fā)展而來(lái),保持了C語(yǔ)言的高效、簡(jiǎn)潔和在某些操作上繼承了匯編語(yǔ)言指令的特性。同時(shí),對(duì)C語(yǔ)言的類型作了系統(tǒng)的改革和擴(kuò)充,彌補(bǔ)了C語(yǔ)言中的存在的一些漏洞,為C+的編譯提供了更好的類型檢查和編譯分析,能夠檢測(cè)出更多的類型錯(cuò)誤。C+解決了C語(yǔ)言的安全性問題,相比于C語(yǔ)言來(lái)說更加安全可靠。由于C+語(yǔ)言是在C語(yǔ)言的基礎(chǔ)上發(fā)展而來(lái)的一種優(yōu)良的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言所以C+與C語(yǔ)言是可以實(shí)現(xiàn)相互兼容的,這樣許多C語(yǔ)言代碼不用進(jìn)行修改即可在C+編譯器中編譯運(yùn)行,這樣的可以相互移植的特性使得實(shí)用軟件和眾多庫(kù)函數(shù)都可以在C語(yǔ)言和C+移植使用。因此,熟練應(yīng)用C語(yǔ)言的開發(fā)人員能很快掌
26、握C+進(jìn)行編程。此外,與C語(yǔ)言相同的是用C+編寫的程序整齊明了,具有良好的的可讀性,代碼結(jié)構(gòu)清晰合理。C+最主要的特點(diǎn)是支持面向?qū)ο蟮某绦蛟O(shè)計(jì),使用C+編程效率更高;由于面向?qū)ο蟮姆椒ǜ咏祟惖乃伎妓季S方式,C+對(duì)于問題的描述更容易,程序理解與維護(hù)也更容易;C+的模板對(duì)庫(kù)代碼是支持重用的;在程序員完成大型程序設(shè)計(jì)時(shí)選用C+語(yǔ)言更為有利、有優(yōu)勢(shì)。C+支持多種程序設(shè)計(jì)方法,支持對(duì)過程化和基于對(duì)象的程序設(shè)計(jì)方法。適合于開發(fā)方法不同的編程人員。2.4系統(tǒng)的開發(fā)要求本次開發(fā)的公交換乘信息系統(tǒng)對(duì)計(jì)算機(jī)操作系統(tǒng)環(huán)境的要求如下:硬件要求:CPU:最低Intel Pentium II 500 MHz。磁盤空間
27、:1GB。內(nèi)存:最低限值512MB(最好是在1GB以上)。顯示:1024*768,256色軟件要求:計(jì)算機(jī)操作系統(tǒng):Windows 2000以上的計(jì)算機(jī)操作系統(tǒng)環(huán)境。開發(fā)平臺(tái):Visual C+6.0,Access2003。3 需求分析3.1 系統(tǒng)功能需求分析隨著社會(huì)經(jīng)濟(jì)建設(shè)的高速發(fā)展,人民生活消費(fèi)需求的不斷提高,在忙碌的工作告一段落后更多的人選擇旅行來(lái)放松自己豐富生活,但是當(dāng)我們第一次來(lái)到這個(gè)要旅行的城市時(shí),我們知道自己要去的旅游景區(qū)但是對(duì)于如何到達(dá)的路線是未知的,通常只能請(qǐng)導(dǎo)游隨身而行,這時(shí)一個(gè)能查看具體公交線路的城市公交換乘信息系統(tǒng)變便得很有實(shí)用價(jià)值、實(shí)際意義。本系統(tǒng)在實(shí)現(xiàn)信息系統(tǒng)的整體
28、功能時(shí)采用了面向?qū)ο笤O(shè)計(jì)思想和方法,將信息系統(tǒng)的每個(gè)模塊的功能應(yīng)用達(dá)到系統(tǒng)所需標(biāo)準(zhǔn),即將整體系統(tǒng)進(jìn)行合理的劃分,使每個(gè)不同的模塊能夠完成其相應(yīng)的功能,將各個(gè)功能模塊之間和模塊內(nèi)部的聯(lián)系清晰的體現(xiàn),避免系統(tǒng)設(shè)計(jì)凌亂無(wú)序,正確合理完整的將存儲(chǔ)信息的數(shù)據(jù)庫(kù)進(jìn)行相互關(guān)聯(lián),實(shí)現(xiàn)每個(gè)功能模塊之間的數(shù)據(jù)信息共享,確定各個(gè)功能模塊其內(nèi)部結(jié)構(gòu)設(shè)計(jì),在模塊內(nèi)部的功能設(shè)計(jì)完成的同時(shí)建立各個(gè)功能模塊之間的數(shù)據(jù)、邏輯聯(lián)系,達(dá)到預(yù)先計(jì)劃要求的系統(tǒng)的整體功能。城市公交換乘信息系統(tǒng)總共分為5個(gè)功能模塊,公交線路查詢模塊、公交站點(diǎn)查詢模塊、公交換乘信息模塊、數(shù)據(jù)與維護(hù)模塊和系統(tǒng)賬戶管理模塊。1. 功能名稱:線路查詢功能概述:在
29、公交換乘信息系統(tǒng)中輸入某條公交線路的公交編號(hào)查詢得到該條公交線路上面所途經(jīng)的所有公交站點(diǎn)。2. 功能名稱:站點(diǎn)查詢功能概述:在公交換乘信息系統(tǒng)中輸入的指定目標(biāo)公交站點(diǎn)查詢得到途經(jīng)該站點(diǎn)的每條公交路線信息。3. 功能名稱:公交換乘查詢功能概述:通過輸入起始站和目的站,系統(tǒng)根據(jù)dijkstra算法給出一個(gè)基于最短路徑的乘車方案。4. 功能名稱:數(shù)據(jù)維護(hù)功能概述:管理員登錄公交換乘信息系統(tǒng),可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行添加、修改、刪除公交線路等更新和維護(hù)。5. 功能名稱:管理賬戶功能概述:管理員登錄公交換乘信息系統(tǒng),實(shí)現(xiàn)對(duì)管理員的信息資料、安全密碼進(jìn)行修改和保存功能操作。3.2系統(tǒng)分析建模在設(shè)計(jì)該系統(tǒng),
30、首先要考慮如何將數(shù)據(jù)庫(kù)的結(jié)構(gòu)與語(yǔ)義通過數(shù)據(jù)模型表示、描述出來(lái),將公交線路的相關(guān)信息進(jìn)行抽象,把公交線路的各種信息存入數(shù)據(jù)庫(kù)中。目前獨(dú)立于計(jì)算機(jī)系統(tǒng)的“概念數(shù)據(jù)模型”,如“實(shí)體聯(lián)系模型”和直接面向數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的“結(jié)構(gòu)數(shù)據(jù)模型”是使用比較廣泛的數(shù)據(jù)模型。在該公交換乘線路信息系統(tǒng)采用“實(shí)體聯(lián)系模型”(ER模型)來(lái)構(gòu)建數(shù)據(jù)庫(kù)的結(jié)構(gòu)與描述數(shù)據(jù)庫(kù),以此對(duì)現(xiàn)實(shí)的公交信息以及彼此的邏輯關(guān)聯(lián)進(jìn)行初步的抽象化。通過數(shù)據(jù)庫(kù)ER圖直接從現(xiàn)實(shí)中抽象出實(shí)體類型及實(shí)體間聯(lián)系,再用數(shù)據(jù)庫(kù)ER圖來(lái)對(duì)數(shù)據(jù)模型進(jìn)行描述?!皩?shí)體聯(lián)系模型”(ER模型)有兩個(gè)明顯的優(yōu)點(diǎn):與人的思維方式相類似,比較容易理解實(shí)體之間的關(guān)系、邏輯關(guān)聯(lián),易于
31、對(duì)實(shí)體和實(shí)體聯(lián)系進(jìn)行抽象使用;與計(jì)算機(jī)本身無(wú)關(guān),用戶接受起來(lái)相對(duì)容易。但是建立ER模型只是構(gòu)建數(shù)據(jù)庫(kù)的第一個(gè)步驟。E-R圖是直觀表示概念模型的工具,構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其中用矩形框來(lái)描述實(shí)體類型,將現(xiàn)實(shí)中的目標(biāo)對(duì)象抽象成為實(shí)體類型;用菱形框來(lái)描述聯(lián)系類型,此聯(lián)系即為實(shí)體類型之間的邏輯關(guān)聯(lián);用橢圓形狂來(lái)描述實(shí)體的屬性。實(shí)體和屬性的定義如下:管理員表(登錄姓名,登錄密碼)站名表(站名編號(hào),公交站名)公交線路編號(hào)表(車次,線路公交類型)公交線路表(線路編號(hào),公交車次,公交站名,公交站點(diǎn)的次序)各實(shí)體屬性圖如圖3.1所示:管 理 員登錄姓名登錄密碼車 輛發(fā)車時(shí)間車次末班時(shí)間編號(hào)
32、首班時(shí)間站 名站名編號(hào)站名車輛線路編號(hào)車次車輛類型線 路線路編號(hào)次序車次站名車次運(yùn)行區(qū)間車輛編號(hào)票價(jià)車輛類型能否刷卡圖3.1 實(shí)體屬性圖本系統(tǒng)的總體E-R圖如圖3.2所示。圖3.2 E-R模型圖時(shí) 刻站 名車 輛線 路擁有包含屬于M1M1M13.3 系統(tǒng)數(shù)據(jù)庫(kù)需求分析在完成一個(gè)信息管理系統(tǒng)的實(shí)現(xiàn)過程中,數(shù)據(jù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)是至關(guān)重要的,整個(gè)信息管理系統(tǒng)是否高效,是否合理,能否實(shí)現(xiàn)要求達(dá)到的應(yīng)用效果完全要依賴于數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)。一個(gè)優(yōu)良的信息管理系統(tǒng)需要有高效的數(shù)據(jù)存儲(chǔ)的效率,而合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以保證數(shù)據(jù)的整體性和一致性。數(shù)據(jù)庫(kù)技術(shù)是在傳統(tǒng)的文件系統(tǒng)基礎(chǔ)上發(fā)展而來(lái)的,數(shù)據(jù)庫(kù)數(shù)據(jù)模型的發(fā)展
33、依次從層次模型、網(wǎng)狀模型發(fā)展到關(guān)系模型。數(shù)據(jù)管理是數(shù)據(jù)庫(kù)技術(shù)發(fā)展至今的最新技術(shù),此技術(shù)是計(jì)算機(jī)科學(xué)的一個(gè)重要分支,它能規(guī)范、指導(dǎo)我們完成正確地?cái)?shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì),數(shù)據(jù)管理出現(xiàn)極大地推動(dòng)了計(jì)算機(jī)應(yīng)用的發(fā)展。在我們開發(fā)一個(gè)信息管理系統(tǒng)時(shí),想要更有效的設(shè)計(jì)完成實(shí)用的數(shù)據(jù)庫(kù)系統(tǒng)便需要依賴數(shù)據(jù)庫(kù)技術(shù)的原理和方法。設(shè)計(jì)構(gòu)建一個(gè)完善、結(jié)構(gòu)清晰的數(shù)據(jù)庫(kù)系統(tǒng)需要涵蓋數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),數(shù)據(jù)庫(kù)管理員(DBA)、數(shù)據(jù)庫(kù)(DB)、應(yīng)用程序和相應(yīng)的硬件設(shè)施等各部分內(nèi)容?,F(xiàn)在許多數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)模型都是以關(guān)系模型為主,關(guān)系模型的主體特點(diǎn)是利用表格結(jié)構(gòu)表達(dá)實(shí)體,用鍵來(lái)表示實(shí)體與實(shí)體之間的聯(lián)系。把關(guān)系模型與層次模型和
34、網(wǎng)狀模型相比較起來(lái)看,關(guān)系模型容易而且實(shí)用,對(duì)于初學(xué)者來(lái)說使用起來(lái)簡(jiǎn)單易于接受。關(guān)系模型是代表著一個(gè)集合,它自身包含有若干個(gè)關(guān)系模式,關(guān)系模式類似于記錄類型,我們通常把關(guān)系模式的實(shí)例稱之為關(guān)系。我們將每個(gè)關(guān)系用一張表格來(lái)描述。關(guān)系表格的結(jié)構(gòu)越是簡(jiǎn)單,實(shí)例關(guān)系越是容易被用戶理解、接受,用戶在對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)操作時(shí)只需用簡(jiǎn)單的查詢語(yǔ)句便可完成目標(biāo)操作,此過程并不需要用戶具備存儲(chǔ)結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)知識(shí)點(diǎn)。關(guān)系模型其實(shí)就是數(shù)學(xué)化的模型,構(gòu)建關(guān)系模型需要用到集合論、離散數(shù)學(xué)等方面的知識(shí)。關(guān)系數(shù)據(jù)庫(kù)是SQL語(yǔ)言的代表性語(yǔ)言,現(xiàn)在在一些信息管理系統(tǒng)中已經(jīng)得到了廣泛的應(yīng)用。在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,首先要考慮數(shù)據(jù)
35、的安全性,確保系統(tǒng)運(yùn)行過程中系統(tǒng)內(nèi)部數(shù)據(jù)的安全,防止非法用戶通過非法操作入侵到數(shù)據(jù)庫(kù),造成數(shù)據(jù)庫(kù)中的一些重要信息泄露,安全嚴(yán)密的數(shù)據(jù)庫(kù)保護(hù)結(jié)構(gòu)能夠有效防止非法用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行蓄意破壞。保護(hù)數(shù)據(jù)的方法有許多,如采用用戶標(biāo)識(shí),口令和密碼或訪問控制等。用戶標(biāo)識(shí)是一個(gè)完善的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)所必須具備的,每個(gè)合法用戶都擁有一個(gè)系統(tǒng)內(nèi)的用戶名和用戶名口令,在登錄系統(tǒng)時(shí)只有輸入正確的用戶名和用戶名口令才能進(jìn)入系統(tǒng),這樣做才能較為有效的保證合法的用戶對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的獨(dú)立操作。數(shù)據(jù)庫(kù)的數(shù)據(jù)需要具備完整性約束,保證數(shù)據(jù)的語(yǔ)義是合法的,即用戶輸入的數(shù)據(jù)是符合數(shù)據(jù)庫(kù)設(shè)計(jì)要求的,是合法的數(shù)據(jù)輸入操作。設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí),要提
36、前了解、考慮到用戶現(xiàn)有的使用需求和在未來(lái)可能增加的系統(tǒng)操作需求,以此來(lái)使得系統(tǒng)更加完善,用戶使用更加長(zhǎng)久化。4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)4.1功能設(shè)計(jì)及實(shí)現(xiàn)在功能設(shè)計(jì)與實(shí)現(xiàn)過程中劃分出系統(tǒng)的物理元素和設(shè)計(jì)軟件的結(jié)構(gòu)是這個(gè)階段的主要任務(wù),在軟件定義期間的任務(wù)完成之后就要完成系統(tǒng)的總體設(shè)計(jì),通過分析系統(tǒng),確定系統(tǒng)整體是由哪些系統(tǒng)和功能模塊組成,這些系統(tǒng)和功能模塊之間又是怎樣有機(jī)的結(jié)合成為一個(gè)整體,每一個(gè)功能模塊的相應(yīng)功能怎樣實(shí)現(xiàn)。系統(tǒng)功能設(shè)計(jì)的最終完成目標(biāo)是能夠?qū)崿F(xiàn)系統(tǒng)應(yīng)用所要求的功能,同時(shí),是系統(tǒng)管理便捷高效,用戶使用起來(lái)安全可靠,后期更新維護(hù)過程中便于修改,用戶容易操作使用。模塊化的目的是將較為復(fù)雜的問
37、題分割為許多容易解決的小問題,將這些小問題逐個(gè)解決,最終將原有問題簡(jiǎn)單化,清晰化的解決。模塊化設(shè)計(jì)是將大型軟件按照一定的軟件設(shè)計(jì)原則、軟件設(shè)計(jì)要求分割為一個(gè)個(gè)較小型的功能模塊,但是這些小型功能模塊在功能上是較為獨(dú)立的但在邏輯上是相關(guān)聯(lián)的。劃分出來(lái)的每一個(gè)小型模塊只需要完成一個(gè)特定的子功能,最后將所有小型功能模塊進(jìn)行有序的整合,形成一個(gè)完整的系統(tǒng),系統(tǒng)每個(gè)界面、每個(gè)功能塊能夠完成特定的功能,滿足系統(tǒng)應(yīng)用原始的設(shè)計(jì)需求。軟件結(jié)構(gòu)清晰,程序便于測(cè)試和調(diào)試是采用模塊化設(shè)計(jì)的優(yōu)點(diǎn),這樣的模塊化設(shè)計(jì)能夠提升系統(tǒng)應(yīng)用的安全性、可靠性和后期維護(hù)的可修改性,在軟件開發(fā)過程中更好分工完成,有序方便的進(jìn)行開發(fā)的組織
38、管理。每一個(gè)大型軟件可基本都可以劃分為不同的功能模塊進(jìn)行編寫。模塊化理論的幾個(gè)重要概念如下:抽象。將事物的本質(zhì)特抽象出來(lái)而暫時(shí)不去考慮事物細(xì)節(jié)。處理復(fù)雜系統(tǒng)時(shí)用層次的方式構(gòu)造和分析它是唯一有效的方法。一個(gè)復(fù)雜的動(dòng)態(tài)系統(tǒng)首先要進(jìn)行抽象化,能夠組合一些高級(jí)的抽象化概念進(jìn)行構(gòu)造分解,而高級(jí)的抽象化概念又可以利用一些較低級(jí)的概念對(duì)其進(jìn)行分割理解,直到將整個(gè)復(fù)雜的動(dòng)態(tài)系統(tǒng)分割、分解為最低等級(jí)的實(shí)體元素。信息隱蔽和局部化。信息隱蔽是指在系統(tǒng)結(jié)構(gòu)設(shè)計(jì)過程中和確定功能模塊之間的關(guān)聯(lián)性時(shí),一個(gè)模塊內(nèi)的信息對(duì)于不涉及這些信息的功能模塊來(lái)說是不允許進(jìn)信息接觸的,功能模塊是不能訪問、利用這些數(shù)據(jù)信息的。局部化是指在系
39、統(tǒng)設(shè)計(jì)時(shí)軟件元素有關(guān)聯(lián)性的物理的放在一起。這樣做有利于對(duì)數(shù)據(jù)信息進(jìn)行隱蔽,防止無(wú)關(guān)功能模塊的訪問。在程序測(cè)試期間以及軟件維護(hù)期間由于應(yīng)用信息隱蔽原理和局部化,使得程序開發(fā)者方便、快捷的修改軟件。因?yàn)槠渌糠值淖幽K是訪問不到這些數(shù)據(jù)信息和過程的,這些信息對(duì)于子模塊是隱蔽的,這樣就避免了由于系統(tǒng)一部分產(chǎn)生錯(cuò)誤從而影響到其他子模塊的正常實(shí)現(xiàn)其功能的可能性。逐步求精的模塊化概念。逐步求精與模塊化的抽象有著密切的聯(lián)系。在每一層的軟件結(jié)構(gòu)中模塊是將軟件抽象層次更加的細(xì)化。由程序軟件頂端逐步向下求精,從抽象到具體的方式分配控制,使軟件設(shè)計(jì)和實(shí)現(xiàn)過程更為清晰、簡(jiǎn)單化,程序軟件更容易理解,增加程序軟件的可測(cè)試
40、性,并且軟件進(jìn)行后期更新、維護(hù)時(shí)將會(huì)更加的容易。模塊獨(dú)立性。模塊獨(dú)立性是軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體子功能,而和軟件系統(tǒng)中其他的模塊接口是簡(jiǎn)單的。模塊獨(dú)立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。具有獨(dú)立的模塊的軟件比較容易開發(fā)出來(lái)。這是由于能夠分割功能而且接口可以簡(jiǎn)化,當(dāng)許多人分工合作開發(fā)同一個(gè)軟件時(shí),這個(gè)優(yōu)點(diǎn)尤其重要。獨(dú)立的模塊比較容易測(cè)試和維護(hù)。這是因?yàn)橄鄬?duì)說來(lái),修改設(shè)計(jì)和程序需要的工作量比較小,錯(cuò)誤傳播范圍小,需要擴(kuò)充功能時(shí)能夠"插入"模塊??傊K獨(dú)立是優(yōu)秀設(shè)計(jì)的關(guān)鍵,而設(shè)計(jì)又是決定軟件質(zhì)量的關(guān)鍵環(huán)節(jié)。模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量,
41、這兩個(gè)標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合。耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。在軟件的設(shè)計(jì)中應(yīng)追求盡可能松散的耦合。內(nèi)聚表示在一個(gè)模塊內(nèi)每個(gè)結(jié)構(gòu)元素相互關(guān)聯(lián)、結(jié)合的緊密程度,它是信息隱藏和局部化概念的延伸和拓展化,一個(gè)模塊只做一件事情屬于理想的內(nèi)聚模塊。在設(shè)計(jì)時(shí)應(yīng)力求做到高內(nèi)聚。模塊劃分如下:查詢系統(tǒng)模塊該查詢模塊實(shí)現(xiàn)公交新路信息查詢的功能。此模塊有三種查詢方式:公交線路查詢、公交站點(diǎn)查詢和起點(diǎn)終點(diǎn)查。錄入系統(tǒng)模塊該模塊實(shí)現(xiàn)數(shù)據(jù)的新增、修改、刪除、保存功能。以下為系統(tǒng)模塊圖:城市公交查詢系統(tǒng)數(shù)據(jù)管理查詢新增修改保存按線路查詢按站點(diǎn)查詢兩站點(diǎn)間換
42、乘查詢密碼管理員賬戶站點(diǎn)信息車輛參數(shù)線路圖4.1 系統(tǒng)模塊圖 兩站點(diǎn)查詢模塊:當(dāng)使用者進(jìn)入該系統(tǒng)后,在主頁(yè)面內(nèi)有換乘查詢模塊,使用者在起始站點(diǎn)的文字輸入框中輸入自已的出行出發(fā)點(diǎn),然后在終點(diǎn)站文字輸入框中輸入出行的目的地公交站點(diǎn),點(diǎn)擊左側(cè)查找按鈕,進(jìn)行路線查詢。系統(tǒng)先檢查用戶是否在起始站點(diǎn)和目的地站點(diǎn)的輸入框中輸入了內(nèi)容,如果輸入框中未輸入查詢內(nèi)容則提示使用者站點(diǎn)輸入框不能為空,然后再判斷使用者所要查詢的公交線路信息在數(shù)據(jù)庫(kù)的數(shù)據(jù)信息中是否存在,如果不存在公交線路信息則顯示出錯(cuò)提示,如果存在系統(tǒng)根據(jù)dijkstra算法搜索、顯示出一條最優(yōu)乘車路線提供給用戶。公交站點(diǎn)查詢模塊:當(dāng)使用者進(jìn)入該系統(tǒng)后
43、,從系統(tǒng)主界面切換到公交站點(diǎn)查詢的界面,在站點(diǎn)查詢模塊的文字輸入框中輸入站點(diǎn)名稱進(jìn)行站點(diǎn)信息查詢,點(diǎn)擊查找按鈕,進(jìn)行查找。系統(tǒng)首先檢查使用者輸入的查詢站點(diǎn)是否存在,如果不存在則提示查詢出錯(cuò),如果存在所要查詢的站點(diǎn),則給使用者顯示出所有途經(jīng)該站點(diǎn)的公交路線的信息。 公交線路查詢模塊:當(dāng)使用者進(jìn)入該系統(tǒng)后,由系統(tǒng)主界面切換到路線查詢的界面,在線路查詢模塊將要查詢的線路輸入到該界面的文字輸入框中,點(diǎn)擊查找按鈕,進(jìn)行查找。系統(tǒng)首先判斷系統(tǒng)使用者所輸入的線路在系統(tǒng)的數(shù)據(jù)庫(kù)中是否存在,如果不存在則提示查找出錯(cuò),如果存在則顯示查詢的這條公交線路的相關(guān)信息,如:早晚車的發(fā)車、停運(yùn)時(shí)間,票價(jià),無(wú)人售票、配備空調(diào)
44、等公交路線信息。系統(tǒng)數(shù)據(jù)管理模塊:本系統(tǒng)的設(shè)計(jì)包含了數(shù)據(jù)庫(kù)管理員和普通使用者能共同的數(shù)據(jù)管理界面。管理員需登陸密碼驗(yàn)證才能進(jìn)入管理界面進(jìn)行操作,而普通用戶無(wú)需賬號(hào)登陸可直接進(jìn)入系統(tǒng)相應(yīng)的功能界面進(jìn)行所需信息的查詢。但本系統(tǒng)只對(duì)普通用戶提供信息查詢的功能,普通用戶沒有數(shù)據(jù)信息的編輯權(quán)限。而數(shù)據(jù)庫(kù)管理員對(duì)數(shù)據(jù)信息的操作和普通使用者是有區(qū)別的,數(shù)據(jù)庫(kù)管理員可以對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)信息進(jìn)行編輯操作(修改、增加、刪除站點(diǎn),修改、刪除、添加線路等功能),例如當(dāng)?shù)毓疫\(yùn)營(yíng)企業(yè)增添新的公交線路或者是在原有公交車線路的基礎(chǔ)上增添新的站點(diǎn),數(shù)據(jù)庫(kù)管理員可以登陸到這個(gè)數(shù)據(jù)管理界面,及時(shí)完成對(duì)線路和站點(diǎn)信息的修改,保證系統(tǒng)
45、內(nèi)車次線路等相關(guān)修改的信息能夠及時(shí)更新,提供給使用者最新的公交線路信息。此外,數(shù)據(jù)庫(kù)管理員還要對(duì)整個(gè)的信息系統(tǒng)進(jìn)行定期的運(yùn)行維護(hù),保證該系統(tǒng)能夠安全穩(wěn)定的運(yùn)行,長(zhǎng)久的服務(wù)于廣大市民用戶,為市民用戶提供完準(zhǔn)確、詳盡的查詢服務(wù)。4.2數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)技術(shù)是在傳統(tǒng)文件管理系統(tǒng)的基礎(chǔ)上發(fā)展起來(lái)的一種高效數(shù)據(jù)管理技術(shù),利用數(shù)據(jù)庫(kù)技術(shù)使系統(tǒng)數(shù)據(jù)信息保持整體性、完整性以及共享性。在數(shù)據(jù)庫(kù)系統(tǒng)存在數(shù)據(jù)信息訪問機(jī)制,能夠采用合理的存儲(chǔ)方式實(shí)現(xiàn)數(shù)據(jù)信息存儲(chǔ)有組織化、結(jié)構(gòu)化,提高數(shù)據(jù)信息的查詢、利用效率,做到最小的數(shù)據(jù)冗余。除此之外,操作應(yīng)用數(shù)據(jù)的應(yīng)用程序與數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)信息的存儲(chǔ)是彼此相互獨(dú)立的,這樣能夠方便
46、的進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)信息的管理與操作,同時(shí)方便系統(tǒng)開發(fā)調(diào)試過程中應(yīng)用程序的編寫以及編譯。數(shù)據(jù)庫(kù)好比是一個(gè)儲(chǔ)蓄數(shù)據(jù)信息的大倉(cāng)庫(kù),將數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中能夠方便、有效地實(shí)現(xiàn)數(shù)據(jù)共享并且保持?jǐn)?shù)據(jù)的一致性。在一個(gè)數(shù)據(jù)信息管理系統(tǒng)中,數(shù)據(jù)庫(kù)的設(shè)計(jì)是主要的開發(fā)任務(wù)之一,數(shù)據(jù)庫(kù)的設(shè)計(jì)是否清晰、完整直接影響著系統(tǒng)開發(fā)的成敗、系統(tǒng)使用的效率、系統(tǒng)的質(zhì)量以及后期的可維護(hù)性。在本系統(tǒng)的設(shè)計(jì)中,充分考慮到了管理系統(tǒng)數(shù)據(jù)繁雜,重復(fù)性很大,數(shù)據(jù)使用頻繁。因此在管理系統(tǒng)設(shè)計(jì)過程中采用了數(shù)據(jù)庫(kù)系統(tǒng)這一種能恰當(dāng)反映用戶使用需求并能夠被現(xiàn)在的主流操作系統(tǒng)所接受,后期易于維護(hù)且使用效率高的數(shù)據(jù)信息管理方法。本系統(tǒng)構(gòu)建的Access數(shù)據(jù)庫(kù)
47、是城市公交換乘路線信息系統(tǒng)。數(shù)據(jù)庫(kù)設(shè)計(jì)階段將的數(shù)據(jù)文件和日志文件都保存在了公交換乘信息系統(tǒng)文件夾中。這個(gè)數(shù)據(jù)庫(kù)包含有6個(gè)表:管理員表(Login Table) 管理員表存放的是系統(tǒng)登陸的用戶名和密碼,登錄后臺(tái)時(shí)需要訪問該表。表4.1 管理員表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否為主鍵說明LoginPwdvarchar50否否登錄IDLoginNamevarchar50否是登錄姓名站名轉(zhuǎn)換表(StInfo) 站名轉(zhuǎn)換表給每個(gè)站名一個(gè)唯一編號(hào),修改或查詢站名需要訪問該表。表4.2 站名表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否為主鍵 說明St_Numint4否是站點(diǎn)編號(hào)St_Namevarchar50否否站名線路
48、表(Bus_St) 線路表存放的是公交車線路經(jīng)過全部站點(diǎn)的數(shù)據(jù),修改線路或車站查詢的時(shí)候需要訪問該表。表4.3線路表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否為主鍵 說明Bus_Numvarchar50否是車次St_Namevarchar50否是站名車輛表(Bus_Arc) 車輛表存放的是經(jīng)過該弧段的車次的相關(guān)信息,修改車次或站站查詢需要訪問該表。表4.4 車輛表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否為主鍵說明Arc_Numint4否是弧段編號(hào)Bus_Numint4否是車次加權(quán)站站查詢表(Graph) 查詢表存放了完整的公交網(wǎng)絡(luò)模型的帶權(quán)圖,在程序調(diào)用Dijkstra算法搜索最優(yōu)乘車線路的時(shí)候需要訪問該表。表4.
49、5 加權(quán)站站查詢表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否為主鍵說明St_Num1int4否否站點(diǎn)編號(hào)1St_Num2int4否否站點(diǎn)編號(hào)2Costint4否否權(quán)值A(chǔ)rcIDint4否是弧段編號(hào)車次路線表(BusInfo) 車次路線表保存某一公交車次的概況信息,進(jìn)行路線查詢的時(shí)候需要訪問此表。表4.6 夏季發(fā)車時(shí)刻表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否為主鍵說明Bus_Numvarchar50否是編號(hào)BeginStvarchar50否否起始站點(diǎn)EndStvarchar50否否終點(diǎn)站點(diǎn)BeginTimevarchar50否否首班時(shí)間EndTimevarchar50否否末班時(shí)間Notevarchar50否否車輛概
50、況5 測(cè)試5.1測(cè)試內(nèi)容因?yàn)槌绦蛑须[藏的缺陷只又在特定的情況下下才能顯露出來(lái),系統(tǒng)缺陷常常是因?yàn)閷?duì)某些特定情況考慮不全面造成。因此測(cè)試開發(fā)完成的軟件程序并不是為了證明程序能夠?qū)崿F(xiàn)設(shè)計(jì)初期的要求,能夠正確運(yùn)行,成功的測(cè)試并不代表軟件程序不存在漏洞。軟件測(cè)試應(yīng)該試圖“破壞”軟件系統(tǒng)來(lái)實(shí)現(xiàn)測(cè)試這個(gè)環(huán)節(jié)的意義,精心設(shè)計(jì)、全面考慮最有可能檢測(cè)出程序系統(tǒng)漏洞的測(cè)試方案。所以程序測(cè)試的目標(biāo)是以盡量少的代價(jià)和時(shí)間找出程序中潛在的缺陷和錯(cuò)誤。從產(chǎn)品角度看,測(cè)試方案中的需要測(cè)試的范圍包括軟件系統(tǒng)的分層結(jié)構(gòu)、次系統(tǒng)層、功能模塊層、程序模塊層中的各功能結(jié)構(gòu)的子模塊,從測(cè)試方式來(lái)看,分為單元測(cè)試,集成測(cè)試,確認(rèn)測(cè)試等。
51、測(cè)試環(huán)節(jié)在不同的階段有著不同的測(cè)試對(duì)象,最基礎(chǔ)、最初期的測(cè)試方式為單元測(cè)試,隨后進(jìn)行的組合測(cè)試、確認(rèn)測(cè)試都是對(duì)已經(jīng)測(cè)過的模塊進(jìn)行再次的測(cè)試。單元測(cè)試。單元測(cè)試又稱為模塊測(cè)試或者是程序測(cè)試,單元測(cè)試是單獨(dú)的對(duì)每個(gè)模塊進(jìn)行測(cè)試,驗(yàn)證設(shè)計(jì)說明書和模塊接口是否一致,對(duì)模塊的所有主要數(shù)據(jù)調(diào)用、模塊關(guān)聯(lián)等路徑進(jìn)行測(cè)試,并與初始設(shè)計(jì)時(shí)的結(jié)構(gòu)進(jìn)行對(duì)比分析,還要對(duì)所有產(chǎn)生錯(cuò)誤的相關(guān)路徑進(jìn)行進(jìn)一步測(cè)試。對(duì)對(duì)程序源代碼進(jìn)行檢查,對(duì)照設(shè)計(jì)初期起草的設(shè)計(jì)說明書檢測(cè)源程序能否實(shí)現(xiàn)系統(tǒng)要求的功能邏輯,是單元測(cè)試之前的需要完成的必備工作。程序員一般在軟件程序編碼過程中進(jìn)行單元測(cè)試的完成,這個(gè)過程也稱為程序調(diào)試。集成測(cè)試,英文
52、是Integration Testing。集成測(cè)試是指一個(gè)應(yīng)用系統(tǒng)的各個(gè)部件的聯(lián)合測(cè)試,以決定他們能否在一起共同工作并沒有沖突。部件可以是代碼塊、獨(dú)立的應(yīng)用、網(wǎng)絡(luò)上的客戶端或服務(wù)器端程序。這種類型的測(cè)試尤其與客戶服務(wù)器和分布式系統(tǒng)有關(guān)。一般集成測(cè)試以前,單元測(cè)試需要完成。集成測(cè)試是單元測(cè)試的邏輯擴(kuò)展。它的最簡(jiǎn)單的形式是:兩個(gè)已經(jīng)測(cè)試過的單元組合成一個(gè)組件,并且測(cè)試它們之間的接口。從這一層意義上講,組件是指多個(gè)單元的集成聚合。在現(xiàn)實(shí)方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測(cè)試片段的組合,并最終擴(kuò)展進(jìn)程,將您的模塊與其他組的模塊一起測(cè)試。最后,將構(gòu)成進(jìn)程的所有模塊一起測(cè)
53、試。此外,如果程序由多個(gè)進(jìn)程組成,應(yīng)該成對(duì)測(cè)試它們,而不是同時(shí)測(cè)試所有進(jìn)程。確認(rèn)測(cè)試。軟件通過集成測(cè)試后進(jìn)入到該階段的測(cè)試,此時(shí)軟件已經(jīng)在預(yù)期的設(shè)備上進(jìn)行運(yùn)行,確認(rèn)測(cè)試是為了驗(yàn)證、證明開發(fā)完成的軟件是可以正常工作的,并且符合“軟件設(shè)計(jì)說明書”中規(guī)定的需要實(shí)現(xiàn)的全部功能和運(yùn)行性能的要求。確認(rèn)測(cè)試是按照這些要求定出的“確認(rèn)測(cè)試計(jì)劃”進(jìn)行的。測(cè)試工作是由獨(dú)立的測(cè)試部門軟件測(cè)試員完成,而且測(cè)試全程都應(yīng)該以軟件用戶為主體角度進(jìn)行。系統(tǒng)測(cè)試。系統(tǒng)測(cè)試是對(duì)整體性能的測(cè)試,該階段的測(cè)試主要解決各個(gè)系統(tǒng)、子功能模塊數(shù)據(jù)調(diào)用和數(shù)據(jù)轉(zhuǎn)移問題以及檢測(cè)系統(tǒng)是否達(dá)到原始的設(shè)計(jì)要求,系統(tǒng)測(cè)試的執(zhí)行需要依賴于系統(tǒng)分析報(bào)告。系
54、統(tǒng)測(cè)試的范圍是整個(gè)軟件系統(tǒng),該階段測(cè)試并不是單單針對(duì)軟件進(jìn)行測(cè)試,而是把系統(tǒng)整合將硬、軟件配套在一起進(jìn)行。系統(tǒng)測(cè)試與建構(gòu)同時(shí)進(jìn)行或略慢。系統(tǒng)測(cè)試需要保證從開始功能到最后結(jié)束各個(gè)功能都能正常工作才算完成,此次盡量不要再項(xiàng)目完成末期進(jìn)行系統(tǒng)測(cè)試這個(gè)環(huán)節(jié)。用戶驗(yàn)收測(cè)試。在系統(tǒng)測(cè)試完成后,進(jìn)行用戶的驗(yàn)收測(cè)試,它是用戶在實(shí)際應(yīng)用環(huán)境中所進(jìn)行的真實(shí)數(shù)據(jù)測(cè)試。5.2測(cè)試方法一般應(yīng)用的程序測(cè)試方法分為兩種:白盒測(cè)試和黑盒測(cè)試。a).白盒測(cè)試,英文是White Box Testing。又稱結(jié)構(gòu)測(cè)試或者邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試是把測(cè)試對(duì)象看作一個(gè)打開的盒子。利用白盒測(cè)試法進(jìn)行動(dòng)態(tài)測(cè)試時(shí),需要測(cè)試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和
55、處理過程,不需測(cè)試軟件產(chǎn)品的功能。白盒測(cè)試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測(cè)試。其中邏輯覆蓋包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。白盒測(cè)試是知道產(chǎn)品內(nèi)部工作過程,可通過測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等,主要用于軟件驗(yàn)證。白盒測(cè)試常用工具有:Jtest、VcSmith、Jcontract、C+ Test、CodeWizard、logiscope。b).黑盒測(cè)試,英文是Black Box Testing。又稱功能測(cè)試或者數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試是根據(jù)軟件的規(guī)格對(duì)軟件進(jìn)行的測(cè)試,這類測(cè)試不考慮軟件內(nèi)部的運(yùn)作原理,因此軟件對(duì)用戶來(lái)說就像一個(gè)黑盒子。軟件測(cè)試人員以用戶的角度,通過各種輸入和觀察軟件的各種輸出結(jié)果來(lái)發(fā)現(xiàn)軟件存在的缺陷,而不關(guān)心程序具體如何實(shí)現(xiàn)的一種軟件測(cè)試方法。黑盒測(cè)試常用工具有:AutoRunner、winrunner、loadrunner。 本系統(tǒng)采用黑盒測(cè)試。5.3 測(cè)試用例5.3.1系統(tǒng)登錄界面1.管理員登錄測(cè)試目的:檢查管理員
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度面料行業(yè)數(shù)字化轉(zhuǎn)型與合作合同3篇
- 2025年個(gè)人荒漠化治理與生態(tài)修復(fù)承包合同4篇
- 2025年度個(gè)人健身教練雇傭合同6篇
- 二零二五年度門窗品牌授權(quán)代理銷售合同模板4篇
- 二零二五年度大運(yùn)河物流合同用人單位員工帶薪年假規(guī)定3篇
- 二手房買賣2024法律合同
- 二零二五年度房地產(chǎn)營(yíng)銷居間代理合同標(biāo)準(zhǔn)文本2篇
- 二零二四年度學(xué)校土地及建筑資產(chǎn)轉(zhuǎn)讓合同2篇
- 二零二五年度消防應(yīng)急疏散指示系統(tǒng)安裝合同3篇
- 2025年度排水管道安裝與工程保修服務(wù)合同4篇
- 無(wú)人化農(nóng)場(chǎng)項(xiàng)目可行性研究報(bào)告
- 《如何存款最合算》課件
- 社區(qū)團(tuán)支部工作計(jì)劃
- 拖欠工程款上訪信范文
- 2024屆上海市金山區(qū)高三下學(xué)期二模英語(yǔ)試題(原卷版)
- 學(xué)生春節(jié)安全教育
- 《wifi協(xié)議文庫(kù)》課件
- 《好東西》:女作者電影的話語(yǔ)建構(gòu)與烏托邦想象
- 教培行業(yè)研究系列(七):出國(guó)考培的再研究供需變化的新趨勢(shì)
- GB/T 44895-2024市場(chǎng)和社會(huì)調(diào)查調(diào)查問卷編制指南
- 道醫(yī)館可行性報(bào)告
評(píng)論
0/150
提交評(píng)論