基于web的城市公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于web的城市公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于web的城市公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于web的城市公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于web的城市公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、畢業(yè)設(shè)計(jì)說(shuō)明書學(xué)生姓名學(xué) 號(hào)學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)(軟件工程)題 目基于web的城市公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)指導(dǎo)教師 講師/碩士(姓 名) (專業(yè)技術(shù)職稱/學(xué)位)2013年5月畢業(yè)論文獨(dú)創(chuàng)性聲明本人鄭重聲明:本論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。本論文除引文外所有實(shí)驗(yàn)、數(shù)據(jù)和有關(guān)材料均是真實(shí)的。盡我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過(guò)的研究成果。其他同志對(duì)本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說(shuō)明并表示了謝意。作者簽名: 日 期:摘 要:隨著信息化時(shí)代的推進(jìn),各個(gè)行業(yè)都在采用信息化的管理方式。城市公交的查詢也可以依托計(jì)算機(jī)技術(shù),來(lái)

2、更好的為乘客提供信息服務(wù),提高工作效率,降低乘客出行成本。如此才能提高公交在各出行方式中的競(jìng)爭(zhēng)力。本設(shè)計(jì)是以Microsoft SQL Server 2005作為后臺(tái)數(shù)據(jù)庫(kù)開發(fā),以Visual Studio 2008作為開發(fā)平臺(tái),開發(fā)的基于的城市公交查詢系統(tǒng)。該系統(tǒng)主要包括以下功能模塊:乘客前臺(tái)查詢和管理員后臺(tái)管理。前臺(tái)查詢包括換乘查詢、線路查詢、站點(diǎn)查詢、評(píng)價(jià)統(tǒng)計(jì),后臺(tái)管理模塊則通過(guò)管理員登錄后分別實(shí)現(xiàn)對(duì)站點(diǎn)、線路的添加、刪除、修改。本論文詳細(xì)介紹了各模塊的設(shè)計(jì)與實(shí)現(xiàn)。關(guān)鍵詞:公交,ASP.NET,查詢,數(shù)據(jù)庫(kù)Abstract:With theadvancementofthe informa

3、tion age, all industriesininformation management. Urban public transport queriescan rely oncomputer technology,toprovide passengers witha betterservice, improve efficiency,reducethecostofpassenger travel.The design is based onMicrosoft SQL Server 2005astheback-end databasedevelopmentas a development

4、 platform, Visual Studio 2008, the development ofurbanpublic transport query system. The system includes the following functional blocks: Passengers frontand administratorsAdmin. The front deskquery includes: Transfer Inquiryline inquiry, site for theevaluation of the statistics, the background mana

5、gement moduleaddedtothesite, linebytheadministrator login, delete, modify. This paper introducesthedesign andimplementationofeach module.Keywords:BUS,ASP.NET, Inquiry, Database目 錄1 前言41.1 課題背景42 系統(tǒng)的開發(fā)工具與環(huán)境4簡(jiǎn)介42.2 系統(tǒng)的開發(fā)要求53 需求分析53.1 功能需求分析54 設(shè)計(jì)準(zhǔn)備64.1 功能模塊劃分64.2 數(shù)據(jù)庫(kù)設(shè)計(jì)64.2.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)64.2.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)85

6、 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)105.1 關(guān)于數(shù)據(jù)庫(kù)操作105.2 功能實(shí)現(xiàn)115.2.1 主界面115.2.1 站點(diǎn)查詢115.2.2 線路查詢125.2.3 換乘查詢145.3 后臺(tái)管理175.3.1 管理員登錄175.3.2 添加、修改、刪除站點(diǎn)185.3.3 添加、修改、刪除車次205.4 評(píng)價(jià)管理236 測(cè)試246.1 開發(fā)過(guò)程遇到問(wèn)題246.2 進(jìn)一步研究工作25結(jié)束語(yǔ)26參考文獻(xiàn)27致謝281 前言1.1 課題背景交通是每個(gè)城市發(fā)展的標(biāo)志,便捷通達(dá)的交通系統(tǒng)能合理有效的改善交通擁塞、能源緊張、噪聲干擾、廢氣污染等一系列問(wèn)題,推動(dòng)城市的建設(shè)與進(jìn)步。當(dāng)下城際輕軌、地鐵最快捷便利,但是運(yùn)營(yíng)成本過(guò)高,

7、只能在一些發(fā)達(dá)城市運(yùn)行,老牌公交車則經(jīng)久不衰,以其低成本高親民度,健碩存在于各個(gè)級(jí)別的城市,服務(wù)著廣大群眾。為了更好的了解城市的公交運(yùn)行系統(tǒng),方便人們的出行,開發(fā)了本系統(tǒng)。該系統(tǒng),有利于公交公司隨時(shí)將公交最新信息發(fā)布到網(wǎng)上,乘客能夠無(wú)門檻登錄該系統(tǒng)查詢公交信息。系統(tǒng)分為前臺(tái)和后臺(tái),前臺(tái)能夠供登錄系統(tǒng)的用戶訪問(wèn),后臺(tái)由公交公司管理人員進(jìn)行維護(hù)。該系統(tǒng)的核心功能為公交車信息的查詢,查詢分為站點(diǎn)換乘查詢、公交站點(diǎn)查詢、公交線路查詢。站點(diǎn)換乘查詢是用戶輸入起止站點(diǎn)名稱,查詢出如何乘車到達(dá),要求能夠查詢出所有直達(dá)車次與二次換乘可到達(dá)的車次;公交站點(diǎn)查詢是用戶輸入公交站點(diǎn),查詢出經(jīng)過(guò)此站點(diǎn)的所有車次,并能

8、夠查看該車次詳細(xì)信息;公交線路查詢是用戶輸入指定車次,查詢出此車次的詳細(xì)信息。2 系統(tǒng)的開發(fā)工具與環(huán)境是基于通用語(yǔ)言的編譯運(yùn)行的程序,它的強(qiáng)大性和適應(yīng)性,可以使它運(yùn)行在Web應(yīng)用軟件開發(fā)者的幾乎全部的平臺(tái)上。 建立在 .NET Framework 的編程類之上,它提供了一個(gè) Web 應(yīng)用程序模型,并且包含使生成 ASP Web 應(yīng)用程序變得簡(jiǎn)單的控件集和結(jié)構(gòu)。 包含封裝公共 HTML 用戶界面元素(如文本框和下拉菜單)的控件集。但這些控件在 Web 服務(wù)器上運(yùn)行,并以 HTML 的形式將它們的用戶界面推送到瀏覽器。在服務(wù)器上,這些控件公開一個(gè)面向?qū)ο蟮木幊棠P?,?Web 開發(fā)人員提供了面向?qū)?/p>

9、象的編程的豐富性。 還提供結(jié)構(gòu)服務(wù)(如會(huì)話狀態(tài)管理和進(jìn)程回收),進(jìn)一步減少了開發(fā)人員必須編寫的代碼量并提高了應(yīng)用程序的可靠性。另外, 使用這些同樣的概念使開發(fā)人員能夠以服務(wù)的形式交付軟件。使用 XML Web services 功能, 開發(fā)人員可以編寫自己的業(yè)務(wù)邏輯并使用 結(jié)構(gòu)通過(guò) SOAP 交付該服務(wù)。Visual Studio 2008 是一套完整的開發(fā)工具,用于生成 ASP Web 應(yīng)用程序、XML Web services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。Visual Basic 2008、Visual C+ .NET、Visual C# .NET 和 Visual J# .NET 全都使

10、用相同的集成開發(fā)環(huán)境 (IDE),該環(huán)境允許它們共享工具并有助于創(chuàng)建混合語(yǔ)言解決方案。另外,這些語(yǔ)言利用了 .NET Framework 的功能,此框架提供對(duì)簡(jiǎn)化 ASP Web 應(yīng)用程序和 XML Web services 開發(fā)的關(guān)鍵技術(shù)的訪問(wèn)。2.2 系統(tǒng)的開發(fā)要求該公交查詢系統(tǒng)對(duì)操作系統(tǒng)的要求如下:硬件要求:1.CPU:最低Intel Pentium II 500MHz2.磁盤空間:250MB(完全安裝),155MB(快速安裝)。3.內(nèi)存:512MB(最好1GB以上)。4.顯示:1024*768,256色。軟件要求:1.操作系統(tǒng):Windows2000以上的操作系統(tǒng)。2.開發(fā)平臺(tái):Vis

11、ual Studio 2008,Microsoft SQL Server 2005。3 需求分析3.1 功能需求分析本公交查詢系統(tǒng)以淮安作為背景城市,其余城市可參照修改同樣適用。本系統(tǒng)不僅能給廣大熟悉淮安路線的本地市民提供便利,更加能為其他來(lái)到淮安出差、旅游的朋友帶來(lái)方便。開發(fā)本系統(tǒng)的目標(biāo)就是立足廣大乘客的實(shí)際,著眼于公交業(yè)的未來(lái)發(fā)展,規(guī)范公交管理,提高服務(wù)質(zhì)量,方便乘客查詢。本系統(tǒng)采用結(jié)構(gòu)化設(shè)計(jì)的方法以實(shí)現(xiàn)系統(tǒng)總體功能,即將整個(gè)系統(tǒng)劃分為各個(gè)功能模塊,正確處理模塊之間和模塊內(nèi)部的聯(lián)系以及和數(shù)據(jù)庫(kù)的聯(lián)系,通過(guò)對(duì)各模塊的設(shè)計(jì)和模塊之間關(guān)系的安排;來(lái)系統(tǒng)實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。前臺(tái)主要有4個(gè)模塊:換乘

12、查詢、線路查詢、站點(diǎn)查詢、評(píng)價(jià)統(tǒng)計(jì),后臺(tái)管理模塊則通過(guò)管理員登錄后分別實(shí)現(xiàn)對(duì)站點(diǎn)、線路的添加、刪除、修改。前臺(tái)主要向用戶提供換乘查詢、車次查詢、站點(diǎn)查詢等查詢方式,具體實(shí)現(xiàn)如下功能:1.換乘查詢:輸入起始站名與終點(diǎn)站名,系統(tǒng)會(huì)輸出所有的公交路線方案;2.車次查詢:輸入已知的車次,系統(tǒng)會(huì)輸出該車次經(jīng)過(guò)的所有站點(diǎn)名;3.站點(diǎn)查詢:輸入已知的站點(diǎn)名,系統(tǒng)會(huì)輸出經(jīng)過(guò)該站點(diǎn)的所有車次。數(shù)據(jù)庫(kù)會(huì)提供給用戶全部的信息,用戶可以根據(jù)自己的實(shí)際情況進(jìn)行選擇,另外,用戶可以在系統(tǒng)左下角的評(píng)價(jià)欄投出自己寶貴的一票,系統(tǒng)將對(duì)結(jié)果進(jìn)行統(tǒng)計(jì)分析,實(shí)現(xiàn)用戶與公交公司的良好互動(dòng)。后臺(tái)由管理員輸入其指定賬號(hào)與密碼對(duì)數(shù)據(jù)庫(kù)進(jìn)行管

13、理,實(shí)現(xiàn)站點(diǎn)的添加、刪除、修改,線路的添加、刪除、修改。系統(tǒng)模塊如圖3-1所示:圖 3-1 系統(tǒng)模塊圖4 設(shè)計(jì)準(zhǔn)備4.1 功能模塊劃分通過(guò)需求分析,可以確定該系統(tǒng)應(yīng)完成的功能包括:1.前臺(tái)功能:主要實(shí)現(xiàn)乘客對(duì)車輛信息的查詢,包括站點(diǎn)間換乘查詢、車次查詢、站點(diǎn)查詢;其次通過(guò)評(píng)價(jià)統(tǒng)計(jì)來(lái)實(shí)現(xiàn)乘客與公交公司的互動(dòng)。2.后臺(tái)功能:主要實(shí)現(xiàn)公交公司管理員對(duì)車輛信息的維護(hù),包括線路信息的添加、刪除、修改和站點(diǎn)信息的添加、刪除、修改。4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)通過(guò)需求分析,本系統(tǒng)在概要設(shè)計(jì)階段得到五個(gè)數(shù)據(jù)實(shí)體:公交車次、公交站點(diǎn)、公交線路、管理員、評(píng)價(jià)。這些實(shí)體的屬性均按照用戶需求中的輸入輸出數(shù)據(jù)設(shè)定,故應(yīng)該根據(jù)這五

14、個(gè)實(shí)體設(shè)計(jì)五種類型的數(shù)據(jù)庫(kù)表:公交車次表、公交站點(diǎn)表、不同車次線路表、管理員表、評(píng)價(jià)統(tǒng)計(jì)表。4.2.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)所謂概念結(jié)構(gòu)設(shè)計(jì),就是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)。概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨(dú)立于機(jī)器、更抽象,從而更加穩(wěn)定,它是整個(gè)數(shù)據(jù)庫(kù)的關(guān)鍵。概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn):1.能真實(shí)、充分地反映現(xiàn)實(shí)世界,是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。2.易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫(kù)的設(shè)計(jì)成果的關(guān)鍵。3.易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。4.易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。在系統(tǒng)設(shè)計(jì)的開始,首先

15、應(yīng)該考慮如何用數(shù)據(jù)模型來(lái)描述數(shù)據(jù)庫(kù)的結(jié)構(gòu)和語(yǔ)義,以對(duì)現(xiàn)實(shí)世界進(jìn)行抽象。“實(shí)體聯(lián)系模型”(E-R模型)獨(dú)立于計(jì)算機(jī)系統(tǒng)用的較為廣泛,本系統(tǒng)也充分應(yīng)用了它。E-R模型直接從現(xiàn)實(shí)世界抽象出實(shí)體類型及實(shí)體間聯(lián)系,然后用E-R圖來(lái)表示數(shù)據(jù)模型。它更接近人都思維,容易理解;與計(jì)算機(jī)無(wú)關(guān),用戶更容易接受,但它只是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一步。E-R圖是直觀表示概念模型的工具,它有三個(gè)基本成分:1.矩形框,表示實(shí)體類型(考慮問(wèn)題的對(duì)象)。2.菱形框,表示聯(lián)系類型(實(shí)體間的聯(lián)系)。3.橢圓形框,表示實(shí)體的屬性。該系統(tǒng)實(shí)體和屬性的定義如下:管理員表E-R圖(登錄ID,登錄姓名,登錄密碼)圖4-1 管理員表E-R圖各站集合表

16、E-R圖(站名ID,站名)圖4-2 各站集合表E-R圖各條線路表E-R圖(站名ID,次序,站名)圖4-3 各條線路表E-R圖各條線路集表E-R圖(車輛ID,車次,始發(fā)站,末站,運(yùn)行區(qū)間,線路描述,IC卡類型,票價(jià),首班車時(shí)間,服務(wù)類型,末班車時(shí)間) 圖4-4 各條線路集表E-R圖評(píng)價(jià)表E-R圖(評(píng)價(jià)程度,票數(shù)) 圖4-5 評(píng)價(jià)表E-R圖4.2.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)采用Microsoft SQL Server 2005數(shù)據(jù)庫(kù)管理系統(tǒng),該系統(tǒng)不僅能滿足最大的數(shù)據(jù)處理系統(tǒng)和商業(yè)Web站點(diǎn)存儲(chǔ)數(shù)據(jù)的需要,還能為個(gè)人或小企業(yè)提供易于使用的數(shù)據(jù)存儲(chǔ)服務(wù)。之所以使用Microsoft SQL Ser

17、ver 2005就是因?yàn)樗且粋€(gè)企業(yè)級(jí)的集成商業(yè)智能的全面的數(shù)據(jù)庫(kù)平臺(tái),Microsoft SQL Server 2005數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使設(shè)計(jì)者可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。本系統(tǒng)創(chuàng)建的SQL數(shù)據(jù)庫(kù)名稱為城市公交查詢系統(tǒng),并將數(shù)據(jù)文件和日志文件保存在APP_DATA文件夾中。此數(shù)據(jù)庫(kù)包含5類表,分別是管理員表、各站集合表、各條線路表、各條線路集合表、評(píng)價(jià)表。(1)管理員表管理員表存放管理員登錄系統(tǒng)所需要的用戶名和密碼,管理員登錄后臺(tái)時(shí)需要訪問(wèn)此表。表4-1 管理員表字段名數(shù)據(jù)類型長(zhǎng)度是否允許空是否為主鍵說(shuō)明AdminIdi

18、nt3否是登錄IDAdminNamenchar(3)20否否登錄姓名AdminPasswordnchar(6)20否否登錄密碼(2)各站集合表各站點(diǎn)集合表存放所有站點(diǎn)名、編號(hào)及描述,此表中的站點(diǎn)是各條線路表中的站點(diǎn)的集合即所有線路中的站點(diǎn)。 表4-2 各站集合表字段名數(shù)據(jù)類型長(zhǎng)度是否允許空是否為主鍵說(shuō)明SiteIDint10否否站點(diǎn)IDSiteNamenchar(10)10否否站點(diǎn)名SiteDescribenchar(50)50是否站點(diǎn)描述(3)各條線路表各條線路表是存放各線路信息的表。 表4-3 各條線路表字段名數(shù)據(jù)類型長(zhǎng)度是否允許空是否為主鍵說(shuō)明SiteIdint10否否站點(diǎn)IDSiteN

19、amenchar(10)10否否站名SiteDescribenchar(50)50是否站點(diǎn)描述cixuint5否否線路中站點(diǎn)次序(4)各條線路集合表各條線路集合表是所有線路的集合表,存儲(chǔ)了所有線路的ID和一些基本信息。表4-4 各條線路集合表字段名數(shù)據(jù)類型長(zhǎng)度是否允許空是否為主鍵說(shuō)明LineIdint10否是線路IDLineNamenchar(10)10否否線路名稱LineAreanchar(10)10否否線路區(qū)間LinePricenchar(10)10否否票價(jià)LineStartPlacenchar(10)10否否始發(fā)站LineEndPlacenchar(10)10否否末站LineStartT

20、imenchar(10)10否否早班車時(shí)間LineEndTimenchar(10)10否否末班車時(shí)間LineICbit5否否IC卡類型LineDescribenchar(80)80是否線路描述(5)評(píng)價(jià)表評(píng)價(jià)表用于用戶對(duì)本系統(tǒng)的評(píng)價(jià)統(tǒng)計(jì),存儲(chǔ)不同評(píng)價(jià)的票數(shù),餅圖統(tǒng)計(jì)時(shí)調(diào)用這張表。 表4-5 評(píng)價(jià)表字段名數(shù)據(jù)類型長(zhǎng)度是否允許空是否為主鍵說(shuō)明評(píng)價(jià)程度nchar(10)10否是評(píng)價(jià)程度票數(shù)int5是否票數(shù)5 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1 關(guān)于數(shù)據(jù)庫(kù)操作在動(dòng)態(tài)網(wǎng)站中,調(diào)用數(shù)據(jù)庫(kù)中的數(shù)據(jù)是十分頻繁的,為了數(shù)據(jù)庫(kù)的安全性,本程序?qū)⑺袛?shù)據(jù)庫(kù)的操作封裝到DBConnect類中并放于DBConnect.cs文件中。開

21、發(fā)人員在實(shí)現(xiàn)其他功能時(shí),可以在此類中寫函數(shù)然后調(diào)用,避免零散的重復(fù)的操作數(shù)據(jù)庫(kù)。本系統(tǒng)的數(shù)據(jù)庫(kù)的連接代碼如下:public static SqlConnection createConnection() SqlConnection con = new SqlConnection("Data Source=SUNNANYUN;Initial Catalog=Bus;Integrated Security=True"); return con;為了不反復(fù)的訪問(wèn)數(shù)據(jù)庫(kù),記錄了一些基本信息,聲明了以下成員變量: private int SiteCount;/記錄站點(diǎn)的總個(gè)數(shù) pri

22、vate int LineCount;/記錄線路的總個(gè)數(shù) private int line;/保存每條線路5.2 功能實(shí)現(xiàn)5.2.1 主界面任意乘客、用戶都可以登錄這個(gè)公交查詢系統(tǒng)的主界面進(jìn)行查詢。該界面簡(jiǎn)潔、方便,一目了然的可以進(jìn)入三大主要查詢模塊、管理員登錄模塊、評(píng)價(jià)模塊,為各類用戶提供便利。主界面見下圖5-1: 圖5-1 主界面圖5.2.1 站點(diǎn)查詢?nèi)我庥脩舻卿浽摴徊樵兙W(wǎng)站均可進(jìn)行站點(diǎn)查詢。用戶需輸入站點(diǎn)全稱,點(diǎn)擊查詢按鈕后,系統(tǒng)會(huì)在數(shù)據(jù)庫(kù)中檢測(cè)該站點(diǎn)是否存在,如果存在,將顯示經(jīng)過(guò)該站點(diǎn)所有的公交線路情況,如果不存在將提示該站點(diǎn)不存在。該站點(diǎn)查詢界面如圖5-2所示: 圖5-2 站點(diǎn)查詢

23、圖該功能的實(shí)現(xiàn),從textbox獲取站點(diǎn)名稱sitename,獲取到sitename后,首先查詢站點(diǎn)總表里是否存在該站點(diǎn),若不存在,則count賦值為0,顯示提示信息。若存在站點(diǎn),則遍歷所有的線路表查找站點(diǎn),若某路線存在該站點(diǎn),則記錄該線路,存于數(shù)組Line。count用于統(tǒng)計(jì)經(jīng)過(guò)該站點(diǎn)的線路的個(gè)數(shù)。ref關(guān)鍵字使參數(shù)count按引用傳遞。其效果是,當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中的count所做的任何更改都將反映在該變量中。主要實(shí)現(xiàn)代碼如下: public void GetSiteLine(string Line, string sitename, ref int count) SqlCo

24、nnection cn = createConnection(); cn.Open(); string str = "select count(*) from site where sitename = '" + sitename + "'" SqlCommand cmd = new SqlCommand(str, cn); if (Convert.ToInt32(cmd.ExecuteScalar().ToString() = 0) count = 0; cn.Close(); else int i = 0; for (int j =

25、0; j < LineCount; j+) cmd.CommandText = "select count(*) from Line" + linej + " where SiteName='" + sitename + "'" if (Convert.ToInt32(cmd.ExecuteScalar().ToString() > 0) Linei+ = linej.ToString(); count = i; cn.Close(); 5.2.2 線路查詢?nèi)我庥脩舻卿浽摴徊樵兙W(wǎng)站均可進(jìn)行線路查詢。用戶可

26、以在下拉列表顯示的所有線路中找到自己想查詢的線路,點(diǎn)擊查詢,系統(tǒng)就會(huì)顯示該線路去程、回程及一些相關(guān)信息。該線路查詢界面如圖5-3所示:圖5-3 線路查詢圖該功能的實(shí)現(xiàn),首先從dropdownlist獲取線路名稱linename,然后從線路集合表中獲取該線路的信息存于數(shù)組sLineTotal中,并通過(guò)線路集合表LineID,獲取該路線的所有站點(diǎn),存于數(shù)組line中,count用于統(tǒng)計(jì)該線路所有站點(diǎn)的個(gè)數(shù)。主要實(shí)現(xiàn)代碼如下:public void GetLine(string sLineTotal, string line, string linename, ref int count) SqlC

27、onnection cn = createConnection(); cn.Open(); string str = "select * from linetotal where linename = '" + linename + "'" SqlCommand cmd = new SqlCommand(str, cn); SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows)/從linetotal中獲取信息 if (reader.Read() sLineTotal0

28、 = reader.GetValue(0).ToString().Trim(); sLineTotal1 = reader.GetValue(1).ToString().Trim(); sLineTotal2 = reader.GetValue(2).ToString().Trim(); sLineTotal3 = reader.GetValue(3).ToString().Trim(); sLineTotal4 = reader.GetValue(4).ToString().Trim(); sLineTotal5 = reader.GetValue(5).ToString().Trim();

29、 sLineTotal6 = reader.GetValue(6).ToString().Trim(); sLineTotal7 = reader.GetValue(7).ToString().Trim(); sLineTotal8 = reader.GetValue(8).ToString().Trim(); sLineTotal9 = reader.GetValue(9).ToString().Trim(); reader.Close(); cmd.CommandText = "select sitename from Line" + sLineTotal0.ToStr

30、ing().Trim() + "" reader = cmd.ExecuteReader(); if (reader.HasRows)/從具體的公交線路中獲取站點(diǎn)順序信息 int n = 0; while (reader.Read() linen+ = reader.GetValue(0).ToString().Trim(); count = n; else cn.Close(); 5.2.3 換乘查詢?nèi)我庥脩舻卿浽摴徊樵兙W(wǎng)站均可進(jìn)行換乘查詢。用戶可輸入出發(fā)站和到達(dá)站,系統(tǒng)會(huì)檢測(cè)是否存在該站點(diǎn),若存在則會(huì)檢測(cè)這兩個(gè)站點(diǎn)是否有直達(dá)車,如果沒(méi)有則會(huì)進(jìn)行一次換乘。該換乘查詢界面

31、如圖5-4所示: 圖5-4 換乘查詢圖該功能首先從textbox里獲取出發(fā)站點(diǎn)名StartSite和到達(dá)站點(diǎn)名EndSite,然后判斷是否存在這兩個(gè)站點(diǎn),若不存在,則給出提示,否則,分別搜索包含StartSite、EndSite的路線存于臨時(shí)數(shù)組StartSiteLineId和EndSiteLineId中。分兩種情況討論,1.直達(dá),遍歷兩條線路的所有組合,判斷,如果存在路線相同的,則表示可直達(dá)。2.需換乘一次,在遍歷兩條線路的所有組合的前提下,若經(jīng)過(guò)StartSite的路線中有和經(jīng)過(guò)EndSite的路線有相同的站點(diǎn),則表示可換乘一次到達(dá)。主要實(shí)現(xiàn)代碼如下:/count用于記錄方案?jìng)€(gè)數(shù) 其中 -

32、1表示不存在StartSite站點(diǎn),-2表示不存在EndSite -3表示直達(dá)/ Linem, m是表示換成的方案?jìng)€(gè)數(shù)的,Linem,0車次1,Linem,1 StartSite到中轉(zhuǎn)站點(diǎn)的站數(shù), Linem,2中轉(zhuǎn)站點(diǎn),Linem,3車次2,Linem,4中轉(zhuǎn)站點(diǎn)到EndSite的站數(shù)public void GetSiteLineHuanCheng(string, Line, string StartSite, string EndSite, ref int count) int StartSiteLineId = new int21;/記錄包含StartSite的路線 int EndSit

33、eLineId = new int21;/記錄包含EndSite的路線 SqlConnection cn = createConnection(); cn.Open(); /判斷是否存在StartSite站點(diǎn) string str = "select count(*) from site where sitename = '" + StartSite + "'" SqlCommand cmd = new SqlCommand(str, cn); if (Convert.ToInt32(cmd.ExecuteScalar().ToStrin

34、g() = 0) count = -1; cn.Close(); return; /判斷是否存在EndSite站點(diǎn) cmd.CommandText = "select count(*) from site where sitename = '" + EndSite + "'" if (Convert.ToInt32(cmd.ExecuteScalar().ToString() = 0) count = -2; cn.Close(); return; /搜索包含StartSite的路線 int i = 0; int j = 0; for (

35、j = 0; j < LineCount; j+) cmd.CommandText = "select count(*) from Line" + linej + " where SiteName='" + StartSite + "'" if (Convert.ToInt32(cmd.ExecuteScalar().ToString() > 0) StartSiteLineIdi+ = linej; StartSiteLineIdi = -1;/用于終止判斷 /搜索包含EndSite的路線 i = 0;

36、j = 0; for (j = 0; j < LineCount; j+) cmd.CommandText = "select count(*) from Line" + linej + " where SiteName='" + EndSite + "'" if (Convert.ToInt32(cmd.ExecuteScalar().ToString() > 0) EndSiteLineIdi+ = linej; EndSiteLineIdi = -1;/用于終止判斷 /當(dāng)兩個(gè)站點(diǎn)處于同一條路線時(shí),即直

37、達(dá) for (i = 0; i < 20 && StartSiteLineIdi != -1; i+) for (j = 0; j < 20 && EndSiteLineIdj != -1; j+) if (StartSiteLineIdi = EndSiteLineIdj) count = -3; Line0, 0 = StartSiteLineIdi.ToString().Trim();/記錄第幾路車 cmd.CommandText = "select cixu from Line" + Line0, 0 + " w

38、here SiteName='" + EndSite + "'"/獲得EndSite的次序 int end = Convert.ToInt32(cmd.ExecuteScalar().ToString(); cmd.CommandText = "select cixu from Line" + Line0, 0 + " where SiteName='" + StartSite + "'"/獲得StartSite的次序 int start = Convert.ToInt32

39、(cmd.ExecuteScalar().ToString(); Line0, 1 = Math.Abs(end - start).ToString(); cn.Close(); return; int k = 0;/用于記錄當(dāng)前的方案?jìng)€(gè)數(shù),用于數(shù)組Linek, /用于判斷換乘的,換乘一次 for (i = 0; i < 20 && StartSiteLineIdi != -1 && k < 8; i+) int startsite = new int35;/用于記錄每條路線的站點(diǎn)id cmd.CommandText = "select s

40、iteid from Line" + StartSiteLineIdi + "" SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) int num = 0; while (reader.Read() startsitenum+ = Convert.ToInt32(reader.GetValue(0).ToString().Trim(); startsitenum = -1; reader.Close(); for (j = 0; j < 20 && EndSiteL

41、ineIdj != -1 && k < 8; j+) int endsite = new int35;/用于記錄每條路線的站點(diǎn)id cmd.CommandText = "select siteid from Line" + EndSiteLineIdj + "" reader = cmd.ExecuteReader(); if (reader.HasRows) int num = 0; while (reader.Read() endsitenum+ = Convert.ToInt32(reader.GetValue(0).ToSt

42、ring().Trim(); endsitenum = -1; reader.Close(); int Logo = 0;/用來(lái)控制下面兩個(gè)循環(huán)的 /尋找兩條線路中兩條線路的相同站點(diǎn) for (int m = 0; m < 35 && startsitem != -1 && Logo = 0; m+) for (int n = 0; n < 35 && endsiten != -1 && Logo = 0 ; n+) if (startsitem = endsiten) cmd.CommandText = "

43、select cixu from Line" + StartSiteLineIdi + " where sitename = '" + StartSite + "'" int start = Convert.ToInt32(cmd.ExecuteScalar().ToString(); cmd.CommandText = "select cixu from Line" + EndSiteLineIdj + " where sitename = '" + EndSite + &quo

44、t;'" int end = Convert.ToInt32(cmd.ExecuteScalar().ToString(); cmd.CommandText = "select sitename from site where siteid=" + startsitem + "" Linek, 0 = StartSiteLineIdi.ToString(); Linek, 1 = Math.Abs(m + 1 - start).ToString();/m+1就相當(dāng)于是這點(diǎn)的次序 Linek, 2 = cmd.ExecuteScalar(

45、).ToString().Trim(); Linek, 3 = EndSiteLineIdj.ToString(); Linek, 4 = Math.Abs(n + 1 - end).ToString(); Logo = 1;/跳出上面兩個(gè)循環(huán) k+; /end for /end for (j = 0; j < 20 && EndSiteLineIdj != -1; j+) /end for (i = 0; i < 20 && StartSiteLineIdi != -1; i+) count = k; cn.Close(); 5.3 后臺(tái)管理5.3

46、.1 管理員登錄此模塊為管理員登錄后臺(tái)服務(wù),只要管理員輸入正確的用戶名、密碼就能登錄后臺(tái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改管理。界面如圖5-5所示: 圖5-5 管理員登錄圖該功能實(shí)現(xiàn),首先分別從textbox中獲取ID信息存入id,密碼信息存入pass,判斷非空的情況下查詢管理員表,ID、密碼一致的情況下允許進(jìn)入后臺(tái)管理。主要實(shí)現(xiàn)代碼如下:public bool Login(string id, string pass) SqlConnection cn = createConnection(); cn.Open(); SqlCommand cmd = new SqlCommand("SELECT C

47、ount(*) FROM Admin WHERE AdminId='" + id + "'AND AdminPassword='" + pass + "'", cn); int count = Convert.ToInt32(cmd.ExecuteScalar(); cn.Close(); if (count > 0) return true; else return false; 5.3.2 添加、修改、刪除站點(diǎn)對(duì)于新出現(xiàn)的一些站點(diǎn),本系統(tǒng)具有添加功能,對(duì)于舊站點(diǎn)更名后的修改,本系統(tǒng)具有修改功能,對(duì)于舊站

48、點(diǎn)的廢除,本系統(tǒng)具有刪除功能。管理員登錄后臺(tái)后,可以通過(guò)添加、修改、刪除操作對(duì)各站點(diǎn)集合的表進(jìn)行管理。三個(gè)功能的界面相似,只貼出添加界面,界面如下圖5-6所示: 圖5-6 添加站點(diǎn)圖將輸入textbox的站名存入數(shù)組name、站點(diǎn)描述存入數(shù)組SiteDescribe,然后添加到總站點(diǎn)表中,同時(shí)記錄站點(diǎn)總個(gè)數(shù)的變量SiteCount要+1。實(shí)現(xiàn)的主要代碼如下:public bool ZhandianAdd(string name, string SiteDescribe) SqlConnection cn = createConnection(); cn.Open(); SiteCount+; SqlCommand cmd = new SqlCommand("insert into

溫馨提示

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