停車場管理系統(tǒng)_第1頁
停車場管理系統(tǒng)_第2頁
停車場管理系統(tǒng)_第3頁
停車場管理系統(tǒng)_第4頁
停車場管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

..頁腳頁腳.上海海洋大學(xué)信息學(xué)院軟件工程作業(yè)報(bào)告設(shè)計(jì)題目:停車場管理系統(tǒng)學(xué)院:信息學(xué)院專業(yè):空間信息與數(shù)字技術(shù)班級:1、2班學(xué)生姓名:代雪1353247(組長)梓桐1353204、亞松1353147花1353209、儀1353113程夢雪1353115頁腳1.引言21世紀(jì)以來,現(xiàn)代化產(chǎn)業(yè)高速發(fā)展,汽車作為日常交通工具已經(jīng)普及社會的每一個(gè)角落,給人們的日常生活帶來了極大的便利。但是隨著汽車擁有量的急劇增加,車輛停放的問題隨之而來,如果沒有合理的停放規(guī)則和秩序,勢必引起多不必要的麻煩,反而給生活帶來不便。停車場作為交通設(shè)施的組成部分,隨著交通運(yùn)輸?shù)姆泵筒粩喟l(fā)展,人們對其管理的要求也不斷提高,都希望管理能夠達(dá)到便、快捷以及安全的效果。然后目前的多停車場還處于一種純?nèi)斯さ墓芾淼哪J?,在車輛的管理上效率低下,而且十分容易出錯(cuò)。因此需要一種合適的管理系統(tǒng)來解決這些問題,達(dá)到高效,簡易的效果,給廣大人民的出行帶來便。本論文旨在設(shè)計(jì)一個(gè)簡單、高效且實(shí)用的停車場管理系統(tǒng),希望能解決目前管理上存在的一些問題。系統(tǒng)的設(shè)計(jì)過程經(jīng)過了需求分析階段、概念設(shè)計(jì)階段、邏輯結(jié)構(gòu)設(shè)計(jì)階段、數(shù)據(jù)庫物理設(shè)計(jì)階段、數(shù)據(jù)庫的實(shí)施和維護(hù)以及系統(tǒng)的調(diào)試與測試,最終完成了一個(gè)比較完善的收費(fèi)停車場管理系統(tǒng)。

2.需求分析需求分析是設(shè)計(jì)數(shù)據(jù)庫的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。目前停車場的管理式比較落后,已經(jīng)不能適應(yīng)現(xiàn)代社會的實(shí)際需求,本系統(tǒng)的開發(fā)能給管理上帶來新鮮的活力,提高管理的效率,具有較高的實(shí)用性和開發(fā)價(jià)值。通過調(diào)查了解分析停車管理的現(xiàn)狀,弄清用戶對開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)的確切要求,以及停車場管理的流程,系統(tǒng)的具體功能和數(shù)據(jù)庫中數(shù)據(jù)信息。2.1處理對象系統(tǒng)處理的對象包括車輛信息、固定車位信息、自由車位信息、停車車輛信息以及收費(fèi)記錄等五個(gè)面。即固定車位信息:車位編號、車位位置、車牌、車主姓名、車輛品牌、車輛顏色、車輛照片、聯(lián)系地址、聯(lián)系式、車位余額;自由車位信息:車位編號、車位位置;車輛信息:車牌、車輛品牌、車輛顏色;停車信息:車位編號、車牌、進(jìn)入時(shí)間、離開時(shí)間、時(shí)間段、車位類型、在位情況、收費(fèi)費(fèi)率;收費(fèi)記錄:車位編號、車牌、停車時(shí)間、停車費(fèi)用、發(fā)票編號。2.2功能要求整個(gè)系統(tǒng)具體包括三個(gè)子系統(tǒng),分別為:停車處理子系統(tǒng)、車位綜合管理子系統(tǒng)以及收費(fèi)子系統(tǒng)。處理的功能包括:車輛信息的查詢以及更新;空閑車位信息的查詢;固定車位信息的查詢;進(jìn)出車輛記錄的更新和收費(fèi)信息的查詢與更新等。2.3業(yè)務(wù)流程圖..頁腳頁腳.頁腳2.4數(shù)據(jù)流圖2.5數(shù)據(jù)字典數(shù)據(jù)項(xiàng):表2-1數(shù)據(jù)項(xiàng)說明數(shù)據(jù)項(xiàng)編號數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義與其它數(shù)據(jù)項(xiàng)的關(guān)系存儲結(jié)構(gòu)別名DI-1 Cwno車位編號char(10)編號DI-2 Carno車牌char(10)車牌DI-3 Carname 車主姓名 char(10) 姓名數(shù)據(jù)項(xiàng)編號數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義與其它數(shù)據(jù)項(xiàng)的關(guān)系存儲結(jié)構(gòu)別名DI-4Carcolor車輛顏色char(4)顏色DI-5Carpho車輛照片bit照片DI-6Caradd聯(lián)系地址char(20)地址DI-7Cartel聯(lián)系式char(20)DI-8Carat在位情況char(4)DI-9Carin進(jìn)入時(shí)間datetimeDI-10Carout離開時(shí)間datetimeDI-11Carmon車位余額float余額DI-12Montime收費(fèi)費(fèi)率float費(fèi)率DI-13Moneypay停車費(fèi)用float收費(fèi)DI-14Cwtype車位類型char(4)DI-15Cartime停車時(shí)間float時(shí)間DI-16Piece發(fā)票編號char(20)Dl-17Carsb車輛品牌char(10)車名Dl-18Cwpace車位位置char(10)位置Dl-19Timetype時(shí)間段char(6)2.6邏輯描述表2-3處理邏輯描述處理編號處理編號處理功能處理過程PR-1判斷用戶查詢涉及的功能模塊固定車位信息模塊、自由車位信息模塊、停車車輛信息模塊、進(jìn)出車輛記錄信息模塊、收費(fèi)記錄模塊:先確定查詢所涉及的功能模塊;然后,確定要查詢的容,確定查詢數(shù)據(jù)流向;最后顯示查詢結(jié)果。3.概念設(shè)計(jì)3.1目標(biāo)概念結(jié)構(gòu)設(shè)計(jì)師是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程。它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。概念結(jié)構(gòu)設(shè)計(jì)步驟分為兩步:第一步是抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,第二步是集成局部視圖,得到全局的概念結(jié)構(gòu)。3.2設(shè)計(jì)過程分E-R圖:分E-R圖:PR-2判斷用戶修改要涉及的模塊,同時(shí)把相應(yīng)的修改數(shù)據(jù)傳到相應(yīng)的模塊之中固定車位信息模塊、自由車位信息模塊、停車車輛信息模塊、進(jìn)出車輛記錄信息模塊、收費(fèi)記錄模塊:先確定更新所涉及的功能模塊;然后,把更新信息傳送到相應(yīng)的模塊中;最后,進(jìn)行相應(yīng)的更新操作。設(shè)計(jì)分E-R圖,即各子模塊的E-R圖;生成初步E-R圖,通過合并法,做到各子系統(tǒng)實(shí)體、屬性、聯(lián)系統(tǒng)一;生成全局E-R圖,通過消除沖突等面。通過分析系統(tǒng)的業(yè)務(wù)流圖與數(shù)據(jù)流圖,得到系統(tǒng)圍繞“車輛”與“車位”之間的相互關(guān)系。 3.3階 段成果..頁腳頁腳.頁腳全局E-R圖:4.邏輯設(shè)計(jì)4.1目標(biāo)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。邏輯結(jié)構(gòu)設(shè)計(jì)時(shí)一般要分為3步進(jìn)行:將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;對數(shù)據(jù)模型進(jìn)行優(yōu)化。4.2任務(wù)與結(jié)果4.2.1數(shù)據(jù)組織(1)將E-R模型轉(zhuǎn)換為關(guān)系模型轉(zhuǎn)換的原則是:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對于實(shí)體間的聯(lián)系則有以下不同的情況:一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。3個(gè)或3個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換位一個(gè)關(guān)系模型。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成關(guān)系的碼或關(guān)系碼的一部分。4.2.2功能模塊圖圖9.系統(tǒng)功能模塊圖5.物理設(shè)計(jì)5.1目標(biāo)物理設(shè)計(jì)就是為一個(gè)給定的邏輯數(shù)據(jù)結(jié)構(gòu)模型選取一個(gè)最合適應(yīng)用要求的物理結(jié)構(gòu)的過程。物理設(shè)計(jì)通常分為兩步:確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取法和存儲結(jié)構(gòu);對物理結(jié)構(gòu)進(jìn)行評價(jià),評價(jià)的重點(diǎn)是時(shí)間和空間效率。如果評價(jià)結(jié)果滿足原設(shè)計(jì)要求,則可進(jìn)入到物理實(shí)施階段,否則,就需要重新設(shè)計(jì)或修改物理結(jié)構(gòu),有時(shí)甚至要返回邏輯設(shè)計(jì)階段修改數(shù)據(jù)模型。物理設(shè)計(jì)的容包括:為關(guān)系模型選擇存取法;設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)。5.2任務(wù)5.2.1數(shù)據(jù)存取面由于經(jīng)常需要判斷是否有空余車位,所以要經(jīng)常查詢停車信息,因此在Stop表的Cwno上建立聚簇索引以提高查詢效率。為了便查詢各個(gè)車輛的收費(fèi)記錄,在Moneynote表的Carno上建立聚簇索引以提高查詢效率5.2.2功能模塊圖車位信息查詢及更新模塊圖:圖10.車位信息查詢及更新模塊圖停車信息查詢及更新模塊圖:圖11.停車信息查詢及更新模塊圖(3)收費(fèi)費(fèi)率查詢及更新模塊圖:圖12.收費(fèi)費(fèi)率查詢及更新模塊圖..頁腳頁腳.頁腳6.部分功能代碼實(shí)現(xiàn)系統(tǒng)界面車輛進(jìn)場信息查詢出場結(jié)算/***用于實(shí)現(xiàn)登錄的界面*/package.view;import.model.LoginModel;import.model.SellModel;import.mytools.*;import.sun.awt.AWTUtilities;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.awt.event.MouseMotionAdapter;importjavax.imageio.ImageIO;importjavax.swing.*;importjavax.swing.border.MatteBorder;importjava.io.*;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importjava.util.Vector;@SuppressWarnings("serial")publicclassParkextendsJFrameimplementsMouseListener{//全局的位置變量,用于表示鼠標(biāo)在窗口上的位置staticPointorigin=newPoint();//定義組件ImagePanelbkim=null;JButtonmin,close,loginqueding,carIn,carOut,Search,Exit;JComboBoxuser;JPasswordFieldpassword;JPanelcontentPane=newJPanel();String[]allparas={"1"};intcount=ParkPojo.getCarCount();Stringindate=null;staticStringuserId=getRandomString(8);@SuppressWarnings("unused")publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubParklogin1=newPark();}publicvoidsetbutton(JButtonjb){jb.setContentAreaFilled(false);jb.setBorderPainted(false);..頁腳頁腳.頁腳jb.setFocusPainted(false);jb.addMouseListener(this);jb.setOpaque(false);}//窗口操作控制菜單publicvoidwindowsmenu(){min=newJButton(newImageIcon("image/Loginmin.png"));min.setBounds(346,0,27,21);min.setRolloverIcon(newImageIcon("image/LoginminC.png"));setbutton(min);min.setToolTipText("最小化");close=newJButton(newImageIcon("image/Loginclose.png"));close.setBounds(370,0,29,21);close.setRolloverIcon(newImageIcon("image/LogincloseC.png"));setbutton(close);close.setToolTipText("關(guān)閉");//bkim.add(min);//bkim.add(close);}//構(gòu)造函數(shù)publicPark(){//設(shè)置窗體的樣式為當(dāng)前系統(tǒng)的樣式try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){//TODO:handleexception}Imageloginbk=null;try{loginbk=ImageIO.read(newFile("image/pc1.jpg"));}catch(IOExceptione){//TODO:handleexceptione.printStackTrace();}//窗口背景面板bkim=newImagePanel(loginbk);bkim.setLayout(null);carIn=newJButton(newImageIcon("image/carin.png"));carIn.setBounds(100,36,,60);carIn.setRolloverIcon(newImageIcon("image/carin.png"));setbutton(carIn);carIn.setToolTipText("車輛進(jìn)場");carOut=newJButton(newImageIcon("image/carout.png"));carOut.setBounds(100,100,,60);carOut.setRolloverIcon(newImageIcon("image/carout.png"));setbutton(carOut);carOut.setToolTipText("出場結(jié)算");Search=newJButton(newImageIcon("image/infoquery.png"));Search.setBounds(100,160,,60);Search.setRolloverIcon(newImageIcon("image/infoquery.png"));setbutton(Search);Search.setToolTipText("信息查詢");Exit=newJButton(newImageIcon("image/exit.png"));Exit.setBounds(100,220,,60);Exit.setRolloverIcon(newImageIcon("image/exit.png"));setbutton(Exit);Exit.setToolTipText("退出");bkim.add(carIn);bkim.add(carOut);bkim.add(Search);bkim.add(Exit);windowsmenu();this.setUndecorated(true);WindowMove();setOpacity();this.add(bkim);this.setSize(400,290);this.setVisible(true);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}//窗體移動函數(shù)publicvoidWindowMove(){//設(shè)置沒有標(biāo)題的窗口可以拖動this.addMouseListener(newMouseAdapter(){publicvoidmousePressed(MouseEvente){//按下(mousePressed不是點(diǎn)擊,而是鼠標(biāo)被按下沒有抬起)origin.x=e.getX();//當(dāng)鼠標(biāo)按下的時(shí)候獲得窗口當(dāng)前的位置origin.y=e.getY();}});this.addMouseMotionListener(newMouseMotionAdapter(){publicvoidmouseDragged(MouseEvente){Pointp=getLocation();//當(dāng)鼠標(biāo)拖動時(shí)獲取窗口當(dāng)前位置//設(shè)置窗口的位置//窗口當(dāng)前的位置+鼠標(biāo)當(dāng)前在窗口的位置-鼠標(biāo)按下的時(shí)候在窗口的位置setLocation(p.x+e.getX()-origin.x,p.y+e.getY()-origin.y);}});}@OverridepublicvoidmouseClicked(MouseEvente){//TODOAuto-generatedmethodstubif(e.getSource()==min){setState(JFrame.ICONIFIED);}if(e.getSource()==close){dispose();}if(e.getSource()==loginqueding){Stringuserid=user.getSelectedItem().toString().trim();Stringupassword=newString(this.password.getPassword());if(userid.equals("")){JOptionPane.showMessageDialog(this,"請輸入用戶再登錄");return;}if(upassword.equals("")){JOptionPane.showMessageDialog(this,"請輸入密碼再登錄");return;}if(userid.equals("admin")||upassword.equals("418218")){ newUserMainWindows(); this.dispose();return;}if(!LoginModel.checkid(userid)){JOptionPane.showMessageDialog(this,"<html><br/>抱歉 <fontcolor='red'>"+userid+"</font> 沒有登錄此系統(tǒng)的權(quán)限<br/>");return;}if(LoginModel.checkpassword(userid,upassword)){newUserMainWindows();}else{JOptionPane.showMessageDialog(this,"密碼不正確,請重新輸入密碼");this.password.setText("");return;}}elseif(e.getSource()==carIn){if(count>0){if(indate==null){count--;ParkPojo.setCarCount(count);Datedate=newDate();DateFormat format=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");Stringtime=format.format(date);indate=time;JOptionPane.showMessageDialog(this,"車輛已停入,剩余車位"+count+",現(xiàn)在時(shí)間:"+time);}else{JOptionPane.showMessageDialog(this,"您已停入");}}else{JOptionPane.showMessageDialog(this,"已無車位");}}elseif(e.getSource()==carOut){Datedate=newDate();DateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Stringtime=format.format(date);if(indate==null){JOptionPane.showMessageDialog(this,"未停入車輛");}else{count++;ParkPojo.setCarCount(count);intthour=Integer.parseInt(dateDiff(indate,time,"yyyy-MM-ddHH:mm:ss").get("hour").toString())+1;JOptionPane.showMessageDialog(this,"共停放"+thour+"小時(shí),費(fèi)用是:"+(thour*ParkPojo.getA())+"元");indate=null;}}elseif(e.getSource()==Search){if(indate==null){JOptionPane.showMessageDialog(this,"未停入車輛");}else{newParkQuery(indate);}}elseif(e.getSource()==Exit){dispose();}}@OverridepublicvoidmouseEntered(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseExited(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmousePressed(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseReleased(MouseEvente){//TODOAuto-generatedmethodstub}//窗口淡入淡出函數(shù)publicvoidsetOpacity(){//窗口設(shè)置淡入淡出代碼段AWTUtilities.setWindowOpacity(Park.this,0f);ActionListenerlisener=newActionListener(){floatalpha=0;@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(alpha<0.9){AWTUtilities.setWindowOpacity(Park.this,alpha+=0.1);}else{AWTUtilities.setWindowOpacity(Park.this,1); Timersource=(Timer)e.getSource();source.stop();}}};//設(shè)置線程控制newTimer(50,lisener).start();}/**計(jì)算兩個(gè)日期相差幾天@authorym@dateNov12,20132:30:38PM@paramstartTime@paramendTime@paramformat格式*/privateMapdateDiff(StringstartTime,StringendTime,Stringformat){//TODOAuto-generatedmethodstub//按照傳入的格式生成一個(gè)simpledateformate對象SimpleDateFormatsf=newSimpleDateFormat(format);longnd=1000*24*60*60;//一天的毫秒數(shù)longnh=1000*60*60;//一小時(shí)的毫秒數(shù)longnm=1000*60;//一分鐘的毫秒數(shù)longns=1000;//一秒鐘的毫秒數(shù)longdiff;MapdiffMap=newHashMap();try{diff=sf.parse(endTime).getTime()-sf.parse(startTime).getTime();longday=diff/nd;//計(jì)算差多少天longhour=diff%nd/nh;//計(jì)算差多少小時(shí)longmin=diff%nd%nh/nm;//計(jì)算差多少分鐘longsec=diff%nd%nh%nm/ns;//計(jì)算差多少秒//輸出結(jié)果System.out.println("時(shí)間相差:"+day+"天"+hour+"小時(shí)"+min+"分鐘"+sec+"秒。");diffMap.put("day",String.valueOf(day));diffMap.put("hour",String.valueOf(hour));//diffMap.put("min",String.valueOf(min));//diffMap.put("sec",String.valueOf(sec));}catch(Exceptione){

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論