汽車租賃系統(tǒng)《數(shù)據(jù)庫(kù)課程設(shè)計(jì)》設(shè)計(jì)說(shuō)明書_第1頁(yè)
汽車租賃系統(tǒng)《數(shù)據(jù)庫(kù)課程設(shè)計(jì)》設(shè)計(jì)說(shuō)明書_第2頁(yè)
汽車租賃系統(tǒng)《數(shù)據(jù)庫(kù)課程設(shè)計(jì)》設(shè)計(jì)說(shuō)明書_第3頁(yè)
已閱讀5頁(yè),還剩16頁(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、設(shè)計(jì)說(shuō)明書課程名稱數(shù)據(jù)庫(kù)課程設(shè)計(jì)題目名稱汽車租賃管理系統(tǒng)學(xué)生姓名學(xué)號(hào)專 業(yè)指導(dǎo)教師年月日目錄第一章系統(tǒng)概述!.1冃景1.2發(fā)展現(xiàn)狀第二章需求分析 12.1功能需求 12.2數(shù)據(jù)需求 3第三章系統(tǒng)設(shè)計(jì) 43.1系統(tǒng)結(jié)構(gòu) 43.2數(shù)據(jù)庫(kù)設(shè)計(jì) 53.2.1 ER 圖 5邏輯結(jié)構(gòu) 5數(shù)據(jù)庫(kù)物理結(jié)構(gòu) 7數(shù)據(jù)庫(kù)實(shí)現(xiàn) 83.3用戶控制系統(tǒng) 83.4模塊設(shè)計(jì) 93.4.1 汽車管理模塊設(shè)計(jì) 9基本設(shè)置模塊設(shè)計(jì) 10第四章系統(tǒng)實(shí)現(xiàn) 104.1用戶登錄模塊 104.2汽車管理模塊實(shí)現(xiàn) 114.3汽車預(yù)租模塊實(shí)現(xiàn) 15第五章后記175.1完善計(jì)劃 175.2個(gè)人總結(jié) 17參考文獻(xiàn) 18第一章 系統(tǒng)概述1.1 背景今

2、天,隨著人民生活水平的提高, 汽車工業(yè)的發(fā)展和汽車的普及, 汽車如今已經(jīng)和 我們的生活密不可分,而汽車租賃也已成為一個(gè)極具市場(chǎng)潛力的行業(yè),面對(duì)飛速發(fā)展 的汽車租賃市場(chǎng),其經(jīng)營(yíng)管理的汽車種類繁多 ,樣式各異,客戶需求量大 ,客戶要求高 , 每天的工作量大 , 一套完整的管理系統(tǒng)對(duì)于汽車租賃公司來(lái)說(shuō)已經(jīng)十分重要 , 在信息 飛速發(fā)展的今天,計(jì)算機(jī)在事務(wù)管理方面的使用已經(jīng)相當(dāng)廣泛,但目前很多汽車租賃 公司還停留在人工管理的水平上,顯然不適應(yīng)時(shí)代的發(fā)展 , 管理人員目前需要一套方 便、計(jì)算機(jī)化的管理信息系統(tǒng)來(lái)代替他們繁瑣、低效的傳統(tǒng)手工管理方式,并最終實(shí) 現(xiàn)汽車租賃管理的全面自動(dòng)化 , 使用汽車租賃管

3、理系統(tǒng)可以規(guī)范企業(yè)的管理和經(jīng)營(yíng)行 為,減少企業(yè)的經(jīng)營(yíng)成本,提高工作效率。汽車租賃管理系統(tǒng)是為汽車租賃公司提供的一個(gè)簡(jiǎn)單易用的系統(tǒng) , 隨著科技的發(fā) 展,設(shè)備和管理的現(xiàn)代化,在實(shí)際工作中如何提高工作效率成為一個(gè)很重要的問(wèn)題。 而建立管理系統(tǒng)是一個(gè)很好的解決辦法。1.2 發(fā)展現(xiàn)狀目前市場(chǎng)上相關(guān)系統(tǒng)并不多, 畢竟汽車租賃行業(yè)也算是個(gè)新興的產(chǎn)業(yè), 但由于它的 飛速發(fā)展,市場(chǎng)也看到了它的設(shè)計(jì)價(jià)值,不過(guò)大都大同小異,一般市場(chǎng)上的汽車租賃 管理系統(tǒng)多是針對(duì)汽車租賃的業(yè)務(wù)處理的一種系統(tǒng),其它管理層面也有涉及,只是比 較簡(jiǎn)略,一般包括基本設(shè)置、綜合管理、業(yè)務(wù)處理、查詢報(bào)表、統(tǒng)計(jì)排行以及系統(tǒng)管 理等模塊,優(yōu)點(diǎn)在于

4、業(yè)務(wù)處理模塊比較結(jié)合實(shí)際,所以對(duì)于日常的汽車租賃管理系統(tǒng) 已經(jīng)不成問(wèn)題,但缺點(diǎn)也是存在的。如汽車照片的存儲(chǔ)仍然采取相對(duì)路徑的存儲(chǔ),用 戶密碼的安全性做得不夠,系統(tǒng)的擴(kuò)展性也不是很全等。因此,我們決定利用所學(xué)知識(shí)設(shè)計(jì)一個(gè)汽車租賃管理系統(tǒng), 主要是針對(duì)汽車租賃的 基本設(shè)置、綜合管理、業(yè)務(wù)處理、查詢報(bào)表、統(tǒng)計(jì)排行以及系統(tǒng)管理進(jìn)行全面管理的 系統(tǒng),而并不再是只注重于業(yè)務(wù)處理,并且我們將解決一些問(wèn)題,如汽車照片用二進(jìn) 制進(jìn)行存取,用戶密碼進(jìn)行雙重加密,基本設(shè)置模塊更好地體現(xiàn)系統(tǒng)的擴(kuò)展性,報(bào)表 的打印,SQL語(yǔ)句利用視圖跟存儲(chǔ)過(guò)程,以增強(qiáng)系統(tǒng)的訪問(wèn)安全性,試圖完善汽車租賃 管理系統(tǒng)的安全性跟擴(kuò)展性,讓其更

5、人性化,更好地服務(wù)于汽車租賃公司。第二章 需求分析2.1 功能需求經(jīng)過(guò)調(diào)研及分析,汽車租賃管理系統(tǒng)主要完成以下功能:(1)綜合管理此模塊主要對(duì)客戶(包括普通客戶跟會(huì)員) ,員工以及汽車的具體信息進(jìn)行管理, 分為普通客戶管理,會(huì)員管理,員工管理以及汽車管理。汽車管理: 管理員可以對(duì)租賃公司現(xiàn)已擁有的汽車的具體信息進(jìn)行查看, 修改信息 或者刪除檔案(當(dāng)汽車報(bào)廢或不再租賃時(shí)) ,而且是可以批量刪除的,也可添加新購(gòu)進(jìn) 的汽車的具體信息,以便更快地投入租賃市場(chǎng),方便客戶了解,以便做出更好的租賃 選擇。普通客戶管理 /會(huì)員管理:管理員對(duì)客戶的資料(包括普通客戶跟會(huì)員)可以進(jìn)行 查看,添加新客戶,修改一些基

6、本資料以及刪除客戶檔案;員工管理:對(duì)聘用的員工的資料也可以進(jìn)行查看, 對(duì)新聘用的員工添加其詳細(xì)信息, 修改一些基本信息以及刪除員工檔案。(2)業(yè)務(wù)管理 此模塊提供對(duì)汽車日常業(yè)務(wù)進(jìn)行管理,包括汽車預(yù)租 /出租 /續(xù)租,汽車加油,汽車 維修,還車結(jié)算,催車還交以及事故登記。汽車預(yù)租:?jiǎn)T工可以根據(jù)客戶需求幫其預(yù)租汽車, 可以查看及修改預(yù)租的相關(guān)信息, 但是不可以刪除客戶之前已經(jīng)預(yù)租的汽車,管理員可以修改以及取消客戶之前已經(jīng)預(yù) 租的汽車,可以查看已經(jīng)預(yù)租汽車的情況等。汽車出租:?jiǎn)T工可以根據(jù)客戶的需求出租汽車,可以查看及修改出租的相關(guān)信息, 但也不可以刪除已經(jīng)出租的汽車,而管理員則可以修改,查看以及刪除

7、出租汽車的相 關(guān)情況。當(dāng)汽車出租時(shí)可以打印相關(guān)合同,雙方簽訂合同。汽車?yán)m(xù)租:在客戶出租汽車的還車時(shí)間三天之前可前往汽車租賃公司辦理汽車?yán)m(xù)租 手續(xù),員工在檢查完汽車的相關(guān)情況后,可根據(jù)實(shí)際情況調(diào)整還車時(shí)間以便達(dá)到續(xù)租 的目的。汽車加油:?jiǎn)T工可以進(jìn)行記錄相關(guān)加油情況,修改,刪除加油記錄。 汽車維修:?jiǎn)T工可以進(jìn)行記錄汽車相關(guān)維修情況,修改,刪除維修記錄。 還車結(jié)算:?jiǎn)T工對(duì)來(lái)還車的客戶進(jìn)行查詢,統(tǒng)計(jì)其它費(fèi)用(如事故費(fèi),罰金費(fèi)等) 算出總費(fèi)用,收款后返回客戶押金以及客戶抵押件等。催車還交: 員工可以根據(jù)出租汽車的還車時(shí)間, 催促那些還車時(shí)間快到了的客戶及 時(shí)還車以免交罰金。事故登記: 員工應(yīng)該根據(jù)所出租

8、的汽車發(fā)生的事故的具體情況登記入表, 以便以后 查詢,也可修改或刪除信息。(3)基本設(shè)置管理 此模塊提供對(duì)汽車信息設(shè)置以及服務(wù)信息設(shè)置的全面管理功能。 包括汽車設(shè)置管理 和服務(wù)設(shè)置管理等。管理員可以對(duì)一些基本信息進(jìn)行添加,修改,刪除。汽車設(shè)置管理包括汽車類型設(shè)置, 汽車名稱設(shè)置, 燃油類型設(shè)置; 服務(wù)設(shè)置管理包 括修理廠設(shè)置,加油站設(shè)置,保險(xiǎn)類型設(shè)置這項(xiàng)管理可以使管理員更好地根據(jù)租賃公司實(shí)際情況修改汽車以及服務(wù)的一些基 本信息,使系統(tǒng)更適合其公司的運(yùn)營(yíng),而且管理員只需在設(shè)置界面進(jìn)行修改,而不需 自己修改數(shù)據(jù)庫(kù),更體現(xiàn)出系統(tǒng)的人性化。(4)查詢報(bào)表此模塊分為加油記錄查詢,維修記錄查詢,汽車預(yù)租查

9、詢,汽車出租查詢,還車結(jié) 算查詢,事故記錄查詢,單車租賃查詢,汽車資料查詢,會(huì)員資料查詢,客戶資料查 詢以及員工資料查詢。此模塊可對(duì)客戶,員工以及汽車相關(guān)業(yè)務(wù)的情況進(jìn)行查詢, 對(duì)查詢到的相關(guān)信息可 以生成相應(yīng)的ExceI文件以及打印報(bào)表,尤其是汽車資料查詢還可以生成顯示照片的報(bào)(5)統(tǒng)計(jì)排行此模塊根據(jù)汽車出租次數(shù)的實(shí)際情況可以統(tǒng)計(jì)出本周 /本月/全部排行,進(jìn)而有利于 管理員分析購(gòu)買哪些汽車能使公司的利潤(rùn)最大化。還可以根據(jù)客戶(包括普通客戶和會(huì)員)租賃汽車的次數(shù),統(tǒng)計(jì)出其排行,有利于 管理員有針對(duì)性地對(duì)某些客戶進(jìn)行高質(zhì)里的服務(wù)。(6)系統(tǒng)維護(hù)備份數(shù)據(jù):可以提供直接備份數(shù)據(jù)庫(kù)的相關(guān)數(shù)據(jù)還原數(shù)據(jù):當(dāng)

10、系統(tǒng)出現(xiàn)異常狀況時(shí)可以通過(guò)此還原數(shù)據(jù)庫(kù)的相關(guān)數(shù)據(jù)修改密碼:可以賬戶修改登錄密碼,密碼是采取雙重MD5加密,使其更具安全性。2.2數(shù)據(jù)需求系統(tǒng)外部處理:實(shí)物或單據(jù):數(shù)據(jù)存儲(chǔ)* :實(shí)物或信息流向圖2-2汽車預(yù)租流程圖圖2-3汽車出租、續(xù)租流程圖圖2-4還車結(jié)算流程圖汽車預(yù)租表員工員工客戶(普通 客戶/會(huì)員客尸費(fèi)用結(jié)算表 乙魚加油、維修、事故登記還車查詢費(fèi)用簽訂合同加油、維P003事故信息表 繳納費(fèi)用 丨|續(xù)租*請(qǐng)求汽車出租表圖2-5汽車加油、維修、事故流程圖圖2-6基本設(shè)置流程圖第三章系統(tǒng)設(shè)計(jì)3.1系統(tǒng)結(jié)構(gòu)此汽車租賃管理系統(tǒng)主要實(shí)現(xiàn)6個(gè)大的功能模塊:綜合管理、業(yè)務(wù)管理,基本設(shè)置, 查詢報(bào)表、統(tǒng)計(jì)排

11、行、系統(tǒng)維護(hù)。每個(gè)模塊有分成多詳細(xì)的功能子模塊。詳情如下圖汽車租賃管理系統(tǒng)服務(wù)設(shè)置管理基本設(shè)置管理 1 汽車設(shè)置管理一 綜合管理-業(yè)務(wù)管理U-I人事管理汽車管理汽車預(yù)出續(xù)租汽車加油汽車維修還車結(jié)算催車還交事故登記I 客戶資料查詢 查詢報(bào)表 IT 汽車查詢 本闔月全部排行 統(tǒng)計(jì)排行 - I 客戶租賃排行1 備份數(shù)據(jù) 系統(tǒng)維護(hù) 1 權(quán)限管理3-1所示:圖3-1系統(tǒng)結(jié)構(gòu)圖3.2數(shù)據(jù)庫(kù)設(shè)計(jì)3.2.1 ER 圖維修r(nóng)idserial (4)<M>rplaceCharacters (10)<M>rmatMoney<M>rpmoneyMoney<M>rothe

12、rMoney<M>事故0,naid apleSerialCharacters (10)<M><M>汽車adateDate & Time<M>cid<pi>Serial <M>aplaceCharacters (20)cnameCharacters (10)<M>acusCharacters (20)<M>ctypeCharacters (10)<M>.尸*cnum cclorCharacters (10)Characters (6)Characters (10)<M>

13、0,nclsuL_coilCharacters (6)<M>cphoImagecmileNumber (5)<M>加油cgmDate & TimecbfDate & Time1,noidSerial <M>cdepMoney<M>亠亠-1oilstationCharacters (10)<M>cdmMoney<M>priceNumber (4)<M>cstaCharacters (10)LoilvolumeNumber (5)<M>ctimesNumber (4)ototalMone

14、y<M>Identifier 1<pi>0,n.丿設(shè)置htidSerial <M>ren ttypeCharacters (8)renttimeDate & Time<M>returntimeDate & Time<M>mustmoneyMoney租賃0,n員工0,n0,n0,n屬于2用戶客戶0,n管理員uname Characters (10) usex Characters (6)enameCharacters (10)esexCharacters (6)esfCharacters (20)etelCharacte

15、rs (15)eaddCharacters (25)fdisNumberfreturnDate & TimefotherMoneyftotalMoney費(fèi)用uid <pi> Serial <M>usersCharacters(20)<M>pwdCharacters(35)typeCharacters(8)Key_1 <pi>ktype kname ksex ksf kdy ktel klic kadd ktimesCharacters (8)Characters(10)Characters (5)Characters(20)Charact

16、ers (10)Characters(15)Characters (10)Characters (50)Number (4)<M><M><M><M>邏輯結(jié)構(gòu)1、用戶信息表用戶(uid , users, pwd, type分析:因?yàn)閡id是主鍵,而且users不允許重復(fù),所以主鍵只有一個(gè)屬性,不存在 部分依賴;又因?yàn)閡idusers,所以不存在非主屬性對(duì)主鍵uid的傳遞依賴,所以該關(guān)系屬于3NR2、客戶信息表客戶(kid, ktype,kname,ksex,ksf,kdy,ktel,klic,kadd,ktimes分析:因?yàn)橹挥衚id是主鍵,所以不

17、存在部分依賴,因此該關(guān)系屬于2NF但存在非主屬性kname通過(guò)ktel對(duì)主鍵kid的傳遞依賴,所以該關(guān)系不屬于3NF3、員工信息表員工(eid,ename,esex,esf,etel,eadd分析:因?yàn)橹挥衑id是主鍵,所以不存在部分依賴,因此該關(guān)系屬于2NF但存在非主屬性ename通過(guò)etel對(duì)主鍵eid的傳遞依賴,所以該關(guān)系不屬于3NE4、管理員信息表管理員(uid,uname,useX分析:因?yàn)橹挥衭id是主鍵,所以不存在部分依賴,且不存在非主屬性對(duì)主鍵uid的傳遞依賴,所以該關(guān)系屬于3NR5、汽車信息表汽車(cid,c name,ctype,c nu m,cclor,clsu,coil

18、,cpho,cmile,cgm,cbf,cdep,cdm,csta,ctim)es分析:因?yàn)閏id是主鍵,而且cnum不允許重復(fù),所以主鍵只有一個(gè)屬性,不存在 部分依賴;又因?yàn)閏idcnum,所以不存在非主屬性對(duì)主鍵cid的傳遞依賴,所以該 關(guān)系屬于3NF6租賃情況表租賃(htid,cid,eid,kid,renttype,renttime,returntime,mustmoney,des,regtime,re)m分析:因?yàn)橹挥衕tid是主鍵,所以不存在部分依賴,因此該關(guān)系屬于2NF但存在非主屬性des通過(guò)cid對(duì)主鍵htid的傳遞依賴,所以該關(guān)系不屬于3NF。7、加油表加油(oid,cid,

19、eid,oilstati on ,price,oilvolume,ototal,odate)分析:因?yàn)橹挥衞id是主鍵,所以不存在部分依賴,且不存在非主屬性對(duì)主鍵oid的傳遞依賴,所以該關(guān)系屬于3NF8、維修表維修(rid,cid,eid,rplace,rmat,rpm on ey,rother,rtotal,rdate,rco n,rrem)分析:因?yàn)橹挥衦id是主鍵,所以不存在部分依賴,且不存在非主屬性對(duì)主鍵rid的傳遞依賴,所以該關(guān)系屬于3NF9、事故登記表事故(aid,cid,eid,aple,adate,aplace,acus,ac on, adtime,arem分析:因?yàn)橹挥衋id

20、是主鍵,所以不存在部分依賴,且不存在非主屬性對(duì)主鍵aid的傳遞依賴,所以該關(guān)系屬于3NF10、費(fèi)用表費(fèi)用(htid,eid,kid,fdis,freturn,fother,ftotal)分析:因?yàn)橹挥衕tid是主鍵,所以不存在部分依賴,因此該關(guān)系屬于2NF但存在非主屬性fdis通過(guò)kid對(duì)主鍵htid的傳遞依賴,所以該關(guān)系不屬于3NF11、基本信息表基本信息(sid,uid,sstyle,sname分析:因?yàn)橹挥衧id是主鍵,所以不存在部分依賴,且不存在非主屬性對(duì)主鍵sid的傳遞依賴,所以該關(guān)系屬于3NF3.2.3 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)1、視圖uh_kh: select * from 用戶 ,客戶

21、where kid=uidkh_ht: select * from 客戶where(not exists(select * from ht where kid=客戶.kid)ht: select htid,kname,ktype,ktel,cname,ctype,cnum,renttype,renttime,returntime,mustm on ey,des,regtime,ren租賃.cid,租賃.kid,eidfrom 租賃,汽車客戶 where租賃.cid =汽車.cid and客戶.kid=租賃.kidoil: select oid力卩油.cid,加油.eid,oilstation,

22、price,oilvolume,ototal,odate,ename,cname,coil from力卩油,汽車,員工 where 力卩油.cid = 汽車.cid2、存儲(chǔ)過(guò)程u_xg: create procedure u_xg ( users char(20), pwd char(35) ) asupdate 用戶 set pwd=pwd where users=userskh_tj: create procedure kh_tj(users char(20),pwd char(35),ktype char(8),kname char(10),ksex char(5),ksf char(2

23、0),kdy char(10),ktel char(15),klic char(10),kadd char(25) as declare kid numeric(4) begininsert into 用戶 (users,pwd,type) values(users,pwd,ktype)select kid=uid from 用戶 where users=usersinsert into 客戶 (kid,ktype,kname,ksex,ksf,kdy,ktel,klic,kadd) values(kid,ktype,kname,ksex,ksf,kdy,ktel,klic,kadd) end

24、em_tj: create procedure em_tj (users char(20),pwd char(35),type char(8),ename char(10),esex char(6),esf char(20),etel char(15),eadd char(25) as declare eid numeric(4) begininsert into 用戶 (users,pwd,type) values(users,pwd,type)select eid=uid from 用戶 where users=usersinsert into 員工 values(eid,ename,es

25、ex,esf,etel,eadd)endcar_xg: create procedure car_xg (cid numeric(4),cname char(10),ctype char(10),cnum char(10),cclor char(6),clsu char(10),coil char(6),cpho image,cmile numeric(5),cgm datetime,cbf datetime,cdep money,cdm money) as beginupdate 汽車 set cname=cname,ctype=ctype,cnum=cnum,cclor=cclor, cl

26、su=clsu,coil=coil,cpho=cpho,cmile=cmile,cgm=cgm,cbf=cbf,cdep=cdep,cdm=cdm where cid=cidend3、觸發(fā)器csta_xg: create trigger csta_xg on租賃 for insert asupdate 汽車 set csta=(select renttype from inserted)where cid=(select cid from inserted)csta_xg2: create trigger csta_xg2 on 租賃 for update asif (select cid f

27、rom deleted)<>(select cid from inserted)beginupdate 汽車 set cstaS租'where cid=(select cid from deleted)update 汽車 set csta=(select renttype from inserted)where cid=(select cid from inserted)update 汽車 set ctimes=ctimes+1 where cid=(select cid from inserted) update 汽車 set ctimes=ctimes-1 where

28、cid=(select cid from deleted) endctimes_xg: create trigger ctimes_xg on 租賃 for insert as declare ctimes numeric(4) if (select ren ttype from in serted)二出租'update 汽車 set ctimes=ctimes+1 where cid=(select cid from inserted) ht_change: create trigger ht_change on 租賃 for delete asupdate 汽車 set csta=

29、 寺租'where cid=(select cid from deleted)3.2.4 數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)創(chuàng)建語(yǔ)句:IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'car')DROP DATABASE carGOCREATE DATABASE car ON (NAME = N'car_Data', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQLdatacar_Data.MDF' , SIZE =

30、 8, FILEGROWTH = 10%) LOG ON (NAME = N'car_Log', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQLdatacar_Log.LDF' , SIZE = 5, FILEGROWTH = 10%)COLLATE Chinese_PRC_CI_ASGO3.3 用戶控制系統(tǒng)3.4模塊設(shè)計(jì)汽車管理模塊設(shè)計(jì)此模塊實(shí)現(xiàn):管理員可以對(duì)租賃公司現(xiàn)已擁有的汽車的具體信息進(jìn)行查看,修改檔案或者刪除檔案(當(dāng)汽車報(bào)廢或不再租賃時(shí)),而且是可以批量刪除的,也可添加新購(gòu) 進(jìn)的汽車的具體信息

31、,以便更快地投入租賃市場(chǎng),方便客戶了解,以便做出更好的租 賃選擇。此模塊設(shè)計(jì)過(guò)程中,由于經(jīng)常有大量的汽車照片需要保存, 簡(jiǎn)便的方法是把圖片存 儲(chǔ)在指定的文件夾下,數(shù)據(jù)庫(kù)中只保存圖片所在的路徑和圖片名,但是這種方法對(duì)數(shù) 據(jù)的管理很不方便,同時(shí)安全性和可靠性也不能保證;另一種方法是把圖片數(shù)據(jù)存儲(chǔ) 在數(shù)據(jù)庫(kù)中,在數(shù)據(jù)庫(kù)中提供了Image數(shù)據(jù)類型,該類型存儲(chǔ)的是可變長(zhǎng)度的二進(jìn)制數(shù),因此要把保存到數(shù)據(jù)庫(kù)中的圖片文件的類型轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)類型。利用 Memorystream類將圖像文件以二進(jìn)制的形式在數(shù)據(jù)庫(kù)中直接進(jìn)行讀寫操作。此模塊采用第二種方法即把圖片以二進(jìn)制的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,該方案解決了汽車租賃管

32、理系統(tǒng)中數(shù)據(jù)庫(kù)存儲(chǔ)圖像數(shù)據(jù)的問(wèn)題,提高了汽車租賃管理系統(tǒng)的使用功能 和范圍。由于圖片的保存是一個(gè)獨(dú)立的過(guò)程,在其它的模塊開(kāi)發(fā)中也可以方便的使用, 提高了整個(gè)系統(tǒng)開(kāi)發(fā)的效率。另外,考慮到系統(tǒng)的人性化,添加,修改以及刪除等操作采取了批處理,即可以批 量添加,批量修改以及批量刪除;而在批量刪除時(shí)要注意在選中的行中從后面往前刪, 避免出現(xiàn)沙漏效應(yīng)。342基本設(shè)置模塊設(shè)計(jì)此模塊實(shí)現(xiàn):提供對(duì)汽車信息設(shè)置以及服務(wù)信息設(shè)置的全面管理功能。包括汽車設(shè)置管理和服務(wù)設(shè)置管理等。管理員可以對(duì)一些基本信息進(jìn)行添加,修改,刪除。汽車設(shè)置管理包括汽車類型設(shè)置, 汽車名稱設(shè)置,燃油類型設(shè)置;服務(wù)設(shè)置管理包 括修理廠設(shè)置,加油

33、站設(shè)置,保險(xiǎn)類型設(shè)置。這項(xiàng)管理可以使管理員更好地根據(jù)租賃公司實(shí)際情況修改汽車以及服務(wù)的一些基 本信息,使系統(tǒng)更適合其公司的運(yùn)營(yíng),而且管理員只需在設(shè)置界面進(jìn)行修改,而不需 自己修改數(shù)據(jù)庫(kù),更體現(xiàn)出系統(tǒng)的人性化。第四章系統(tǒng)實(shí)現(xiàn)4.1用戶登錄模塊1、界面如圖4-1所示:2、重點(diǎn)代碼(1) 、加密函數(shù)Public Function 加密(ByVai strSourceAs String) As StringdataToHash= New System.Text.ASCIIE ncodi ng).GetBytes(strSource) hashvalue =CType(System.Security.C

34、ryptography.CryptoConfig.CreateFromName"(MD5" ),System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)For i = 0 To 15strresult += Hex(hashvalue(i).ToLowerNextReturn strresultEnd Function(2) 、連接數(shù)據(jù)庫(kù)Public Sub 連接數(shù)據(jù)庫(kù) ()If type.Trim = "管理員 " Thencon.ConnectionString = &qu

35、ot;server=.;database=car;user id=admin;password=admin"ElseIf type.Trim = "員工 " Thencon.ConnectionString = "server=.;database=car;user id=employee;password=employee"ElseIf type.Trim = "客戶 " Thencon.ConnectionString ="server=.;database=car;user id=kh;password=kh

36、"EndIfcmd.Connection = conEnd Sub4.2 汽車管理模塊實(shí)現(xiàn)1、 界面如圖 4-2 所示:圖4-2汽車管理模塊2、重點(diǎn)代碼(1) 、批量刪除Public Sub deletedgvs(ByRef dgv As DataGridView, ByVai sql As String) count = dgv.SelectedRows.Co untres = MsgBox("確定刪除這"& count & "條記錄? ", 1 + 32 + 0,"提示") If res = 1 The

37、nTryFor i = count - 1 To 0 Step -1cmd.Comma ndText = sql & dgv.SelectedRows(i).Cells(0).Value & "”' con. Ope n()cmd.ExecuteN on Query() dgv.Rows.Remove(dgv.SelectedRows(i) con. Close()NextCatch ex As Excepti onMsgBox("刪除記錄失敗! ", 0 + 48 + 0,"刪除失敗")con .Close()Exit

38、 SubEnd TryMsgBox("已刪除"& count & "條記錄!", 0 + 48 + 0,"刪除成功") con.Close()ElseExit SubEndIfEnd Sub(2) 、靈活性填充(填充 DataGridView 的 filldgv 函數(shù)) PublicSub filldgv(ByRef dgv As DataGridView, ByVal sql AsString)If dr.HasRows ThenWhile dr.ReadWith dgv.Rows.Add()For j = 0 To

39、 dr.FieldCount - 1.Columns(j).Name = dr.GetName(j).Trim .Rows(i).Cells(j).Value = dr.GetValue(j)NextEnd Withi = i + 1EndWhileElseFor j = 0 To dr.FieldCount - 1 dgv.Columns(j).Name = dr.GetName(j).TrimNextEndIfcon.Close()For i = 0 To dgv.ColumnCount - 1 cmd.CommandText ="select * from nameset wh

40、ere oldname='"& dgv.Columns(i).Name.Trim & "'"con.Open()dr = cmd.ExecuteReaderIf dr.Read Thendgv.Columns(i).HeaderCell.Value = dr.GetString(1).TrimEndIfcon.Close()NextEnd Sub(3) 、把圖片轉(zhuǎn)換成二進(jìn)制流Public Sub 選擇照片 (ByRef OpenFileDialog1 As OpenFileDialog, ByRef pb As PictureBox

41、)OpenFileDialog1.ShowDialog()If OpenFileDialog1.FileName <> "" Thenfilepath = pic = New Bitmap(filepath) pb.Image = pic Dim ms As New IO.MemoryStream pb.Image.Save(ms, pb.Image.RawFormat) data = ms.GetBuffer ms.Close()ElseIf data Is Nothing Then pb.Image = NothingEndIfEndIfEnd Sub(4)

42、 、把圖片從數(shù)據(jù)庫(kù)取出If dr.IsDBNull(7) Thenpb.Image = NothingElsedata =CType(dr.Item(7), Byte()Dim ms As New IO.MemoryStream(data)pb.Image = Image.FromStream(ms) ms.Close()End If( 5)填充 ComboBoxPublic Sub showjb(ByRef combo As ComboBox, ByVal sql As String) cmd.CommandText = "select sname from jb where ss

43、tyle='"& sql & "'"con. Ope n()dr = cmd.ExecuteReaderWhile dr.Readcombo.ltems.Add(dr.GetStri ng(O).Trim)End While con .Close()End Sub4.3汽車預(yù)租模塊實(shí)現(xiàn)1、界面如圖4-3所示:圖4-3汽車預(yù)租模塊2、重點(diǎn)代碼(1)查詢條件For i = 0 To arr.Cou nt - 1If dgv1.Rows(i).Cells(0).Value = "" ThenIf dgv1.Rows(i

44、).Cells(3).Value Is Nothing ThenMsgBox("查詢條件不能為空! ", 0 + 48 + 0,"提醒")Exit SubEndIfsql = sql + arr.Item(i).ToString.Trim + sign + "'" & dgv1.Rows(i).Cells(3).Value.ToString.Trim & "' " ElseIf dgv1.Rows(i).Cells(0).Value = " 并且" Then If

45、 dgv1.Rows(i).Cells(3).Value Is Nothing ThenMsgBox("查詢條件不能為空!", 0 + 48 + 0,"提醒")Exit SubEndIfsql = sql + "and " + arr.Item(i).ToString.Trim + sign + "'" & dgv1.Rows(i).Cells(3).Value.ToString.Trim & "' "ElseIf dgv1.Rows(i).Cells(3).Va

46、lue Is Nothing ThenMsgBox("查詢條件不能為空!", 0 + 48 + 0,"提醒")Exit SubEndIfsql = sql + "or " + arr.Item(i).ToString.Trim + sign + "'" & dgv1.Rows(i).Cells(3).Value.ToString.Trim & "' " EndIfNext(2)、生成 ExcelPublic Sub getExcel(ByRef dgv As DataGridView) myBook = myApp.Workbooks.Add() mySheet = myBook.Worksheets(1) mySheet.Name = dsname mySheet.Cells(1, 1) = dsname +" 詳細(xì)資料 " For k = 0 To dgv.Columns.Count - 1 mySheet.Cells(2, k + 1).Value = dgv.Columns(k).HeaderText mySheet.Cells(

溫馨提示

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