




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、交通信息科技課程設(shè)計(jì)姓 名 zhuzhiwianh 學(xué) 號(hào) 120071501146 年 級(jí) 2007 專 業(yè) 交通工程( 1 )班 成 績 指導(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ù)庫建立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)用。通過該課程設(shè)計(jì),使學(xué)生加深對(duì)課堂教學(xué)內(nèi)容的理解,掌握信息化技術(shù)在城市交通中的應(yīng)用和開發(fā),增強(qiáng)學(xué)生分析和解決實(shí)際交通問題的能力,為在交通智能系統(tǒng)開發(fā)中應(yīng)用相關(guān)知識(shí)解決實(shí)際問題打下基礎(chǔ)。當(dāng)前,我國城市公交乘客信息系統(tǒng)的發(fā)展處于一個(gè)較落后
3、的水平,廣大乘客可以獲得信息的方式很少,需要大力發(fā)展我國的城市公交乘客信息系統(tǒng)。本設(shè)計(jì)以某城市公交系統(tǒng)為開發(fā)對(duì)象,基于數(shù)據(jù)庫查詢技術(shù),完成一個(gè)城市公交系統(tǒng)的出行線路查詢軟件。2 課程設(shè)計(jì)基本要求(1)要求了解和掌握基于數(shù)據(jù)庫應(yīng)用的軟件開發(fā)基本流程和基本方法。(2)能初步應(yīng)用編程語言開發(fā)基于數(shù)據(jù)庫的實(shí)時(shí)查詢系統(tǒng)。(3)按照學(xué)生分組情況,每組針對(duì)指定的城市公交系統(tǒng)進(jìn)行開發(fā)。通過查閱相關(guān)資料,分析、計(jì)算、比較、論證,制訂出合理的設(shè)計(jì)方案,為今后從事相關(guān)工作打下基礎(chǔ)。(4)能應(yīng)用visual basic編程軟件,結(jié)合access數(shù)據(jù)庫實(shí)現(xiàn)基于數(shù)據(jù)庫的應(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ā)語言,所以開發(fā)出的應(yīng)用系統(tǒng)穩(wěn)定性較高。visual basic是一種新型的現(xiàn)代語言。與傳統(tǒng)的語言相比,它在許多方面有重要的改革和突破。下面介紹
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ù)封裝起來作為一個(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、程序代碼精簡,比較容易編寫與維護(hù)。(4) 結(jié)構(gòu)化的程序設(shè)計(jì)語言:visual basic 6.0具有豐富的數(shù)據(jù)類型和眾多的內(nèi)部函數(shù)。其采用模塊化和結(jié)構(gòu)化程序設(shè)計(jì)語言,結(jié)構(gòu)清晰,語法簡單,容易學(xué)習(xí)。(5) 強(qiáng)大的數(shù)據(jù)庫功能:visual basic 6.0利用數(shù)據(jù)控件可以訪問access、foxpro等多種數(shù)據(jù)庫系統(tǒng),也可以訪問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頁面,使用戶能開發(fā)出多功能的網(wǎng)絡(luò)應(yīng)用軟件。3.2 系統(tǒng)開發(fā)工具:確定操作系統(tǒng)后,選擇開發(fā)工具,經(jīng)過綜合比較選擇
7、可視化程序語言visual basic。 visual basic(簡稱vb)是microsoft公司于1191年推出的windows應(yīng)用程序開發(fā)工具,采用可視化、面向?qū)ο笠约笆录?qū)動(dòng)的程序設(shè)計(jì)模式,具有強(qiáng)大的數(shù)據(jù)庫編程能力,利用vb的數(shù)據(jù)控件和數(shù)據(jù)庫管理器等工具,可直接建立或處理microsoft access格式的數(shù)據(jù)庫,還可直接編輯和訪問其他外部數(shù)據(jù)庫,同時(shí)還提供開放式數(shù)據(jù)庫訪問(odbc)功能,可通過直接訪問或者建立連接的方式使用并操作遠(yuǎn)程服務(wù)器上的關(guān)系型數(shù)據(jù)庫,如sql server、oracle等。因此,vb成為目前最便捷、最有效率的開發(fā)工具之一。數(shù)據(jù)庫選用microsoft公司的
8、access產(chǎn)品作為數(shù)據(jù)庫應(yīng)用程序。是office系列應(yīng)用軟件之一。它提供了表、查詢、窗體、報(bào)表、頁、宏、模塊7種用來建立數(shù)據(jù)庫系統(tǒng)的對(duì)象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、界面設(shè)計(jì)、報(bào)表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。它是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有存儲(chǔ)方式單一 、面向?qū)ο蟆⒔缑嬗押?、易操作、集成環(huán)境、處理多種數(shù)據(jù)信息的特點(diǎn),access還支持odbc(開發(fā)數(shù)據(jù)庫互連,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ù)庫報(bào)表和窗體等。access還可以將程序應(yīng)用于網(wǎng)絡(luò),并與網(wǎng)絡(luò)上的動(dòng)態(tài)數(shù)據(jù)相聯(lián)接。利用數(shù)據(jù)庫訪問頁對(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)庫的真實(shí)性與實(shí)時(shí)性。(3)打印輸出。系統(tǒng)可以將用戶查詢到的內(nèi)容動(dòng)態(tài)地生成報(bào)表,并打印輸出。4 系統(tǒng)實(shí)現(xiàn)原理 (1)access數(shù)據(jù)庫的數(shù)據(jù)格式?access數(shù)據(jù)表中數(shù)據(jù)格式為文本類型因?yàn)楸碇械臄?shù)據(jù)為各個(gè)線路的站點(diǎn),保存的數(shù)據(jù)庫類型為.mdb格式,本過程應(yīng)在access2003環(huán)境下下進(jìn)行操作,因?yàn)樵趘b6.0中數(shù)據(jù)庫是access2003的,所引用的microsoft jet引擎只能識(shí)別access2003或之前版本格式的文件。(2)vb 如何與access數(shù)據(jù)庫文件實(shí)現(xiàn)聯(lián)結(jié)?vb連接access數(shù)據(jù)庫可以通過控件,也可以通過引用來連接數(shù)據(jù)庫。如果是控件
11、的話有data、adodc控件等。如果是引用的話在“工程”“引用”中microsoft active data objects 2.6 library?,F(xiàn)在一般都是使用引用來連接數(shù)據(jù)庫。microsoft jet and replication objects 2.5 librarymicrosoft active data objects 2.6 library通用dim cn as adodb.connection'定義一個(gè)數(shù)據(jù)庫連接對(duì)象 dim rs as adodb.recordset '聲明數(shù)據(jù)集 dim str as string'定義str為字符串型
12、39;建立與數(shù)據(jù)庫的連接str = "provider=microsoft.jet.oledb.4.0;persist security info=false;data source=" & app.path & "46.mdb" 'str;函數(shù)引microsoft.jet.oledb.4.0 來調(diào)用46數(shù)據(jù)表set cn = new adodb.connection'創(chuàng)建一個(gè)cn作為數(shù)據(jù)庫連接cn.open str '數(shù)據(jù)庫連接對(duì)象cn執(zhí)行str函數(shù)的語句(3)數(shù)據(jù)庫查詢的思路(1)首先確定使用何種數(shù)據(jù)庫,如選a
13、ccess數(shù)據(jù)庫。(2)新建access數(shù)據(jù)庫。(3)新建各數(shù)據(jù)表。確定每個(gè)數(shù)據(jù)表的字段及數(shù)據(jù)類型。各數(shù)據(jù)表應(yīng)有關(guān)鍵字段。(4)在vb中使用ado數(shù)據(jù)對(duì)象或控件連接數(shù)據(jù)庫,構(gòu)思vb的運(yùn)行界面。(5)靈活使用sql結(jié)構(gòu)化查詢語句操縱數(shù)據(jù)庫。5 系統(tǒng)實(shí)現(xiàn)5.1 青島市公交數(shù)據(jù)庫建立: 青島古稱膠澳,位于山東半島的南部,瀕臨黃海,是我國重要的海濱城市之一,也是我國著名的風(fēng)景旅游勝地和國家歷史文化名城。青島的公交非常方便,四通八達(dá)、無人售票。嶄新的公交車內(nèi)車外都很干凈。普通公交車單一票價(jià)1元,空調(diào)車單一票價(jià)2元。 公交26、201、202路車是沿著海邊走,途徑棧橋
14、、八大關(guān)等很多景點(diǎn),起點(diǎn)是輪渡或火車站。這里需要特別注意的是26路公交車能到達(dá)青島的大多數(shù)景點(diǎn),比如:中山公園、海軍博物館、青島海底世界、康有為故居、花石樓、湛山寺、迎賓館等。到青島旅游最方便、舒適的方法莫過于乘空調(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條公交路線來建立該市公交線路數(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)擊查詢就可以查詢該線路經(jīng)過的所有公交站點(diǎn),見圖5所示;(3)經(jīng)過公交站點(diǎn)名稱查詢,在下拉菜單中選擇要經(jīng)過的公交站點(diǎn)名稱,點(diǎn)擊查詢就可以查詢經(jīng)過該站點(diǎn)的所有公交線路,見圖6所示;(4)起點(diǎn)、終點(diǎn)查詢,選擇起點(diǎn)、終點(diǎn)站名稱點(diǎn)擊確定就會(huì)跳出經(jīng)過這兩個(gè)站點(diǎn)的所有公交線路,如果沒有直達(dá)線路,則會(huì)提示“沒有直達(dá)線路”,見圖7所示;(5)生成報(bào)表功能,點(diǎn)擊此按鈕就會(huì)自動(dòng)輸出所有公交線路的excel表格,見圖8所示??偠灾?,本查詢系統(tǒng)操作簡單,適合廣大群眾使用。圖3 查詢系統(tǒng)界面(1) 點(diǎn)擊顯示全部線路查詢,可顯示查詢結(jié)果,如圖4所示: 圖4 查
17、詢結(jié)果顯示界面(2) 在線路查詢中,在下拉菜單中選擇要查詢的公交線路名稱點(diǎn)擊查詢,經(jīng)過所有公交站點(diǎn)結(jié)果如圖5所示。圖5顯示線路查詢結(jié)果界面(3) 在站點(diǎn)查詢中,在下拉菜單中選擇要經(jīng)過的公交站點(diǎn)名稱,點(diǎn)擊查詢就可以查詢經(jīng)過該站點(diǎn)的所有公交線路,結(jié)果如圖6所示。圖6 顯示站點(diǎn)查詢結(jié)果界面(4) 在起點(diǎn)、終點(diǎn)查詢中,選擇起點(diǎn)、終點(diǎn)站名稱點(diǎn)擊確定就會(huì)跳出經(jīng)過這兩個(gè)站點(diǎn)的所有公交線路,如果沒有直達(dá)線路,則會(huì)提示“沒有直達(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)闆]有設(shè)計(jì)數(shù)據(jù)輸入、保存和刪除公交數(shù)據(jù)表中記錄數(shù)據(jù)的程序,所以沒辦法顯示它們各功能界面;還有顯示公交數(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ù)庫的連接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 "沒有找到數(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 "沒有找到數(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 "沒有找到數(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 '訪問數(shù)據(jù)庫和數(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 "沒有找到數(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'訪問數(shù)據(jù)庫和數(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 "沒有找到數(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)過站點(diǎn)查詢,用于顯示經(jīng)過輸入的公交站點(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 "沒有找到數(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)過所輸入的起點(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)過起點(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 "沒有找到數(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)過終點(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 "沒有找到數(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)過起點(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 "沒有直達(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'訪問數(shù)據(jù)庫和數(shù)據(jù)表ssql = "select * from 46_朱智強(qiáng)"set rs = new adodb.recordsetrs.open ssql, cn, adopenkeyset, adlockreadonlyif rs.eof then rs.close msgbox "沒有找到數(shù)據(jù)", 12, "系統(tǒng)提示" exit su
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025授權(quán)合同 房地產(chǎn)評(píng)估委托協(xié)議書
- 山東省日照市莒縣第三中學(xué)教育集團(tuán)2024-2025學(xué)年九年級(jí)下學(xué)期第一次月考數(shù)學(xué)試題(含簡單答案)
- 專業(yè)英語 Unit 16教案學(xué)習(xí)資料
- 《人類的“老師”》課件
- 房產(chǎn)公司安全培訓(xùn)學(xué)習(xí)
- 江蘇省連云港市城頭高級(jí)中學(xué)2024-2025學(xué)年高二下學(xué)期第一次質(zhì)量檢測政治試題(原卷版+解析版)
- 保險(xiǎn)行業(yè)工作計(jì)劃
- 保險(xiǎn)行業(yè)開門紅早會(huì)主持詞
- 現(xiàn)代藝術(shù)未來科技人文住宅景觀方案投標(biāo)項(xiàng)目
- 《宮頸病變》課件大綱
- 【基于UASB+SBR的組合處理工藝的制藥廠廢水處理工藝設(shè)計(jì)12000字】
- 手術(shù)室對(duì)病理標(biāo)本處置出現(xiàn)錯(cuò)誤的原因分析品管圈魚骨圖柏拉圖
- 澳洲堅(jiān)果雪花酥加工技術(shù)規(guī)程
- 小升初個(gè)人簡歷模板下載
- 6款課堂活動(dòng)隨機(jī)點(diǎn)名-抽獎(jiǎng)模板(可編輯)兩套
- 牛產(chǎn)后疾病課件
- 無人機(jī)在公安領(lǐng)域的應(yīng)用
- 生產(chǎn)建設(shè)項(xiàng)目土壤流失量測算導(dǎo)則計(jì)算程序
- 5G共址基站電磁輻射投訴監(jiān)測實(shí)例分析與討論
- 16-第六章-污染事故應(yīng)急GIS-資源環(huán)境信息系統(tǒng)課件
- 慢性心力衰竭“新四聯(lián)”藥物治療臨床決策路徑專家共識(shí)(2022年)解讀
評(píng)論
0/150
提交評(píng)論