

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 系統(tǒng)簡(jiǎn)介</b></p><p> 本系統(tǒng)為汽車租賃系統(tǒng),采用B/S實(shí)現(xiàn)??梢詫?shí)現(xiàn)不同權(quán)限的瀏覽和管理。管理員可以用于汽車租賃公司對(duì)汽車租賃事務(wù)的管理,包括新增、刪除車輛記錄,新增、刪除用戶記錄,新增、刪除租賃信息記錄,新增、刪除管理人員記錄以及會(huì)員設(shè)置,客戶則可以瀏覽車輛信息和個(gè)人的租車信息。</p><p><b> 主
2、要技術(shù):jsp</b></p><p> 運(yùn)行環(huán)境:winows os+apache tomcat5.5+sql server 2005+jdk1.6</p><p> 開發(fā)軟件:myeclipse6.0.1</p><p> 開源軟件:jxl.jar,sqljdbc4.jar</p><p><b> 數(shù)據(jù)庫設(shè)
3、計(jì)</b></p><p><b> 需求分析</b></p><p> 因?yàn)榭蛻糁荒苡H自到汽車租賃公司去注冊(cè)或租賃車輛,因而,兩者權(quán)限分配如下:</p><p> 汽車公司方面:能夠?qū)囕v,租賃信息和用戶信息進(jìn)行管理。超級(jí)管理員還可以對(duì)公司內(nèi)部人員的信息進(jìn)行管理</p><p> 客戶方面:只能瀏覽
4、車輛信息和個(gè)人用戶信息及個(gè)人租賃信息。</p><p><b> 數(shù)據(jù)流圖如下: </b></p><p><b> 概念設(shè)計(jì)</b></p><p><b> ER圖如下所示:</b></p><p><b> 邏輯設(shè)計(jì)</b></p>
5、;<p><b> 建表語句如下:</b></p><p> 用戶表://后為各字段意義聲明</p><p> create table userinfo</p><p><b> (</b></p><p> pid varchar(8) primary key, //
6、用戶證件號(hào)</p><p> username varchar(8), //用戶名</p><p> isvip int, //用戶類型,是否為會(huì)員 </p><p> xingyu int, //信譽(yù)度,滿分100。</p><p> passwor
7、d varchar(8) //用戶登錄密碼</p><p><b> );</b></p><p><b> 管理員表:</b></p><p> create table manager</p><p><b> (</b></p>&l
8、t;p> wid varchar(8) primary key, //管理員工號(hào)</p><p> type int, //類型,超級(jí)管理員(部門經(jīng)理等)和普通管理員</p><p> username varchar(8), //管理員用戶名</p><p> password varchar(8)
9、 //管理員密碼</p><p><b> );</b></p><p><b> 車輛表:</b></p><p> create table taxi</p><p><b> (</b></p><p> tid varchar(8) p
10、rimary key,//車輛編號(hào)</p><p> type varchar(8), //車輛類型</p><p> state varchar(8), //車輛狀態(tài),是否可租</p><p> wid varchar(8), //</p><p> year int,
11、 //起租年月日</p><p> month int,</p><p><b> day int,</b></p><p><b> time int,</b></p><p> detailinfo text, //車輛詳細(xì)信息</p><p> p
12、ay int //租用單價(jià)</p><p><b> );</b></p><p><b> 租車信息表</b></p><p> create table rentinfo</p><p><b> (</b></p><p&
13、gt; rid int identity(1,1) primary key, //交易編號(hào)</p><p> wid varchar(8), //經(jīng)手人員</p><p> pid varchar(8), //客戶證件號(hào)</p><p> tid varchar(8),// 車輛號(hào)碼</p><p> yajin int
14、, //押金</p><p> backmoney int, //返還金額</p><p> pay int,//單價(jià)</p><p> broken varchar(8),//破壞情況</p><p> outyear int,//結(jié)束交易時(shí)間</p><p> outmonth int,</p&
15、gt;<p> outday int,</p><p> time int,//實(shí)際使用時(shí)間</p><p> state varchar(8)//交易狀態(tài)</p><p><b> );</b></p><p><b> --設(shè)置外鍵</b></p><
16、p> BEGIN TRANSACTION</p><p> alter table dbo.rentinfo add constraint FK_rentinfo_tid</p><p> foreign key (tid)</p><p> references dbo.taxi([tid]) </p><p> alter
17、 table dbo.rentinfo add constraint FK_rentinfo_pid</p><p> foreign key (pid)</p><p> references dbo.userinfo([pid]) </p><p> alter table dbo.rentinfo add constraint FK_rentinfo_w
18、id</p><p> foreign key (wid)</p><p> references dbo.manager([wid]) </p><p> COMMIT TRANSACTION</p><p> 數(shù)據(jù)庫建立與備份,恢復(fù)</p><p> 在sql server 2005 建立一個(gè)數(shù)據(jù)庫,名稱
19、為hello,執(zhí)行以上建表語句即可。</p><p> 或者將hello.mdf,hello_log.ldf文件恢復(fù)。</p><p> sp_attach_db 'hello', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\hello.mdf', 'C:\Program Files\M
20、icrosoft SQL Server\MSSQL\Data\hello_log.ldf' sp_attach_single_file_db 'hello','C:\Program Files\Microsoft SQL Server\MSSQL\Data\hello.mdf'</p><p> 備份:將hello數(shù)據(jù)庫備份成hello.bak文件</p>
21、<p><b> 框架實(shí)現(xiàn)</b></p><p> 系統(tǒng)總體框架實(shí)現(xiàn)如下圖所示:</p><p> 以下是各模塊的子功能截圖:</p><p><b> 登錄模塊截圖:</b></p><p> 超級(jí)管理員頁面截圖:</p><p> 普通管理員頁面
22、截圖:</p><p> 員工信息管理頁面截圖:</p><p> 員工 信息管理(單表查詢)</p><p> 員工業(yè)績(jī)查詢(多表查詢)</p><p> 增加員工(單表插入數(shù)據(jù))</p><p><b> 修改個(gè)人密碼</b></p><p><b>
23、; 客戶信息管理:</b></p><p> 交易信息查詢(多表查詢)</p><p><b> 客戶信息查詢</b></p><p><b> 車輛信息管理:</b></p><p><b> 新增車輛信息</b></p><p>
24、;<b> 車輛信息查詢</b></p><p><b> 財(cái)務(wù)信息查詢:</b></p><p><b> 數(shù)據(jù)操作實(shí)現(xiàn)方法:</b></p><p> 定義一個(gè)類DataManager,在每個(gè)jsp頁面中實(shí)例化這個(gè)類,并調(diào)用它的某個(gè)方法,完成數(shù)據(jù)庫的連接,數(shù)據(jù)查詢,刪除,及修改操作。<
25、;/p><p> 程序示例:如check.jsp里面可以驗(yàn)證用戶登錄信息,并轉(zhuǎn)向不同頁面。</p><p> DataManager dm = new DataManager();//實(shí)例化DataManager類</p><p> ResultSet rs = null;</p><p> if (type == 1) {//如果是以客
26、戶身份登錄</p><p> String sql = "select * from userinfo where username='" + username</p><p> + "'" + " and password = '" + password + "'";<
27、;/p><p> rs = dm.getResult(sql);//由用戶名和密碼獲取記錄</p><p> if (rs.next()) {//如果記錄不為空,表明該客戶存在</p><p> String pid = rs.getString("pid");//保存該用戶信息</p><p> session.se
28、tAttribute("type", "1");</p><p> session.setAttribute("pid", pid);</p><p> session.setAttribute("username", username);</p><p> response.se
29、ndRedirect("user.jsp");//轉(zhuǎn)向客戶頁面</p><p><b> }</b></p><p> } else {//轉(zhuǎn)向管理員頁面,以下與上面if語句類似。</p><p> String sql = "select * from manager where username='
30、;"</p><p> + username + "'" + " and password = '" + password</p><p> + "' and type ="+type;</p><p> System.out.println(sql);</p&
31、gt;<p> rs = dm.getResult(sql);</p><p> if (rs.next()) {</p><p> String wid = rs.getString("wid");</p><p> session.setAttribute("type", t);</p>
32、<p> session.setAttribute("wid", wid);</p><p> session.setAttribute("username", username);</p><p> response.sendRedirect("manager.jsp");</p><p&g
33、t;<b> }</b></p><p><b> }</b></p><p> 此外,系統(tǒng)具有良好的安全性,對(duì)每個(gè)頁面都有良好的保護(hù)措施,如manashare.jsp,usershar.jsp,通過session驗(yàn)證用戶有無權(quán)限進(jìn)入該頁面,否則跳轉(zhuǎn)到login.jsp頁面,重新登錄。</p><p><b&g
34、t; 程序設(shè)計(jì)</b></p><p> 1.含有表單的jsp頁面可以通過設(shè)置隱藏域的值來提交到本頁面,其程序流程如下:</p><p> 2.財(cái)務(wù)管理中有個(gè)導(dǎo)出execl報(bào)表的功能,其實(shí)現(xiàn)如下:</p><p> 從網(wǎng)上下載一個(gè)jxl.jar包,該jar包支持生成execl文件的操作,然后建立一個(gè)專門的類,用于生成execl,該類源碼如下:&l
35、t;/p><p> package my.pkgs;</p><p> import java.io.*; </p><p> import jxl.*; //jxl.jar里面的類庫</p><p> import jxl.write.*; </p><p> import java.sql.*;</p&
36、gt;<p> public class CreateXLS {</p><p> public String create(ResultSet rs,String filename)</p><p><b> {</b></p><p><b> try{</b></p><
37、p> File f = new File(filename);</p><p> boolean exist = f.exists();</p><p> WritableWorkbook book = Workbook.createWorkbook(new File(filename));</p><p> //生成名為“第一頁”的工作表,參數(shù)0表示
38、這是第一頁 </p><p> WritableSheet sheet = book.createSheet("第一頁", 0);</p><p> //在Label對(duì)象的構(gòu)造子中指名單元格位置是第一列第一行(0,0) </p><p> //以及單元格內(nèi)容為test </p><p> Label label0
39、= new Label(0, 0, "交易號(hào)");</p><p> Label label1 = new Label(1, 0, "經(jīng)手人員");</p><p> Label label2 = new Label(2, 0, "客戶證號(hào)");</p><p> Label label3 = new
40、 Label(3, 0, "車輛號(hào)碼");</p><p> Label label4 = new Label(4, 0, "押金(元)");</p><p> Label label5 = new Label(5, 0, "返還金額(元)");</p><p> Label label6 = new
41、 Label(6, 0, "破壞情況");</p><p> Label label7 = new Label(7, 0, "開始時(shí)間");</p><p> Label label8 = new Label(8, 0, "實(shí)收金額(元)");</p><p> sheet.addCell(label
42、0);</p><p> sheet.addCell(label1);</p><p> sheet.addCell(label2);</p><p> sheet.addCell(label3);</p><p> sheet.addCell(label4);</p><p> sheet.addCell(
43、label5);</p><p> sheet.addCell(label6);</p><p> sheet.addCell(label7);</p><p> sheet.addCell(label8);</p><p> int i = 1;</p><p> while (rs.next()) {&l
44、t;/p><p> jxl.write.Number label01 = new jxl.write.Number(0,i,rs.getInt(1));</p><p> Label label11 = new Label(1, i, rs.getString(2));</p><p> Label label21 = new Label(2, i, rs.ge
45、tString(3));</p><p> Label label31 = new Label(3, i, rs.getString(4));</p><p> jxl.write.Number label41 = new jxl.write.Number(4, i, rs.getInt(5));</p><p> jxl.write.Number label
46、51 = new jxl.write.Number(5, i, rs.getInt(6));</p><p> Label label61 = new Label(6, i, rs.getString(8));</p><p> Label label71= new Label(7, i, rs.getInt(9) + "-"</p><p>
47、; + rs.getInt(10) + "-" + rs.getInt(11));</p><p> jxl.write.Number label81 = new jxl.write.Number(8, i, rs.getInt(5)</p><p> - rs.getInt(6));</p><p> sheet.addCell(lab
48、el01);</p><p> sheet.addCell(label11);</p><p> sheet.addCell(label21);</p><p> sheet.addCell(label31);</p><p> sheet.addCell(label41);</p><p> sheet.a
49、ddCell(label51);</p><p> sheet.addCell(label61);</p><p> sheet.addCell(label71);</p><p> sheet.addCell(label81);</p><p><b> i++;</b></p><p>
50、;<b> }</b></p><p> book.write(); </p><p> book.close();</p><p> }catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }<
51、;/b></p><p> return "ok";</p><p><b> }</b></p><p> //測(cè)試creat方法</p><p> public static void main(String[] arg) throws SQLException</p>
52、<p><b> {</b></p><p> CreateXLS c = new CreateXLS();</p><p> DataManager dm = new DataManager();</p><p> String sql = "select * from rentinfo where outyea
53、r =" + 2009</p><p> + " and state='交易完成'";</p><p> System.out.println(sql);</p><p> ResultSet rs = dm.getResult(sql);</p><p> c.create(rs, &q
54、uot;c:\\3.xls");</p><p><b> }</b></p><p><b> }</b></p><p> 在jsp頁面中調(diào)用該類方法既能生成Exel文件,源碼如下:</p><p> //該文件名按apache tomcat 安裝目錄而定</p>
55、<p> String filename = "C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/COURSEPROJECT/execls/"</p><p> + year + "-" + month + ".xls";</p><p>
56、 CreateXLS cxls = new CreateXLS();</p><p> cxls.create(rss, filename);</p><p> 3.用到了數(shù)據(jù)庫知識(shí)里面的觸發(fā)器,該觸發(fā)器用于新增交易信息時(shí),sql語句如下:</p><p> SET ANSI_NULLS ON</p><p><b> G
57、O</b></p><p> SET QUOTED_IDENTIFIER ON</p><p><b> GO</b></p><p> CREATE TRIGGER rent1</p><p> on rentinfo</p><p> AFTER insert</p
58、><p><b> AS </b></p><p><b> BEGIN</b></p><p> update taxi </p><p> set taxi.state = i.state,</p><p> taxi.year = i.outyear,</p
59、><p> taxi.month = i.outmonth,</p><p> taxi.day = i.outday,</p><p> taxi.time = i.time</p><p> from taxi t,Inserted i</p><p> where t.tid = i.tid
60、 </p><p> SET NOCOUNT ON;</p><p><b> END</b></p><p><b> GO</b></p><p> 查詢用戶李明的租車記錄</p><p> Select t. type, t.state, t. year,
61、 t. month, t.day, t.time, t.pay</p><p> From taxi0303 t join rentinfo0303 r on r.wid=t.wid</p><p> Join userinfo0303 u on r.pid=u.pid</p><p> Where u.name=’王充’</p><p&
62、gt;<b> 總結(jié)</b></p><p> 本次實(shí)驗(yàn)的最大收獲就是真正寫了個(gè)關(guān)于數(shù)據(jù)庫的軟件。數(shù)據(jù)庫無論在現(xiàn)在各類軟件中都有涉及,所以數(shù)據(jù)庫對(duì)于計(jì)算機(jī)從業(yè)者來說是一門必須掌握的課程。本次試驗(yàn)只能說是初步了解了數(shù)據(jù)庫編程的一些知識(shí),許多高深的數(shù)據(jù)庫知識(shí)如sql優(yōu)化都未能研究深入。</p><p> 其次是對(duì)jsp編程有了一定得了解。因?yàn)槭鞘状螌W(xué)習(xí)jsp編程,沒
63、有用到j(luò)avabean,更不用說struts,hibernate,spring框架,所用到的技術(shù)非常簡(jiǎn)單,屬于“菜鳥級(jí)“,不過,打下了web編程的基礎(chǔ),相信以后會(huì)對(duì)web開發(fā)更有興趣。</p><p> 最后,對(duì)軟件工程的知識(shí)有了一定了解。本次試驗(yàn)成果可以說是一個(gè)軟件(質(zhì)量暫且不論),軟件的完成需要固定的幾個(gè)步驟:需求分析,概念設(shè)計(jì),編碼,測(cè)試等等,經(jīng)過本次嘗試,終于知道了需求分析的重要性,它是整個(gè)軟件的基礎(chǔ),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--汽車租賃管理系統(tǒng)
- 汽車租賃系統(tǒng)《數(shù)據(jù)庫課程設(shè)計(jì)》
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(書店租賃管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計(jì)--車輛租賃管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)車輛租賃管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--房屋租賃管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--書店租賃系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)論文---汽車銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)論文- 影碟租賃管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)(書店租賃管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計(jì)(論文)-影碟租賃管理系統(tǒng)
- 汽車調(diào)度管理系統(tǒng)-數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)汽車銷售管理系統(tǒng)
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)報(bào)告(數(shù)據(jù)庫課程設(shè)計(jì))
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)報(bào)告數(shù)據(jù)庫課程設(shè)計(jì)
- 汽車-銷售系統(tǒng)-數(shù)據(jù)庫課程設(shè)計(jì)
- 汽車銷售系統(tǒng)-數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---餐飲管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--食堂管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(教材管理系統(tǒng))
評(píng)論
0/150
提交評(píng)論