公交車查詢系統(tǒng)
公交車查詢系統(tǒng),公交車,查詢,系統(tǒng)
畢業(yè)設(shè)計(jì)
公交車查詢管理系統(tǒng)
摘 要…………………………………………………………………………1
Abstract………………………………………………………………………2
第一章 引言…………………………………………………………………4
1.1 課題背景……………………………………………………………………4
1.2 系統(tǒng)簡(jiǎn)介……………………………………………………………………5
1. 3 開發(fā)軟件介紹………………………………………………………………6
第二章 系統(tǒng)的分析……………………………………………………………8
2.1 系統(tǒng)開發(fā)的目標(biāo)和思想……………………………………………………9
2.2 系統(tǒng)的可行性分析…………………………………………………………13
第三章 系統(tǒng)的設(shè)計(jì)……………………………………………………………18
3.1 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)………………………………………………………18
3.2 系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)
3.3 界面設(shè)計(jì)與代碼設(shè)計(jì)……………………………………………………………………23
…………………………………………………………24
結(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)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。它已經(jīng)深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設(shè)計(jì)、圖形圖像處理、教育培訓(xùn)以及游戲娛樂等。各行各業(yè)的人們無(wú)須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。以前開發(fā)Windows應(yīng)用軟件是專業(yè)人員的工作,需要掌握許多專業(yè)知識(shí)和經(jīng)過特殊的培訓(xùn)才能勝任?,F(xiàn)在不同了,即使你沒有接受過嚴(yán)格的程序設(shè)計(jì)訓(xùn)練,使用Visual Basic也一樣能夠開發(fā)出功能強(qiáng)大、適合自己特殊需求的應(yīng)用程序了。Visual Basic繼承了Basic語(yǔ)言易學(xué)易用的特點(diǎn),特別適合于初學(xué)者學(xué)習(xí)Windows系統(tǒng)編程。
公交車查詢管理系統(tǒng)用計(jì)算機(jī)管理公交車路線信息的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前公交車查詢管理都是由工作人們?nèi)斯げ樵兊姆绞絹?lái)操作的.現(xiàn)在一般的公交車查詢都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)路線自動(dòng)管理程序來(lái)幫助人們進(jìn)行更有效的公交車路線查詢。公交車查詢管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。
經(jīng)過分析,我們使用 MICROSOFT公司的 VISUAL BASIC開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(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)楸救四芰τ邢蓿由蠒r(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)鍵字:公交車查詢管理,MIS,visual basic ,數(shù)據(jù)庫(kù)
Abstract
With 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 database
1.1 課題背景
公交車查詢管理系統(tǒng)用計(jì)算機(jī)管理公交車路線信息的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前公交車查詢管理都是由工作人們?nèi)斯げ樵兊姆绞絹?lái)操作的.現(xiàn)在一般的公交車查詢都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)路線自動(dòng)管理程序來(lái)幫助人們進(jìn)行更有效的公交車路線查詢。公交車查詢管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。
1.2 系統(tǒng)簡(jiǎn)介
本系統(tǒng)主要方便人們查詢自己的公交車路線,方便人們乘坐公交.
本系統(tǒng)主要由以下幾大功能組成:
一. 按車次查詢模塊
二. 按起終點(diǎn)站查詢
三. 查找經(jīng)過站點(diǎn)最小的路線
1. 開發(fā)軟件介紹
Visual Basic 6.0是Micrsoft公司出品的開發(fā)工具,Visual Basic是一種可視化的,面向?qū)ο蟮腤indows開發(fā)語(yǔ)言,它具有易用,通用和開發(fā)效率高的特點(diǎn)。隨著微軟對(duì)它不斷地改進(jìn)以及計(jì)算機(jī)本身性能的提高,使得Visual Basic越來(lái)越適合一般的應(yīng)用程序開發(fā)。正如Bill Gate所說(shuō),世界上絕大多數(shù)的Windows應(yīng)用程序是用Visual Basic編寫的。在眾多的開發(fā)工具中,我們?yōu)槭裁匆x擇Visual Basic6.0呢?因?yàn)閂B具有眾多其它開發(fā)工具所沒有的優(yōu)點(diǎn)!具體介紹如下:
u 開發(fā)的高效
u 語(yǔ)言的高效
u 編譯的高效
u 執(zhí)行的高效
u 維護(hù)的高效
基于以上理由,我們毫不憂郁的選擇了VB6.0做為我們的開發(fā)工具??!
主要的控件及其基本屬性,事件簡(jiǎn)介
u 命令按鈕類的控件:
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屬性:控制各種文字字體類型.
8) Left,top,height,width屬性:設(shè)定控件的位置與大小.
9) Style,picture屬性:決定按鈕的顯示方式是否為圖像形式出現(xiàn).
10) Visible屬性:確定控件運(yùn)行時(shí)是否為可見.
11) Index屬性:當(dāng)控件為一控件數(shù)組時(shí),此屬性值為該控件在數(shù)組的下標(biāo)值.
12) DownPicture屬性:設(shè)置/返回一個(gè)對(duì)圖片的引用,該圖片在按鈕被單擊處于壓下狀態(tài)時(shí)顯示。
13) DisabledPicture屬性:設(shè)置/返回一個(gè)對(duì)圖片的引用,該圖片在控件無(wú)效時(shí)顯示在控件中。
14) MaskColor屬性:設(shè)置/返回一個(gè)在按鈕的圖片中作為“掩碼“的的顏色
15) Picture屬性:設(shè)置返回commandButton控件中要顯示的圖片。
u 命令按鈕類的事件:
1) 單擊事件――Click事件
(1) 觸發(fā)與適用
此事件是在一個(gè)命令按鈕對(duì)象上按下然后釋放一個(gè)鼠標(biāo)按鈕時(shí)發(fā)生。命令按鈕的Click事件僅對(duì)當(dāng)單擊鼠標(biāo)時(shí)發(fā)生。
(2) 事件處理過程
按鈕單擊事件的處理過程為:
Private Sub object-Click(Index As Integer)
其中Object為引發(fā)該事件的對(duì)象名稱。如果是命令按鈕的控件是數(shù)組,則需要使用Index參數(shù)標(biāo)識(shí)該控件。
2) 獲得焦點(diǎn)――GotFocus事件
(1) 觸發(fā)與適用
當(dāng)命令按鈕獲得焦點(diǎn)產(chǎn)生該事件,獲得焦點(diǎn)可以通過諸如Tab切換或單擊對(duì)象之類的用戶動(dòng)作,或在代碼中用SetFocus方法改變焦點(diǎn)來(lái)實(shí)現(xiàn)。
(2) 事件處理過程
命令按鈕GotFoucs事件處理過程為:
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)用戶按下或松開一個(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)簽框類的控件類的控件:
1) Caption屬性:在應(yīng)用程序界面上加入說(shuō)明。
2) Autosize屬性:決定控件是否自動(dòng)改變大小以顯示其全部?jī)?nèi)容。
3) Backstyle屬性:用以指示標(biāo)簽是否透明.
4) Bordstyle屬性:用以設(shè)定控件是否有邊框。
u 文本框類的控件:
1) Text屬性:通過像text屬性賦值的方法來(lái)改變?cè)搶傩缘闹怠?
2) 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ǔ)過程所需的附加數(shù)據(jù)
u 文本框類的事件:
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ì)話框過程中出現(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è)置為True
u 單選按鈕類的控件:
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à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í)顯示的指針類型。
u 單選按鈕類的常用事件:
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ù)選按鈕類的控件:
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à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ù)選按鈕類的控件的基本事件:
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 框架類的控件:
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)條類的控件:
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í)器類類的控件:
1) Interval屬性:表示定時(shí)的時(shí)間間隔,以毫秒為單位。
2) Enable屬性:為true時(shí)(缺省值),激活定時(shí)器開始計(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ī)器沒安裝有Access,可通過VB建庫(kù)。
二、 利用adodc(ADO Data Control)進(jìn)行數(shù)據(jù)庫(kù)鏈接:
使用adodata控件訪問數(shù)據(jù)庫(kù)可以完全不用編寫代碼,只需要通過簡(jiǎn)單的設(shè)置和操作其屬性就可以實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接,通過綁定數(shù)據(jù)感知控件,就能提供一個(gè)訪問數(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ù)訪問對(duì)象(DAO)DAO是database object的英文縮寫,要訪問數(shù)據(jù)庫(kù)一方面數(shù)據(jù)庫(kù)要提供訪問接口,另一方面要在編程環(huán)境中有對(duì)數(shù)據(jù)庫(kù)的支持.
DAO模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的對(duì)象類的集合.他們提供了管理關(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ù)是目前各類數(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年代以后開發(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ǔ)言
?Microsoft?Access介紹:
使用?Microsoft?Access,可以在單一的數(shù)據(jù)庫(kù)文件中管理所有的信息。在這個(gè)文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨(dú)立的存儲(chǔ)空間中,這些空間稱作表;可以使用聯(lián)機(jī)窗體來(lái)查看、添加及更新表中的數(shù)據(jù);使用查詢來(lái)查找并檢索所要的數(shù)據(jù);也可以使用報(bào)表以特定的版面布置來(lái)分析及打印數(shù)據(jù)。
如果要保存數(shù)據(jù),請(qǐng)為每一種類型的信息創(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è)窗體。在打開一個(gè)窗體時(shí),Microsoft?Access?將從一個(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)的分析
2.1 系統(tǒng)開發(fā)的目標(biāo)和思想
本系統(tǒng)開發(fā)目標(biāo)是服務(wù)于人們查詢公交車路線信息,方便工作人員日常出行.
同時(shí)力求做到界面人性化,功能齊全,數(shù)據(jù)存儲(chǔ)安全.
2.2 系統(tǒng)的可行性分析
技術(shù)上:本系統(tǒng)采用visual basic 6.0與微軟的access作為數(shù)據(jù)庫(kù),技術(shù)上開發(fā)難度一般.
經(jīng)濟(jì)上:本系統(tǒng)服務(wù)于人們出行公交車查詢,提高了工作人員辦事效率,節(jié)省了開支.所以具有經(jīng)濟(jì)上的可行性.
社會(huì)上:本系統(tǒng)同時(shí)也方便了廣大社會(huì).所以具有社會(huì)可行性.
第二章 系統(tǒng)的設(shè)計(jì)
3.1 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)
主界面
按車次查詢
按起點(diǎn)終點(diǎn)查詢
3.2 系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)
1.bus信息表:
3.2 界面設(shè)計(jì)與代碼設(shè)計(jì)
1關(guān)于界面設(shè)計(jì):
代碼設(shè)計(jì):
Option Explicit
Dim bt As Boolean
Private Sub Check1_Click()
If Check1.Value = 0 Then
Form1.IsBeginS = True
Else
Form1.IsBeginS = False
End If
End Sub
Private Sub Form_Load()
bt = True
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Timer1_Timer()
bt = False
If Check1.Value = 0 Then
Form1.IsBeginS = True
Else
Form1.IsBeginS = False
End If
Load Form1
Form1.Show
Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer()
Timer1.Enabled = True
Timer2.Enabled = False
End Sub
2:主界面設(shè)計(jì):
代碼設(shè)計(jì):
Dim bcbm As Boolean
Dim bcb1 As Boolean
Dim bcbs As Boolean
Dim bcbe As Boolean
Dim tm As Integer
Dim intpart As Integer
Public IsBeginS As Boolean
Public Sub showallstation()
' 以下代碼是用來(lái)把在數(shù)據(jù)庫(kù)的所有不同的車站顯示在起始站中
' 其思路是如果在啟動(dòng)界面中,用戶選擇了更新數(shù)據(jù)庫(kù),則掃描整個(gè)數(shù)據(jù)庫(kù),并把不同的車站加到起始站中
' 并把這些車站名存放在一文本框中,以用于下次讀取
' 如果用戶沒有選擇更新數(shù)據(jù)庫(kù),則直接從文件中讀取車站存放在起始站中
' 這樣做的好處是可以大大提高效率,如果每次啟動(dòng)都要重新檢索數(shù)據(jù)庫(kù),則要花費(fèi)大量的時(shí)間
If IsBeginS = False Then '用戶選擇了更新數(shù)據(jù)庫(kù)
Dim strm As String
Dim mrc3 As ADODB.Recordset
Set 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 #1
Set mrc3 = Nothing
Else '用戶沒有選擇了更新數(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 If
End Sub
Public 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) = "車次"
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
Next
End Sub
Public Sub showdata(num As Integer)
'用于顯示按車站名進(jìn)行的查詢
showtitle (num)
Dim j As Integer
Dim i As Integer
Dim mrc0 As ADODB.Recordset
Set 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 = Nothing
End Sub
Public Sub showSEdata(s As String, e As String, numb As Integer)
'用于顯示按起始站和終點(diǎn)站進(jìn)行的查詢
'其思路是掃描整個(gè)數(shù)據(jù)庫(kù),如果在一條記錄中有起點(diǎn)站和終點(diǎn)站則把該記錄加到列表中
'該過程用到了遞歸主要是由于起始站和終點(diǎn)站可以互換
digein = digein + 1 ' 用于記錄遞歸次數(shù)
If digein = 3 Then '第三次遞歸的時(shí)候,退出
a = MsgBox("沒有直達(dá)的車次!您是否需要轉(zhuǎn)車?", vbInformation + vbOKCancel, "詢問")
If a = vbOK Then
Label5.Visible = True
Cbm.Visible = True
MSF1(0).Visible = False
End If
Exit Sub
End If
showtitle (numb)
Dim j As Integer
Dim i As Integer
Dim m As Integer
Dim k As Integer
Dim ball As Boolean
Dim mrc As ADODB.Recordset
Set 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 If
End If
If MSF1(0).Row = 1 And numb = 0 Then
Call showSEdata(e, s, numb)
End If
If MSF1(1).Row = 1 And numb = 1 Then
Call showSEdata(e, s, numb)
End If
If MSF1(2).Row = 1 And numb = 2 Then
Call showSEdata(e, s, numb)
End If
Set mrc = Nothing
End Sub
Private Sub Cbe_Change()
bcbm = False
Cbm.Text = ""
Cbm.Clear
Cbm.Visible = False
Label5.Visible = False
showtitle 0
MSF1(0).Visible = True
MSF1(1).Visible = False
MSF1(2).Visible = False
Label7.Visible = False
End Sub
Private Sub Cbe_DropDown()
bcbm = False
Cbm.Text = ""
Cbm.Clear
Label7.Visible = False
Cbm.Visible = False
Label5.Visible = False
showtitle 0
MSF1(0).Visible = True
MSF1(1).Visible = False
MSF1(2).Visible = False
End Sub
Private Sub Cbm_DropDown()
' 該過程的作用是當(dāng)走起始站和終點(diǎn)站沒有直達(dá)的車時(shí),查找所有的可用來(lái)轉(zhuǎn)車的車站名
' 其思路是先掃描整個(gè)數(shù)據(jù)庫(kù),把有起始站的車站名的記錄存放在MSF1(1)中,把有終點(diǎn)站的車站名的記錄存放在MSF1(2)中
' 再掃描整個(gè)MSF1(1),對(duì)于每一條記錄中的每一個(gè)車站,再掃描MSF1(2)中的每一條記錄,如果該記錄中既包含該車站,又包含要查詢的終點(diǎn)站,則該車站符合要求
'該算法有一大好處是極大的提高了查詢的速度,因?yàn)?,在掃描整個(gè)數(shù)據(jù)庫(kù)時(shí),沒有內(nèi)循環(huán)。這可是我想了好久才想出來(lái)的喲^-^
Label7.Visible = False
If bcbm = False Then
Label6.Caption = "正在搜索中..."
Form1.MousePointer = 11
Cbm.MousePointer = 11
Frame2.MousePointer = 11
Frame1.MousePointer = 11
Dim strs As String
Dim strm As String
Dim bfirst As Boolean
Dim bsec As Boolean
Dim mrc3 As ADODB.Recordset
Set 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).Clear
Do 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)
收藏