公交車(chē)查詢系統(tǒng)
公交車(chē)查詢系統(tǒng),公交車(chē),查詢,系統(tǒng)
畢業(yè)設(shè)計(jì)公交車(chē)查詢管理系統(tǒng)摘 要1Abstract2第一章 引言411 課題背景412 系統(tǒng)簡(jiǎn)介51. 3 開(kāi)發(fā)軟件介紹6第二章 系統(tǒng)的分析821 系統(tǒng)開(kāi)發(fā)的目標(biāo)和思想922 系統(tǒng)的可行性分析13第三章 系統(tǒng)的設(shè)計(jì)1831 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)1832 系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)33 界面設(shè)計(jì)與代碼設(shè)計(jì)2324結(jié)束語(yǔ)46致謝47參考文獻(xiàn)49摘 要隨著經(jīng)濟(jì)的發(fā)展,社會(huì)的進(jìn)步,計(jì)算機(jī)越來(lái)越深入到我們?nèi)粘5墓ぷ鲗W(xué)習(xí)及生活中,成為我們?nèi)粘I钪胁豢扇鄙俚妮o助工具。 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。它已經(jīng)深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設(shè)計(jì)、圖形圖像處理、教育培訓(xùn)以及游戲娛樂(lè)等。各行各業(yè)的人們無(wú)須經(jīng)過(guò)特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開(kāi)發(fā)適合自己特殊需求的軟件。以前開(kāi)發(fā)Windows應(yīng)用軟件是專(zhuān)業(yè)人員的工作,需要掌握許多專(zhuān)業(yè)知識(shí)和經(jīng)過(guò)特殊的培訓(xùn)才能勝任。現(xiàn)在不同了,即使你沒(méi)有接受過(guò)嚴(yán)格的程序設(shè)計(jì)訓(xùn)練,使用Visual Basic也一樣能夠開(kāi)發(fā)出功能強(qiáng)大、適合自己特殊需求的應(yīng)用程序了。Visual Basic繼承了Basic語(yǔ)言易學(xué)易用的特點(diǎn),特別適合于初學(xué)者學(xué)習(xí)Windows系統(tǒng)編程。 公交車(chē)查詢管理系統(tǒng)用計(jì)算機(jī)管理公交車(chē)路線信息的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前公交車(chē)查詢管理都是由工作人們?nèi)斯げ樵兊姆绞絹?lái)操作的.現(xiàn)在一般的公交車(chē)查詢都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)路線自動(dòng)管理程序來(lái)幫助人們進(jìn)行更有效的公交車(chē)路線查詢。公交車(chē)查詢管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。 經(jīng)過(guò)分析,我們使用 MICROSOFT公司的 VISUAL BASIC開(kāi)發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_(kāi)發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡(jiǎn)潔操縱數(shù)據(jù)庫(kù)的智能化對(duì)象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對(duì)初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。因?yàn)楸救四芰τ邢?,加上時(shí)間緊迫,所以設(shè)計(jì)出來(lái)的本系統(tǒng)可能功能比較簡(jiǎn)單,另外本系統(tǒng)是單機(jī)版,不能實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)操作,這些都有待于我在以后的工作學(xué)習(xí)中進(jìn)一步改進(jìn)。關(guān)鍵字:公交車(chē)查詢管理,MIS,visual basic ,數(shù)據(jù)庫(kù)AbstractWith economic development, social progress, the computer and went to work learning and our daily lives, we become an indispensable tool in everyday life. As science and technology continue to improve, computer science increasingly mature, and its powerful functions for the people to deeply understand that it has entered human society in various fields and is playing an increasingly important role. It has to go down to the daily work and life, such as word processing, information management, aided design, graphics and video processing, as well as education and training game entertainment. All people without special training will be able to use computers to complete numerous complex. However, although now the world has been filled with an over-abundance of software, but they still can not meet the special needs of the various users, it also had to develop software suited to their particular needs. Professional Windows application software development before the work is needed in many professional knowledge and competence through special training. Different now, even if you have not received strict procedures designed training, the use of Visual Basic also like to develop a powerful, and suited to their special needs applications. Visual Basic inherited Basic language learn user-friendly features, and are particularly suited to new learner learning Windows system programming. Transportation vehicles using computer management information management system of a computer model cars line information technology application innovation in the computer before the public has not yet universal car enquiries are managed by the working people to operate manual enquiries. Now the general public enquiries have adopted computer intelligent vehicle management using the computer as a tool for automatic computer line management procedures to help people more effectively model cars line enquiries. Public enquiry management system is a typical car information management system (MIS), including its main development background to the establishment and maintenance of the database and front-end application development 2. The request for the establishment of strong data consistency and integrity, good for the security of the data. For the latter request applications functions, such as easy to use features. After analysis, we use Microsoft visual basic development tool companies, the use of its various object-oriented development tools, especially data that can be easily accessible and concise window manipulation database intelligent objects, the first prototype application system in a short time and then, computation of the initial prototype system needs to constantly revise and improve until the formation of a viable system of user satisfaction. Because I limited capacity, coupled with time constraints, it designed the system may function relatively simple, and the system is single edition, not Internet operations network, which I have yet to learn that in future work to further improve. keyword : public car enquiries management MIS,visual basic database11 課題背景公交車(chē)查詢管理系統(tǒng)用計(jì)算機(jī)管理公交車(chē)路線信息的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前公交車(chē)查詢管理都是由工作人們?nèi)斯げ樵兊姆绞絹?lái)操作的.現(xiàn)在一般的公交車(chē)查詢都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)路線自動(dòng)管理程序來(lái)幫助人們進(jìn)行更有效的公交車(chē)路線查詢。公交車(chē)查詢管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。12 系統(tǒng)簡(jiǎn)介本系統(tǒng)主要方便人們查詢自己的公交車(chē)路線,方便人們乘坐公交.本系統(tǒng)主要由以下幾大功能組成:一. 按車(chē)次查詢模塊二. 按起終點(diǎn)站查詢?nèi)? 查找經(jīng)過(guò)站點(diǎn)最小的路線1. 開(kāi)發(fā)軟件介紹Visual Basic 6.0是Micrsoft公司出品的開(kāi)發(fā)工具,Visual Basic是一種可視化的,面向?qū)ο蟮腤indows開(kāi)發(fā)語(yǔ)言,它具有易用,通用和開(kāi)發(fā)效率高的特點(diǎn)。隨著微軟對(duì)它不斷地改進(jìn)以及計(jì)算機(jī)本身性能的提高,使得Visual Basic越來(lái)越適合一般的應(yīng)用程序開(kāi)發(fā)。正如Bill Gate所說(shuō),世界上絕大多數(shù)的Windows應(yīng)用程序是用Visual Basic編寫(xiě)的。在眾多的開(kāi)發(fā)工具中,我們?yōu)槭裁匆x擇Visual Basic6.0呢?因?yàn)閂B具有眾多其它開(kāi)發(fā)工具所沒(méi)有的優(yōu)點(diǎn)!具體介紹如下:u 開(kāi)發(fā)的高效u 語(yǔ)言的高效u 編譯的高效u 執(zhí)行的高效u 維護(hù)的高效基于以上理由,我們毫不憂郁的選擇了VB6.0做為我們的開(kāi)發(fā)工具!主要的控件及其基本屬性,事件簡(jiǎn)介u 命令按鈕類(lèi)的控件:1) Caption屬性:用來(lái)顯示在控件上的標(biāo)題。2) Enable屬性:控制控件的激活狀態(tài)灰色或可用。3) Appearance屬性:值為1時(shí),則以3D效果顯示該控件,0則不然。4) Backcolor屬性:用來(lái)改變?cè)诎粹o上顯示圖像的背景色。5) Cancel屬性:該屬性決定按鈕是否為一個(gè)”取消”按鈕。6) Default屬性:決定哪一個(gè)命令按鈕控件是窗體的缺省命令按鈕.7) Font屬性:控制各種文字字體類(lèi)型.8) Left,top,height,width屬性:設(shè)定控件的位置與大小.9) Style,picture屬性:決定按鈕的顯示方式是否為圖像形式出現(xiàn).10) Visible屬性:確定控件運(yùn)行時(shí)是否為可見(jiàn).11) Index屬性:當(dāng)控件為一控件數(shù)組時(shí),此屬性值為該控件在數(shù)組的下標(biāo)值.12) DownPicture屬性:設(shè)置/返回一個(gè)對(duì)圖片的引用,該圖片在按鈕被單擊處于壓下?tīng)顟B(tài)時(shí)顯示。13) DisabledPicture屬性:設(shè)置/返回一個(gè)對(duì)圖片的引用,該圖片在控件無(wú)效時(shí)顯示在控件中。14) MaskColor屬性:設(shè)置/返回一個(gè)在按鈕的圖片中作為“掩碼“的的顏色15) Picture屬性:設(shè)置返回commandButton控件中要顯示的圖片。u 命令按鈕類(lèi)的事件:1) 單擊事件Click事件(1) 觸發(fā)與適用此事件是在一個(gè)命令按鈕對(duì)象上按下然后釋放一個(gè)鼠標(biāo)按鈕時(shí)發(fā)生。命令按鈕的Click事件僅對(duì)當(dāng)單擊鼠標(biāo)時(shí)發(fā)生。(2) 事件處理過(guò)程按鈕單擊事件的處理過(guò)程為: Private Sub object-Click(Index As Integer)其中Object為引發(fā)該事件的對(duì)象名稱(chēng)。如果是命令按鈕的控件是數(shù)組,則需要使用Index參數(shù)標(biāo)識(shí)該控件。2) 獲得焦點(diǎn)GotFocus事件(1) 觸發(fā)與適用 當(dāng)命令按鈕獲得焦點(diǎn)產(chǎn)生該事件,獲得焦點(diǎn)可以通過(guò)諸如Tab切換或單擊對(duì)象之類(lèi)的用戶動(dòng)作,或在代碼中用SetFocus方法改變焦點(diǎn)來(lái)實(shí)現(xiàn)。(2) 事件處理過(guò)程命令按鈕GotFoucs事件處理過(guò)程為:Private Sub Object-GotFocus(Index As Integer)3) LostFocus事件:當(dāng)一個(gè)對(duì)象失去焦點(diǎn)時(shí)發(fā)生4) KeyDown事件:當(dāng)命令按鈕具有焦點(diǎn)時(shí)按下一個(gè)鍵時(shí)發(fā)生5) KeyUp事件:當(dāng)命令按鈕具有焦點(diǎn)時(shí)釋放一個(gè)鍵時(shí)發(fā)生。6) KeyPress事件:當(dāng)用戶按下或松開(kāi)一個(gè)ANSI鍵時(shí)發(fā)生。7) MouseDown事件:當(dāng)在命令按鈕上按下鼠標(biāo)按鈕時(shí)發(fā)生。8) MouseMove事件:當(dāng)命令按鈕上移動(dòng)鼠標(biāo)時(shí)發(fā)生。9) MouseUp事件:當(dāng)在命令按鈕上釋放鼠標(biāo)按鈕時(shí)發(fā)生。 u 標(biāo)簽框類(lèi)的控件類(lèi)的控件:1) Caption屬性:在應(yīng)用程序界面上加入說(shuō)明。2) Autosize屬性:決定控件是否自動(dòng)改變大小以顯示其全部?jī)?nèi)容。3) Backstyle屬性:用以指示標(biāo)簽是否透明.4) Bordstyle屬性:用以設(shè)定控件是否有邊框。u 文本框類(lèi)的控件:1) Text屬性:通過(guò)像text屬性賦值的方法來(lái)改變?cè)搶傩缘闹怠?) Maxlength屬性:該屬性設(shè)定在文本框控件中能夠輸入的最大字符數(shù)。3) Multline屬性:該屬性設(shè)定text字符串中是否接受換行符。4) Scrollbars屬性:該屬性決定是否為文本框加滾動(dòng)條。5) Passwordchar屬性:該屬性設(shè)定輸入文本的特殊顯示字符,在設(shè)計(jì)密碼程序時(shí)非常有用。6) Change事件屬性:文本框的內(nèi)容發(fā)生改變時(shí),相應(yīng)的控件之間發(fā)生相應(yīng)的改變,具有即時(shí)性。7) Keypress:事件由用戶在文本框控件中按任意鍵觸發(fā)。8) Alignment屬性:設(shè)定控件中的文本對(duì)其方式9) Appearance屬性:設(shè)定一個(gè)對(duì)象在運(yùn)行時(shí)是否可以3D效果顯示。10) BackColor屬性:設(shè)置返回背景色11) BorderStyle屬性:設(shè)置對(duì)象的邊框樣式12) DataField屬性:設(shè)定數(shù)據(jù)使用者將被綁定到的字段名13) DataFormat屬性:設(shè)定DataFormat對(duì)象,用于數(shù)據(jù)綁定14) DataMember屬性:從數(shù)據(jù)供應(yīng)程序提供的幾個(gè)數(shù)據(jù)成員中返回/設(shè)定一個(gè)特定的數(shù)據(jù)成員15) DataSource屬性:設(shè)定控件綁定的一個(gè)數(shù)據(jù)源16) DragIcon屬性:設(shè)定圖標(biāo),它將在拖放操作中作為指針顯示17) DragMode模式:設(shè)定一個(gè)值,確定在拖放操作中所用方式18) Enabled屬性:設(shè)置/返回運(yùn)行時(shí)TextBox是否相應(yīng)用戶事件19) Font屬性:設(shè)置/返回字體屬性20) ForeColor屬性:設(shè)置/返回文本的前景色21) Height屬性:設(shè)置/返回TextBox的高度22) IMEMode屬性:設(shè)置/返回?cái)?shù)值用來(lái)確定輸入方法編輯器的狀態(tài)23) Index屬性:設(shè)置/返回唯一的標(biāo)識(shí)控件數(shù)組中該控件的編號(hào)24) Left屬性:設(shè)置/返回TextBox控件的水平位置25) Locked屬性:設(shè)置/返回TextBox中文本是否可編輯26) LinkItem屬性:設(shè)置/返回DDE與另一個(gè)應(yīng)用程序會(huì)話時(shí),傳給接受端的數(shù)據(jù)27) MaxLength屬性:設(shè)置/返回一個(gè)值,指定在TextBox控件中能夠輸入的字符最大值28) MouseIcon屬性:設(shè)置/返回自定義鼠標(biāo)的圖標(biāo)29) Top屬性:設(shè)置/返回TextBox控件的垂直位置30) Tag屬性:存儲(chǔ)過(guò)程所需的附加數(shù)據(jù)u 文本框類(lèi)的事件:1) Change事件:當(dāng)改變文本框內(nèi)容時(shí)發(fā)生2) Click事件:鼠標(biāo)單擊控件時(shí)發(fā)生3) DblClick事件:用鼠標(biāo)左鍵雙擊控件時(shí)發(fā)生4) DragDrop事件:在一個(gè)完整的拖放動(dòng)作完成或使用Drag方法,并將其Action參數(shù)設(shè)置為2時(shí)發(fā)生5) DragOver事件:在拖放操作正在進(jìn)行時(shí)發(fā)生6) GotFocus事件:當(dāng)一個(gè)命令按鈕獲得焦點(diǎn)時(shí)發(fā)生7) LinkClose事件:當(dāng)一個(gè)DDE對(duì)話結(jié)束時(shí)發(fā)生8) LinkError事件:當(dāng)一個(gè)DDE對(duì)話框過(guò)程中出現(xiàn)錯(cuò)誤時(shí),該事件發(fā)生9) KeyDown事件:當(dāng)命令按鈕具有焦點(diǎn)時(shí)按下一個(gè)鍵時(shí)發(fā)生10) Validate事件:在焦點(diǎn)轉(zhuǎn)換到另一個(gè)控件之前發(fā)生,此時(shí)該控件的Causes Validation 屬性值設(shè)置為T(mén)rue u 單選按鈕類(lèi)的控件:1) Caption屬性:顯示在控件上的文本,是單選按鈕的標(biāo)題。2) Alignment屬性:決定單選按鈕的標(biāo)題在控件上的位置。3) Enable屬性:該控件為灰色時(shí)為false,表示運(yùn)行時(shí)不可用。4) Index屬性:屬性值表示為單選按鈕組成的控件中某個(gè)按鈕的索引值。5) Tabindex屬性:建立控件時(shí),vb自動(dòng)為其分配一個(gè)tabindex值,利用tab鍵可以在控件之間切換焦點(diǎn)。6) Value屬性:反映控件狀態(tài)的屬性,返回true表示已選擇了該按鈕。7) Appearance 屬性:設(shè)置/返回一個(gè)對(duì)象在運(yùn)行時(shí)是否以3D效果顯示。8) BackColor 屬性:設(shè)置/返回背景色。9) Container 屬性:設(shè)置/返回Form上的控件屬性。10) DataField 屬性:設(shè)置/返回?cái)?shù)據(jù)使用者將被綁定到的字段名。11) DataFormat 屬性:設(shè)置/返回DataFormat對(duì)象,一個(gè)綁定對(duì)象將附加到它。12) DisabledPicture 屬性:設(shè)置/返回一個(gè)對(duì)圖像的引用,該圖片在控件無(wú)效時(shí)顯示在控件中。13) DownPicture 屬性:設(shè)置/返回一個(gè)對(duì)圖片的引用,該圖片在控件單擊下處于壓下?tīng)顟B(tài)時(shí)顯示。14) DragMode 屬性:設(shè)置/返回一個(gè)值,確定在拖放操作中所用的方式。15) Font 屬性:設(shè)置/返回字體屬性。16) FontBold 屬性:設(shè)置/返回字體粗體樣式。17) FontItalic 屬性:設(shè)置/返回字體斜體樣式。 18) FontStrikethru 屬性:設(shè)置/返回字體刪除線樣式。19) FontUnderLine 屬性:設(shè)置/返回字體下劃線樣式。20) FontName 屬性:設(shè)置/返回控件中顯示文本所用的字體大小。21) FontSize 屬性:設(shè)置/返回控件中顯示文本所用的字體大小22) Height 屬性:設(shè)置/返回控件的高度。23) MaskColor 屬性:設(shè)置/返回一個(gè)在控件的圖片中作為掩碼的顏色。24) MousePointer 屬性:設(shè)置/返回一個(gè)值,該值指示在運(yùn)行時(shí)當(dāng)鼠標(biāo)移動(dòng)到對(duì)象上時(shí)顯示的指針類(lèi)型。u 單選按鈕類(lèi)的常用事件:1) Click 事件:鼠標(biāo)單擊控件時(shí)發(fā)生。2) DbClick事件: 當(dāng)在一個(gè)對(duì)象上按下和釋放鼠標(biāo)按鈕并再次按下和釋放按鈕時(shí),該事件發(fā)生。3) DragDrop事件:在一個(gè)完整的拖放動(dòng)作或使用Drag方法,并將其Action參數(shù)設(shè)置位2時(shí),該事件發(fā)生。4) DragOver事件: 在拖放操作正在進(jìn)行時(shí)發(fā)生。5) GotFocus事件: 當(dāng)獲的對(duì)象焦點(diǎn)時(shí)發(fā)生。6) LostFocus事件:當(dāng)對(duì)象失去焦點(diǎn)時(shí)發(fā)生。7) KeyDown事件:當(dāng)控件具有焦點(diǎn)時(shí)按下一個(gè)鍵時(shí)發(fā)生。8) KeyUp事件: 當(dāng)控件具有焦點(diǎn)時(shí)釋放一個(gè)鍵時(shí)發(fā)生。9) KeyPress事件:當(dāng)用戶按下或釋放ANSI一個(gè)鍵時(shí)發(fā)生。10) MouseDown事件:當(dāng)在控件上按下鼠標(biāo)鍵時(shí)發(fā)生。11) MouseMove事件:在控件上移動(dòng)鼠標(biāo)時(shí)發(fā)生。12) MouseUp事件:在控件上釋放鼠標(biāo)時(shí)發(fā)生。u 復(fù)選按鈕類(lèi)的控件:1) Caption屬性:缺省為check1。2) Index屬性:該屬性值為復(fù)選框控件數(shù)組的下標(biāo).3) Value屬性:value為0表空白,為1表勾號(hào),為2表示灰色勾號(hào).4) Container屬性:Form控件上的容器。5) DataChangeed屬性:設(shè)置/返回一個(gè)值,指出被綁定的控件中的數(shù)據(jù)已經(jīng)被某進(jìn)程修改。6) DataField屬性:設(shè)置或返回?cái)?shù)據(jù)使用者將被綁定到的字段名。7) DataFormat 屬性:設(shè)置或返回DataFormat對(duì)象,用于數(shù)據(jù)綁定。8) Datasource屬性:設(shè)置或返回控件綁定的一個(gè)數(shù)據(jù)源。9) DisabledPicture屬性:設(shè)置或返回一個(gè)對(duì)圖片的引用,該圖片在控件無(wú)效時(shí)顯示在控件中。10) DownPicture 屬性:設(shè)置或返回一個(gè)對(duì)圖片的引用,該圖片在控件被單擊處于壓下?tīng)顟B(tài)時(shí)顯示。11) DragIcon屬性:設(shè)置或返回圖標(biāo),它將在拖放操作中做為指針顯示。12) DragMode屬性:設(shè)置返回一個(gè)值,確定在拖放操作中所用方式。13) Font屬性:設(shè)置或返回字體的屬性。14) Name屬性:設(shè)置或返回控件的標(biāo)識(shí)名。15) Value屬性:設(shè)置或返回控件的狀態(tài)。u 復(fù)選按鈕類(lèi)的控件的基本事件:1) Click事件:鼠標(biāo)單擊控件時(shí)發(fā)生。2) DragDrop事件:在一個(gè)完整的拖放動(dòng)作完成或使用Drag方法,并將其Action參數(shù)設(shè)置為2時(shí)發(fā)生。3) DragOver事件:在拖放操作正在進(jìn)行時(shí)發(fā)生。4) GotFocus事件:在對(duì)象獲的焦點(diǎn)時(shí)發(fā)生。,5) OLECompleteDrag事件:當(dāng)源部件被放到目標(biāo)時(shí)發(fā)生,并通知源部件拖放操作被執(zhí)行或取消。6) OLEDragDrag事件:當(dāng)源部件決定放操作能發(fā)生,卻源部件被放到目標(biāo)部件時(shí),此事件發(fā)生。u 框架類(lèi)的控件:1) List屬性:列表框控件的表項(xiàng)是使用數(shù)組的方式保存,數(shù)組的每一個(gè)元素存儲(chǔ)列表控件的一個(gè)表項(xiàng)1) Listcount屬性:控件列表部分項(xiàng)目的個(gè)數(shù)。2) Mutselect屬性:可以設(shè)置列表框?yàn)閱芜x或允許多選屬性.3) Selectd屬性:標(biāo)示一個(gè)數(shù)組,數(shù)組各元素為:4) Selected(0),selected(1)u 滾動(dòng)條類(lèi)的控件:1) Value屬性:滾動(dòng)條上滑塊所在位置由value值所決定。2) Max和min屬性:對(duì)value值的最大,最小進(jìn)行限制。3) Largechange屬性:用戶點(diǎn)擊滾動(dòng)條與鍵頭之間的區(qū)域時(shí),value的改變量。4) OnClick事件:用來(lái)添加按鈕的單擊事件所執(zhí)行的程序代碼。u 定時(shí)器類(lèi)類(lèi)的控件:1) Interval屬性:表示定時(shí)的時(shí)間間隔,以毫秒為單位。2) Enable屬性:為true時(shí)(缺省值),激活定時(shí)器開(kāi)始計(jì)時(shí);為false時(shí)處于休眠狀態(tài).數(shù)據(jù)庫(kù)連接方式選擇Visual basic6.0連接數(shù)據(jù)庫(kù)的主要方式以下幾種方式:一是:用data控件進(jìn)行數(shù)據(jù)庫(kù)鏈接 ,二是利用adodc(ADO Data Control)進(jìn)行數(shù)據(jù)庫(kù)鏈接 。三是: 利用DataEnvironment進(jìn)行數(shù)據(jù)庫(kù)鏈接.四是利用ADO(ActiveX Data Objects)進(jìn)行編程:現(xiàn)在我們來(lái)大致對(duì)這幾種技術(shù)應(yīng)用介紹:一、 用data控件進(jìn)行數(shù)據(jù)庫(kù)鏈接.第一步:給窗體添加一個(gè)Data控件。第二步:用Access建立一個(gè)名為Pad的數(shù)據(jù)庫(kù),在庫(kù)中建立一個(gè)表Myset,給表添加四個(gè)字段:backcolor(數(shù)據(jù)),forecolor(文本),fontname(文本),fontsize(文本)。注意:請(qǐng)將庫(kù)文件存入程序所在目錄。 如果你的機(jī)器沒(méi)安裝有Access,可通過(guò)VB建庫(kù)。二、 利用adodc(ADO Data Control)進(jìn)行數(shù)據(jù)庫(kù)鏈接:使用adodata控件訪問(wèn)數(shù)據(jù)庫(kù)可以完全不用編寫(xiě)代碼,只需要通過(guò)簡(jiǎn)單的設(shè)置和操作其屬性就可以實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接,通過(guò)綁定數(shù)據(jù)感知控件,就能提供一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的界面,用來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的瀏覽,貼加,刪除,修改等操作.三、 利用DAO對(duì)數(shù)據(jù)庫(kù)進(jìn)行操縱:在visual basic 中提供了兩種與jet數(shù)據(jù)引擎接口的方法:data控件與數(shù)據(jù)訪問(wèn)對(duì)象(DAO)DAO是database object的英文縮寫(xiě),要訪問(wèn)數(shù)據(jù)庫(kù)一方面數(shù)據(jù)庫(kù)要提供訪問(wèn)接口,另一方面要在編程環(huán)境中有對(duì)數(shù)據(jù)庫(kù)的支持.DAO模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的對(duì)象類(lèi)的集合.他們提供了管理關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)所需要的全部操作屬性和方法,這其中包括建立數(shù)據(jù)庫(kù),定義表,字段和建立表間關(guān)系,定位和查詢數(shù)據(jù)庫(kù)等.關(guān)系數(shù)據(jù)庫(kù)介紹:關(guān)系數(shù)據(jù)庫(kù)是目前各類(lèi)數(shù)據(jù)庫(kù)中最重要、最流行的數(shù)據(jù)庫(kù),他應(yīng)用數(shù)學(xué)方法來(lái)處理數(shù)據(jù)庫(kù)數(shù)據(jù),是目前使用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng)。20世紀(jì)70年代以后開(kāi)發(fā)的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品幾乎都是基于關(guān)系的。在數(shù)據(jù)庫(kù)發(fā)展的歷史上,最重要的成就就是關(guān)系模型。 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)與非關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別是:關(guān)系系統(tǒng)只有“表“這一種數(shù)據(jù)結(jié)構(gòu);而非關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)還有其他數(shù)據(jù)結(jié)構(gòu),對(duì)這些數(shù)據(jù)結(jié)構(gòu)有其他的操作。結(jié)構(gòu)化查詢語(yǔ)言SQL(Structured Query Language)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語(yǔ)言,其功能包括查詢、操縱、定義和控制四個(gè)方面,是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。目前已成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言MicrosoftAccess介紹:使用MicrosoftAccess,可以在單一的數(shù)據(jù)庫(kù)文件中管理所有的信息。在這個(gè)文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨(dú)立的存儲(chǔ)空間中,這些空間稱(chēng)作表;可以使用聯(lián)機(jī)窗體來(lái)查看、添加及更新表中的數(shù)據(jù);使用查詢來(lái)查找并檢索所要的數(shù)據(jù);也可以使用報(bào)表以特定的版面布置來(lái)分析及打印數(shù)據(jù)。 如果要保存數(shù)據(jù),請(qǐng)為每一種類(lèi)型的信息創(chuàng)建一個(gè)表。如果要從查詢、窗體或報(bào)表中的多個(gè)表中將數(shù)據(jù)合并在一起,就要定義各個(gè)表之間的關(guān)系。 如果要搜索并檢索符合指定條件的數(shù)據(jù),包括來(lái)自多個(gè)表中的數(shù)據(jù),就要?jiǎng)?chuàng)建查詢。查詢的同時(shí)也可以更新或刪除多條記錄,并對(duì)數(shù)據(jù)執(zhí)行內(nèi)嵌或自定義的計(jì)算。 如果要簡(jiǎn)單地直接在某個(gè)表中查看、輸入及更改數(shù)據(jù),請(qǐng)創(chuàng)建一個(gè)窗體。在打開(kāi)一個(gè)窗體時(shí),MicrosoftAccess將從一個(gè)或多個(gè)表中檢索數(shù)據(jù),并使用用戶在“窗體向?qū)А边x擇的版面布局或所創(chuàng)建的版面布局,將窗體顯示在屏幕上。 如果要分析數(shù)據(jù)或?qū)?shù)據(jù)以特定的方式打印出來(lái),請(qǐng)創(chuàng)建一個(gè)報(bào)表。例如,可以打印一份將數(shù)據(jù)分組并計(jì)算數(shù)據(jù)總和的報(bào)表,也可以打印另一份帶有各種數(shù)據(jù)格式的打印郵件標(biāo)簽的報(bào)表。第一章 系統(tǒng)的分析第一章 系統(tǒng)的分析21 系統(tǒng)開(kāi)發(fā)的目標(biāo)和思想本系統(tǒng)開(kāi)發(fā)目標(biāo)是服務(wù)于人們查詢公交車(chē)路線信息,方便工作人員日常出行.同時(shí)力求做到界面人性化,功能齊全,數(shù)據(jù)存儲(chǔ)安全.22 系統(tǒng)的可行性分析技術(shù)上:本系統(tǒng)采用visual basic 6.0與微軟的access作為數(shù)據(jù)庫(kù),技術(shù)上開(kāi)發(fā)難度一般.經(jīng)濟(jì)上:本系統(tǒng)服務(wù)于人們出行公交車(chē)查詢,提高了工作人員辦事效率,節(jié)省了開(kāi)支.所以具有經(jīng)濟(jì)上的可行性.社會(huì)上:本系統(tǒng)同時(shí)也方便了廣大社會(huì).所以具有社會(huì)可行性.第二章 系統(tǒng)的設(shè)計(jì)31 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)主界面按車(chē)次查詢按起點(diǎn)終點(diǎn)查詢32 系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)1.bus信息表:32 界面設(shè)計(jì)與代碼設(shè)計(jì)1關(guān)于界面設(shè)計(jì):代碼設(shè)計(jì):Option ExplicitDim bt As BooleanPrivate Sub Check1_Click()If Check1.Value = 0 Then Form1.IsBeginS = TrueElse Form1.IsBeginS = FalseEnd IfEnd SubPrivate Sub Form_Load()bt = TrueEnd SubPrivate Sub Label1_Click()End SubPrivate Sub Timer1_Timer()bt = FalseIf Check1.Value = 0 Then Form1.IsBeginS = TrueElse Form1.IsBeginS = FalseEnd IfLoad Form1Form1.ShowTimer1.Enabled = FalseEnd SubPrivate Sub Timer2_Timer()Timer1.Enabled = TrueTimer2.Enabled = FalseEnd Sub2:主界面設(shè)計(jì):代碼設(shè)計(jì):Dim bcbm As BooleanDim bcb1 As BooleanDim bcbs As BooleanDim bcbe As BooleanDim tm As IntegerDim intpart As IntegerPublic IsBeginS As BooleanPublic Sub showallstation() 以下代碼是用來(lái)把在數(shù)據(jù)庫(kù)的所有不同的車(chē)站顯示在起始站中 其思路是如果在啟動(dòng)界面中,用戶選擇了更新數(shù)據(jù)庫(kù),則掃描整個(gè)數(shù)據(jù)庫(kù),并把不同的車(chē)站加到起始站中 并把這些車(chē)站名存放在一文本框中,以用于下次讀取 如果用戶沒(méi)有選擇更新數(shù)據(jù)庫(kù),則直接從文件中讀取車(chē)站存放在起始站中 這樣做的好處是可以大大提高效率,如果每次啟動(dòng)都要重新檢索數(shù)據(jù)庫(kù),則要花費(fèi)大量的時(shí)間If IsBeginS = False Then 用戶選擇了更新數(shù)據(jù)庫(kù)Dim strm As StringDim mrc3 As ADODB.RecordsetSet mrc3 = New ADODB.Recordset Set mrc3 = Adodc1.Recordset mrc3.MoveFirst Do While Not mrc3.EOF For i = 1 To NC strm = Text2(i).Text If strm = Then Exit For End If For j = 0 To cbs.ListCount If cbs.List(j) = Trim(strm) Then Exit For End If Next If j cbs.ListCount Then cbs.AddItem Trim(strm) End If Next mrc3.MoveNext Loop If Mid(App.path, Len(App.path) - 1, 1) Then Open App.path + allstation.dat For Output As #1 Else Open App.path + allstation.dat For Output As #1 End If Print #1, CStr(cbs.ListCount) For k = 0 To cbs.ListCount - 1 Print #1, , cbs.List(k) Next Close #1Set mrc3 = NothingElse 用戶沒(méi)有選擇了更新數(shù)據(jù)庫(kù) Dim strbs As String Dim intnb As Integer If Mid(App.path, Len(App.path) - 1, 1) Then Open App.path + allstation.dat For Input As #1 Else Open App.path + allstation.dat For Input As #1 End If Input #1, strbs intnb = CInt(Val(strbs) For k = 0 To intnb - 1 Input #1, strbs cbs.AddItem strbs Next Close #1 End IfEnd SubPublic Sub showtitle(numt As Integer)用于顯示列表中的標(biāo)題For j = 0 To 2 If numt = 2 And j = 1 Then Exit Sub End If MSF1(j).Clear Dim i As Integer With MSF1(j) .Rows = 2 .Cols = NC + 3 .TextMatrix(0, 1) = 車(chē)次 For k = 1 To NC + 1 .TextMatrix(0, k + 1) = 站 & CStr(k) .ColWidth(k) = 1000 Next .TextMatrix(0, NC + 2) = 備注 .ColWidth(0) = 200 .ColWidth(NC + 1) = 1000 .FixedRows = 1 For i = 1 To NC .ColAlignment(i) = 0 Next i .FillStyle = flexFillSingle .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols - 1 .CellAlignment = 4 .Row = 1 End With NextEnd SubPublic Sub showdata(num As Integer)用于顯示按車(chē)站名進(jìn)行的查詢showtitle (num)Dim j As IntegerDim i As IntegerDim mrc0 As ADODB.RecordsetSet mrc0 = New ADODB.Recordset Set mrc0 = ExecuteSQL(txtsql) If mrc0.EOF = False Then mrc0.MoveFirst With MSF1(num) .Rows = 2 .Row = 1 Do While Not mrc0.EOF .Rows = .Rows + 1 For i = 1 To mrc0.Fields.Count If mrc0.Fields(i - 1) Null Then .TextMatrix(.Row, i - 1) = mrc0.Fields(i - 1) End If Next i .Row = .Row + 1 mrc0.MoveNext Loop End With End If Set mrc0 = NothingEnd SubPublic Sub showSEdata(s As String, e As String, numb As Integer)用于顯示按起始站和終點(diǎn)站進(jìn)行的查詢其思路是掃描整個(gè)數(shù)據(jù)庫(kù),如果在一條記錄中有起點(diǎn)站和終點(diǎn)站則把該記錄加到列表中該過(guò)程用到了遞歸主要是由于起始站和終點(diǎn)站可以互換digein = digein + 1 用于記錄遞歸次數(shù)If digein = 3 Then 第三次遞歸的時(shí)候,退出 a = MsgBox(沒(méi)有直達(dá)的車(chē)次!您是否需要轉(zhuǎn)車(chē)?, vbInformation + vbOKCancel, 詢問(wèn)) If a = vbOK Then Label5.Visible = True Cbm.Visible = True MSF1(0).Visible = False End IfExit SubEnd Ifshowtitle (numb)Dim j As IntegerDim i As IntegerDim m As IntegerDim k As IntegerDim ball As BooleanDim mrc As ADODB.RecordsetSet mrc = New ADODB.Recordset Set mrc = Adodc1.Recordset mrc.MoveFirst With MSF1(numb) .Rows = 2 .Row = 1 Do While Not mrc.EOF ball = False For m = 1 To NC If Text2(m).Text = Trim(s) Then ball = True Exit For End If Next If ball = True Then For k = m To NC If Text2(k).Text = Trim(e) Then Exit For End If Next End If If ball = True And k NC + 1 Then .Rows = .Rows + 1 For i = 1 To mrc.Fields.Count If mrc.Fields(i - 1) Null Then .TextMatrix(.Row, i - 1) = mrc.Fields(i - 1) End If Next i .Row = .Row + 1 End If mrc.MoveNext Loop End With If numb = 0 Then MSF1(0).Visible = True MSF1(1).Visible = False MSF1(2).Visible = False Else If numb = 2 Then MSF1(0).Visible = False MSF1(1).Visible = True MSF1(2).Visible = True End IfEnd IfIf MSF1(0).Row = 1 And numb = 0 ThenCall showSEdata(e, s, numb) End IfIf MSF1(1).Row = 1 And numb = 1 ThenCall showSEdata(e, s, numb) End If If MSF1(2).Row = 1 And numb = 2 ThenCall showSEdata(e, s, numb) End If Set mrc = NothingEnd SubPrivate Sub Cbe_Change()bcbm = FalseCbm.Text = Cbm.ClearCbm.Visible = FalseLabel5.Visible = Falseshowtitle 0MSF1(0).Visible = TrueMSF1(1).Visible = FalseMSF1(2).Visible = FalseLabel7.Visible = FalseEnd SubPrivate Sub Cbe_DropDown()bcbm = FalseCbm.Text = Cbm.ClearLabel7.Visible = FalseCbm.Visible = FalseLabel5.Visible = Falseshowtitle 0MSF1(0).Visible = TrueMSF1(1).Visible = FalseMSF1(2).Visible = FalseEnd SubPrivate Sub Cbm_DropDown() 該過(guò)程的作用是當(dāng)走起始站和終點(diǎn)站沒(méi)有直達(dá)的車(chē)時(shí),查找所有的可用來(lái)轉(zhuǎn)車(chē)的車(chē)站名 其思路是先掃描整個(gè)數(shù)據(jù)庫(kù),把有起始站的車(chē)站名的記錄存放在MSF1(1)中,把有終點(diǎn)站的車(chē)站名的記錄存放在MSF1(2)中 再掃描整個(gè)MSF1(1),對(duì)于每一條記錄中的每一個(gè)車(chē)站,再掃描MSF1(2)中的每一條記錄,如果該記錄中既包含該車(chē)站,又包含要查詢的終點(diǎn)站,則該車(chē)站符合要求該算法有一大好處是極大的提高了查詢的速度,因?yàn)?,在掃描整個(gè)數(shù)據(jù)庫(kù)時(shí),沒(méi)有內(nèi)循環(huán)。這可是我想了好久才想出來(lái)的喲-Label7.Visible = FalseIf bcbm = False ThenLabel6.Caption = 正在搜索中.Form1.MousePointer = 11Cbm.MousePointer = 11Frame2.MousePointer = 11Frame1.MousePointer = 11Dim strs As StringDim strm As StringDim bfirst As BooleanDim bsec As BooleanDim mrc3 As ADODB.RecordsetSet mrc3 = New ADODB.Recordset Set mrc3 = Adodc1.Recordset Dim finishst() As String Dim finnum As Integer finnum = 0 mrc3.MoveFirst MSF1(1).Clear MSF1(2).ClearDo While Not mrc3.EOF For i = 1 To NC strs = Text2(i).Text Select Case strs Case Exit For Case cbs.Text With MSF1(1) .Rows = .Rows + 1 For z = 1 To mrc3.Fields.Count If mrc3.Fields(z - 1) Null Then .TextMatrix(.Row, z - 1) = mrc3.Fields(z - 1) End If Next .Row = .Row + 1 End With Case Cbe.Text With MSF1(2)
收藏