




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
緒論1.1研究背景隨著經濟的發展,生活水平也在提高。人均汽車擁有量的年增長率、假日旅行的增加提高了對汽車租賃的需求,也刺激了汽車租賃的發展。并且,現在年輕人的成長與教育環境,使得豪華車的市場大大加強,再加上婚車的需求,對于豪華車的需求量大大增加。還有些中小型企業接待重要客戶會需要豪華車,但是由于資金有限,保養難度大因此,可能會選擇租賃一輛豪華車。還有一些廣告電影拍攝,可能會用到豪華車,這樣租賃一輛豪華車就顯得尤為重要。這些原因導致豪華車租賃市場的龐大,需求量也在持續升高。本課題的研究不僅是為了更好地認識到豪華車租賃管理系統的意義,而且是為了不斷提升豪華車租賃的管理和用戶體驗。1.2研究目的和意義經濟的持續發展和公民生活水平的提高使汽車租賃、運輸基礎設施、金融網絡等部門的發展具有相當大的重要性。是汽車租賃行業最大的技術支持和保護。大量的中小車輛租賃企業借著上述宏觀優勢正處于在企業的發展期,但是我們應該看到,由于我國車輛租賃業起步較晚還處于初級發展階段,車輛租賃企業大多規模普遍偏小、在處理業務數據時,普遍管理采用手工處理,導致效率低下、混亂,因此造成的損失。同時業界的競爭日益激烈。總的說來車輛租賃業作為朝陽產業,前景廣闊但路途艱辛。如何通過信息化建設提升企業競爭力,讓汽車租賃公司走上規模和網絡發展的道路是企業迫切需要解決的問題,尤其是對作為車輛租賃行業的主體——廣大的中小車輛租賃企業。因此通過對中小車輛租賃企業的業務研究和論證,找出企業自身業務的功能特點進行有針對性的信息化建設,毫無疑問,提高企業的管理水平和提高其競爭力將是積極的因素。1.3國內外研究現狀近年來,全國范圍內的汽車租賃行業發展迅速,許多研究人員對該行業進行了研究。已經提到的關于汽車租賃發展的若干研究表明,國家研究人員普遍認為汽車租賃行業是“黃金產業”。而豪華車租賃也算是汽車租賃的衍生產業,發展空間也是相當之大,2022年牛小歐,翟亞男在《豪華車市場格局生變》中通過研究豪華車市場格局生變發現在中國市場,豪華車市場銷量一定會快速攀升,“逆市增長”也成了形容豪華車市場表現力的高頻詞匯REF_Ref7494\r\h[3]。2020年劉堯在《基于JAVA的網上汽車租賃系統設計與實現》書中介紹在技術上,該管理系統使用了B/S結構模型,同時也在系統開發之前使用了MVC設計模式,搭建了Java的工作環境和Tomcat。本系統界面簡單,操控簡易,運轉整體平穩,并通過了大量的試驗證實本系統基本實現了設計目的,達到了新產品開發的基本要求,市場使用感受良好REF_Ref7732\r\h[14]。二零一九年艾瑞咨詢系列研究報告在《中國豪華車市場發展白皮書》中剖析了中國近年來的豪華車市場的發展趨勢,未來豪華車車租賃行業的“蛋糕”將越來越大,多元化發展成為時代的潮流REF_Ref7810\r\h[17]。國外對豪華車租賃系統的研究開始得很早,經過不斷的發展,他們現在已經達到了智能化的水平。國外高端汽車的租賃系統通常使用高度自動化和更高水平的人工智能來建造,因為它們的功能和穩定性和用戶經驗已經相當先進。2021年,RaniRuzanitaMat,KamarudinNorbaizura,AzmiNurAtasya,IbrahimNursafirahanis,MansurNurArdaniAminah等人在《JournalofPhysics:ConferenceSeries》中以ABC汽車租賃公司為例,說明了好多公司已經采用了仿真技術優化租車數量以滿足需求,更加完美的提升豪華車租賃的管理和用戶體驗REF_Ref8000\r\h[20]。2021年,在《M2Presswire》中說明了邁阿密北二灣1001外向型汽車租賃邁阿密,FL開辟60個新地點REF_Ref8277\r\h[22]。也證明了汽車租賃行業的需求量之大。2022年,在《M2Presswire》中提到Ap超級跑車租賃提供迪拜最好的汽車租賃服務,迭代承諾提供無與倫比的服務交付REF_Ref8166\r\h[19]。說明了豪華車需求量的增長,豪華車租賃的管理和用戶體驗是一切發展的首要因素。1.4論文組織架構本文將分為七個章節介紹系統的開發設計過程,全面的向讀者介紹從建立課題到理論分析再到完成實現的開發工具,創建的搭建環境,制作的編程代碼等,使讀者能夠通過本論文對所開發的系統有所了解。第一章,緒論。分為介紹背景、目的和意義以及國內外研究現狀和論文組織結構。第二章,相關理論和技術。分為Java介紹、MySQL特點、B/S模式。第三章,系統分析,分為系統可行性分析和系統需求分析。從技術可行性、經濟可行性、操作可行性以及功能需求分析和非功能需求分析五方面進行分析。第四章,系統設計。分為功能設計,數據庫設計以及數據表設計。第五章,系統實現。對核心功能進行的基本講解。第六章,系統測試。分為測試步驟和測試用例。第七章,結論。總結了開發的一些感悟。第2章相關理論和技術2.1Java簡介Java也是一門編程語言,他主要應用于目前網絡的分布式平臺,同時也是一門“面向對象”的編程語言,Java主要借鑒于C++,雖然與其語言十分相似,但是相比于C++語言更加簡潔,讓程序員的上手學習也更加容易。它與C++更是有幾個優點,它們包括:1.面向對象。Java是一門面向對象語言,這是Java最重要的語言特性。它將數據和對象進行了封裝,并且提供了類、接口和繼承等關系。2.可移植性。在裝有jdk的計算機上,就可以運行Java應用程序。3.簡單易上手。Java語言相對而言比較簡單,學習起來相對容易。2.2MySQL特點 MySQL目前屬于甲骨文公司。是關系型數據庫。它包含多個數據庫引擎,可以在不同的應用程序中使用。同時高速也是MySQL的重要特征。MySQL也支持面向對象,但是針對Java語言來說,MySQL并不能決定數據庫中最大的容量,而一般要根據系統環境對文件大小的影響,這就能夠看出MySQL容量之大。MySQL數據庫是一個C/S(客戶端和服務發現者模型)模型,客戶端通過帳號、密碼連接服務器,只有在操作成功后才能連接(CRUD:添加、刪除、更改、請求)。2.3B/S模式B/S模式,就是瀏覽器/服務器模式,是目前應用程序的統一發展方向。具有著三層結構。三層管理平臺的第一層是網絡用戶界面的一部分。我們每天使用的應用程序將集成到瀏覽器中,在那里HTML文件將單調程序轉換成我們每天看到的彩色頁面。第二層頁面,服務器用戶以前的行為的基礎水平,最初產生一系列網頁代碼是基于用戶要求,已經包含了預期的結果,并向用戶瀏覽器生成的代碼,以便后者能夠實現這一目標所需的信息互動。第三層是數據庫服務器,其管理過程類似于基于上述并行任務協調的C/S模型。但是他也有著明顯的缺點,比如他無法實現具有個性化的功能要求。由于交互模式是請求/響應模式,它們通常涉及到對新頁面的動態讀取,顯著降低響應速率,并且不允許頁面顯示,這對數據庫造成了相當大的壓力。第3章系統分析3.1可行性分析3.1.1技術可行性本系統采用的是Java語言開發,使用到的技術棧分別有:前端開發用到了JSP、CSS、JS、AJAX技術。后端開發用到了Spring+SpringMVC+Mybatis框架。軟件開發工具平臺為:后端集成開發環境為idea2020和eclipse,jdk1.8進行開發,前端采用HBuilder開發。后臺數據庫用到的是MySQL5.X。測試軟件用的是Postman。設計模式為MVC,B/S結構。操作系統為Windows10。瀏覽器為火狐瀏覽器。應用服務器為Tomcat8.0.28。3.1.2經濟可行性經濟可行性是指我們的發展過程符合我們以前的發展預算,整個發展過程的開支都有明確的文件記載,符合發展過程的要求。該系統建成后,開發的豪華車租賃系統前景廣闊,市場范圍也比較廣,經濟價值高,在系統開發前也在我們的考慮范圍內。總之,我們認為設計開發這種基于Java的豪華車租賃系統在經濟上是可行的REF_Ref10615\r\h[8]。3.1.3操作可行性當系統交付給用戶時,它很容易使用,所有功能都是通過網頁的圖形化界面實現的,數據輸入靈活完整,沒有歧義,管理員和用戶進行操作也十分絲滑。整個系統必須簡單、高效,經過測試,所有功能十分流暢,數據顯示完整,沒有缺失。基于這些考慮,我們可以確定這個開發是可操作的。3.2需求分析目前,信息化建設已經普遍深入企業之心,信息化對企業管理水平的提高對企業利潤的貢獻無疑是巨大的,在租賃行業這一服務業的里,信息化的作用更是巨大,而國內車輛租賃業的起步較晚,發展卻十分迅速,大量中小租賃企業的出現急需各自適合本企業特色的中小版軟件,進一步推動企業的發展。大多數現有的租賃業務管理系統都是面向業務管理的。3.2.1功能需求分析根據對系統的功能進行分析,用戶注冊登錄進入主頁,可以查看主頁信息,也可以進入車輛推薦,選車中心,聯系我們頁面,在前兩個頁面中可以選擇車輛進入車輛詳情界面并可以將其加入購物車生成訂單,之后可以支付或者取消訂單,支付后可以取車,用完車可以進行換車。業務流程圖:圖3.1主要業務流程圖
用例圖:圖3.2用例圖3.2.2非功能需求分析本文設計了一個基于Java的豪華車租賃系統,該系統為用戶存儲大量車輛信息和基本操作系統信息,以確保系統數據的安全,用戶登錄模塊開發期間進行了專門配置,設置了驗證碼認證,以判斷訪問系統的用戶不是機器操作。在基于Java的web系統中,設置了管理員于用戶兩個權限,分別進入兩個系統,管理員進行管理員操作,用戶無法進行管理員操作。在用戶操作時,還設置有攔截器,如果用戶未登錄進行查看、加入購物車功能或者查看訂單功能會自動跳入登錄界面。第4章系統設計4.1功能設計在對基于Java的豪華車租賃系統進行詳細的需求分析與數據庫設計后,將要完成的功能模塊為:后臺:登錄、租賃車輛管理、用戶管理、租賃訂單管理;前臺:注冊登錄、查詢車輛、車輛推薦、查看車輛詳情、加入購物車、生成訂單、支付、取車、還車。本系統的功能模塊如下:圖4.1功能模塊圖4.2數據庫概念設計1.實體圖用戶用戶名用戶用戶名密碼賬號狀態圖4.2用戶實體圖管理員實體包括用戶名和密碼。管理員實體圖如圖4.3所示:管理員管理員用戶名密碼圖4.3管理員實體圖車輛實體包括車輛名稱、車輛信息、租賃價格、車輛圖片、庫存數量、車輛類型。車輛實體圖如圖4.4所示:車輛車輛車輛信息租賃價格車輛圖片庫存數量車輛名稱車輛類型圖4.4車輛實體圖訂單實體包括用戶主鍵、地址主鍵、總價、備注、狀態、時間。訂單實體圖如圖4.5所示:訂單訂單備注狀態時間總價地址主鍵用戶主鍵圖4.5訂單實體圖訂單明細實體包括訂單主鍵、車輛主鍵、數量、價格,。訂單明細實體圖如圖4.6所示:訂單明細訂單明細車輛主鍵數量價格訂單主鍵圖4.6訂單明細實體圖地址實體包括地址主鍵、聯系人、手機號、地址。地址實體圖如圖4.7所示:地址地址聯系人手機號地址地址主鍵圖4.7地址實體圖
實體關系圖由上述可知實體關系圖,如圖4.8所示:用戶用戶用戶名密碼賬號狀態查看訂單備注狀態時間總價地址聯系人手機號地址包含包含訂單明細數量價格車輛車輛信息租賃價格車輛圖片庫存數量車輛名稱車輛類型包含查看管理員用戶名密碼查看管理管理圖4.8實體關系圖4.3數據庫物理設計數據庫設計有四個階段:第一階段是選擇數據在數據庫中存儲結構,第二階段是確定數據的存取方法,第三個階段是選擇數據在數據庫中的存放位置,第四階段是決定在數據庫中數據的位置。系統的具體表設計如下:(1)管理員表admin“管理員表admin”用來記錄管理員的信息。admin的結構如表4.1所示。表4.1管理員表字段名稱類型長度字段說明主鍵默認值a_idint11主鍵主鍵a_namevarchar20用戶名a_passvarchar20密碼(2)汽車明細表car_info“汽車明細表car_info”是用來記錄汽車的信息。car_info的結構如表4.2所示。表4.2汽車明細表字段名稱類型長度字段說明主鍵默認值c_idbigint11主鍵主鍵c_namevarchar20汽車名稱c_contentvarchar200汽車詳情c_pricedouble租賃價格c_imgvarchar200汽車圖片c_numberint11數量type_idint11汽車類型(3)汽車類型表car_type“汽車類型表car_type”是用來記錄汽車類型。car_type的結構如表4.3所示。表4.3汽車類型表字段名稱類型長度字段說明主鍵默認值type_idint11主鍵主鍵type_namevarchar20l類型名稱(4)購物車表carshop“購物車表carshop”是用來記錄用戶購物車信息。carshop的結構如表4.4所示。表4.4購物車表字段名稱類型長度字段說明主鍵默認值csidint11主鍵主鍵uidint11用戶idcidint11車輛明細idnumbersint11數量(5)訂單表orders“訂單表orders”是用來記錄用戶訂單的信息。orders的結構如表4.5所示。表4.5訂單表字段名稱類型長度字段說明主鍵默認值oidint主鍵主鍵uidint用戶idaddressIdint200取車地址totalpricedouuble200總價remarksvarchar200備注odatetimestamp200時間(6)訂單明細表orderdetail“訂單明細表orderdetail”是用來記錄訂單明細。orderdetail的結構如表4.6所示。表4.6訂單明細表字段名稱類型長度字段說明主鍵默認值odidint11主鍵主鍵oidchar32訂單idpidint11車輛idpnumberint11購買數量ptotaldouble10,2價格(7)取車地址表address“取車地址表address”是用來記錄取車地址的信息。address的結構如表4.7所示。表4.7取車地址表字段名稱類型長度字段說明主鍵默認值addressIdint11主鍵主鍵uidint11用戶idcneevarchar50用戶昵稱phonevarchar11手機號addressvarchar100地址用戶表users“用戶表users”是用來記錄用戶個人信息。users的結構如表4.8所示。表4.8用戶表字段名稱類型長度字段說明主鍵默認值u_idint11主鍵主鍵u_namevarchar20用戶名u_passvarchar20密碼ustatusInt11賬號狀態1第5章系統實現5.1登錄注冊1.管理員管理員與用戶登錄相同。管理員登錄界面如圖5.4所示:圖5.4管理員登錄界面
管理員在后臺登錄界面輸入賬號和密碼,點擊“登錄”進入管理員首頁。管理員登錄成功界面如圖5.5所示。圖5.5管理員登錄成功界面實現該功能的關鍵代碼如下://驗證碼登錄@RequestMapping("/login.action")publicStringlogin(Stringuname,Stringupass,Stringyzm,HttpSessionsession){StringsessionYzm=(String)session.getAttribute("random");if(!yzm.equals(sessionYzm)){session.setAttribute("msg","驗證碼輸入錯誤");return"redirect:/jsps/login.jsp";}Map<String,Object>map=userService.login(uname,upass);if("ok".equals(map.get("s"))){session.setAttribute("user",map.get("user"));return"redirect:/prod/show5.action";}else{session.setAttribute("msg",map.get("s"));return"redirect:/jsps/login.jsp";}}//注冊@RequestMapping("/register.action")publicStringregister(Stringuname,Stringupass,Stringyzm,HttpSessionsession){StringsessionYzm=(String)session.getAttribute("random");if(!yzm.equals(sessionYzm)){return"yanzhengmacuowu";}Map<String,Object>map=userService.register(uname,upass);Objects=map.get("resu");if("ok".equals(s)){return"true";}else{Stringresu=(String)map.get("resu");returnresu;}}2.用戶如果用戶第一次進入系統,點擊個人中心將切換到用戶注冊。注冊時,用戶必須輸入自己的賬號和密碼,并輸入正確的驗證碼。用戶注冊界面如圖5.1所示;圖5.1用戶注冊界面登錄時,用戶必須輸入自己的賬號和密碼,并輸入正確的驗證碼。然后按下“登錄”按鈕。如果您不輸入用戶名或密碼,則將提示輸入用戶名和密碼。用戶登錄界面如圖5.2所示:圖5.2用戶登錄界面在登錄界面輸入用戶名和密碼后,點擊“登錄”,自動訪問用戶的主頁。否則,登錄失敗。用戶登錄成功界面如圖5.3所示。圖5.3用戶首頁5.2租賃車輛管理1.管理員管理員登錄到后臺系統中點擊“租賃車輛管理”,進入租賃車輛管理界面。租賃車輛管理界面如圖5.6所示:圖5.6租賃車輛管理界面實現該功能的關鍵代碼如下:@RequestMapping("/split.action")publicStringsplit(Integerpage,HttpSessionsession,Modelmodel){List<CarType>productTypeList=carTypeService.getAll();model.addAttribute("ptlist",productTypeList);session.setAttribute("ptlist",productTypeList);Integerp=1;if(page!=null){p=page;}if(page==null){page=p;}PageInfopageInfo=carInfoService.split(page,PAGE_SIZE);model.addAttribute("pb",pageInfo);return"product";}//處理分頁publicPageInfosplit(Integerpage,intpageSize){CarInfoExampleexample=newCarInfoExample();PageHelper.startPage(page,pageSize);List<CarInfo>carInfoList=carInfoMapper.selectByExample(example);PageInfo<CarInfo>pageInfo=newPageInfo<>(carInfoList);returnpageInfo;}其中可以進行查詢、新增、刪除、編輯操作。點擊“刪除”按鈕,會提示確認刪除嗎?提示框如圖5.7所示:圖5.7刪除彈出提示框實現該功能的關鍵代碼如下://調用函數彈出提示框<buttontype="button"class="btnbtn-warning"id="mydel"onclick="del(${p.cId},${pb.pageNum})">刪除</button>functiondel(pid,ispage){if(confirm("確定刪除嗎")){location.href="prod/delete.action?pid="+pid+"&ispage="+ispage;}}點擊“新增商品”按鈕,顯示新增商品界面。輸入商品名稱、商品介紹、定價、總數量,選擇類別并上傳車輛圖片。新增商品界面如圖5.8所示:圖5.8新增車輛界面點擊“編輯”按鈕會出現更新商品界面,該界面會將商品名稱、商品介紹、定價、總數量、車輛分類、車輛圖片等信息顯示。在該界面進行車輛信息的修改,更新商品界面如圖5.9所示:圖5.9更新車輛界面實現該功能的關鍵代碼如下://修改回顯@RequestMapping("/one.action")publicModelAndViewpreupdate(Integerpid,Integerispage){ModelAndViewmav=newModelAndView();CarInfocarInfo=carInfoService.preUpdate(pid);mav.addObject("prod",carInfo);mav.addObject("page",ispage);mav.setViewName("update");returnmav;}2.用戶用戶首頁點擊菜單欄“選車中心”會顯示全部車型,可以根據上面的搜索欄查詢喜歡的車型,如圖5.10所示:圖5.10選車中心實現該功能的關鍵代碼如下:@RequestMapping("/select.action")publicStringselect(Integerpage,HttpSessionsession){List<CarType>list=carTypeService.getAll();session.setAttribute("list",list);Integerp=1;if(page!=null){p=page;}if(page==null){page=p;}PageInfopa=carInfoService.split(page,8);session.setAttribute("pa",pa);return"redirect:/jsps/select.jsp";}用戶在任何界面中點擊車輛,進入該界面,顯示車輛詳細信息和價格。如圖5.11所示:圖5.11車輛詳情實現該功能的關鍵代碼如下:@RequestMapping("/detailOne")publicStringdetailOne(Integerpid,Modelmodel){CarInfocarInfo=carInfoService.getCarInfoById(pid);model.addAttribute("carInfo",carInfo);return"forward:/jsps/carInfo.jsp";}publicCarInfogetCarInfoById(Integerpid){CarInfocarInfo=carInfoMapper.selectByPrimaryKey(pid);returncarInfo;}5.3用戶信息管理管理員點擊“用戶信息管理”,進入用戶信息管理界面。該界面可以查詢并改變用戶狀態。用戶信息管理界面如圖5.12所示:圖5.12用戶信息管理實現該功能的關鍵代碼如下:@RequestMapping("/one.action")publicStringone(Integerpage,Usersusers,Modelmodel){if(users.getuStatus()==1){users.setuStatus(0);}else{users.setuStatus(1);}userService.update(users);System.out.println(users.getuStatus());Integerp=1;if(page!=null){p=page;}if(page==null){page=p;}PageInfopageInfo=userService.split(page,PAGE_SIZE);model.addAttribute("pb",pageInfo);return"user";}管理員點擊“未鎖定”按鈕,會提示確定禁用賬戶嗎,點擊“鎖定按鈕”,會提示確定解禁賬戶嗎。提示框如圖5.13和圖5.14所示:圖5.13禁用彈出提示框圖5.14解禁彈出提示框5.4訂單管理1.管理員管理員點擊“用戶訂單管理”,進入用戶訂單管理界面。用戶訂單管理界面如圖5.15所示:圖5.15用戶訂單管理2.用戶用戶在購物車的頁面上,用戶點擊“支付”,會切換到“確認訂單”頁面。頁面可以選擇取車地址和添加備注。如圖5.16所示:圖5.16結算訂單實現該功能的關鍵代碼如下:@RequestMapping("/zhifu.action")publicStringzhifu(HttpServletRequestrequest){HttpSessionsession=request.getSession();Usersusers=(Users)session.getAttribute("user");Integeruid=users.getuId();List<Carshop>carlist=(List<Carshop>)session.getAttribute("carlist");Addressaddress=newAddress();Integeraid=-1;String[]pids=request.getParameterValues("pid");Stringshowadd=request.getParameter("showadd");if(showadd!=null){Stringcnee=request.getParameter("cnee");Stringphone=request.getParameter("phone");Stringnewaddress=request.getParameter("newaddress");address.setAddress(newaddress);address.setPhone(phone);address.setCnee(cnee);address.setUid(uid);aid=addressService.save(address);}else{aid=Integer.parseInt(request.getParameter("rdo"));}Ordersorders=newOrders();orders.setStatus("未支付");orders.setAddressid(aid);orders.setRemarks(request.getParameter("beizhu"));Stringoid=UUID.randomUUID().toString().replace("-","").substring(1,17);orders.setOid(oid);doubletotal=Double.parseDouble(request.getParameter("total"));orders.setTotalprice(total);orders.setUid(uid);intnum=0;try{num=ordersService.save(orders,pids,carlist);}catch(Exceptione){e.printStackTrace();}if(num>0){return"redirect:/fore/showOrder.action";}else{return"redirect:/fore/showAddress.action";}}用戶在“訂單結算”頁面點擊“去支付”進入“我的訂單”頁面。該頁面允許查看用戶自己的訂單,可以根據頂部導航欄按條件查看。未支付的訂單可以支付與取消,支付成功的訂單可以取車,取車成功的訂單可以還車。如圖5.17所示:圖5.17我的訂單實現該功能的關鍵代碼如下://支付publicvoidupdateStatus(Stringoid){Stringstatus="已支付";ordersMapper.updateStatus(oid,status);}//取車publicvoidpickUpCar(Stringoid){Stringstatus="已取車";ordersMapper.updateStatus(oid,status);}//還車publicvoidreturnCar(Stringoid){Stringstatus="已還車";List<Orderdetail>orderdetailList=orderdetailMapper.findByOid(oid);for(Orderdetailorderdetail:orderdetailList){Integerpid=orderdetail.getPid();Integerpnumber=orderdetail.getPnumber();CarInfocarInfo=carInfoMapper.selectByPrimaryKey(pid);IntegercNumber=carInfo.getcNumber();Integernumber=cNumber+pnumber;carInfoMapper.returnCar(pid,number);}ordersMapper.updateStatus(oid,status);}//取消訂單publicvoidgiveUp(Stringoid){Stringstatus="已取消";List<Orderdetail>orderdetailList=orderdetailMapper.findByOid(oid);for(Orderdetailorderdetail:orderdetailList){Integerpid=orderdetail.getPid();Integerpnumber=orderdetail.getPnumber();CarInfocarInfo=carInfoMapper.selectByPrimaryKey(pid);IntegercNumber=carInfo.getcNumber();Integernumber=cNumber+pnumber;carInfoMapper.returnCar(pid,number);}ordersMapper.updateStatus(oid,status);}點擊“查看詳情”按鈕會在訂單下面出現訂單詳情,如圖5.17所示;該界面允許查看用戶所有的訂單,可以通過導航狀態欄進行搜索,如圖5.18所示:圖5.18根據狀態查看訂單實現該功能的關鍵代碼如下://管理員查看訂單狀態@RequestMapping("/condition.action")publicStringcondition(Stringcondition,HttpSessionsession){if("all".equals(condition)){return"redirect:/fore/adminOrder.action";}else{Map<String,Object>map=ordersService.conditionOrder(condition);session.setAttribute("orderList",map.get("list"));session.setAttribute("detailList",map.get("odlist"));return"orders";}}5.5車輛推薦管理用戶首頁點擊菜單欄“推薦車源”會顯示8款熱門車型供用戶查看。如圖5.19所示:圖5.19推薦車源實現該功能的關鍵代碼如下:@RequestMapping("/recommend.action")
publicStringrecommend(HttpSessionsession){
PageInfopageInfo=carInfoService.split(2,8);
session.setAttribute("car",pageInfo);
return"redirect:/jsps/recommend.jsp";
}
CarInfoExampleexample=newCarInfoExample();
PageHelper.startPage(page,pageSize);
List<CarInfo>carInfoList=carInfoMapper.selectByExample(example);
PageInfo<CarInfo>pageInfo=newPageInfo<>(carInfoList);
returnpageInfo;5.6聯系我們用戶首頁點擊菜單欄“聯系我們”會顯示公司的一些信息,如圖5.20所示:圖5.20聯系我們實現該功能的關鍵代碼如下:functioninitMap(){createMap();setMapEvent();addMapControl();addMarker();}functioncreateMap(){varmap=newBMap.Map("dituContent");varpoint=newBMap.Point(116.37154695934125,40.11109281988195);map.centerAndZoom(point,17);window.map=map;}functionsetMapEvent(){map.enableDragging();map.enableScrollWheelZoom();map.enableDoubleClickZoom();map.enableKeyboard();}functionaddMapControl(){varctrl_nav=newBMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE}map.addControl(ctrl_nav);varctrl_ove=newBMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});map.addControl(ctrl_ove);varctrl_sca=newBMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});map.addControl(ctrl_sca);}5.7購物車用戶點擊任何界面右上角的“購物車”(登錄時)或車輛詳細信息頁面上的“添加購物車”進入購物車界面(未登錄時先登錄)。該界面顯示用戶的購物車,還可以添加、改變和刪除購物車內容。如圖5.21所示:圖5.21購物車實現該功能的關鍵代碼如下://添加購物車publicintsave(Carshopcarshop){intnum=0;Carshopcar=carshopMapper.selectUidCid(carshop);if(car==null){carshop.setNumbers(1);num=carshopMapper.insert(carshop);}else{car.setNumbers(car.getNumbers()+1);num=carshopMapper.updateByPrimaryKey(car);}returnnum;}//展示購物車publicList<Carshop>getCarshopInfo(Integeruid){List<Carshop>carshopList=carshopMapper.selectProductInfoCarshop(uid);returncarshopList;}//修改購物車車輛數量@RequestMapping("/changeNumber.action")publicStringchangeNumber(Integercid,Integernum){carshopService.changeNumber(cid,num);return"redirect:/fore/showCarShop.action";}5.8支付管理用戶在我的“訂單界面”點擊支付進入支付界面,支付頁面可以進行微信掃碼支付。如圖5.22所示:圖5.22支付管理實現該功能的關鍵代碼如下:privatestaticfinalLoggerlogger=LoggerFactory.getLogger(HttpUtil.class);privatefinalstaticintCONNECT_TIMEOUT=5000;//inmillisecondsprivatefinalstaticStringDEFAULT_ENCODING="UTF-8";publicstaticStringpostData(StringurlStr,Stringdata){returnpostData(urlStr,data,null);}publicstaticStringpostData(StringurlStr,Stringdata,StringcontentType){BufferedReaderreader=null;try{URLurl=newURL(urlStr);URLConnectionconn=url.openConnection();conn.setDoOutput(true);conn.setConnectTimeout(CONNECT_TIMEOUT);conn.setReadTimeout(CONNECT_TIMEOUT);if(contentType!=null)conn.setRequestProperty("content-type",contentType);OutputStreamWriterwriter=newOutputStreamWriter(conn.getOutputStream(),DEFAULT_ENCODING);if(data==null)data="";writer.write(data);writer.flush();writer.close();reader=newBufferedReader(newInputStreamReader(conn.getInputStream(),DEFAULT_ENCODING));StringBuildersb=newStringBuilder();Stringline=null;while((line=reader.readLine())!=null){sb.append(line);sb.append("\r\n");}returnsb.toString();}catch(IOExceptione){logger.error("Errorconnectingto"+urlStr+":"+e.getMessage());}finally{try{if(reader!=null)reader.close();}catch(IOExceptione){e.printStackTrace();}}returnnull;}系統測試在正式使用系統之前,需要進行一系列功能和性能測試,以確保系統的可靠性和穩定性,以及在正式使用系統之前對系統進行修復和微調。系統測試是每個方案生命中的一項重要和復雜的任務。這對于確保軟件的可靠性至關重要。其目的是使用戶體驗感更強。該系統使用了Postman進行接口測試,并根據界面進行集成測試。6.1測試步驟與開發相似,測試也需要一定的時間去執行,也有著自己的規劃步驟,為了將程序運行完整,使用流暢,我做了以下測試步驟:1.測試計劃:首先確定測試計劃,確定使用那些方式進行測試,使用那些軟件。本系統主要使用Postman,然后根據界面做一個集成測試。2.測試設計:測試的核心是為測試模型的準備制定測試策略。主要測試登錄模塊,租賃車輛管理模塊以及訂單模塊。3.測試實現:主要分析測試的可行性以及分工。主要使用Postman進行接口測試,確保接口都可以訪問成功,成功獲取返回值。然后根據前端界面做一個集成測試。測試界面展示是否有誤,界面有無報錯以及用戶使用體驗等。4.測試執行:根據測試設計以及測試實現進行全面測試。6.2測試用例6.2.1登錄測試用例用戶端測試用例依據用戶要求進行設計,這里主要測試登錄模塊。如表6.1所示。表6.1登錄測試用例表測試編號測試目的操作步驟預期結果實際結果1登錄測試輸入正確的用戶名和密碼登錄成功登錄成功2登錄測試輸入錯誤的用戶名登錄失敗登錄失敗3登錄測試輸入錯誤的密碼登錄失敗登錄失敗4登錄測試輸入錯誤的驗證碼登錄失敗登錄失敗6.2.2租賃車輛管理測試用例管理端在運行時要滿足瀏覽器的運行需求,這里主要測試租賃車輛管理模塊。如表6.2所示。表6.2租賃車輛管理測試用例表測試編號測試目的操作步驟預期結果實際結果1添加汽車租賃信息測試在添加頁面輸入汽車租賃信息,點擊確認按鈕添加成功添加成功2修改汽車租賃信息測試在修改頁面修改汽車租賃信息,點擊確認按鈕修改成功修改成功3刪除汽車租賃信息測試在管理汽車租賃信息頁面,點擊某一車輛的刪除按鈕刪除成功刪除成功4查詢汽車租賃信息測試在查詢輸入框輸入各種條件,點擊查詢按鈕查詢成功查詢成功6.2.3用戶訂單管理測試用例管理員可以查看所有用戶的訂單,可以根據訂單進行的狀態進行查看,這里需要測試用戶訂單管理模塊。如表6.3所示。表6.3用戶訂單管理測試用例表測試編號測試目的操作步驟預期結果實際結果1查看所有用戶訂單在管理員界面,點擊用戶訂單管理可以查看到所有用戶的訂單顯示所有用戶訂單2根據訂單狀態查詢訂單在用戶訂單管理界面分別點擊訂單狀態顯示該狀態的所有訂單顯示該狀態的所有訂單6.2.4用戶信息管理測試用例用戶可能做出違規操作,或者出現賬號被盜以及機器人賬號等情況,管理員可以鎖定賬號,這里需要測試用戶信息管理模塊。如表6.4所示。表6.4用戶信息管理測試用例表測試編號測試目的操作步驟預期結果實際結果1鎖定賬號在用戶信息管理界面選擇一個賬號點擊未鎖定按鈕,鎖定賬號。該用戶賬號在登錄時提示賬號已被鎖定該用戶賬號在登錄時提示賬號已被鎖定續表6.4用戶信息管理測試用例表2解鎖賬號在用戶信息管理界面選擇一個賬號點擊鎖定按鈕,解鎖賬號。該用戶賬號可以正常登錄該用戶賬號可以正常登錄6.2.5選車中心測試用例用戶在選車中心可以查看所有車輛也可以按照自己的需求搜索車輛,這里需要測試選車中心模塊。如表6.5所示。表6.5選車中心測試用例表測試編號測試目的操作步驟預期結果實際結果1查看車輛信息在用戶首頁點擊選車中心分頁顯示所有車輛分頁顯示所有車輛2商品名稱模糊查詢車輛輸入不完整商品名稱顯示含有該商品名稱的車輛顯示含有該商品名稱的車輛3按類型查詢車輛選擇一種車輛類型顯示該車型車輛顯示該車型車輛4按價格區間查詢車輛輸入選車價格區間顯示該價格區間車輛顯示該價格區間車輛6.2.6訂單測試用例用戶在生成訂單時需要扣減庫存以及取消訂單時需要庫存返還,這里需要測試訂單模塊。如表6.4所示。表6.6訂單測試用例表測試編號測試目的操作步驟預期結果實際結果1生成訂單扣減庫存測試在訂單結算頁面,點擊立即支付生成訂單,查看庫存是否扣減庫存扣減成功庫存扣減成功2填寫車輛名稱在我的訂單界面,點擊取消按鈕,查看庫存是否返還庫存返還成功庫存返還成功3用戶還車庫存返還測試在我的訂單界面,點擊還車按鈕,查看庫存是否返還庫存返還成功庫存返還成功6.3測試結論經過系統測試得出以下結論:系統在各種功能上運行良好,能夠滿足用戶的基本需求。測試結果表明,該系統性能穩定,響應速度快,能在大量并發請求下保持正常運行。同時,對系統的安全性能進行了全面驗證,沒有發現明顯的缺陷或安全風險。在可用性方面,系統界面設計簡單明了,易于使用,用戶體驗好。在兼容性方面,該系統可以在不同的操作系統和瀏覽器上運行,沒有重大的兼容性問題。總的來說,系統已經經過測試,達到了預期的要求和標準,可以實際應用。結論設計一個程序需要進行嚴謹和系統的開發流程,包括需求分析、設計、編碼、測試等步驟。下面是一些總結:需求分析階段:在這個階段,需要去了解業務方面的知識,了解其需求并確定具體的功能和規格。設計階段:在對需求進行充分理解之后,需要根據需求設計出合適的架構、模型和數據庫,并對系統進行模塊化劃分。此外,還需要保證系統的安全性和可擴展性。編碼階段:在這個階段,需要編寫符合設計要求的代碼,并進行代碼測試和版本管理,并且合理添加注釋,保證代碼質量和可讀性。測試階段:需要進行單元測試測試、集成測試、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 耐火土石礦山安全生產事故案例分析考核試卷
- 漁業機械化漁業資源增殖與養護考試考核試卷
- 稀土分離與純化考核試卷
- 2025技術授權與共同生產合同范本
- 2025年小學教師勞動合同
- 2025商用物業租賃合同范本
- 大學生職業規劃大賽《偵查學專業》生涯發展展示
- 遂平懿豐假日廣場施工組織設計
- 保證人借款合同書范例
- 虛假合同書貸款
- 期中測試(范圍:第1-4章)(A卷·夯實基礎)-北師大版七年級數學下冊(解析版)
- 木制品幼兒園課程
- 2024年四川宜賓五糧液股份有限公司招聘筆試真題
- 垃圾焚燒飛灰處理行業深度調研及發展戰略咨詢報告
- 2024年下半年成都市事業單考試試題
- 三年級信息科技第23課《分解描述問題》教學設計、學習任務單及課后練習
- 鉚工基礎知識培訓
- 2025年車位轉讓協議模板
- 數據分析能力提升培訓心得體會
- 醫療器械安全知識培訓
- 2025年中儲糧集團河南分公司招聘(114人)筆試參考題庫附帶答案詳解
評論
0/150
提交評論