C#毕业设计——基于C#+asp.net+sqlserver的交通信息网上查询系统设计与实现(毕业论文+程序源码)——交通信息网上查询系统
基于C#+asp.net+sqlserver的交通信息網(wǎng)上查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(畢業(yè)論文+程序源碼)
大家好,今天給大家介紹基于C#+asp.net+sqlserver的交通信息網(wǎng)上查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),文章末尾附有本畢業(yè)設(shè)計(jì)的論文和源碼下載地址哦。
文章目錄:
- 基于C#+asp.net+sqlserver的交通信息網(wǎng)上查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(畢業(yè)論文+程序源碼)
- 1、項(xiàng)目簡介
- 2、資源詳情
- 3、關(guān)鍵詞:
- 4、畢設(shè)簡介
- 5、資源下載
1、項(xiàng)目簡介
2、資源詳情
項(xiàng)目難度:中等難度
適用場景:相關(guān)題目的畢業(yè)設(shè)計(jì)
配套論文字?jǐn)?shù):12813個(gè)字28頁
包含內(nèi)容:整套源碼+完整畢業(yè)論文
3、關(guān)鍵詞:
交通;ASP.NET;查詢;B/S結(jié)構(gòu);數(shù)據(jù)庫4、畢設(shè)簡介
提示:以下為畢業(yè)論文的簡略介紹,項(xiàng)目源碼及完整畢業(yè)論文下載地址見文末。
1 引言
1.1 課題背景
省略
1.2 國內(nèi)研究現(xiàn)狀
省略
1.3 本課題研究的意義
省略
1.4 本課題的研究方法
通過訪問現(xiàn)有網(wǎng)上的火車時(shí)刻查詢系統(tǒng)、公交查詢系統(tǒng)等,做出分析報(bào)告,然后通過.net語言和SQL來進(jìn)行開發(fā)。在設(shè)計(jì)中以需求分析為基礎(chǔ),寫出系統(tǒng)開發(fā)計(jì)劃、實(shí)現(xiàn)流程及相關(guān)問題的實(shí)現(xiàn)方法,然后用這個(gè)流程進(jìn)行本次開發(fā)。
1.5 本文所做工作
首先介紹了交通信息網(wǎng)上查詢系統(tǒng)的開發(fā)環(huán)境以及選用的開發(fā)工具與數(shù)據(jù)庫的關(guān)系,闡明了計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)的概念。并對(duì)數(shù)據(jù)庫的體系結(jié)構(gòu)、DBMS進(jìn)行了介紹;從工作原理入手,介紹asp.net;并且介紹了B/S模式的概念、特點(diǎn);用軟件工程的方法分析交通信息網(wǎng)上查詢系統(tǒng),對(duì)整個(gè)系統(tǒng)進(jìn)行了需求分析、功能模塊劃分,并通過ER圖對(duì)數(shù)據(jù)庫進(jìn)行概念設(shè)計(jì);對(duì)交通信息網(wǎng)上查詢系統(tǒng)的具體設(shè)計(jì),描述了查詢、錄入模塊的實(shí)現(xiàn)過程。最后,在結(jié)束語的總結(jié)部分指出了系統(tǒng)的亮點(diǎn)以及不足之處,簡單介紹了自己開發(fā)過程中的體會(huì)與心得:在摸索中實(shí)踐,在實(shí)踐中摸索。
2 設(shè)計(jì)環(huán)境
2.1 計(jì)算機(jī)網(wǎng)絡(luò)
計(jì)算機(jī)網(wǎng)絡(luò)是指將多臺(tái)具有獨(dú)立功能的計(jì)算機(jī),通過通信線路和通信設(shè)備連接起來,在網(wǎng)絡(luò)軟件的支持下實(shí)現(xiàn)數(shù)據(jù)通信和資源共享的計(jì)算機(jī)系統(tǒng)。
計(jì)算機(jī)網(wǎng)絡(luò)的規(guī)模有大有小,大的可以覆蓋全球,小的僅局限于一個(gè)辦公室。現(xiàn)在一般按照網(wǎng)絡(luò)覆蓋的地理范圍將計(jì)算機(jī)網(wǎng)絡(luò)分為三類:局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)。
2.2 系統(tǒng)運(yùn)行環(huán)境
該系統(tǒng)采用Browser/Server模式進(jìn)行設(shè)計(jì):在服務(wù)器上運(yùn)行Web發(fā)布服務(wù)器、數(shù)據(jù)庫程序,服務(wù)器操作系統(tǒng)為Windows,客戶機(jī)操作為Windows,其上運(yùn)行瀏覽器程序,服務(wù)器和客戶機(jī)可為同一設(shè)備。
2.3 系統(tǒng)開發(fā)工具
該系統(tǒng)采用.NET環(huán)境,運(yùn)用Dreamweaver進(jìn)行開發(fā),數(shù)據(jù)庫服務(wù)器為SQL,WEB發(fā)布服務(wù)器為Windows Server;客戶端使用瀏覽器運(yùn)行程序,整個(gè)系統(tǒng)調(diào)試成功。
2.4 開發(fā)工具介紹
2.4.1 Dreamweaver介紹
Dreamweaver是美國MACROMEDIA公司開發(fā)的集網(wǎng)頁制作和管理網(wǎng)站于一身的所見即所得網(wǎng)頁編輯器,它是第一套針對(duì)專業(yè)網(wǎng)頁設(shè)計(jì)師特別發(fā)展的視覺化網(wǎng)頁開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺(tái)限制和跨越瀏覽器限制的充滿動(dòng)感的網(wǎng)頁。
DREAMWEAVER特點(diǎn):最佳的制作效率、網(wǎng)站管理、無可比擬的控制能力。
2.4.2 SQ介紹
SQL Server 是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQL Server 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)。可跨越從運(yùn)行Microsoft Windows 的膝上型電腦到運(yùn)行Microsoft Windows 的大型多處理器的服務(wù)器等多種平臺(tái)使用。
3 設(shè)計(jì)理論依據(jù)
3.1 數(shù)據(jù)庫技術(shù)
省略
3.2 ASP.NET語言介紹
3.2.1 Asp.net與asp的區(qū)別
Asp是一個(gè)腳本編程環(huán)境,只能用VBScript或者JavaScript這樣的非模塊化語言來編寫。當(dāng)ASP程序完成之后,在每次請(qǐng)求的時(shí)候解釋執(zhí)行。這就意味著它在使用其他語言編程寫大量組件的時(shí)候會(huì)遇到困難,并且無法實(shí)現(xiàn)對(duì)操作系統(tǒng)的低層操作。ASP.NET則是建立在.NET Framework之上的,他可以使用Visual Basic、C++這樣的模塊化程序設(shè)計(jì)語言,并且它在第一次執(zhí)行時(shí)進(jìn)行編譯,之后的執(zhí)行不需要重新編譯就可以直接運(yùn)行,所以速度和效率比ASP提高很多。
在編寫ASP應(yīng)用程序的時(shí)候,ASP代碼和HTML混合在一起。只要需要,就可以在任意的一個(gè)位置插入一段代碼來實(shí)現(xiàn)特定的功能。這樣方法表面上看起來很方便,但在實(shí)際的工作中會(huì)產(chǎn)生大量繁瑣的頁面,很難讀懂,導(dǎo)致代碼維護(hù)很困難。ASP.NET則可以實(shí)現(xiàn)代碼和內(nèi)容的完全分離,使得維護(hù)方便。
ASP對(duì)所有要實(shí)現(xiàn)的功能均需要通過編寫代碼來實(shí)現(xiàn)。在ASP.NET中,程序員只要預(yù)先說明,ASP.NET就可以自動(dòng)實(shí)現(xiàn)這樣的功能。所以相對(duì)來說,要實(shí)現(xiàn)同樣的功能,使用ASP.NET比使用ASP的代碼量要少的多。
3.2.2 ASP.NET的工作原理
ASP.NET的工作原理是:首先,客戶端瀏覽器有一個(gè)HTTP請(qǐng)求發(fā)送到Web服務(wù)器,要求訪問一個(gè)Web網(wǎng)頁。然后,Web服務(wù)器通過分析客戶HTTP請(qǐng)求來定位所請(qǐng)求網(wǎng)頁的位置。如果所請(qǐng)求的網(wǎng)頁的文件名后綴是aspx,那么就把這個(gè)文件傳誦aspnet_isapi.dll進(jìn)行處理,由aspnet_isapi.dll把ASP.NET代碼提交給CLR。如果以前沒有執(zhí)行過這個(gè)程序,那么就由CLR編譯并執(zhí)行,得到純HTML結(jié)果;如果已經(jīng)執(zhí)行過這個(gè)程序,那么就直接執(zhí)行編譯好的程序并得到純HTML結(jié)果。最后,把這些純HTML結(jié)果傳回到瀏覽器作為HTTP響應(yīng),瀏覽器收到這個(gè)響應(yīng)之后,就可以顯示W(wǎng)eb網(wǎng)頁。
圖1 .NET的組成部分
3.3 B/S結(jié)構(gòu)介紹
B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript…)和ActiveX技術(shù),用通用瀏覽器就實(shí)現(xiàn)了原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序?qū)⑹蔷薮蟮倪M(jìn)步。
圖2 B/S結(jié)構(gòu)圖
B/S結(jié)構(gòu)采用星形拓?fù)浣Y(jié)構(gòu)建立企業(yè)內(nèi)部通信網(wǎng)絡(luò)或利用Internet虛擬專網(wǎng)(VPN)。前者的特點(diǎn)是安全、快捷、準(zhǔn)確。后者則具有節(jié)省投資、跨地域廣的優(yōu)點(diǎn)。須視企業(yè)規(guī)模和地理分布確定。企業(yè)內(nèi)部通過防火墻接入Internet,在整個(gè)網(wǎng)絡(luò)采用TCP/IP協(xié)議。
省略
4 系統(tǒng)構(gòu)架
4.1 系統(tǒng)概述
本系統(tǒng)是在全國城際交通路線基礎(chǔ)上,將各交通信息進(jìn)行整合查詢的系統(tǒng),是為了方便旅客了解各交通路線情況而開發(fā)設(shè)計(jì)的。本系統(tǒng)根據(jù)錄入的數(shù)據(jù),根據(jù)不同的要求,可以查詢出各時(shí)段、班次、城市的交通信息。另外,要達(dá)到對(duì)不能直達(dá)的城市進(jìn)行轉(zhuǎn)乘查詢的目的。功能范圍有:按城市查詢、按班次查詢、普通查詢、管理員對(duì)交通、城市、及管理員信息的管理。根據(jù)這些,構(gòu)成了該系統(tǒng)。
4.2 系統(tǒng)功能簡述
a) 普通查詢:輸入最簡潔的查詢方式,用戶只需要輸入出發(fā)城市和終點(diǎn)城市就可進(jìn)行交通信息查詢,查詢結(jié)果為所有符合條件的公路、鐵路及航空信息的綜合顯示。
b) 城市查詢:輸入想要了解的城市名稱,即可查詢出所有經(jīng)過該城市的所有交通信息,以及相關(guān)的城市介紹。。
c) 班次查詢:在知道班次的前提下,可以對(duì)該班次進(jìn)行詳細(xì)的查詢。
d) 高級(jí)查詢:用戶可根據(jù)自己特定的條件,在系統(tǒng)上查詢交通信息。如相關(guān)時(shí)間、價(jià)格等。
a) 修改信息:在原有信息的基礎(chǔ)上,對(duì)已改變的信息進(jìn)行修改,以達(dá)到正確性和時(shí)效性。
b) 添加信息:當(dāng)有新的交通信息出現(xiàn)后,需要及時(shí)正確的添加該信息,確保系統(tǒng)的時(shí)效性。
c) 刪除信息:當(dāng)某交通信息被廢棄時(shí),應(yīng)及時(shí)的刪除該信息,以免對(duì)查詢的結(jié)果產(chǎn)生錯(cuò)誤的影響和對(duì)數(shù)據(jù)庫造成不必要的負(fù)擔(dān)。
城市的添加是在添加交通信息的時(shí)候自動(dòng)添加的,故此功能里面只有修改城市信息、修改城市名稱和刪除城市的功能。當(dāng)城市尚有交通工具抵達(dá)的時(shí)候,不可將該城市刪除。
管理員登陸管理頁面以后,可以根據(jù)需要,修改自己的個(gè)人資料,以方便初始管理員聯(lián)系,也可修改自己的登陸密碼。初始管理員除了可以修改自己的資料以外,還可以幫助其他管理員修改資料。當(dāng)其他管理員遺失密碼后,可由初始管理員將其密碼改回。
以下為功能構(gòu)成圖和查詢流程圖。
圖3 系統(tǒng)功能構(gòu)成圖
圖4 查詢流程圖
5 數(shù)據(jù)庫設(shè)計(jì)
5.1 概念設(shè)計(jì)
實(shí)體和屬性的定義如下:
城市(城市編號(hào),城市名稱,城市介紹)
線路(線路編號(hào),種類,車型,頻率,班次)
交通關(guān)系(線路編號(hào),城市編號(hào),交通關(guān)系編號(hào),出發(fā)時(shí)間,到達(dá)時(shí)間,到達(dá)順序,價(jià)格1……價(jià)格15)
5.2 表的設(shè)計(jì)
數(shù)據(jù)庫中建立了4張表,用于記錄各項(xiàng)信息。
首先建立了管理員資料表users.dbf,用來存儲(chǔ)管理員等登陸信息以及相關(guān)個(gè)人資料,具體字段如下:
6 各功能模塊的詳細(xì)說明
6.1 查詢模塊功能設(shè)計(jì)
本模塊機(jī)能是從數(shù)據(jù)庫中,根據(jù)所要求的查詢條件以及查詢方法,在數(shù)據(jù)庫中進(jìn)行交通信息的查詢和篩選,并以表格的方式表現(xiàn)出來。查詢的總體思路為:
由于交通班次具有方向性,所以在交通關(guān)系表中特別設(shè)定了stops關(guān)鍵字,用來存放交通信息的到達(dá)順序,并且在每次查詢的時(shí)候都加入查詢條件start.stops<end.stops,這樣就能保證每條查詢出的交通路線都具有正確的方向性,以及避免了交通路線重復(fù)的情況。而查詢的總體思路是把城市作為結(jié)點(diǎn),交通關(guān)系作為通路來構(gòu)成連通的有向圖,然后用廣度優(yōu)先的方法進(jìn)行遍歷為基礎(chǔ)。為了提高查詢效率,在構(gòu)造查詢的時(shí)候,又是以起點(diǎn)和終點(diǎn)的結(jié)點(diǎn)構(gòu)造個(gè)子的最小生成樹,通過查找其交叉結(jié)點(diǎn)或通路,我們就可以得到我們的查詢結(jié)果。
在查詢系統(tǒng)的主頁面中,將要查詢的信息輸入文本,并選擇方法提交以后,查詢系統(tǒng)將輸入的信息存入session變量中,并根據(jù)不同的查詢方法和種類,跳轉(zhuǎn)到不同的頁面進(jìn)行處理。查詢主頁面的主要輸入頁面如下:
圖9 查詢主界面
根據(jù)查詢的方法和種類不同,查詢共分為6個(gè)部分:
6.1.1 直達(dá)查詢
在直達(dá)查詢中,可以查詢到從起點(diǎn)城市出發(fā)到終點(diǎn)城市,可以乘坐的交通工具基本信息,以及起點(diǎn)城市的出發(fā)時(shí)間、終點(diǎn)城市到達(dá)時(shí)間、其間該班次可能經(jīng)過的城市的到達(dá)時(shí)間和出發(fā)時(shí)間。
通過查詢總體思路的派生,直達(dá)查詢的主要查詢方法簡化為以起點(diǎn)城市和終點(diǎn)城市作為結(jié)點(diǎn),查詢出連通該2個(gè)結(jié)點(diǎn)的通路,該通路即為我們需要查詢的交通路線。當(dāng)用戶以直達(dá)查詢提交以后,系統(tǒng)將會(huì)跳轉(zhuǎn)到chaxun.aspx頁面。在打開chaxun.aspx頁面后,后臺(tái)將用以存入session變量中的起點(diǎn)城市和終點(diǎn)城市來查詢數(shù)據(jù)庫,并測試有無符合條件的交通工具,其SQL語句為:
select a.tid,b.gotime,a.gettime,b.stops as stopsb,a.stops as stopsa from //將所有經(jīng)過終點(diǎn)城市的車信息作為子集合(select * from bus where cityid=(select cityid from ctxx where cityname=@ends))A, //將所有經(jīng)過起點(diǎn)城市的車的信息作為子集B (select * from bus where cityid=(select cityid from ctxx where cityname=@start))Bwhere A.stops>B.stops and a.tid=b.tid當(dāng)查詢到交通路線時(shí),進(jìn)行需要返回的相關(guān)信息查詢并顯示;若沒有,則返回“無班次到達(dá)”的結(jié)果,并輸出超連接,可連接到chaxun2.aspx頁面進(jìn)行一次轉(zhuǎn)乘查詢。
6.1.2 一次轉(zhuǎn)乘查詢
在一次轉(zhuǎn)乘查詢中,可以查詢到從起點(diǎn)城市出發(fā)到終點(diǎn)城市,其間要經(jīng)過的一個(gè)城市,以及要乘坐的2個(gè)交通工具的基本信息和中轉(zhuǎn)城市的到達(dá)時(shí)間以及出發(fā)時(shí)間。
通過查詢總體思路的派生,一次轉(zhuǎn)乘查詢的主要查詢方法簡化為以起點(diǎn)城市和終點(diǎn)城市作為結(jié)點(diǎn),分別查詢出連通該2個(gè)結(jié)點(diǎn)的通路,然后在這些通路的基礎(chǔ)上,查找他們交匯的結(jié)點(diǎn),此時(shí),這些結(jié)點(diǎn)就為我們一次轉(zhuǎn)乘的中轉(zhuǎn)城市,而分別連通起點(diǎn)和終點(diǎn)結(jié)點(diǎn)的通路即為我們需要查詢的交通路線。當(dāng)用戶以一次轉(zhuǎn)乘查詢提交或者在直達(dá)查詢后通過超連接跳轉(zhuǎn)到chaxun2.aspx頁面。在chaxun2.aspx中,后臺(tái)首先測試其中轉(zhuǎn)城市是否存在,其SQL語句為:
select cityid,cityname from ctxx where cityid in // 將所有經(jīng)過起點(diǎn)城市的交通信息作為子集a (select b.cityid from (select * from bus where cityid=(select cityid from ctxx where cityname=@start))a, //將所有經(jīng)過起點(diǎn)城市的車的信息(主要查詢到達(dá)城市)作為子集b (select * from bus where tid in(select tid from bus where cityid=(select cityid from ctxx where cityname=@start)))b, //將所有經(jīng)過終點(diǎn)城市的車的信息(主要查詢到達(dá)城市)作為子集c (select * from bus where tid in(select tid from bus where cityid=(select cityid from ctxx where cityname=@ends)))c, //將所有經(jīng)過終點(diǎn)城市的交通信息作為子集d (select * from bus where cityid=(select cityid from ctxx where cityname=@ends))d //起點(diǎn)和終點(diǎn)能到達(dá)的城市中相同的城市 where A.stops < B.stops and a.tid=b.tid and c.stops < d.stops and c.tid=d.tid and b.cityid=c.cityid)若存在,則首先查詢出中轉(zhuǎn)城市名,即我們查詢出通路的交叉結(jié)點(diǎn),用dataset對(duì)象的table屬性將返回結(jié)果保存起來。然后利用for循環(huán),每次循環(huán)首先輸出起點(diǎn)到中轉(zhuǎn)城市的交通信息,然后再輸出中轉(zhuǎn)城市到終點(diǎn)城市的交通信息。
否則返回“無班次到達(dá)”的結(jié)果,并輸出超連接,轉(zhuǎn)到2轉(zhuǎn)查詢的chaxun3.aspx頁面。
6.1.3 二次轉(zhuǎn)乘查詢
在二次轉(zhuǎn)乘查詢中,可以查詢到從起點(diǎn)城市出發(fā)到終點(diǎn)城市,其間要經(jīng)過的2個(gè)城市,以及要乘坐的3個(gè)交通工具的基本信息和中轉(zhuǎn)城市的到達(dá)時(shí)間以及出發(fā)時(shí)間。
通過查詢總體思路的派生,二次轉(zhuǎn)乘查詢的主要查詢方法簡化為以起點(diǎn)城市和終點(diǎn)城市作為結(jié)點(diǎn),分別查詢出連通該2個(gè)結(jié)點(diǎn)的所有通路。再利用集合的方法,將連通起點(diǎn)城市結(jié)點(diǎn)的通路連通的所有城市設(shè)為集合A,將連通終點(diǎn)城市結(jié)點(diǎn)的通路連通的所有城市設(shè)為集合B,這樣,我們就只需要將集合A的城市作為起點(diǎn)結(jié)點(diǎn),將集合B的城市作為終結(jié)點(diǎn),進(jìn)行直達(dá)查詢算法,若查詢有結(jié)果,就表示我們二次轉(zhuǎn)乘查詢成功。為了不讓我們的查詢結(jié)果中出現(xiàn)循環(huán)的現(xiàn)象,在查詢條件中還需要加上所有的中轉(zhuǎn)城市與起點(diǎn)和終點(diǎn)城市不相同的條件。
進(jìn)入chaxun3.aspx頁面后,還是進(jìn)行查詢結(jié)果測試,其SQL語句為:
select a.cityid, b.tid,b.cityid,bus.tid ,c.cityid,c.tid,d.cityid from bus, //將所有經(jīng)過起點(diǎn)城市的交通信息作為子集a (select * from bus where cityid=(select cityid from ctxx where cityname=@start))a, //將所有經(jīng)過起點(diǎn)城市的車的信息(主要查詢到達(dá)城市)作為子集b (select * from bus where tid in(select tid from bus where cityid=(select cityid from ctxx where cityname=@start)))b, //將所有經(jīng)過終點(diǎn)城市的車的信息(主要查詢到達(dá)城市)作為子集c (select * from bus where tid in(select tid from bus where cityid=(select cityid from ctxx where cityname=@ends)))c, //將所有經(jīng)過終點(diǎn)城市的交通信息作為子集d (select * from bus where cityid=(select cityid from ctxx where cityname=@ends))d //從起點(diǎn)城市能到達(dá)的所有城市 where A.stops < B.stops and a.tid=b.tid and //從終點(diǎn)城市能到達(dá)的所有城市 c.stops < d.stops and c.tid=d.tid //在子集合b和子集c中有交通關(guān)系存在 and bus.tid in (select bus.tid from bus where cityid=b.cityid) and bus.tid in (select bus.tid from bus where cityid=c.cityid) and bus.stops='1' //經(jīng)過的4個(gè)城市各不相同。 and a.cityid<>b.cityid and a.cityid<>c.cityid and a.cityid<>d.cityid and b.cityid<>c.cityid and b.cityid<>d.cityid and c.cityid<>d.cityid 。若查詢有結(jié)果,則利用dataset對(duì)象中的table屬性將需要的信息保存下來,然后再根據(jù)其信息進(jìn)行各交通工具和城市信息的查詢和輸出;若查詢無結(jié)果,則執(zhí)行輸出:“現(xiàn)有條件查詢不到符合要求的結(jié)果”并結(jié)束。
6.1.4 高級(jí)查詢
通過高級(jí)查詢的超連接,可以跳轉(zhuǎn)到高級(jí)查詢頁面gjcx.aspx。在此頁面,用戶除了可以輸入起點(diǎn)城市和終點(diǎn)城市以外,還可以根據(jù)自己的需要,選擇性的輸入需要限定的時(shí)間、價(jià)格等信息,如下圖所示:
圖10 高級(jí)查詢
當(dāng)用戶在高級(jí)查詢頁面提交查詢后,首先測試是否有從起點(diǎn)城市到達(dá)終點(diǎn)城市的交通路線,其SQL語句與直達(dá)查詢相同。當(dāng)查詢到交通路線時(shí),進(jìn)行需要返回的相關(guān)信息查詢并顯示;若沒有,則返回“無班次到達(dá)”的結(jié)果。在此頁面中,在測試路線的SQL語句是在直達(dá)查詢的SQL語句的基礎(chǔ)上,整合了頁面提交的限定條件,并根據(jù)條件查詢和輸出結(jié)果。
6.1.5 城市查詢
在主頁面中,還有城市查詢的功能,其主要功能是查詢所有抵達(dá)該城市的交通路線的基本信息及該交通路線以后可以抵達(dá)的城市、另外還有城市簡介。
在跳轉(zhuǎn)到城市查詢city.aspx頁面后,后臺(tái)程序會(huì)調(diào)用session變量中的城市名進(jìn)行是否有交通路線連通的測試,其SQL語句為:
若沒有,則輸出:“尚無該城市信息”;若有,則首先在ctxx.dbf中查詢出該城市的簡介,然后輸出,最后查詢交通路線的相關(guān)信息,依次輸出。
6.1.6 路線查詢
在主頁面中,還有城市查詢的功能,其主要功能是查詢指定交通路線的信息,輸出信息包括種類、班次、車型、頻率、經(jīng)過城市名、在該城市的出發(fā)時(shí)間以及抵達(dá)該城市的時(shí)間。
在路線查詢line.aspx中,其功能比較簡單,多數(shù)與city.aspx的功能相似,只是查詢的數(shù)據(jù)表和輸出內(nèi)容差異,故在此不多做介紹了。
6.2 后臺(tái)管理模塊功能設(shè)計(jì)
在需要對(duì)系統(tǒng)進(jìn)行后臺(tái)管理時(shí),首先需要進(jìn)行管理員身份登陸,其頁面如下:
圖11 管理員登陸
在登陸頁面login.aspx中,登陸首先觸發(fā)后臺(tái)程序,在users.dbf中查詢對(duì)應(yīng)loginID的密碼,然后將用戶輸入的密碼用MD5加密后,與之對(duì)面,相同則通過登陸,將相關(guān)信息保存到session變量中,以便通過以后頁面的驗(yàn)證,然后跳轉(zhuǎn)到admin.aspx頁面,否則登陸失敗。
登陸以后,系統(tǒng)進(jìn)入admin.aspx頁面,界面如下:
圖12 管理主界面
如上所示,admin.aspx是一個(gè)由3個(gè)頁面所組成個(gè)框架,頂部為admin_top.aspx,主要顯示當(dāng)前系統(tǒng)時(shí)間和登陸ID;左側(cè)為admin_left.aspx,全部由超連接組成,為跳轉(zhuǎn)到其他功能頁面所準(zhǔn)備;右下方最大的為main.aspx,用于提醒管理員未添加完整的信息,也是框架中用來顯示其他功能頁面的區(qū)域。
在所有的后臺(tái)頁面中,后臺(tái)程序都會(huì)先判斷session中是否含有登陸信息,若沒有則跳轉(zhuǎn)到login.aspx。
在左側(cè)的注銷功能中,首先跳轉(zhuǎn)到cancellogin.aspx頁面,該頁面的后臺(tái)程序?qū)⑶蹇誷ession中與登陸有關(guān)的所有變量,然后跳轉(zhuǎn)到login.aspx頁面。
6.2.1 管理員信息管理
管理員信息管理由修改個(gè)人資料和管理員管理組成。而管理員管理需要初始管理員身份,一般管理員無法對(duì)其操作。
1、 修改個(gè)人資料
進(jìn)入修改個(gè)人資料chggrzl.aspx頁面,首先利用session變量中的登陸信息查詢users.dbf表,再用dataset對(duì)象將登陸管理員的相關(guān)信息輸出,然后利用文本框錄入信息對(duì)其進(jìn)行修改。
2、 管理員管理
在管理員管理glygl.aspx頁面中,后臺(tái)程序除了判斷登陸條件以外,還指定了登陸ID必須為admin,且所有的函數(shù)都含有此判斷,其目的是防止一般管理員越權(quán)操作。管理員管理界面如下:
圖13 管理員管理界面
在此頁面中,首先是調(diào)用datagrid控件輸出所有管理員信息,并用其控件的編輯功能對(duì)其需要的項(xiàng)目進(jìn)行修改,而密碼在修改后會(huì)通過MD5加密后再存入數(shù)據(jù)庫。下方有添加和刪除管理員的項(xiàng)目。
6.2.2 交通信息修改功能
交通信息的修改總共包括3個(gè)方面:添加、修改和刪除交通信息。
1、 添加交通信息
添加交通信息功能由于需要錄入的信息比較多,所以分為了4個(gè)頁面來共同完成,首先是錄入交通工具基本信息頁面addjtxx.aspx,其功能是將交通工具的基本信息,如種類、班次、車型、頻率、經(jīng)過城市數(shù)存放到session變量中。然后跳轉(zhuǎn)到添加交通關(guān)系頁面addjtgx.aspx。在addjtgx.aspx頁面中,首先將已存入session變量中的交通信息顯示出來,以便讓管理員驗(yàn)證是否正確,然后利用for循環(huán)從1到session(經(jīng)過城市數(shù))錄入所有城市的交通關(guān)系信息,包括該城市的出發(fā)時(shí)間和到達(dá)時(shí)間,并將其保存到session變量中。
當(dāng)for循環(huán)結(jié)束后,頁面跳轉(zhuǎn)至添加價(jià)格信息addrate1.aspx頁面,進(jìn)行價(jià)格信息的添加,也是利用for循環(huán),將所有城市到其他城市的價(jià)格信息寫入session變量中。界面如下:
圖14 價(jià)格信息錄入界面
For循環(huán)結(jié)束后,跳轉(zhuǎn)到錄入的最后一個(gè)步驟,將所有寫入session變量中的相關(guān)信息錄入數(shù)據(jù)庫。該功能在addjtinfo.aspx頁面中執(zhí)行。首先仍然是輸出所有session變量中的相關(guān)信息,要求管理員對(duì)錄入的信息進(jìn)行確認(rèn),然后將所有session變量中保存的交通信息錄入數(shù)據(jù)庫相關(guān)表項(xiàng),而對(duì)于城市名,bus.dbf中使用的是城市ID,所以在錄入前會(huì)有一個(gè)轉(zhuǎn)換,當(dāng)轉(zhuǎn)換時(shí)不能獲得城市ID時(shí),后臺(tái)會(huì)將查詢不到城市ID的城市名自動(dòng)添加到ctxx.dbf中,然后再查詢其城市ID。有關(guān)查詢城市ID的SQL代碼如下:
Addjtinfo.aspx界面如下:
圖15 交通信息提交界面
2、 修改交通信息
將現(xiàn)有的交通信息做調(diào)整,由chgjtxx.aspx功能頁面完成。在此頁面中,除了提供輸入班次的文本框以外,還為了方便添加和修改路線城市,特意添加了城市名與城市ID互換查詢功能,另外還有添加城市的功能。在添加城市時(shí),系統(tǒng)會(huì)自動(dòng)在ctxx.dbf中查詢該城市的ID,然后錄入數(shù)據(jù)庫,若沒有,則自動(dòng)將該城市添加至ctxx.dbf中,然后查詢其ID。
當(dāng)輸入了班次點(diǎn)擊提交后,后臺(tái)將分別使用datagird控件顯示交通工具的基本信息,使用datalist控件顯示交通路線的相關(guān)信息。其中,datalist控件提供了修改和刪除功能,而datagird則只提供修改功能,因此,在這里不能刪除交通信息。
3、 刪除交通信息
刪除交通信息的功能由deljtxx.aspx功能頁面完成。此頁面也是提供一個(gè)文本框來錄入需要?jiǎng)h除的交通班次,不同的是提供了2個(gè)按鈕,一個(gè)是查詢,一個(gè)是刪除。在刪除之前,通常都會(huì)提醒管理員先查詢輸入班次的交通信息,以免因操作失誤而錯(cuò)刪交通信息。當(dāng)管理員提交了刪除以后,后臺(tái)會(huì)根據(jù)輸入的班次首先查詢到該班次的TID,然后在bus.dbf中刪除所有與該TID有關(guān)的路線信息,然后再在jtgjxx.dbf中刪除該班次的基本信息。這樣,就不會(huì)有冗余信息。
6.2.3 城市信息修改功能
由于城市的添加是在添加、修改交通信息時(shí)出現(xiàn)新城市自動(dòng)添加的,所以在此功能模塊中不再提供添加城市的功能,這樣既優(yōu)化了系統(tǒng)功能,又避免了無效信息的錄入。因此,城市信息的修改由修改城市信息和刪除城市2個(gè)功能組成。
在城市修改頁面chgctxx.aspx中,后臺(tái)使用datagird控件顯示所有城市的城市名、城市ID和城市介紹,并提供其修改,但因?yàn)槌鞘蠭D涉及到交通關(guān)系,而一般的外界因素不影響城市ID的變動(dòng)。因此城市ID將被設(shè)置為只讀。
在頁面中另外提供了文本框,供城市的快速查詢和刪除。當(dāng)使用查詢時(shí),datagird控件的數(shù)據(jù)源將被更改,顯示的將只有由文本框提供的城市名的城市信息,以便查詢和修改。當(dāng)使用刪除時(shí),后臺(tái)首先會(huì)利用該城市ID在交通關(guān)系表bus.dbf中查詢,若該城市ID仍然出現(xiàn)在其中,則表明該城市仍然在交通網(wǎng)絡(luò)中,一旦刪除,將影響整個(gè)交通關(guān)系網(wǎng)絡(luò)的正常運(yùn)行。所以系統(tǒng)不支持此類刪除,只有當(dāng)城市不在交通關(guān)系網(wǎng)絡(luò)中時(shí),系統(tǒng)才允許刪除城市。而不在交通關(guān)系網(wǎng)絡(luò)中的城市,在管理員登陸時(shí),系統(tǒng)會(huì)在main.aspx中給出提示信息,由于自動(dòng)添加城市時(shí)不能添加城市介紹信息,因此一并給出提示信息還有未添加城市介紹的城市。
刪除城市函數(shù)部分代碼如下:
sub delct(sender as object,e as eventargs)dim conn as new sqlconnection()dim ds as new dataset()conn.connectionstring="data source=localhost;initial catalog=jtxx"conn.open()dim sql as stringsql="select cityname from ctxx where NOT EXISTS (SELECT * FROM bus WHERE ctxx.cityid = bus.cityid) and cityname=@cityname"dim cmd2 as new sqlcommand(sql,conn) cmd2.parameters.add(new sqlparameter("@cityname",sqldbtype.varchar,40))cmd2.parameters("@cityname").value=city.textdim reader1 as sqldatareader=cmd2.executereader() if not reader1.read() thenreader1.closeResponse.Write("<script for=window event=onload>window.alert('該城市還有交通工具到達(dá),不能刪除!');</" + "script>")elsereader1.closedim sql1 as stringsql1="delete from ctxx where cityname=@cityname"dim cmd1 as new sqlcommand(sql1,conn) cmd1.parameters.add(new sqlparameter("@cityname",sqldbtype.varchar,40))cmd1.parameters("@cityname").value=city.textcmd1.executenonquery()Response.Write("<script for=window event=onload>window.alert('成功刪除該城市!');</" + "script>")end ifconn.closebindgrid() end sub7 軟件測試
模塊編程完結(jié)之后,編寫測試文檔,對(duì)界面外觀和功能等進(jìn)行檢測。首先針對(duì)一個(gè)模塊測試,由于有部分參數(shù)是需要從其它模塊傳遞過來的,因此,先要把需要傳遞的參數(shù)賦予固定的值,然后才繼續(xù)后續(xù)步驟。模塊測試時(shí),檢驗(yàn)?zāi)K每個(gè)功能是否都能正常使用,包括界面的按鈕、線條、表格等的形狀、大小、顏色是否符合規(guī)范;還有檢測程序內(nèi)部的主執(zhí)行通路是否都能按預(yù)定要求正常工作,能按正確輸出。測試過程中,發(fā)現(xiàn)BUG時(shí)及時(shí)修正。
模塊測試完后,先把在模塊測試時(shí)固定了的需要與其它模塊進(jìn)行參數(shù)傳遞的接口改正過來,連接好各模塊之間的接口,把各個(gè)模塊整合成一個(gè)系統(tǒng),整合過程中可能會(huì)出現(xiàn)很多問題,因此,還需要集成測試。即在把模塊按照設(shè)計(jì)要求組裝起來的同時(shí)進(jìn)行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題,測試每個(gè)功能是否都能正常工作。這是一個(gè)“測試——修改——再測試——再修改”的過程,直到整個(gè)系統(tǒng)能正常運(yùn)行,所有功能都能正常實(shí)現(xiàn)。
在測試過程中,出現(xiàn)過一些不符合標(biāo)準(zhǔn)和達(dá)不到功能要求的情況,經(jīng)過修改及以后的調(diào)試,現(xiàn)已能夠完成正常的功能。
由于經(jīng)驗(yàn)欠缺或其它某些原因,本次完成的軟件不可能是完美無缺的。測試只能盡量避免錯(cuò)誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯(cuò)誤,使程序中的錯(cuò)誤密度達(dá)到盡可能低的程度,減少錯(cuò)誤的引入,但是不可能完全杜絕軟件中的錯(cuò)誤。經(jīng)過測試,本模塊基本能符合要求,也能實(shí)現(xiàn)各功能。
結(jié) 論
本次畢業(yè)設(shè)計(jì)是以ASP.net和SQL Server2000為基礎(chǔ),開發(fā)的一套基于B/S模式的交通信息網(wǎng)上查詢系統(tǒng)。本次設(shè)計(jì)完成了系統(tǒng)的基本功能,能夠通過本系統(tǒng)實(shí)現(xiàn)對(duì)交通信息的普通查詢、轉(zhuǎn)乘查詢和條件查詢,使用戶能夠隨時(shí)方便的進(jìn)行有效的交通信息查詢;完成了管理員對(duì)交通信息的管理功能,讓系統(tǒng)信息能夠及時(shí)的得到更新;同時(shí)還設(shè)計(jì)了初始管理員對(duì)管理員身份的一個(gè)管理,讓系統(tǒng)的安全性得到大大的提高。本系統(tǒng)操作簡單,性能良好,能夠完成交通信息查詢的基本工作。
參考文獻(xiàn)
[1] 吉根林.ASP.NET程序設(shè)計(jì)教材[M].北京:電子工業(yè)出版社,2005。
[2] 陳湘.ASP .NET與網(wǎng)站開發(fā)編程實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2003。
[3] 王易.ASP.NET網(wǎng)站設(shè)計(jì)實(shí)例通[M].北京:清華大學(xué)出版社,2003。
[4] 陳惠珍.ASP.NET程序設(shè)計(jì)[M].北京:中國鐵道出版社,2003。
[5] 方睿.網(wǎng)絡(luò)數(shù)據(jù)庫原理及應(yīng)用[M].成都:四川大學(xué)出版社,2005。
[6] 鄭建峰,董國平.SQL SERVER 開發(fā)答疑[M].北京:人民郵電出版社,2005。
[7] 余金山,林慧.SQL Server 2000/2005數(shù)據(jù)庫開發(fā)實(shí)例入門與提高[M].北京:電子工業(yè)出版社,2005。
致 謝
省略
5、資源下載
本項(xiàng)目源碼及完整論文如下,有需要的朋友可以點(diǎn)擊進(jìn)行下載。如果鏈接失效可點(diǎn)擊下方卡片掃碼自助下載。
| 本項(xiàng)目源碼 | 基于C#+asp.net+sqlserver的交通信息網(wǎng)上查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(源碼+文檔)BS架構(gòu)_交通信息網(wǎng)上查詢系統(tǒng).zip |
總結(jié)
以上是生活随笔為你收集整理的C#毕业设计——基于C#+asp.net+sqlserver的交通信息网上查询系统设计与实现(毕业论文+程序源码)——交通信息网上查询系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度旗下爱乐活推倒重来,拼爹淘宝
- 下一篇: discuz发帖流程_C#代码、流程di