數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(汽車租賃管理系統(tǒng))_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(汽車租賃管理系統(tǒng))_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(汽車租賃管理系統(tǒng))_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(汽車租賃管理系統(tǒng))_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(汽車租賃管理系統(tǒng))_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

一.系統(tǒng)簡介本系統(tǒng)為汽車租賃系統(tǒng),采用B/S實(shí)現(xiàn)??梢詫?shí)現(xiàn)不同權(quán)限的瀏覽和管理。管理員可以用于汽車租賃公司對汽車租賃事務(wù)的管理,包括新增、刪除車輛記錄,新增、刪除用戶記錄,新增、刪除租賃信息記錄,新增、刪除管理人員記錄以及會員設(shè)置,客戶則可以瀏覽車輛信息和個人的租車信息.主要技術(shù):jsp運(yùn)行環(huán)境:winows os+apache tomcat5.5+sql server2005+jdk1.6開發(fā)軟件:myeclipse6。0.1開源軟件:jxl.jar,sqljdbc4。jar二.?dāng)?shù)據(jù)庫設(shè)計(jì)需求分析因?yàn)榭蛻糁荒苡H自到汽車租賃公司去注冊或租賃車輛,因而,兩者權(quán)限分配如下:汽車公司方面:能夠?qū)囕v,租賃信息和用戶信息進(jìn)行管理。超級管理員還可以對公司內(nèi)部人員的信息進(jìn)行管理客戶方面:只能瀏覽車輛信息和個人用戶信息及個人租賃信息.數(shù)據(jù)流圖如下:管理員新增車輛車輛管理人員信息文件個人信息車輛信息文車輛信息新增新增客戶用戶信息文件管理員新增交易個人信息交易信息文件客戶內(nèi)部人員概念設(shè)計(jì)ER圖如下所示:工號

用戶名 類型n 密碼管理用戶 管理員m證件號M密碼用戶名管理車輛客戶會員類型租用時間信譽(yù)度1N單價N租用車輛車輛起租時間狀態(tài)編號編號類型狀態(tài)客戶編號押金 返回金額起租時間 租用時間經(jīng)手人員車輛編3. 邏輯設(shè)計(jì)建表語句如下:用戶表://后為各字段意義聲明createtableuserinfo(pidvarchar(8)primarykey,//用戶證件號usernamevarchar(8),//用戶名isvipint,//用戶類型,是否為會員xingyuint,//信譽(yù)度,滿分100.passwordvarchar(8) //用戶登錄密碼);管理員表:create

table manager(widtype

varchar(8)int,

primary

key, //管理員工號//類型,超級管理員(部門經(jīng)理等)和普通管理員username varchar(8),passwordvarchar(8)

//管理員用戶名//管理員密碼);車輛表:creat(yī)e

tabletaxi(tid varchar(8) primary key,//車輛編號type varchar(8), //車輛類型stat(yī)evarchar(8), //車輛狀態(tài),是否可租widvarchar(8), //yearint, //起租年月日month int,day int,time int,detailinfo text, //車輛詳細(xì)信息payint //租用單價);租車信息表create table

rentinfo(ridint identity(1,1) primary key,wid varchar(8), //經(jīng)手人員pidvarchar(8), //客戶證件號tid varchar(8),// 車輛號碼yajinint, //押金

//交易編號backmoney

int,

//返還金額payint,//單價broken varchar(8),//破壞情況outyear int,//結(jié)束交易時間outmonthint,outday int,timeint,//實(shí)際使用時間state varchar(8)//交易狀態(tài));——設(shè)置外鍵BEGINTRANSACTIONaltertabledbo。rentinfoaddconstraintFK_rentinfo_tidforeignkey(tid)referencesdbo.taxi([tid])altertabledbo。rentinfoaddconstraintFK_rentinfo_pidforeignkey(pid)references dbo。userinfo([pid])altertabledbo。rentinfoaddconstraintFK_rentinfo_widforeignkey(wid)referencesdbo。manager([wid])COMMITTRANSACTION數(shù)據(jù)庫建立與備份,恢復(fù)sqlserver2005建立一個數(shù)據(jù)庫,名稱為hello,執(zhí)行以上建表語句即可?;蛘邔ⅲ鑕llo。mdf,hello_log。ldf文件恢復(fù)。sp_attach_db'hello’,'C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\hello。mdf',?’C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\hello_log.ldf’sp_attach_single_file_db ’hello’,’C:\ProgramFiles\MicrosofSQLServer\MSSQL\Dat(yī)a\hello。mdf'備份:將hello數(shù)據(jù)庫備份成hello.bak文件三.框架實(shí)現(xiàn)系統(tǒng)總體框架實(shí)現(xiàn)如下圖所示:不同權(quán)限的用戶登錄普通管理員超級管理員內(nèi)客車財(cái)客財(cái)車戶務(wù)輛部戶輛務(wù)信信信人信信信息息息員息息息管管管管管管管理理理理理理理以下是各模塊的子功能截圖:登錄模塊截圖:超級管理員頁面截圖:普通管理員頁面截圖:員工信息管理頁面截圖:員工 信息管理(單表查詢)員工業(yè)績查詢(多表查詢)增加員工(單表插入數(shù)據(jù))修改個人密碼客戶信息管理:交易信息查詢(多表查詢)客戶信息查詢車輛信息管理:新增車輛信息車輛信息查詢財(cái)務(wù)信息查詢:數(shù)據(jù)操作實(shí)現(xiàn)方法:

客戶個租車人車輛信信信息息息瀏瀏瀏覽覽覽定義一個類DataManager,在每個jsp頁面中實(shí)例化這個類,并調(diào)用它的某個方法,完成數(shù)據(jù)庫的連接,數(shù)據(jù)查詢,刪除,及修改操作。程序示例:如check。jsp里面可以驗(yàn)證用戶登錄信息,并轉(zhuǎn)向不同頁面。DataManagerdm = newDataManager();//實(shí)例化DataManager類ResultSetrs=null;?if(type==1){//如果是以客戶身份登錄Stringsql = "select*fromuserinfowhereusername=’”+username? ??+"'”+”andpassword=’"+password+”’";?rs=dm.getResult(sql);//由用戶名和密碼獲取記錄??if(rs。next()){//如果記錄不為空,表明該客戶存在Stringpid=rs。getString(”pid");//保存該用戶信息?session。setAttribute("type”,”1");session。setAttribute("pid", pid);session。setAttribute("username”,username);response.sendRedirect("user.jsp”);//轉(zhuǎn)向客戶頁面?}}else{//轉(zhuǎn)向管理員頁面,以下與上面if語句類似。String sql ="select *frommanagerwhereusername=’"? ?+username+”’”+"andpassword=’"+password+”’andtype=”+type;System.out.println(sql);??rs=dm.getResult(sql);??if(rs.next()){??Stringwid=rs.getString(”wid");?session.setAttribute(”type”,t);session。setAttribute(”wid”,wid);session。setAttribute(”username”,username);???response。sendRedirect(”manager.jsp");}}此外,系統(tǒng)具有良好的安全性,對每個頁面都有良好的保護(hù)措施,如manashare.jsp,usershar。jsp,通過session驗(yàn)證用戶有無權(quán)限進(jìn)入該頁面,否則跳轉(zhuǎn)到login。jsp頁面,重新登錄。四.程序設(shè)計(jì)1。含有表單的jsp頁面可以通過設(shè)置隱藏域的值來提交到本頁面,其程序流程如下:開始獲得隱藏域變量的值Y為空?N表單的填寫

顯示表單提交結(jié)果結(jié)束跳轉(zhuǎn)到本頁2.財(cái)務(wù)管理中有個導(dǎo)出execl報(bào)表的功能,其實(shí)現(xiàn)如下:從網(wǎng)上下載一個jxl.jar包,該jar包支持生成execl文件的操作,然后建立一個專門的類,用于生成execl,該類源碼如下:package my.pkgs;importjava。io。*;importjxl。*; //jxl。jar里面的類庫import jxl。write。*;import java.sql.*;public class CreateXLS{public Stringcreate(ResultSetrs,Stringfilename){try{???Filef=newFile(filename);? booleanexist=f.exists();WritableWorkbookbook=Workbook。createWorkbook(newFile(filename));????//生成名為“第一頁”的工作表,參數(shù)0表示這是第一頁? ?WritableSheetsheet=book。creat(yī)eSheet("第一頁",0);?//在Label對象的構(gòu)造子中指名單元格位置是第一列第一行(0,0)???//以及單元格內(nèi)容為test? Labellabel0 =newLabel(0, 0,"交易號”);?? Labellabel1 =newLabel(1, 0,"經(jīng)手人員");???Labellabel2=newLabel(2,0,”客戶證號");? ??Labellabel3=newLabel(3, "車輛號碼");Labellabel4=newLabel(4,0,”押金(元)");???Labellabel5=newLabel(5,0,”返還金額(元)");? ? Labellabel6=new Label(6, 0,”破壞情況");? ?Labellabel7=newLabel(7,0,"開始時間”);? Labellabel8 = new Label(8, 0,"實(shí)收金額(元)");??sheet.addCell(label0);sheet.a(chǎn)ddCell(label1);????sheet.addCell(label2);??sheet.addCell(label3);sheet。addCell(label4);?sheet。addCell(label5);?sheet。addCell(label6);sheet。addCell(label7);????sheet.addCell(label8);??inti=1;? while(rs.next()){jxl.write。Numberlabel01=newjxl。write。Number(0,i,rs。getInt(1));??

??Labellabel11=newLabel(1,i,rs.getString(2));?Labellabel21=newLabel(2,i,rs。getString(3));?Labellabel31=newLabel(3,i,rs。getString(4));?jxl。write。Numberlabel41=newjxl。write.Number(4,i,rs。getInt(5));?jxl.write。Numberlabel51=newjxl.write.Number(5,i,rs。getInt(6));???

? ? Labellabel61=newLabellabel71= newLabel(7,

Label(6, i, rs。getString(8));i, rs。getInt(9) + ”—”????+rs。getInt(10)+"-”+rs.getInt(11));?jxl.write。Numberlabel81=newjxl。write.Number(8,i,rs.getInt(5)???—rs。getInt(6));sheet。addCell(label01);??sheet.addCell(label11);sheet.addCell(label21);?sheet。addCell(label31);?sheet。addCell(label41);?sheet。addCell(label51);?sheet。addCell(label61);?sheet。addCell(label71);sheet.addCell(label81);i++;????}??book。write();??book。close();? ? }cat(yī)ch(Exceptione){??e.printStackTrace();}? return "ok";}//測試creat方法publicstaticvoid main(String[] arg)throwsSQLException{CreateXLSc=newCreateXLS();DataManagerdm= newDataManager();?Stringsql=”select*fromrentinfowhereoutyear="+2009????+”andstate=’交易完成’”;?System。out。println(sql);ResultSetrs=dm。getResult(sql);?c。create(rs,"c:\\3.xls");}}在jsp頁面中調(diào)用該類方法既能生成Exel文件,源碼如下://該文件名按apache tomcat安裝目錄而定??Stringfilename=”C:/ProgramFiles/ApacheSoftwareFoundation/Tomcat5.5/webapps/COURSEPROJECT/execls/”???+year+”—”+month+”。xls";??CreateXLScxls=newCreateXLS();cxls。create(rss,filename);3。用到了數(shù)據(jù)庫知識里面的觸發(fā)器,該觸發(fā)器用于新增交易信息時,sql語句如下:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETRIGGERrent1onrentinfoAFTER insertASBEGINupdatetaxisettaxi.state=i。state,taxi。year =i。outyear,taxi。month=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論