公交線路查詢的課程設(shè)計(jì)_第1頁(yè)
公交線路查詢的課程設(shè)計(jì)_第2頁(yè)
公交線路查詢的課程設(shè)計(jì)_第3頁(yè)
公交線路查詢的課程設(shè)計(jì)_第4頁(yè)
公交線路查詢的課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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、交通信息科技課程設(shè)計(jì)姓 名 zhuzhiwianh 學(xué) 號(hào) 120071501146 年 級(jí) 2007 專 業(yè) 交通工程( 1 )班 成 績(jī) 指導(dǎo)教師 唐曉騰、黃明芳 完成日期 2010-6-3 目 錄1 課程設(shè)計(jì)目的與背景12 課程設(shè)計(jì)基本要求13 系統(tǒng)設(shè)計(jì)分析13.1 系統(tǒng)開發(fā)環(huán)境13.2 系統(tǒng)開發(fā)工具23.3 系統(tǒng)功能模塊34 系統(tǒng)實(shí)現(xiàn)原理.35 系統(tǒng)實(shí)現(xiàn)45.1 青島市公交數(shù)據(jù)庫(kù)建立45.2 程序主界面模塊55.2.1 系統(tǒng)登錄界面55.2.2 查詢系統(tǒng)模塊65.2.3 數(shù)據(jù)錄入、更新85.2.4 打印輸出95.3 程序代碼95.3.1 系統(tǒng)登陸界面代碼95.3.2form_load代

2、碼105.3.3公交線路查詢代碼155.3.4線路查詢代碼165.3.5站點(diǎn)查詢代碼175.3.6起點(diǎn)、終點(diǎn)查詢代碼185.3.7生成報(bào)表代碼215.3.8 滾動(dòng)字幕代碼225.3.9 結(jié)束運(yùn)行代碼226 設(shè)計(jì)總結(jié)236.1 結(jié)論236.2心得體會(huì)23參考文獻(xiàn)241 課程設(shè)計(jì)目的與背景交通信息科技課程設(shè)計(jì)是交通工程專業(yè)設(shè)計(jì)內(nèi)容之一,它是對(duì)交通信息技術(shù)課程的實(shí)際應(yīng)用。通過(guò)該課程設(shè)計(jì),使學(xué)生加深對(duì)課堂教學(xué)內(nèi)容的理解,掌握信息化技術(shù)在城市交通中的應(yīng)用和開發(fā),增強(qiáng)學(xué)生分析和解決實(shí)際交通問(wèn)題的能力,為在交通智能系統(tǒng)開發(fā)中應(yīng)用相關(guān)知識(shí)解決實(shí)際問(wèn)題打下基礎(chǔ)。當(dāng)前,我國(guó)城市公交乘客信息系統(tǒng)的發(fā)展處于一個(gè)較落后

3、的水平,廣大乘客可以獲得信息的方式很少,需要大力發(fā)展我國(guó)的城市公交乘客信息系統(tǒng)。本設(shè)計(jì)以某城市公交系統(tǒng)為開發(fā)對(duì)象,基于數(shù)據(jù)庫(kù)查詢技術(shù),完成一個(gè)城市公交系統(tǒng)的出行線路查詢軟件。2 課程設(shè)計(jì)基本要求(1)要求了解和掌握基于數(shù)據(jù)庫(kù)應(yīng)用的軟件開發(fā)基本流程和基本方法。(2)能初步應(yīng)用編程語(yǔ)言開發(fā)基于數(shù)據(jù)庫(kù)的實(shí)時(shí)查詢系統(tǒng)。(3)按照學(xué)生分組情況,每組針對(duì)指定的城市公交系統(tǒng)進(jìn)行開發(fā)。通過(guò)查閱相關(guān)資料,分析、計(jì)算、比較、論證,制訂出合理的設(shè)計(jì)方案,為今后從事相關(guān)工作打下基礎(chǔ)。(4)能應(yīng)用visual basic編程軟件,結(jié)合access數(shù)據(jù)庫(kù)實(shí)現(xiàn)基于數(shù)據(jù)庫(kù)的應(yīng)用軟件開發(fā)。(5)排版需按規(guī)定要求進(jìn)行。3 系統(tǒng)設(shè)

4、計(jì)分析3.1 系統(tǒng)開發(fā)環(huán)境:系統(tǒng)開發(fā)環(huán)境包括硬件平臺(tái)和軟件平臺(tái)兩種。硬件平臺(tái)是指開發(fā)與運(yùn)行所需要的硬件環(huán)境,主要包括計(jì)算機(jī)機(jī)型及硬件配置。由于本系統(tǒng)是一個(gè)小型的信息查詢系統(tǒng),因此對(duì)計(jì)算機(jī)硬件的要求不高,比較經(jīng)濟(jì),只要配備有pii300處理器(或以上)、64m內(nèi)存(或以上)、20g硬(或以上)的普通微機(jī)即可順利運(yùn)行。軟件平臺(tái)是指系統(tǒng)開發(fā)與運(yùn)行的軟件環(huán)境。本系統(tǒng)在開發(fā)時(shí)選用了穩(wěn)定性較強(qiáng)的windows xp中文專業(yè)版和visual basic 6.0作為開發(fā)語(yǔ)言,所以開發(fā)出的應(yīng)用系統(tǒng)穩(wěn)定性較高。visual basic是一種新型的現(xiàn)代語(yǔ)言。與傳統(tǒng)的語(yǔ)言相比,它在許多方面有重要的改革和突破。下面介紹

5、visual basic 6.0的主要特點(diǎn):(1) 易學(xué)易用的集成開發(fā)環(huán)境:visual basic 6.0為用戶設(shè)計(jì)界面、編寫代碼、調(diào)試程序、編譯程序、制作應(yīng)用程序安裝盤等提供了友好的集成開發(fā)環(huán)境。(2) 可視化的設(shè)計(jì)平臺(tái):在visual basic 6.0中,采用面向?qū)ο蟪绦蛟O(shè)計(jì)方法(object-oriented programming),把程序和數(shù)據(jù)封裝起來(lái)作為一個(gè)對(duì)象,每個(gè)對(duì)象都是可視的。(3) 事件驅(qū)動(dòng)的編程機(jī)制: visual basic 6.0事件驅(qū)動(dòng)的編程是針對(duì)用戶觸發(fā)某個(gè)對(duì)象的相關(guān)事件進(jìn)行編碼,每個(gè)事件都可以驅(qū)動(dòng)一段程序的運(yùn)行。開發(fā)人員只要編寫響應(yīng)用戶動(dòng)作的代碼。這樣的應(yīng)用

6、程序代碼精簡(jiǎn),比較容易編寫與維護(hù)。(4) 結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言:visual basic 6.0具有豐富的數(shù)據(jù)類型和眾多的內(nèi)部函數(shù)。其采用模塊化和結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,結(jié)構(gòu)清晰,語(yǔ)法簡(jiǎn)單,容易學(xué)習(xí)。(5) 強(qiáng)大的數(shù)據(jù)庫(kù)功能:visual basic 6.0利用數(shù)據(jù)控件可以訪問(wèn)access、foxpro等多種數(shù)據(jù)庫(kù)系統(tǒng),也可以訪問(wèn)excel、lotus等多種電子表格。(6) 網(wǎng)絡(luò)功能:visual basic 6.0提供的dhtml(動(dòng)態(tài)html)設(shè)計(jì)工具可以使開發(fā)者動(dòng)態(tài)地創(chuàng)建和編輯web頁(yè)面,使用戶能開發(fā)出多功能的網(wǎng)絡(luò)應(yīng)用軟件。3.2 系統(tǒng)開發(fā)工具:確定操作系統(tǒng)后,選擇開發(fā)工具,經(jīng)過(guò)綜合比較選擇

7、可視化程序語(yǔ)言visual basic。 visual basic(簡(jiǎn)稱vb)是microsoft公司于1191年推出的windows應(yīng)用程序開發(fā)工具,采用可視化、面向?qū)ο笠约笆录?qū)動(dòng)的程序設(shè)計(jì)模式,具有強(qiáng)大的數(shù)據(jù)庫(kù)編程能力,利用vb的數(shù)據(jù)控件和數(shù)據(jù)庫(kù)管理器等工具,可直接建立或處理microsoft access格式的數(shù)據(jù)庫(kù),還可直接編輯和訪問(wèn)其他外部數(shù)據(jù)庫(kù),同時(shí)還提供開放式數(shù)據(jù)庫(kù)訪問(wèn)(odbc)功能,可通過(guò)直接訪問(wèn)或者建立連接的方式使用并操作遠(yuǎn)程服務(wù)器上的關(guān)系型數(shù)據(jù)庫(kù),如sql server、oracle等。因此,vb成為目前最便捷、最有效率的開發(fā)工具之一。數(shù)據(jù)庫(kù)選用microsoft公司的

8、access產(chǎn)品作為數(shù)據(jù)庫(kù)應(yīng)用程序。是office系列應(yīng)用軟件之一。它提供了表、查詢、窗體、報(bào)表、頁(yè)、宏、模塊7種用來(lái)建立數(shù)據(jù)庫(kù)系統(tǒng)的對(duì)象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、界面設(shè)計(jì)、報(bào)表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫(kù)管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。它是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有存儲(chǔ)方式單一 、面向?qū)ο蟆⒔缑嬗押?、易操作、集成環(huán)境、處理多種數(shù)據(jù)信息的特點(diǎn),access還支持odbc(開發(fā)數(shù)據(jù)庫(kù)互連,open data base onnectivity),利用access強(qiáng)大的dde(動(dòng)態(tài)數(shù)據(jù)交換)和ole(對(duì)象的聯(lián)

9、接和嵌入)特性,可以在一個(gè)數(shù)據(jù)表中嵌入位圖、聲音、excel表格、word文檔,還可以建立動(dòng)態(tài)的數(shù)據(jù)庫(kù)報(bào)表和窗體等。access還可以將程序應(yīng)用于網(wǎng)絡(luò),并與網(wǎng)絡(luò)上的動(dòng)態(tài)數(shù)據(jù)相聯(lián)接。利用數(shù)據(jù)庫(kù)訪問(wèn)頁(yè)對(duì)象生成html文件,輕松構(gòu)建internet/intranet的應(yīng)用。 3.3 系統(tǒng)功能模塊:公交查詢系統(tǒng)的應(yīng)用背景為:方便市民搭乘公交車出行;實(shí)時(shí)查詢公交信息、及時(shí)更新查詢數(shù)據(jù)。因此,該系統(tǒng)主要功能劃分模塊如下:(1)查詢系統(tǒng)模塊。該模塊實(shí)現(xiàn)公交查詢功能??蓪?shí)現(xiàn)按線路和站點(diǎn)兩種查詢方式。(2)數(shù)據(jù)錄入、更新模塊。更新:系統(tǒng)允許管理員級(jí)別的用戶對(duì)數(shù)據(jù)進(jìn)行錄入、修改且存盤操作;編輯:系統(tǒng)允許管理員級(jí)別

10、的用戶對(duì)數(shù)據(jù)進(jìn)行編輯、刪除的操作,保證現(xiàn)庫(kù)的真實(shí)性與實(shí)時(shí)性。(3)打印輸出。系統(tǒng)可以將用戶查詢到的內(nèi)容動(dòng)態(tài)地生成報(bào)表,并打印輸出。4 系統(tǒng)實(shí)現(xiàn)原理 (1)access數(shù)據(jù)庫(kù)的數(shù)據(jù)格式?access數(shù)據(jù)表中數(shù)據(jù)格式為文本類型因?yàn)楸碇械臄?shù)據(jù)為各個(gè)線路的站點(diǎn),保存的數(shù)據(jù)庫(kù)類型為.mdb格式,本過(guò)程應(yīng)在access2003環(huán)境下下進(jìn)行操作,因?yàn)樵趘b6.0中數(shù)據(jù)庫(kù)是access2003的,所引用的microsoft jet引擎只能識(shí)別access2003或之前版本格式的文件。(2)vb 如何與access數(shù)據(jù)庫(kù)文件實(shí)現(xiàn)聯(lián)結(jié)?vb連接access數(shù)據(jù)庫(kù)可以通過(guò)控件,也可以通過(guò)引用來(lái)連接數(shù)據(jù)庫(kù)。如果是控件

11、的話有data、adodc控件等。如果是引用的話在“工程”“引用”中microsoft active data objects 2.6 library?,F(xiàn)在一般都是使用引用來(lái)連接數(shù)據(jù)庫(kù)。microsoft jet and replication objects 2.5 librarymicrosoft active data objects 2.6 library通用dim cn as adodb.connection'定義一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象 dim rs as adodb.recordset '聲明數(shù)據(jù)集 dim str as string'定義str為字符串型 &#

12、39;建立與數(shù)據(jù)庫(kù)的連接str = "provider=microsoft.jet.oledb.4.0;persist security info=false;data source=" & app.path & "46.mdb" 'str;函數(shù)引microsoft.jet.oledb.4.0 來(lái)調(diào)用46數(shù)據(jù)表set cn = new adodb.connection'創(chuàng)建一個(gè)cn作為數(shù)據(jù)庫(kù)連接cn.open str '數(shù)據(jù)庫(kù)連接對(duì)象cn執(zhí)行str函數(shù)的語(yǔ)句(3)數(shù)據(jù)庫(kù)查詢的思路(1)首先確定使用何種數(shù)據(jù)庫(kù),如選a

13、ccess數(shù)據(jù)庫(kù)。(2)新建access數(shù)據(jù)庫(kù)。(3)新建各數(shù)據(jù)表。確定每個(gè)數(shù)據(jù)表的字段及數(shù)據(jù)類型。各數(shù)據(jù)表應(yīng)有關(guān)鍵字段。(4)在vb中使用ado數(shù)據(jù)對(duì)象或控件連接數(shù)據(jù)庫(kù),構(gòu)思vb的運(yùn)行界面。(5)靈活使用sql結(jié)構(gòu)化查詢語(yǔ)句操縱數(shù)據(jù)庫(kù)。5 系統(tǒng)實(shí)現(xiàn)5.1 青島市公交數(shù)據(jù)庫(kù)建立: 青島古稱膠澳,位于山東半島的南部,瀕臨黃海,是我國(guó)重要的海濱城市之一,也是我國(guó)著名的風(fēng)景旅游勝地和國(guó)家歷史文化名城。青島的公交非常方便,四通八達(dá)、無(wú)人售票。嶄新的公交車內(nèi)車外都很干凈。普通公交車單一票價(jià)1元,空調(diào)車單一票價(jià)2元。     公交26、201、202路車是沿著海邊走,途徑棧橋

14、、八大關(guān)等很多景點(diǎn),起點(diǎn)是輪渡或火車站。這里需要特別注意的是26路公交車能到達(dá)青島的大多數(shù)景點(diǎn),比如:中山公園、海軍博物館、青島海底世界、康有為故居、花石樓、湛山寺、迎賓館等。到青島旅游最方便、舒適的方法莫過(guò)于乘空調(diào)旅游專線。三條旅游專線所配車輛均為高級(jí)豪華空調(diào)旅游中巴(28座廈門金龍)。全程配備專業(yè)導(dǎo)游服務(wù)。     去嶗山(太清景區(qū))可乘304路,從輪渡、火車站(棧橋)一直到嶗山,全程都貼著海邊走。當(dāng)然你也可以參加嶗山一日游,各賓館均有代辦,大多數(shù)旅游團(tuán)都只去太清景區(qū)。由于青島市是一個(gè)交通發(fā)達(dá),設(shè)施齊全的旅游城市,所以賦予了青島市公交路線是四縱八達(dá)的,而在這里

15、我就隨便在其眾多的公交路線選取20條公交路線來(lái)建立該市公交線路數(shù)據(jù),見圖1所示。圖1 青島市公交線路表5.2 程序主界面模塊:5.2.1 系統(tǒng)登錄界面:本著界面友好、易操作等元素及具有青島市公交車的代表性,還有本界面設(shè)有在等待一會(huì)兒后會(huì)自動(dòng)跳到查詢系統(tǒng)模塊和設(shè)有“歡迎您進(jìn)入青島市公交線路查詢系統(tǒng)”的滾動(dòng)字幕等特點(diǎn)。因此本系統(tǒng)登陸界面如圖2所示。圖2 系統(tǒng)登錄界面 5.2.2 查詢系統(tǒng)模塊:為了方便市民搭乘公交車出行,本模塊本著服務(wù)于市民,該查詢系統(tǒng)為青島市民提供更方便、更快捷的服務(wù)原則。因此本查詢系統(tǒng)模塊如圖3所示,該模塊分為五部分:(1)全部線路查詢,點(diǎn)擊顯示按鈕可以顯示全部的公交線路,見圖

16、4所示;(2)線路查詢,在下拉菜單中選擇要查詢的公交線路名稱點(diǎn)擊查詢就可以查詢?cè)摼€路經(jīng)過(guò)的所有公交站點(diǎn),見圖5所示;(3)經(jīng)過(guò)公交站點(diǎn)名稱查詢,在下拉菜單中選擇要經(jīng)過(guò)的公交站點(diǎn)名稱,點(diǎn)擊查詢就可以查詢經(jīng)過(guò)該站點(diǎn)的所有公交線路,見圖6所示;(4)起點(diǎn)、終點(diǎn)查詢,選擇起點(diǎn)、終點(diǎn)站名稱點(diǎn)擊確定就會(huì)跳出經(jīng)過(guò)這兩個(gè)站點(diǎn)的所有公交線路,如果沒(méi)有直達(dá)線路,則會(huì)提示“沒(méi)有直達(dá)線路”,見圖7所示;(5)生成報(bào)表功能,點(diǎn)擊此按鈕就會(huì)自動(dòng)輸出所有公交線路的excel表格,見圖8所示??偠灾?,本查詢系統(tǒng)操作簡(jiǎn)單,適合廣大群眾使用。圖3 查詢系統(tǒng)界面(1) 點(diǎn)擊顯示全部線路查詢,可顯示查詢結(jié)果,如圖4所示: 圖4 查

17、詢結(jié)果顯示界面(2) 在線路查詢中,在下拉菜單中選擇要查詢的公交線路名稱點(diǎn)擊查詢,經(jīng)過(guò)所有公交站點(diǎn)結(jié)果如圖5所示。圖5顯示線路查詢結(jié)果界面(3) 在站點(diǎn)查詢中,在下拉菜單中選擇要經(jīng)過(guò)的公交站點(diǎn)名稱,點(diǎn)擊查詢就可以查詢經(jīng)過(guò)該站點(diǎn)的所有公交線路,結(jié)果如圖6所示。圖6 顯示站點(diǎn)查詢結(jié)果界面(4) 在起點(diǎn)、終點(diǎn)查詢中,選擇起點(diǎn)、終點(diǎn)站名稱點(diǎn)擊確定就會(huì)跳出經(jīng)過(guò)這兩個(gè)站點(diǎn)的所有公交線路,如果沒(méi)有直達(dá)線路,則會(huì)提示“沒(méi)有直達(dá)線路”,其結(jié)果如圖7所示。圖7 顯示起點(diǎn)、終點(diǎn)結(jié)果界面(5) 生成報(bào)表功能,點(diǎn)擊此按鈕就會(huì)自動(dòng)輸出所有公交線路的excel表格,最后會(huì)提醒“恭喜!excel生成完畢”,如圖8所示。圖8

18、顯示excel結(jié)果界面5.2.3 數(shù)據(jù)錄入、更新: 設(shè)計(jì)窗體及程序,完成數(shù)據(jù)輸入、顯示、保存和刪除公交數(shù)據(jù)表中的記錄數(shù)據(jù)。各功能界面如下:因?yàn)闆](méi)有設(shè)計(jì)數(shù)據(jù)輸入、保存和刪除公交數(shù)據(jù)表中記錄數(shù)據(jù)的程序,所以沒(méi)辦法顯示它們各功能界面;還有顯示公交數(shù)據(jù)表中的記錄數(shù)據(jù)功能界面和上面查詢系統(tǒng)模塊中的各功能界面一樣,在這里就不在重復(fù)了。5.2.4 打印輸出:設(shè)計(jì)窗體及相應(yīng)程序,完成報(bào)表顯示(要求調(diào)用excel報(bào)表)和打印功能。用excel報(bào)表顯示界面如圖9、圖10所示。圖9 excel報(bào)表顯示界面圖10顯示excel結(jié)果界面5.3 程序代碼:5.3.1 系統(tǒng)登陸界面代碼系統(tǒng)登錄界面程序(包括滾動(dòng)字幕、登陸界

19、面進(jìn)入查詢界面等):通用dim cn as adodb.connectiondim rs as adodb.recordsetdim ssql as stringdim aa() as stringprivate sub form_load() delaytime = 0timer2.enabled = trueend subprivate sub label1_click()label1.left = 0timer1.enabled = trueend subprivate sub timer1_timer()if label1.left < me.width then label1.

20、left = label1.left - 25 else label1.left = 0end ifend subprivate sub timer2_timer()if delaytime >= 25 then timer2.enabled = false unload form2 load form1form1.show else delaytime = delaytime + 1end ifend sub5.3.2form_load代碼進(jìn)入查詢界面后用于顯示所有柵格的表頭和所有combo下拉菜單的值,程序如下:private sub form_load()dim j as inte

21、gerdim str as string'對(duì)msfgrid進(jìn)行設(shè)置 with msflexgrid2 .textmatrix(0, 0) = "編號(hào)" .textmatrix(0, 1) = "線路名稱" for j = 2 to 50 .textmatrix(0, j) = "站點(diǎn)" & cstr(j - 1) next end with'建立與數(shù)據(jù)庫(kù)的連接str="provider=microsoft.jet.oledb.4.0;persistsecurity info=false;data so

22、urce=" & app.path & "46_朱智強(qiáng).mdb"set cn = new adodb.connectioncn.open str'combo2.text賦值combo2.clearssql = "select number from 46_朱智強(qiáng) order by number"set rs = new adodb.recordsetrs.open ssql, cn, adopenkeyset, adlockreadonlycombo2.text = trim(rs.fields("number

23、").value)while not rs.eofcombo2.additem (trim(rs.fields("number").value) rs.movenext wend'combo3.text賦值-從aa數(shù)組中讀取相應(yīng)站名 ssql = "select * from 46_朱智強(qiáng)" set rs = new adodb.recordset rs.open ssql, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close msgbox "沒(méi)有找到數(shù)據(jù)"

24、;, 12, "系統(tǒng)提示" exit sub end ifredim aa(rs.recordcount - 1, 51) '以下開始讀取數(shù)據(jù) i = 0 while not rs.eof for j = 1 to rs.fields.countif rs.fields(j - 1) <> "null" then aa(i, j - 1) = rs.fields(j - 1).value end if next i = i + 1 rs.movenext wend rs.closedim ab() as string redim ab

25、(ubound(aa, 1), ubound(aa, 2) - 3) for i = 0 to ubound(aa, 1) '線路總數(shù) for j = 2 to ubound(aa, 2) - 1 '對(duì)應(yīng)站點(diǎn)總數(shù) ab(i, j - 2) = aa(i, j) next j next icombo3.text = ab(0, 0) for i = 0 to ubound(ab, 1) '線路總數(shù) for j = 0 to ubound(ab, 2) '對(duì)應(yīng)站點(diǎn)總數(shù) 'debug.print ab(i, j) if ab(i, j) <> &q

26、uot;" then for k = 0 to combo3.listcount - 1 if combo3.list(k) = ab(i, j) then exit for end if next kif k >= combo3.listcount thencombo3.additem ab(i, j) end if end if next jnext i 'combo1.text賦值-從aa數(shù)組中讀取相應(yīng)站名ssql = "select * from 46_朱智強(qiáng)"set rs = new adodb.recordset rs.open ssql

27、, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close msgbox "沒(méi)有找到數(shù)據(jù)", 12, "系統(tǒng)提示" exit sub end ifredim aa(rs.recordcount - 1, 51)'以下開始讀取數(shù)據(jù) i = 0 while not rs.eof for j = 1 to rs.fields.countif rs.fields(j - 1) <> "null" thenaa(i, j - 1) = rs.fields(j - 1)

28、.value end if next i = i + 1 rs.movenext wend rs.closeredim ab(ubound(aa, 1), ubound(aa, 2) - 3) for i = 0 to ubound(aa, 1) '線路總數(shù) for j = 2 to ubound(aa, 2) - 1 '對(duì)應(yīng)站點(diǎn)總數(shù) ab(i, j - 2) = aa(i, j) next j next icombo1.text = ab(0, 0)for i = 0 to ubound(ab, 1) '線路總數(shù) for j = 0 to ubound(ab, 2)

29、'對(duì)應(yīng)站點(diǎn)總數(shù)'debug.print ab(i, j)if ab(i, j) <> "" then for k = 0 to combo1.listcount - 1 if combo1.list(k) = ab(i, j) then exit for end if next kif k >= combo1.listcount then combo1.additem ab(i, j) end if end if next j next i'combo4.text賦值-從aa數(shù)組中讀取相應(yīng)站名 ssql = "select

30、 * from 46_朱智強(qiáng)" set rs = new adodb.recordset rs.open ssql, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close msgbox "沒(méi)有找到數(shù)據(jù)", 12, "系統(tǒng)提示" exit sub end ifredim aa(rs.recordcount - 1, 51)'以下開始讀取數(shù)據(jù) i = 0 while not rs.eof for j = 1 to rs.fields.count if rs.fields(j - 1

31、) <> "null" then aa(i, j - 1) = rs.fields(j - 1).value end if next i = i + 1 rs.movenext wend rs.close redim ab(ubound(aa, 1),ubound(aa, 2) - 3) for i = 0 to ubound(aa, 1) '線路總數(shù) for j = 2 to ubound(aa, 2) - 1 '對(duì)應(yīng)站點(diǎn)總數(shù) ab(i, j - 2) = aa(i, j) next j next icombo4.text = ab(0, 0)

32、 for i = 0 to ubound(ab, 1) '線路總數(shù) for j = 0 to ubound(ab, 2) '對(duì)應(yīng)站點(diǎn)總數(shù) 'debug.print ab(i, j) if ab(i, j) <> "" then for k = 0 to combo4.listcount - 1if combo4.list(k) = ab(i, j) then exit for end if next k if k >= combo4.listcount then combo4.additem ab(i, j) end if end

33、if next j next i 'combo5.text賦值-從aa數(shù)組中讀取相應(yīng)站名redim ab(ubound(aa, 1), ubound(aa, 2) - 2) for i = 0 to ubound(aa, 1) '線路總數(shù) for j = 2 to ubound(aa, 2) - 1 '對(duì)應(yīng)站點(diǎn)總數(shù) ab(i, j - 2) = aa(i, j) next j next icombo5.text = ab(0, 0) for i = 0 to ubound(ab, 1) '線路總數(shù) for j = 0 to ubound(ab, 2) '

34、對(duì)應(yīng)站點(diǎn)總數(shù) 'debug.print ab(i, j) if ab(i, j) <> "" then for k = 0 to combo5.listcount - 1 if combo5.list(k) = ab(i, j) then exit for end if next k if k >= combo5.listcount then combo5.additem ab(i, j) end if end if next j next iend sub5.3.3公交線路查詢代碼在查詢界面中的全部線路查詢模塊中點(diǎn)擊顯示,則顯示所有公交線路程序如

35、下:private sub command10_click()dim aa() as stringdim i as integer '訪問(wèn)數(shù)據(jù)庫(kù)和數(shù)據(jù)表 ssql = "select * from 46_朱智強(qiáng)" set rs = new adodb.recordset rs.open ssql, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close msgbox "沒(méi)有找到數(shù)據(jù)", 12, "系統(tǒng)提示" exit sub end if redim aa(rs.rec

36、ordcount - 1, 51) '以下開始讀取數(shù)據(jù) i = 0 while not rs.eof for j = 1 to rs.fields.countif rs.fields(j - 1) <> "null" thenaa(i, j - 1) = rs.fields(j - 1).value end if next i = i + 1 rs.movenext wend rs.close'以下在msfgrid顯示數(shù)據(jù) with msflexgrid2 .rows = i + 1 for i = 0 to ubound(aa, 1) .row

37、 = i + 1 for j = 0 to 50 .textmatrix(.row, j) = aa(i, j) next next end withend sub5.3.4線路查詢代碼在線路查詢模塊,用于查詢所輸入的線路的所有公交站點(diǎn),程序如下:private sub command4_click()'清空內(nèi)容with msflexgrid2for p = 0 to 45for q = 1 to 20.textmatrix(q, p) = "" next nextend withdim ssql as stringdim aa() as stringdim i a

38、s integer'訪問(wèn)數(shù)據(jù)庫(kù)和數(shù)據(jù)表ssql = "select * from 46_朱智強(qiáng) where number='" + combo2.text + "'" set rs = new adodb.recordset rs.open ssql, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close msgbox "沒(méi)有找到數(shù)據(jù)", 12, "系統(tǒng)提示" exit sub end if redim aa(rs.recordco

39、unt - 1, 51) '以下開始讀取數(shù)據(jù) i = 0 while not rs.eof for j = 1 to rs.fields.countif rs.fields(j - 1) <> "null" thenaa(i, j - 1) = rs.fields(j - 1).value end if next i = i + 1 rs.movenext wend rs.close '以下在msfgrid顯示數(shù)據(jù) with msflexgrid2 ' .rows = i + 1 for i = 0 to ubound(aa, 1) .r

40、ow = i + 1 for j = 0 to 50 .textmatrix(.row, j) = aa(i, j) next next end withend sub5.3.5站點(diǎn)查詢代碼經(jīng)過(guò)站點(diǎn)查詢,用于顯示經(jīng)過(guò)輸入的公交站點(diǎn)的所有公交線路,程序如下:private sub command6_click()'清空內(nèi)容with msflexgrid2for p = 0 to 45for q = 1 to 20.textmatrix(q, p) = "" next nextend withdim field1 as stringdim tmp_results() a

41、s integerredim tmp_results(ubound(aa, 1) result_count = 0 'debug.print'debug.print "尋找*" + combo3.text + "*站點(diǎn)" for k = 1 to 50 field1 = "站點(diǎn)" & cstr(k)ssql = "select * from 46_朱智強(qiáng) where " & field1 & "='" + combo3.text + "&

42、#39;" set rs = new adodb.recordset rs.open ssql, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close 'debug.print "沒(méi)有找到數(shù)據(jù)" else'debug.print "找到數(shù)據(jù)!" & rs.fields(0)result_count = result_count + 1tmp_results(result_count)=rs.fiels(0) rs.close end if next k with

43、 msflexgrid2 for i = 1 to .rows - 1 for j = 0 to .cols - 1 .textmatrix(i, j) = "" next next k = 0 'debug.print result_count for i = 1 to result_count 'debug.print tmp_results(i)'以下在msfgrid顯示數(shù)據(jù) tmp_rows = i for j = 0 to 50 'debug.print aa(i, j).textmatrix(tmp_rows, j) = aa(t

44、mp_results(i) - 1, j) next j next i end withend sub5.3.6起點(diǎn)、終點(diǎn)查詢代碼起點(diǎn)、終點(diǎn)查詢,用于顯示經(jīng)過(guò)所輸入的起點(diǎn)和終點(diǎn)站名稱的所有公交線路,程序如下:private sub command7_click()dim ssql as stringdim ssq2 as stringdim aa() as stringdim bb(21, 51) as stringdim cc(21, 51) as stringdim k as integer'清空內(nèi)容with msflexgrid2for i = 1 to 20 for j = 1

45、 to 49 .textmatrix(i, j) = "" next nextend with'計(jì)算有經(jīng)過(guò)起點(diǎn)站的所有公交線路存在bb中 han = 0 for k = 1 to 45 field1 = "站點(diǎn)" & cstr(k) ssql = "select * from 46_朱智強(qiáng) where " & field1 & "='" + combo1.text + "'" set rs = new adodb.recordset rs.open

46、 ssql, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close 'msgbox "沒(méi)有找到數(shù)據(jù)", 12, "系統(tǒng)提示" 'exit sub elseredim aa(rs.recordcount - 1, 50)'以下開始讀取數(shù)據(jù) i = 0 while not rs.eof for j = 1 to rs.fields.countif rs.fields(j - 1) <> "null" then aa(i, j - 1) = rs

47、.fields(j - 1).value 'debug.print "數(shù)據(jù):" & aa(i, j - 1) end if next i = i + 1 rs.movenext wend rs.close 'redim bb(21, ubound(aa, 2) for i = 0 to ubound(aa, 1) 'debug.print han han = han + 1 for j = 0 to ubound(aa, 2) bb(han - 1, j) = aa(i, j)'debug.print "數(shù)據(jù):"

48、& bb(han - 1, j) next next end if next k = k + 1 han2 = 0 '計(jì)算有經(jīng)過(guò)終點(diǎn)站的所有公交線路存在cc中 han1 = 0 for k = 1 to 50 field1 = "站點(diǎn)" & cstr(k)ssq2 = "select * from 46_朱智強(qiáng) where " & field1 & "='" + combo4.text + "'" set rs = new adodb.recordsetrs.

49、open ssq2, cn, adopenkeyset, adlockreadonly if rs.eof then rs.close 'msgbox "沒(méi)有找到數(shù)據(jù)", 64, "系統(tǒng)提示" exit sub elseredim aa(rs.recordcount - 1, 50)'以下開始讀取數(shù)據(jù) i = 0 while not rs.eoffor j = 1 to rs.fields.count if rs.fields(j - 1) <> "null" then aa(i, j - 1) = rs.

50、fields(j - 1).value 'debug.print "數(shù)據(jù):" & aa(i, j - 1) end if next i = i + 1 rs.movenext wend rs.close'redim cc(21, ubound(aa, 2) for i = 0 to ubound(aa, 1) 'debug.print han han1 = han1 + 1 for j = 0 to ubound(aa, 2) cc(han1 - 1, j) = aa(i, j)'debug.print "數(shù)據(jù):"

51、 & cc(han - 1, j) next next end if next k = k + 1'選擇路線經(jīng)過(guò)起點(diǎn)和終點(diǎn) han2 = 0 for m = 0 to 21 for n = 0 to 21if bb(m, 1) = cc(n, 1) and bb(m, 1) <> "" then'以下在msfgrid顯示數(shù)據(jù) with msflexgrid2 han2 = han2 + 1 for j = 0 to 50 .textmatrix(han2, j) = bb(m, j) next end with else end if n

52、ext next if han2 = 0 then msgbox "沒(méi)有直達(dá)路線", 64, "系統(tǒng)提示" else end ifend sub 5.3.7生成報(bào)表代碼生成報(bào)表,用于系統(tǒng)將用戶查詢到的內(nèi)容動(dòng)態(tài)地生成excel報(bào)表,具體程序如下所示:private sub command2_click()dim i as integer'訪問(wèn)數(shù)據(jù)庫(kù)和數(shù)據(jù)表ssql = "select * from 46_朱智強(qiáng)"set rs = new adodb.recordsetrs.open ssql, cn, adopenkeyset, adlockreadonlyif rs.eof then rs.close msgbox "沒(méi)有找到數(shù)據(jù)", 12, "系統(tǒng)提示" exit su

溫馨提示

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