版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第 48 頁畢業(yè)論文(設計)基于C#.NET的公交查詢系統(tǒng)設計與實現(xiàn)目錄摘要VAbstractVI第1章緒論11.1前言11.1.1系統(tǒng)開發(fā)背景11.2選題目的與意義11.2.1選題目的11.2.2選題意義21.3系統(tǒng)開發(fā)環(huán)境及簡介21.3.1硬件部分21.3.2軟件部分2第2章需求分析42.1需求分析概述42.1.1需求分析的基本任務一個階段42.2實體聯(lián)系圖(E-R圖)52.2.1實體聯(lián)系圖概述52.2.2符號系統(tǒng)52.2.3公交實體聯(lián)系圖62.3層次方框圖72.4數(shù)據(jù)流圖(DFD)82.4.1數(shù)據(jù)流圖概述82.4.2符號系統(tǒng)82.4.3畫圖原則92.4.4公交DFD圖92.5系統(tǒng)功能模塊
2、劃分112.5.1用戶查詢模塊112.5.2管理員模塊11第3章詳細設計123.1系統(tǒng)詳細設計123.1.1系統(tǒng)總體功能設計123.1.2系統(tǒng)各功能模塊詳細設計123.2.數(shù)據(jù)庫設計123.2.1數(shù)據(jù)庫設計步驟133.2.2數(shù)據(jù)庫設計原則143.3公交數(shù)據(jù)庫詳細設計153.3.1公交站點的數(shù)據(jù)庫設計153.3.2公交線路的數(shù)據(jù)庫設計153.3.3公交線路信息數(shù)據(jù)庫設計163.3.4公交城市信息數(shù)據(jù)庫設計173.3.5公交管理員信息數(shù)據(jù)庫設計183.4數(shù)據(jù)庫關系圖19第4章實現(xiàn)214.1系統(tǒng)界面設計與實現(xiàn)214.2用戶功能模塊總體設計224.2.1用戶主界面功能模塊設計與實現(xiàn)234.2.2線路查
3、詢模塊244.2.3站點查詢254.2.4公交換乘查詢264.3管理員功能模塊274.3.1系統(tǒng)管理員登陸界面設計284.3.2添加路線和站點信息294.3.3刪除線路和站點314.3.4修改路線站點信息32第5章結論不足和展望345.1結論345.2不足345.3展望34參考文獻36致謝37附件38附件1.線路查詢模塊實現(xiàn)代碼38附件2.站點查詢實現(xiàn)代碼40附件3.公交換乘查詢代碼42附件4.管理員登陸代碼44附件5.刪除站點代碼45附件6.修改信息代碼46附件7.增加信息代碼48摘要隨著“公交先行,節(jié)能減排,低碳生活”概念的提出,使得各大城市的公共交通得到迅速的發(fā)展,因此乘客需要實時的查詢
4、公交系統(tǒng)的信息以便出行,在此背景下,本文最主要采用vs2010來實現(xiàn)公交查詢系統(tǒng)的設計采用SQL Server2008數(shù)據(jù)庫來實現(xiàn)系統(tǒng)所需的數(shù)據(jù)需求。在公交查詢系統(tǒng)設計過程中考慮用戶查詢的模塊為:線路查詢、站點查詢、換乘查詢,管理員模塊則應該包括對數(shù)據(jù)增、刪、查、改等操作,對于數(shù)據(jù)庫設計應該體現(xiàn)出數(shù)據(jù)之間明確的聯(lián)系關系。關鍵詞:數(shù)據(jù)庫、vs2010、公交查詢、管理員AbstractAs the "bus first, energy conservation and emissions reduction, low carbon life" concept is put fo
5、rward, make the city public transportation to get rapid development, so the passengers need to real-time information query of public transportation to travel, in this context, in this paper, the main vs2010 is used to realize the bus query system design using SQL Server2008 database to realize data
6、requirements required by the system. At the bus query system design considering user query module is: in the process of route query, site query, change to the query, the administrator module should include the data to add, delete, check, change, such as operation, for the database design should embo
7、dy the definite contact relationship between data. Key words: database, vs2010, bus query, administrator第1章 緒論1.1 前言1.1.1 系統(tǒng)開發(fā)背景出行是人類生活的基本活動之一。城市的快速發(fā)展、科技的發(fā)展以及環(huán)保意識的增強,對城市公共交通的發(fā)展趨勢的快速性、舒適性、便捷性、環(huán)保等方面提出更高要求。先進的信息技術也促進了公共交通技術的發(fā)展,從而為乘客提供了良好的出行條件,并且能夠逐漸滿足市民出行多樣化的交通需求。為城市的進一步發(fā)展提供便捷條件,對于城市公共交通來說,必然要優(yōu)先發(fā)展公交,因此
8、,公共交通的地位也不斷得到提升?!尽?公交換乘系統(tǒng)的算法研究與應用D .太原:中北大學.2009:28-31 趙敏】2005年以來,中國先后印發(fā)了關于優(yōu)先發(fā)展城市公共交通的意見等系列文件正式確立了公交優(yōu)先發(fā)展的戰(zhàn)略思想,為優(yōu)先發(fā)展城市公共交通指明了方向,有力推動了中國城市公交事業(yè)的發(fā)展。截止2009年底到全國公共汽電車運營線路網(wǎng)總長度28.9萬公里,公交專用車道里程達7452公里,10余個城市開通運營快速公交路線,公交運輸總量達到780億人次?!尽?崛起中的中國城市基礎設施建設發(fā)展研究 黃新文】隨著城市公交的快速發(fā)展和節(jié)能減排的理念升入人心,使得人們的出行越來越選擇以公交的方式出行,并且由于城
9、市的人口居住以及就業(yè)形態(tài)的已經(jīng)形成,協(xié)調(diào)好公交的換乘、增加交通可達性勢在必行。隨著城市的發(fā)展,必然帶來道路基礎設施的擴展,公交線路隨之增長,有些城市多達上百條,以至于居民難以掌握大量的公交信息,為出行帶來了一定的困擾。因而,公交查詢系統(tǒng)便應運而生。1.2 選題目的與意義1.2.1 選題目的隨著節(jié)能減排低碳生活的提出,以及公交先行的理念日漸深入人心,建立一個公交查詢系統(tǒng)是公眾出行的迫切需要人們對于出行的要求增多,對公交系統(tǒng)的需求也逐漸的增加,公交的監(jiān)督電話也方便顧客的監(jiān)督和查詢。建立完善的公交線路網(wǎng)也是我國對于公共交通的一個長遠計劃,而在整個公共交通中公交又占有相當大的比重,建立一個公交查詢系統(tǒng)
10、則可以為顧客的出行提供很直接、便捷的出行方案。1.2.2 選題意義貴陽市是貴州省省會,是我國內(nèi)陸開放城市及西南地區(qū)的重要的交通通信樞紐、工業(yè)基地、商貿(mào)和旅游服務城市,城市道路交通的發(fā)展從某種意義上講可以制約或促進整個城市的發(fā)展方向?!尽?貴陽市城市交通發(fā)展研究 歐艷玲 天津大學博碩論文 2004】目前貴陽的公共交通現(xiàn)狀如下:貴陽市區(qū)由中心區(qū)、小河、龍洞堡、花溪、白云、金陽等地組成,12米以上的道路291.41公里,公交運營車輛截止到2010年12月共計1576輛,市、郊線路150條,車運量達到5.9億人次,承擔了全市約70%的客運量【】 貴陽市城市公共交通的現(xiàn)狀與對策研究】。在這種情況下城市公
11、交的查詢系統(tǒng)則可以做到:1、城市公交查詢系統(tǒng)能夠最快、最方便的滿足人們的出行需要,幫助人們正確的選擇公交出行的線路,提高人們的出行速率。2、城市公交查詢系統(tǒng)是智能公交的重要組成部分,智能公交系統(tǒng)是一個整體工程,而公交查詢系統(tǒng)則屬于智能公交查詢系統(tǒng)的軟件組成部分。3、作為省會城市則可以幫助外來人員快速的查詢到公交信息,提高人們的出行的效率和城市的綜合的地位。1.3 系統(tǒng)開發(fā)環(huán)境及簡介 系統(tǒng)開發(fā)環(huán)境分為兩部分1.硬件部分、2.軟件部分1.3.1 硬件部分一般電腦配置即可1.3.2 軟件部分軟件部分包括SQL Server 2008數(shù)據(jù)庫、Microsoft Visual Studio 2010(一
12、)數(shù)據(jù)庫采用SQL Server 2008數(shù)據(jù)庫數(shù)據(jù)庫可以理解為存儲數(shù)據(jù)的倉庫。他是按照一定的組織方式存儲的相互有關的數(shù)據(jù)的集合,這些數(shù)據(jù)不僅彼此關聯(lián)而且可以動態(tài)變化。它具有以下幾個特點:1、數(shù)據(jù)結構化2、數(shù)據(jù)共享3、數(shù)據(jù)的獨立性5.數(shù)據(jù)的一致性與正確性在數(shù)據(jù)庫中最核心的一部分為DBMS即數(shù)據(jù)庫管理系統(tǒng)他是使用戶能夠?qū)崿F(xiàn)數(shù)據(jù)加工的數(shù)據(jù)管理系統(tǒng),為用戶提供以下幾個功能:1、建庫功能2、數(shù)據(jù)的操作功能:實現(xiàn)對數(shù)據(jù)的增、刪、查、改等功能【】 數(shù)據(jù)庫技術與應用SQL Server 2005教程 詹英 主編 清華大學出版社】(二)編程軟件采用Microsoft Visual Studio 2010Vis
13、ual Studio是Windows 平臺應用程序的開發(fā)環(huán)境,它是建立在IDE(統(tǒng)一開發(fā)環(huán)境)的基礎之上,可用于開發(fā)多種不同類型的應用程序第2章 需求分析2.1 需求分析概述需求分析是軟件定義時期的最后一個階段,需求分析指的是在建立一個新的或改變一個現(xiàn)存的電腦系統(tǒng)時描寫新系統(tǒng)的目的、范圍、定義和功能時所要做的所有的工作。需求分析是軟件工程中的一個關鍵過程。在這個過程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。2.1.1 需求分析的基本任務一個階段它的基本任務是準確地回答“系統(tǒng)必須做什么?”這個問題。需求分析的任務還不是確定系統(tǒng)怎樣完成他
14、的工作,而僅僅是確定系統(tǒng)必須完成那些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求【】 軟件工程導論(第五版) 張海藩 編著 清華大學出版社 】。具體說需求分析的任務有以下幾個方面:(一)、確定對系統(tǒng)的綜合要求通常對軟件系統(tǒng)有下述幾個方面的綜合要求:1、功能需求這方面的需求制定系統(tǒng)必須提供的服務。通過需求分析應該劃分出系統(tǒng)必須完成的所有功能2、性能需求性能需求指定系統(tǒng)必須滿足的定時約束或容量約束,通常包括速度(響應時間、信息量速率)【】 基于C/S與B/S結合模式的農(nóng)業(yè)專家信息服務平臺設計研究 劉濤1 溫曉莉2 河北農(nóng)業(yè)科學2010】3、可靠性和可用性需求可靠性需求定量地指定系統(tǒng)是的可
15、靠性,可用性與可靠性密切相關,它量化了用戶可以使用系統(tǒng)的程度,例如:“在任何時候主機或備份機上的機場雷達系統(tǒng)應該至少有一個是可以用的,而且在一個月內(nèi)在任何一臺計算機上蓋系統(tǒng)不可以用的時間不能超過總時間的2%?!薄?】 4、出錯處理需求5、接口需求6、約束7、逆向需求8、將來可能提出的要求(2)分析系統(tǒng)的數(shù)據(jù)要求每一個系統(tǒng)在本質(zhì)上都是處理信息的,系統(tǒng)必須處理的信息與系統(tǒng)得到的信息在很大的程度上決定了系統(tǒng)的“面貌”,因此必須分析系統(tǒng)的數(shù)據(jù)要求,而分析系統(tǒng)的數(shù)據(jù)要求通常采用建立數(shù)據(jù)模型的方法即實體聯(lián)系圖(2.2節(jié))。復雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,數(shù)據(jù)結構表示數(shù)據(jù)元素之間的邏輯關系。利用數(shù)據(jù)字典
16、可以全面的定義數(shù)據(jù),但是數(shù)據(jù)字典不夠形象直觀。為了提高可理解性,我們可以用層次方框圖和Warnier圖輔助描繪數(shù)據(jù)結構。2.2 實體聯(lián)系圖(E-R圖)2.2.1 實體聯(lián)系圖概述為了把用戶的數(shù)據(jù)要求清楚、準確的描述出來,系統(tǒng)分析員通常建立一個概念性的數(shù)據(jù)模型。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點對數(shù)據(jù)建立的模型。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的顯示環(huán)境,而且與在軟件系統(tǒng)中的實現(xiàn)方法無關2.2.2 符號系統(tǒng)在實體聯(lián)系圖中包含3種相互關系的信息如表格 1所示:表格 1 ER圖符號圖形名稱描述數(shù)據(jù)對象數(shù)據(jù)對象時對軟件必須的復合信息的抽象。所謂復合信息是指具有一系列不同性
17、質(zhì)或?qū)傩缘氖挛?,僅有單個值的事物(例如,寬度)不是數(shù)據(jù)對象屬性數(shù)據(jù)對象一般具有若干特征,這些特征就稱為數(shù)據(jù)對象的屬性,例如:數(shù)據(jù)對象“學生”,具 有學號、姓名、性別、出生日期和系別等特征,這些就是它的屬性。 聯(lián)系實體之間可能會有各種關系。例如,“學生”與“課程”之間有“選課”的關系。這種實體和實體之間的關系被抽象為聯(lián)系。在實體聯(lián)系圖中,聯(lián)系用聯(lián)結有關實體的菱形框表示,如圖1.9所示。聯(lián)系可以是一對一(1:1),一對多(1:N)或多對多(M:N)的,這一點在實體聯(lián)系圖中 也應說明。例如在大學教務管理問題中,“學生”與“課程”是多對多的“選課”聯(lián)系聯(lián)系?!尽?實體-聯(lián)系方法講義 】2.2.3 公交
18、實體聯(lián)系圖在本文中的公交E-R圖如圖 21所示:圖 21 公交E-R圖2.3 層次方框圖層次方框圖是用樹形結構的一系列多層次的矩形框描繪數(shù)據(jù)的層次結構。樹形結構的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結構,下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分割的元素)。在本文中的公交查詢系統(tǒng)層次方框圖如圖 22所示:圖 22 層次方框圖2.4 數(shù)據(jù)流圖(DFD)2.4.1 數(shù)據(jù)流圖概述數(shù)據(jù)流圖(DFD)是一種圖形化技術,它描繪信息流和數(shù)據(jù)流從輸入移動到輸出的過程中所經(jīng)受的變換。在數(shù)據(jù)流圖中沒有任何具體的物理部件,他只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過
19、程。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)的計算機技術人員也容易理解它,因此,他是分析員與用戶之間幾號的通信工具。此外數(shù)據(jù)流圖設計時只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實現(xiàn)這些功能,因此他也是進行軟件設計的很好的出發(fā)點。2.4.2 符號系統(tǒng)數(shù)據(jù)流圖通常包含以下幾種符號:符號名稱說明正方形表示數(shù)據(jù)的源點或終點圓角矩形代表數(shù)據(jù)的變換處理開口矩形代表數(shù)據(jù)存儲箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向2.4.3 畫圖原則畫圖原則:(1)數(shù)據(jù)流圖上所有圖形符號只限于以上四種基本圖例(2)頂層數(shù)據(jù)流圖必須包含4種基本元素;(3)頂層數(shù)據(jù)流圖上的數(shù)據(jù)流必須封閉在外部實體之間;(4)
20、至少有一個數(shù)據(jù)輸入流和一個數(shù)據(jù)輸出流;(5)在數(shù)據(jù)流圖中必須按層給處理框加編號,該編號表明該加工處;在那一層以及上下層父圖與子圖的對應關系;(6)規(guī)定數(shù)據(jù)流圖與他上一層的一個處理對應,兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致,即父圖與子圖平衡,還應該在數(shù)據(jù)流圖中繳入必要地說明以幫助用戶理解;(7)圖上的每個元素都應該有名字,數(shù)據(jù)流和數(shù)據(jù)文件名字表明流動的數(shù)據(jù)是什么,而處理的名字應表明處理做了說明事情。2.4.4 公交DFD圖圖 23 公交DFD圖2.5 系統(tǒng)功能模塊劃分 一個系統(tǒng)可以看成是由多個小模塊組成,這些小模塊之間應該具有高內(nèi)聚、低耦合的特點:耦合:是對一個軟件結構內(nèi)不同模塊之間互聯(lián)程度的衡
21、量。而耦合程度取決于模塊時間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數(shù)據(jù)。耦合包括以下幾種:1、數(shù)據(jù)耦合 2、控制耦合 3、特征耦合 4、公共耦合。內(nèi)聚:內(nèi)聚標志著一個模塊內(nèi)各個元素之間的彼此結合程度。內(nèi)聚包括以下幾種:1、功能內(nèi)聚 2、順序內(nèi)聚 3、通信內(nèi)聚 4、過程內(nèi)聚 5、時間內(nèi)聚 6、邏輯內(nèi)聚 7、偶然內(nèi)聚。公交查詢系統(tǒng)可以看成是由兩個大模塊組成即:用戶查詢模塊和管理員模塊。2.5.1 用戶查詢模塊用戶查詢模塊主要供用戶使用其主要完成的對公交信息的查詢,這些查詢包括公交站點、公交線路以及公交站點到站點的額查詢(公交換乘插敘)并將查詢的結果通過一定的方式顯示出來,并且需要制
22、定一個“選擇框”以便用戶進行模糊查詢。2.5.2 管理員模塊管理員在公交查詢系統(tǒng)中擁有最高的權限,它能夠?qū)恍畔⑦M行增、刪、查、改等一系列工作,當然對于管理員模塊需要進行身份驗證,當正確以后才能進行操作。第3章 詳細設計3.1 系統(tǒng)詳細設計系統(tǒng)的詳細設計階段其根本目標是確定應該怎樣具體的實現(xiàn)所要求的系統(tǒng),也就是經(jīng)過這個階段的設計工作,應該得到對系統(tǒng)的準確描述,從而在編碼階段可以把整個描述直接翻譯為用vs2010編寫的程序代碼,在這一階段不是實現(xiàn)軟件的具體代碼編寫3.1.1 系統(tǒng)總體功能設計系統(tǒng)功能詳細設計主要表述系統(tǒng)的功能架構如圖1.3.1所示圖 31 系統(tǒng)功能架構3.1.2 系統(tǒng)各功能模塊
23、詳細設計對于用戶模塊來說就是完成對信息的查詢功能并返回值如圖,對于管理員來說不僅可以查詢公交的信息還可以對公交信息進行增、刪、查、改等工作如圖 32、圖 323所示: 圖 32 功能圖 圖 33 功能圖 3.2 .數(shù)據(jù)庫設計數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構造(設計)優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結構,并據(jù)此建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應用需求,包括數(shù)據(jù)管理需求和數(shù)據(jù)操作需求。【】 數(shù)據(jù)庫系統(tǒng)概論M.高等教育出版社, 王珊、薩師煊 2008.12】 數(shù)據(jù)庫設計的好壞,直接影響到系統(tǒng)的功能能否實現(xiàn),數(shù)據(jù)操作是否簡單。設計良好的數(shù)據(jù)庫很容易使
24、用,并且能夠保護數(shù)據(jù)的有效性。而設計不好的數(shù)據(jù)庫雖然能夠發(fā)揮相當?shù)淖饔?但是可能會導致數(shù)據(jù)的無效、錯誤或者丟失?!尽?公交線路查詢系統(tǒng)的數(shù)據(jù)庫設計 王軍 武威職業(yè)學院】3.2.1 數(shù)據(jù)庫設計步驟建立了數(shù)據(jù)庫的步驟:數(shù)據(jù)庫系統(tǒng)的生存期可劃分為:需求分析、概念結構設計、邏輯結構設計、物理結構設計、實施和運行維護七個階段,而需求分析和概念結構設計可以獨立于任何數(shù)據(jù)庫管理系統(tǒng)而進行。邏輯結構設計和物理結構設計與選用的 DBMS(database management system)密切相關。我們通常把前五個階段稱為“數(shù)據(jù)庫的分析和設計階段”,后兩個階段稱為“數(shù)據(jù)庫的實現(xiàn)與運行階段?!薄尽?時素平.基于
25、組件式 GIS 的城市公眾查詢系統(tǒng)的設計與實現(xiàn)D.昆明理工大學】 (1)需求分析:在這一步需要做的主要工作是收集數(shù)據(jù)庫所有的信息內(nèi)容和處理要求,并對其進行分析。 (2)概念結構設計:經(jīng)過需求分析后,在這個階段把用戶的需求加以解釋,并用概念模型(概念模型是現(xiàn)實世界到信息世界的抽象,具有獨立于具體的數(shù)據(jù)庫實現(xiàn)的優(yōu)點,因此它是用戶和數(shù)據(jù)庫設計人員之間進行交流的語言。)表達出來。(3)邏輯結構設計:這個階段的主要任務是利用數(shù)據(jù)庫管理系統(tǒng)所提供的工具將信息世界中的概念模型映射為計算機世界中為數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,并且將其用數(shù)據(jù)描述語言表達出來。 (4)物理結構設計:數(shù)據(jù)庫的物理設計是指對數(shù)據(jù)庫
26、存儲結構和存儲路徑的設計,即將數(shù)據(jù)庫的邏輯模型在實際的物理存儲設備上加以實現(xiàn),從而建立一個具有較好性能的數(shù)據(jù)庫。【】 基于ArcSDE技術的空間數(shù)據(jù)庫建設 周迪民、陳學工 湘潭師范學院學報:自然科學版- 2007】(5)數(shù)據(jù)庫實施:數(shù)據(jù)庫實施和運行維護階段的主要工作是:裝入數(shù)據(jù),投入使用,同時根據(jù)數(shù)據(jù)庫運行中所產(chǎn)生的問題以及用戶提出的需求不斷完善和提高數(shù)據(jù)庫的功能以及性能3.2.2 數(shù)據(jù)庫設計原則建庫原則 在建立數(shù)據(jù)時應遵循以下幾個原則:(1)組織有序、層次分明。公交信息查詢系統(tǒng)對數(shù)據(jù)的存取訪問需要數(shù)據(jù)庫有序的組織在一起,方便查詢使用(2)最小冗余度原則。數(shù)據(jù)庫的設計要遵循最小冗余度原則數(shù)據(jù)應
27、該盡可能的不重復達到減少數(shù)據(jù)存儲的冗余量,最終節(jié)省數(shù)據(jù)的存儲空間這時因為同一個系統(tǒng)如果包含有大量重復的數(shù)據(jù),這不但會浪費大量的存儲空間,還會存在潛在的不一致危險,即同一記錄在不同文件中可能不一樣(如,在一個文件中修改了某一個數(shù)據(jù)而沒在另外的文件中沒有修改相應的數(shù)據(jù))。最小冗余度也是數(shù)據(jù)庫的一大優(yōu)勢 (3)數(shù)據(jù)獨立性原則。數(shù)據(jù)獨立性原則指的是數(shù)據(jù)的存放應盡可能地與使用它的應用程序相獨立。數(shù)據(jù)獨立性可以分為數(shù)據(jù)的物理獨立與數(shù)據(jù)的邏輯獨立兩個方面。由于有了數(shù)據(jù)的獨立性,數(shù)據(jù)庫系統(tǒng)就可以使用戶數(shù)據(jù)與物理數(shù)據(jù)完全分開,因此,可以使用戶擺脫了繁瑣的物理存儲細節(jié)。由于用戶程序不依賴于物理數(shù)據(jù),從而降低用戶程
28、序的維護開銷。 (4)標準化、規(guī)范化原則。在建立數(shù)據(jù)庫時應該合理規(guī)定數(shù)據(jù)庫的名稱(例如:公交站點可以命名為BusStation,公交線路可以命名為BusLine),保證系統(tǒng)數(shù)據(jù)能夠滿足應用要求。 (5)系統(tǒng)可靠性、安全、完整性原則。一個數(shù)據(jù)庫系統(tǒng)的可靠性主要體現(xiàn)在其軟硬件故障率小、運行可靠、出了故障時能迅速恢復到可用狀態(tài)等幾個方面。數(shù)據(jù)庫的安全性是指系統(tǒng)對數(shù)據(jù)的保護能力,防止非法使用所造成的數(shù)據(jù)泄密和破壞。即對系統(tǒng)數(shù)據(jù)進行控制,使用戶可以按照系統(tǒng)規(guī)定的規(guī)則來訪問數(shù)據(jù),以防止數(shù)據(jù)有意或無意地泄露。數(shù)據(jù)庫的完整性原則是指數(shù)據(jù)的正確性、有效性以及兼容性。完整性檢查可以將數(shù)據(jù)控制在有效的范圍內(nèi),或保證
29、數(shù)據(jù)之間滿足一定的關系。開發(fā)人員通常通過設置各種完整約束條件來解決這一問題。【】 基于 ArcGIS Engine 的城市公眾信息查詢系統(tǒng)研究 以西安市為例 董快鴿】3.3 公交數(shù)據(jù)庫詳細設計公交數(shù)據(jù)庫的設計主要包括了公交的站點數(shù)據(jù)庫設計、公交線路的設計、城市的設計、和其他的一些設計,在統(tǒng)一建立好一個名為“公交數(shù)據(jù)庫”的數(shù)據(jù)庫后分別建立各個數(shù)據(jù)的分表分別對這些表進行設計3.3.1 公交站點的數(shù)據(jù)庫設計公交數(shù)據(jù)站點的設計如圖表格 2 公交站點字段表所示:表格 2 公交站點字段表表名:BusStation(公交站點)字段名數(shù)據(jù)結構說明BusInfoIDNvarchar(255)數(shù)字 對應 busI
30、nfo表 ID StationNvarchar(255)車站點稱,例如:貴大StationIndexFloat車站的序號(人為規(guī)定一個方向進行排序)其實體聯(lián)系圖(ER圖)如圖 34 實體-聯(lián)系圖所示:圖 34 實體-聯(lián)系圖3.3.2 公交線路的數(shù)據(jù)庫設計公交數(shù)據(jù)線路的設計如圖表格 3 公交線路字段表所示:表格 3 公交線路字段表表名:BusLine(公交線路)段名數(shù)據(jù)結構說明IDFloat數(shù)字 (對應BusInfo表中BusLine ID)AreaIDFloatAreaID(對應Area表ID)LineCodeNvarchar(255)公交線路其實體聯(lián)系圖(ER圖)如圖 35 實體E-R圖所示
31、:圖 35 實體E-R圖3.3.3 公交線路信息數(shù)據(jù)庫設計公交數(shù)據(jù)線路信息的設計如表格 4 公交線路信息字段表所示:表格 4 公交線路信息字段表表名:BusInfo字段名數(shù)據(jù)結構說明IDNvarchar(255)數(shù)字 對應BusStation表中的BusInfo id BusLineIDFloat對應BusLine表IDStartTimeFloat起點首班車時間EndTimeFloat起點末班車時間LastStartTimeFloat終點首班車時間 LastEndTimeFloat終點末班車時間TimeInfoNvarchar(255)首末車時間說明TicketSystemNvarchar(2
32、55票制CarfareNvarchar(255)全程票價元KMNvarchar(255)線路長度公里OtherInfoNvarchar(255)其他信息BusInfoIndexFloat排序其實體聯(lián)系圖(ER圖)如圖 36 實體E-R圖所示(只包含部分屬性):圖 36 實體E-R圖3.3.4 公交城市信息數(shù)據(jù)庫設計公交城市數(shù)據(jù)庫主要用于存放不同的城市信息,其公交城市信息數(shù)據(jù)庫設計如表格 5 城市字段表所示:表格 5 城市字段表表名:Area(城市)字段名數(shù)據(jù)結構說明IDFloat數(shù)字ProvinceNvarchar(255)省份CityNvarchar(255)城市例如:貴陽市City2Nva
33、rchar(255)城市短名稱例如:貴陽PinyinNvarchar(255)拼音其實體聯(lián)系圖(ER圖)如圖 37 實體E-R圖所示:圖 37 實體E-R圖上面的四張實體聯(lián)系圖通過合并就可以得到公交數(shù)據(jù)庫的完整的實體聯(lián)系圖(如圖 21 公交E-R圖所示)通過上面的設計我們得到了四張數(shù)據(jù)庫表這四張數(shù)據(jù)庫表為Area.dbo、BusInfo.dbo、BusLine.dbo、BusStation.dbo,利用這四張表可以實現(xiàn)公交數(shù)據(jù)信息的查詢,但是對于管理員來說,這四張表只能夠查詢而不能夠限制用戶只進行數(shù)據(jù)的查詢,而不進行數(shù)據(jù)的增、刪、查、改等操作因此還需要建立一張系統(tǒng)管理員驗證表(qadmin表)
34、3.3.5 公交管理員信息數(shù)據(jù)庫設計公交管理員數(shù)據(jù)庫的設計如表格 6 管理員字段表所示:表格 6 管理員字段表表名:qadmin字段名數(shù)據(jù)結構說明adusersnchar(50)存放系統(tǒng)管理員的用戶名用于登陸驗證adpwdnchar(50)存放系統(tǒng)管理員的登陸密碼用于登陸驗證其實體聯(lián)系圖(ER圖)如圖 38 實體E-R圖所示:圖 38 實體E-R圖此時當系統(tǒng)管理員輸入用戶名和密碼,通過查詢與設計的表qadmin中的adusers和adpwd作比較,如果一致則進入系統(tǒng)管理員的增、刪、查、改等界面,如果不一致則無法進入到系統(tǒng)界面,從而能實現(xiàn)了管理員功能模塊驗證功能。3.4 數(shù)據(jù)庫關系圖通過上面的分
35、析我們可以得出數(shù)據(jù)表Area.dbo、BusInfo.dbo、BusLine.dbo、BusStation.dbo之間存在疑點的關系,我們可將其關系畫為如圖 39 關系圖所示,通過這張圖可以清晰的反應四張數(shù)據(jù)表之間的對應關系。圖 39 關系圖第4章 實現(xiàn)4.1 系統(tǒng)界面設計與實現(xiàn)系統(tǒng)設計是新系統(tǒng)的物理設計階段。根據(jù)系統(tǒng)分析階段所確定的新系統(tǒng)的邏輯模型、功能要求,在用戶提供的環(huán)境條件下,設計出一個能在計算機網(wǎng)絡環(huán)境上實施的方案,即建立新系統(tǒng)的物理模型。對于公交查詢系統(tǒng)主要涉及兩個方面:1、用戶功能模塊設計2、系統(tǒng)管理員模塊設計,其設計界面如圖 41 系統(tǒng)主界面所示:圖 41 系統(tǒng)主界面其中當點擊
36、”用戶查詢模塊”后進入用戶操作主界面,同理當點擊”系統(tǒng)管理員模塊”后則進入到系統(tǒng)管理員登陸模塊如圖 42 用戶查詢主界面和圖 49 管理員登錄所示。考慮到有一些線路和站點是查詢率較高的因此在主界面中設計了熱門信息的查詢按鈕,以方便用戶快速的查詢到這些熱門信息,線路實現(xiàn)的關鍵代碼如下:Dictionary<string, object> p = new Dictionary<string, object>(); string a = button3.Text; p.Add("a", a); string sql = "SELECT Area.
37、City, BusLine.LineCode, BusStation.Station FROM (Area INNER JOIN BusLine ON Area.ID = BusLine.AreaID) INNER JOIN BusInfo ON BusLine.ID = BusInfo.BusLineID) INNER JOIN BusStation ON BusInfo.ID = BusStation.BusInfoID WHERE (Area.City='貴陽市') AND (BusLine.LineCode = a)" DataTable dt = SqlHe
38、lper.GetDataTable(sql, p); richTextBox1.Clear(); for (int i = 0; i < dt.Rows.Count; i+) string str = string.Concat(dt.Rowsi"City".ToString(), " ", dt.Rowsi"LineCode".ToString(), " ", dt.Rowsi"Station".ToString(); richTextBox1.AppendText(str + '
39、;n'); 同理可得到主界面中公交站點查詢的代碼,而在公交站點和線路查詢模塊中的代碼也和它類似。4.2 用戶功能模塊總體設計用戶的功能模塊主要用于完成信息的查詢與反饋操作是系統(tǒng)設計核心之一。其模塊可以細分為以下幾個小模塊:1、線路查詢模塊2、站點查詢3、公交換乘查詢這些模塊又是在一個用戶主界面功能模塊中來具體實現(xiàn)的。4.2.1 用戶主界面功能模塊設計與實現(xiàn)用戶主界面是供用戶進行數(shù)據(jù)的一系列操作所使用的,其界面至少包含站點、線路、換乘查詢等部分。最終設計的界面如圖 42 用戶查詢主界面所示:圖 42 用戶查詢主界面對于用戶主界面來說不存在代碼部分的設計,界面中的內(nèi)容全為vs2010中的組
40、件,其中1標注部分為textBox組件其主要作用是讓用戶輸入插敘的條件,2標注部分為listBox,其主要作用是將滿足帶有文本框中內(nèi)容的所有數(shù)據(jù)都顯示出來以供用戶選擇,3標注部分為label(標簽)組件,其主要作用是用于標注后面組件的意義或者是用途,4標注部分為button(按鈕)組件,其主要作用是當單擊該按鈕時顯示出相應的信息來,在最下方的組件為richTextBox,其主要作用是將信息的結果顯示出來,以便人們查看。4.2.2 線路查詢模塊對于一個公交查詢系統(tǒng),在公交線路的查詢中通常會知道某條線路或者是某條線路的部分名稱(例如模糊的知道線路名稱中有20這兩個數(shù)字可能是線路203、201等)來
41、查詢這條線路所經(jīng)過的站點名稱,這時線路查詢模塊則會根據(jù)模糊查詢功能將所有的帶有20的公交線路列舉出來供用戶選擇(如圖 43 模糊線路顯示),在單擊查詢后將結果列舉出來(如圖 44 公交線路查詢結果)。圖 43 模糊線路顯示圖 44 公交線路查詢結果其編碼思路是通過模糊查詢將查詢結果通過一個數(shù)組在循環(huán)添加到listBox列表中,通過獲取選定的listBox中的數(shù)據(jù)傳到textBox中在進行查詢。其關鍵代碼為:string sql = "SELECT Area.City, BusLine.LineCode, BusStation.Station FROM (Area INNER JOIN
42、 BusLine ON Area.ID = BusLine.AreaID) INNER JOIN BusInfo ON BusLine.ID = BusInfo.BusLineID) INNER JOIN BusStation ON BusInfo.ID = BusStation.BusInfoID WHERE (Area.City='貴陽市') AND (BusLine.LineCode Like a)" DataTable dt = SqlHelper.GetDataTable(sql, p); richTextBox1.Clear(); for (int i =
43、 0; i < dt.Rows.Count; i+) string str = string.Concat(dt.Rowsi"City".ToString(), " ", dt.Rowsi"LineCode".ToString(), " ", dt.Rowsi"Station".ToString();4.2.3 站點查詢在公交站點的查詢中通常會知道某個站點的全部或者是某歌站點的部分名稱(例如模糊的知道站點名稱中有貴大這兩個數(shù)字可能是貴大花溪區(qū)、貴大科技學院等)來查詢經(jīng)過這個站點的所有的線路
44、,這時站點查詢模塊則會根據(jù)模糊查詢功能將所有的帶有“貴大”的公交站點數(shù)據(jù)列舉出來供用戶選擇(如圖 45 模糊站點顯示),在單擊查詢后將結果列舉出來(如圖 46 公交站點查詢結果)。圖 45 模糊站點顯示圖 46 公交站點查詢結果公交站點查詢編碼的思路、代碼和線路查詢的思路、代碼基本一致。4.2.4 公交換乘查詢在公交查詢系統(tǒng)中經(jīng)常會用到換乘查詢,其作用是查詢經(jīng)過兩個站點的公交線路,比如知道起點站的名字或是模糊名字(例如:貴大或貴)和終點站的名字或模糊名字(例如:六廣門或六)通過這兩個站點選取listBox中出現(xiàn)的站點名或是直接用這兩個站點名(這兩個站點名正確才可以直接使用)來查詢所有經(jīng)過這兩個
45、站點的公交線路信息,如圖 47 模糊顯示和圖 48 站點到站點的查詢結果所示。圖 47 模糊顯示圖 48 站點到站點的查詢結果4.3 管理員功能模塊對于公交查詢系統(tǒng)來說,公交線路、站點等信息不是一成不變的,對于用戶來說過時的公交線路、站點信息沒有多大的用處。因此需要進行數(shù)據(jù)的實時更新,即對數(shù)據(jù)的操作實現(xiàn)增刪查改功能,使得軟件的查詢具有實際的意義方便人們的出行。當然對于數(shù)據(jù)的更新并不是所有的人群都可以而是一些固定的人群即在公交查詢數(shù)據(jù)庫中的表“admin”中存在的人才可以進行更改,以防止數(shù)據(jù)被亂改等現(xiàn)象,這時就需要設計管理員模塊。其模塊可以細分為以下幾個小模塊:1、管理員登錄模塊2、信息修改模塊
46、3、信息增加模塊4、信息刪除模塊當然系統(tǒng)管理員還可以查詢數(shù)據(jù),其查詢模塊和用戶的查詢模塊處于同一位置,即管理員的查詢模塊即為用戶的查詢模塊。4.3.1 系統(tǒng)管理員登陸界面設計登陸界面設計的意義在于防止外來人員進入到修改界面中修改數(shù)據(jù)造成數(shù)據(jù)的破壞,首先在公交系統(tǒng)設計的主頁面中添加一個新的窗體既為管理員的登陸窗體,在登陸窗體中分別添加按鈕(確定按鈕、清空按鈕如果填寫錯誤則可以清空輸入的內(nèi)容、取消按鈕)、標簽(用于標注用戶名和密碼)、文本(輸入數(shù)據(jù)使用)如圖 49 管理員登錄所示:圖 49 管理員登錄在屬性窗口中設置第二個文本框的PasswordChar屬性為字符“*”,在設置窗體的CanceBu
47、tton屬性為button3,這樣當用戶單擊“取消”按鈕后,DialogResult屬性值就是Cancel?!尽?C#語言程序設計基礎(第二版) 鄭宇軍 編著 清華大學出版社】當用戶輸出密碼和用戶名之后單擊確定就會與數(shù)據(jù)庫進行查詢比對如果正確則會跳轉(zhuǎn)到下一個窗體,如果不正確則彈出“錯誤”窗口(如圖 410 登錄錯誤界面提示所示),清空按鈕則可以清空輸入的用戶名和密碼的內(nèi)容。圖 410 登錄錯誤界面提示4.3.2 添加路線和站點信息在上一步中當我們輸入正確的用戶名和密碼之后就可以進入到系統(tǒng)管理員的操作界面,對于“添加路線和站點”界面設計如圖 411 信息增加界面:圖 411 信息增加界面此時就可
48、以添加線路信息和站點信息,但是要注意到各個字段之間的對應關系,在添加數(shù)據(jù)的時候應對照下方的文字部分。其關鍵代碼如下: string sql = "insert into BusLine (ID,AreaID,LineCode) VALUES (id,arearid,linecodeid)"/數(shù)據(jù)庫插入語句 Dictionary<string, object> p = new Dictionary<string, object>();/字典變量,使其對應傳值 p.Add("id", id); p.Add("arearid&
49、quot;, arearid); p.Add("linecodeid", linecodeid); SqlHelper.ExecuteNonQuery(sql ,p ); MessageBox.Show("增加信息¡成功|");4.3.3 刪除線路和站點同理對于系統(tǒng)的刪除界面進行如圖 412 刪除界面的界面設置:圖 412 刪除界面此時當點擊對應的按鈕時,對于線路則會刪除整條的數(shù)據(jù)信息(ID、AreaID、LineCode)以及表BusInfo中所對應的信息記錄,對于站點則會將這條站點的信息刪除但是當刪除這個站點時應查看是否有別的線路進過如果有
50、則不該刪除,以免影響其他的線路信息,因此需要設計一個MessageBox消息框,在消息框代碼中添加MessageBox.Show("是否刪除", "警告?", MessageBoxButtons.YesNoCancel)【7】則可以實現(xiàn)重要數(shù)據(jù)提示功能,以免誤刪。關鍵代碼: MessageBox.Show("是否刪除", "警告?", MessageBoxButtons.YesNoCancel); string Station = textBox2.Text; string sql = " delete
51、from BusStation where Station=LineCode" Dictionary<string, object> p = new Dictionary<string, object>(); p.Add("Station", Station); SqlHelper.ExecuteNonQuery(sql, p); MessageBox.Show("刪除信息成功!");4.3.4 修改路線站點信息對于一個完整的管理員模塊還需要具備修改數(shù)據(jù)信息的功能,“修改路線站點信息”界面和增加界面大體一致如圖 413
52、修改界面所示:圖 413 修改界面此時只需按照說明填寫即可。其關鍵代碼如下:string selectsql = "select ID,AreaID,LineCode from BusLine where LineCode=LineCode"/必填內(nèi)容用于查詢信息 Dictionary<string, object> p = new Dictionary<string, object>(); p.Add("id", id); p.Add("ArearID", ArearID); p.Add("Line
53、Code", LineCode); DataTable dt = SqlHelper.GetDataTable(selectsql, p); if (dt.Rows .Count >0 )/判斷要修改的線路存不存在 string sql = "UPDATE BusLine SET id=id,AreaID=ArearID,LineCode=LineCode where LineCode=LineCode" Dictionary<string, object> p1 = new Dictionary<string, object>();
54、 p1.Add("id", id); p1.Add("ArearID", ArearID); p1.Add("LineCode", LineCode); SqlHelper.ExecuteNonQuery(sql, p1);/增、刪、查、改函數(shù) MessageBox.Show("信息修改成功"); else MessageBox.Show("該線路不存在請重試或增加線路信息"); 第5章 結論不足和展望5.1 結論本系統(tǒng)由兩大部分組成用戶管理模塊、系統(tǒng)管理員模塊。根據(jù)用戶管理模塊的功能需求,其主要實現(xiàn)公交線路信息、站點信息、站點到站點信息的查詢。根據(jù)系統(tǒng)管理員模塊的功能需求,其主要實現(xiàn)管理員信息驗證、公交信息增加、刪除、查詢、修改功能該系統(tǒng)界面部分主要采用vs2010進行設計,并在系統(tǒng)界面的代碼窗口中設計代碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版房產(chǎn)過戶離婚協(xié)議
- 2025年度煤炭質(zhì)量檢測與購銷合同示范文本3篇
- 2025年事業(yè)單位食堂員工餐廳服務質(zhì)量提升承包協(xié)議3篇
- 2024橋梁吊裝施工合同范本:高空作業(yè)人員保險合同3篇
- 二零二五年度汽車租賃售后服務保障合同模板3篇
- 2025年度生育保險應收賬款質(zhì)押借款合同3篇
- 2024年門窗產(chǎn)品進出口代理與銷售合同書3篇
- 二零二五年度家電產(chǎn)品回收與再利用合同范本3篇
- 二零二五年度影視制作公司演員勞務派遣合同3篇
- 2025年度藝人經(jīng)紀合同權益分配明細2篇
- 安全教育教案大班40篇
- 叉車工安全培訓資料
- 九年級英語教學反思
- 外研新標準初中英語七年級上冊冊寒假提升補全對話短文練習三附答案解析
- 《旅游消費者行為學》-課程教學大綱
- YY/T 1117-2024石膏繃帶
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
- 蘇教版小學三年級科學上冊單元測試題附答案(全冊)
- 2024年人教版初一語文(上冊)期末試卷及答案(各版本)
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 物流園保安服務投標方案(技術方案)
評論
0/150
提交評論