freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

公交車管理系統(tǒng)的實(shí)現(xiàn)與設(shè)計(jì)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(論文)(編輯修改稿)

2024-12-12 01:05 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 artTime nvarchar 50 是 否 起始時(shí)間 EndTime nvarchar 50 是 否 中止時(shí)間 StratPlace nvarchar 50 是 否 起點(diǎn) Remark nvarchar 50 是 否 備注 CostTime nvarchar 50 是 否 用時(shí) InputTime datetime 8 是 否 輸入時(shí)間 存儲(chǔ)過(guò)程 在該公交車管理系統(tǒng) 的在數(shù)據(jù)的查詢、添加和刪除等操作上主要采用了存儲(chǔ)過(guò) 程。存儲(chǔ)過(guò)程是編譯好了的 SQL 語(yǔ)句。它類似于函數(shù)的使用,可以直接 通過(guò)參數(shù)調(diào)用存儲(chǔ)過(guò)程 ,所以效率 比較 高。 存儲(chǔ)過(guò)程是由一組為了完成特定功能的 SQL 語(yǔ)句集,經(jīng)過(guò)編譯和優(yōu)化后存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器中,用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù) (如果該存儲(chǔ)過(guò)程帶有參數(shù) )來(lái)執(zhí)行它 [2]。 存儲(chǔ)過(guò)程的 能力大大增強(qiáng)了 SQL 語(yǔ)言的功能和靈活性。 (1)允許標(biāo)準(zhǔn)組件式編程。在存儲(chǔ)過(guò)程被創(chuàng)建以后,可以在程序中被多次調(diào)用,而不必重新編寫(xiě)該存儲(chǔ)過(guò)程的 SQL 語(yǔ)句。 (2)實(shí)現(xiàn)較快的執(zhí)行速度。因?yàn)榇鎯?chǔ)過(guò)程是預(yù)編譯的,在首次運(yùn)行前, 查詢優(yōu)化器 對(duì)其進(jìn)行分析 、優(yōu)化 ,并給出了 最終被存在系統(tǒng)中的執(zhí)行計(jì)劃 [2]。 (3)減少網(wǎng)絡(luò)流量。在調(diào)用存儲(chǔ)過(guò)程時(shí),網(wǎng)絡(luò)中傳送的只是該調(diào)用語(yǔ)句,而不是多條 SQL 語(yǔ)句,從而大大減少了網(wǎng)絡(luò)流量。 第 8 頁(yè) 共 20 頁(yè) (4)作為一種安全機(jī)制來(lái) 充分 利用。系統(tǒng)管理員通過(guò)對(duì)執(zhí)行某一存儲(chǔ)過(guò)程的權(quán)限進(jìn)行限制,從而 能夠?qū)崿F(xiàn)對(duì)相應(yīng)的數(shù)據(jù)訪問(wèn)權(quán)限制,避免非授權(quán)用戶對(duì)數(shù)據(jù)的訪問(wèn),保證數(shù)據(jù)安全 [2]。 在創(chuàng)建存儲(chǔ)過(guò)程時(shí),需要確定存儲(chǔ)過(guò)程的三個(gè)組成部分: 。 ,包括調(diào)用其他存儲(chǔ)過(guò)程的語(yǔ)句。 ,以指明調(diào)用是成功還是失敗。 下面給出在 該 系統(tǒng)中使用到的部分存儲(chǔ)過(guò)程: 實(shí)現(xiàn)對(duì)滿足 ID 號(hào)是 CarLineID 的汽車線路數(shù)據(jù)的刪除操作。 create proc prc_deleteCarLine @CarLineID int as delete T_Car_Line where ID=@CarLineID if @@rowcount0 return 0 else return 1 GO 實(shí)現(xiàn)查詢所有汽車信息的存儲(chǔ)過(guò)程。 create proc spr_carall as select ID ,CarNum as 車牌號(hào) ,CarColor as 顏色 ,SitNum as 座位數(shù) ,CarType as 類型,AirCondi as 是否空調(diào)車 ,Company as 車品牌 ,Remark as 備 注 from t_car GO 6 詳細(xì)設(shè)計(jì) 根據(jù)已有的需求分析和總體設(shè)計(jì),在此基礎(chǔ)上進(jìn)行系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。為此,建立了一個(gè) C.NET 項(xiàng)目。 登錄模塊 輸入:用戶名和密碼。 處理: (1)用戶登錄窗體啟動(dòng)。 (2)輸入用戶名和密碼。 第 9 頁(yè) 共 20 頁(yè) (3)檢索數(shù)據(jù)庫(kù)中數(shù)據(jù),是否有相應(yīng)的用戶名和密碼。 (4)如果用戶名和密碼為空,或者錯(cuò)誤,進(jìn)行提示。 (5)如果輸入的用戶名和密碼正確,則允許該用戶進(jìn)入系統(tǒng)。 (6)進(jìn)入主控制臺(tái)。 輸出:主控制臺(tái)。 用戶登錄模塊的窗體設(shè)計(jì),如圖 4 所示。 private void button1_Click(object sender, e) { DataAccess myAcc=new DataAccess()。 if(((), ())==1) { =false。 Main newMain=new Main(())。 ()。 } else if(((),) == 0) (沒(méi)有該用戶 !)。 else { (登 錄 失敗 )。 } } 圖 4 用戶登錄窗體 第 10 頁(yè) 共 20 頁(yè) private void button1_Click()鼠標(biāo)事件用于 實(shí)現(xiàn)在輸入用戶名和密碼后,進(jìn)入系統(tǒng)主控制界面的方法。 DataAccess 類 是自定義的用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)的類。該方法中判斷語(yǔ)句里調(diào)用了該類所聲明的對(duì)象 myAcc 的方法 userlogin(),該方法的具體實(shí)現(xiàn)代碼如下所示: public int userlogin(string username,string userpass) { Database myDB=new Database()。 SqlParameter[] para={ (@username,50,username), (@userPass,50,userpass) }。 return (spr_uerlogin,para)。 } 該段代碼展示了上文中所提到的存儲(chǔ)過(guò)程的具體使用。 主操作界面模塊 主控制平臺(tái)的窗體設(shè)計(jì),如圖 5 所示。 從界面上直觀的向用戶表明了在該系統(tǒng)下可以進(jìn)行的一系列操作,包括新用戶的注冊(cè),車輛信息的管理,司機(jī)信息的管理,線路信息的管理和車輛線路分配圖 5 主控制臺(tái)界面 第 11 頁(yè) 共 20 頁(yè) 的管理。當(dāng)用戶選擇相應(yīng)的功能進(jìn)行操作時(shí),觸發(fā)該按鈕事件,則可以進(jìn)入相應(yīng)的功能界面進(jìn)行相應(yīng)的操作。 系統(tǒng)用戶注冊(cè)模塊 添加用戶子模塊負(fù)責(zé)系統(tǒng)的安全性,在該模塊種只能增加新用戶而不能修改、刪除用戶,這樣是為了加強(qiáng)系統(tǒng)的安全性,保證了系統(tǒng)的惡意操作或誤刪除等情況出現(xiàn)。 (1)添加新用戶功能的實(shí)現(xiàn),并且設(shè)置用戶的初始密碼。 (2)功能模塊實(shí)現(xiàn)的界面效果如圖 6 所示。 //用戶名檢測(cè)機(jī)制,保證用戶名的唯一性。 private void button2_Click(object sender, e) { if(()==) { (用戶名不能為空 )。 } else if(checkuser()==1) (該用戶名不存在,可以注冊(cè)! )。 else { (該用戶名存在,請(qǐng)重新錄入新的用戶名! )。 } 圖 6 添加用戶子模塊窗體效果 第 12 頁(yè) 共 20 頁(yè) } 將新用戶的信息寫(xiě)入數(shù)據(jù)庫(kù)。通過(guò)自定義對(duì)象 myAccc 訪問(wèn)數(shù)據(jù)庫(kù),主要是由該對(duì)象調(diào)用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)。 private void button1_Click(object sender, e) { //checkuser()是自定義的方法,實(shí)現(xiàn)對(duì)用戶名的檢查判斷。 if(checkuser()==0) { (該用戶名存在,請(qǐng)重新錄入新的用戶名! )。 return 。 } 自定義的 regcheck()方法,根據(jù)該方法返回的值對(duì)不同的情況進(jìn)行處理。 if(regcheck()==1) { DataAccess myAcc=new DataAccess()。 int li_check=((), (), (), (), () )。 if(li_check==1) { (注冊(cè)成功 )。 } } } 車輛信息管理模塊 該模塊實(shí)現(xiàn)對(duì)車輛信息如、車牌號(hào)、顏色、座位數(shù)、是否無(wú)人售票和車輛品牌信息的錄入和刪除操作。該界面窗體效果如圖 7 所示。 第 13 頁(yè) 共 20 頁(yè) 該段代碼在用戶點(diǎn)擊“所有”按時(shí),觸發(fā)一個(gè)事件,通過(guò)調(diào)用 allcarinfo()方法來(lái)返回?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù), 然后使用 dataGrid 控件將數(shù)據(jù)顯示出來(lái)。 private void button2_Click(object sender, e) { DataAccess myAcc = new DataAccess()。 DataSet mySet = new DataSet()。 mySet=()。 = [0]。 } 該 段代碼實(shí)現(xiàn)用戶增加車輛信息后完成保存功能的實(shí)現(xiàn)。其中針對(duì)某些可能出錯(cuò)的地方做出了人性化的處理,以便用戶更正和做出相應(yīng)的處理。 司機(jī)信息管理模塊 通過(guò)該窗體,輸入司機(jī)姓名、身份證、 編號(hào)和駕駛編號(hào)等等司機(jī)的個(gè)人資料,實(shí)現(xiàn)添加司機(jī)信息的功能 ,該功能模塊窗體的效果如圖 8 所示 。 圖 7 車輛信息管理窗體效果 第 14 頁(yè) 共 20 頁(yè) 該事件實(shí)現(xiàn)將合法的司機(jī)信息寫(xiě)入數(shù)據(jù)庫(kù)。同樣通過(guò)自定義類的對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù),并通過(guò)調(diào)用存儲(chǔ)過(guò)程實(shí)現(xiàn)完成操作。 private void button1_Click(object sender, e) { if(AddDirverscheck()==1) { DataAccess myAcc=new DataAccess()。 int li_check= ((), (), (), (), (), (), () )。 if(li_check==1) { string ls_D=。 (操作成功 )。 int li_counts=。 for(int i=0。ili_counts。i++) { if([i].GetType().ToString()==) [i].Text=。 } } } } 圖 8 司機(jī)信息添加模塊 第 15 頁(yè) 共 20 頁(yè) 線路信息管理 模塊 ,主要輸入的信息包 括線路編號(hào)、線路名稱、發(fā)車時(shí)間和收車時(shí)間等 ,具體的窗體效果見(jiàn)下頁(yè)圖 9 所示。 CheckReg()是一個(gè)用于實(shí)現(xiàn)檢查用戶注冊(cè)信息的私有方法,該方法通過(guò)嵌入SQL 語(yǔ)句來(lái)檢索數(shù)據(jù)庫(kù)信息,以核對(duì)用戶信息的有效性。 private int CheckReg() { DataSet mySet=new DataSet()。 string ls_query= select * from t_lineInfo where LineName=39。+ ()+39。 or LineCode=39。+ ()+39。 Database myDB=new Database()。 mySet=(ls_query)。 if([0].==0) return 0。 else return 1。 } 車輛分配線路管理模塊 圖 9 線路維護(hù)界面 第 16 頁(yè) 共 20 頁(yè) 公交車最終 要與固定的某條線路相匹配,把具體的每一輛車分配到設(shè) 置好的線路上。這樣,汽車,司機(jī),線路才能完成有機(jī)的聯(lián)系,形成一個(gè)整體。對(duì)于管理者來(lái)說(shuō),能夠通過(guò)該系統(tǒng)所提供的功能從宏觀上把握車輛的運(yùn)行情況 , 如圖10 所示。 鼠標(biāo)單擊“確定”事件時(shí),將進(jìn)行的操作。首先根據(jù)整型變量 li_LineID 和li_CarID 的值來(lái)判斷是否選擇了車輛或者某條線路;若沒(méi)有,則彈出一消息窗口,給出提示信息。 private void button1_Click(object sender, e) { if(li_LineID==0 || li_CarID==0 ){ (車輛或者線路沒(méi)有選擇,請(qǐng)選擇! )。 return。 } DataAccess myAcc=new DataAccess()。 if((li_CarID)==0){ (該汽車已經(jīng)分配線路 )。 } else{ int li_flag=0。 圖 10 車輛分配線路管理窗體效果 第 17 頁(yè) 共 20 頁(yè) if(==true) li_flag=1。 else li_flag=0。 if((li_CarID,li_LineID,li_flag)0) (保存成功 !)。 } } 7 系統(tǒng)維護(hù)和改進(jìn) 運(yùn)行維護(hù) 經(jīng)過(guò)測(cè)試,該系統(tǒng)運(yùn)行穩(wěn)定,在使用和維護(hù)中應(yīng)該注意以下幾個(gè)問(wèn)題: (1)定期備份數(shù)據(jù)庫(kù),以免丟失數(shù)據(jù)。 (2)定期清理數(shù)據(jù)庫(kù)中的無(wú)效數(shù)據(jù),以提高運(yùn)行效率。 (3)對(duì)軟件及運(yùn)行環(huán)境進(jìn)行日常維護(hù)。 系統(tǒng)改進(jìn)和提高 本系統(tǒng)在信息表描述上,以及其 它各個(gè)地方還有不完備的地方,通用性不強(qiáng),另外對(duì)于用戶權(quán)限上的設(shè)置沒(méi)有實(shí)現(xiàn)更具體的功能實(shí)施,沒(méi)有實(shí)現(xiàn)查詢資料導(dǎo)出的處理。下一部的工作將完善本系統(tǒng),在各個(gè)界面上進(jìn)一步添加所需要的字段。在熟悉系統(tǒng)模塊的設(shè)計(jì)后,可以根據(jù)實(shí)際需求的變化,擴(kuò)充系統(tǒng)的功能。 結(jié) 論
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1