版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE4PAGE火車訂票模擬系統(tǒng)的設計與實現(xiàn)目錄TOC\o"1-3"\h\u69691引言 2228881.1研究背景及目的意義 2268701.2研究現(xiàn)狀 2267941.3主要工作 3308222需求分析 338032.1功能性需求 3255782.2非功能性需求 679762.2.1易用性需求分析 6294762.2.2界面需求分析 618512.2.3安全性需求 6305293系統(tǒng)分析 6197103.1系統(tǒng)可行性分析 667313.1.1操作可行性 7181883.1.2經濟可行性 7169583.2系統(tǒng)性能分析 7199603.3系統(tǒng)用例分析 7281024開發(fā)工具 8216634.1開發(fā)工具 8245104.2JSP技術 920664.3MySQL數(shù)據(jù)庫 9225154.4B/S結構 9235265數(shù)據(jù)庫設計 9191305.1數(shù)據(jù)庫設計 9199445.2概念結構設計 10220925.3邏輯結構設計 12175426系統(tǒng)設計 15276676.1系統(tǒng)結構設計 15177746.2系統(tǒng)架構設計 1654486.3系統(tǒng)順序圖設計 16282067系統(tǒng)實現(xiàn) 19137117.1管理員功能模塊實現(xiàn) 1999537.1.1管理員功能界面 198927.2用戶功能模塊的實現(xiàn) 2318317.2.1用戶功能界面 2328190總結 2726621參考文獻: 278198致謝 28摘要:隨著互聯(lián)網技術的不斷發(fā)展,人們快捷的生活方式,使得傳統(tǒng)人工購票方式越來越難以滿足人民出行需求。為滿足用戶需求,需要開發(fā)一款能夠查詢出行車次和余票情況的火車票訂購系統(tǒng)。在如今網絡越發(fā)普及的時代下,本火車訂票模擬系統(tǒng)通過以信息公開的方式促進現(xiàn)代網上訂票系統(tǒng)的發(fā)展,解決人工售票帶來的人流擁堵和票已售罄但用戶并不知情等問題,達到節(jié)約時間、方便用戶出行的效果。經過測試,系統(tǒng)運行穩(wěn)定且占用運行較小,擁有實時的購票信息和簡單易懂的操作頁面,是一個實用性好、可維護性高的火車訂票模擬系統(tǒng)。關鍵詞:火車訂票系統(tǒng);JSP;MySQL數(shù)據(jù)庫1引言1.1研究背景及目的意義近年來,隨著國內網絡熱潮的不斷崛起,截至到2022年二月底,互聯(lián)網在中國的普及率可達73.0%左右。其加快了信息化管理進入虛擬網絡世界的步伐,同時也逐漸被世人所熟知?,F(xiàn)如今,互聯(lián)網滲透于人們生活的每一個角落,一個查詢快速方便、操作簡單的火車訂票平臺正是億萬用戶所迫切需要的。一個優(yōu)質的網絡訂票系統(tǒng)應當提供豐富的訂票信息資源,通過網絡以信息公開的方式,推進網絡訂票系統(tǒng)(APP或小程序或網頁)的發(fā)展和使用,以解決人工售票帶來的人潮擁堵和票源信息蔽塞的問題,能夠在極大程度上滿足用戶的購票需求,方便用戶出行。其次,火車訂票管理系統(tǒng)還將允許系統(tǒng)管理員隨時快速、精準的更新列車進站和發(fā)車時刻表,有效幫助用戶查詢列車號、出發(fā)時間等具體細節(jié)。其一有利于減少傳統(tǒng)人工管理造成的人力資源巨大消耗;其二將提高管理人員的工作效率,同時產品可靠性高,存儲容量大等優(yōu)點可提高預訂信息查詢管理的自動化。1.2研究現(xiàn)狀據(jù)悉,目前旅客對于出行基本采用如下購票方式:撥打“95105105”電話購票、登陸12306網站購票、前往火車站購票在代售點購票。經調查統(tǒng)計,絕大部分群眾認為網購火車票的方式最方便快捷。隨著互聯(lián)網的發(fā)展與普及,最大程度上帶動了居民使用訂票平臺進行購票的基數(shù)。與此同時,隨著我國經濟的快速發(fā)展,交通運輸系統(tǒng)的日益完善,人民的生活水平不斷提高,越來越多的人開始傾向于帶著家人出門游玩,也有很多人在為了工作四處奔波。因此,一款優(yōu)秀的訂票軟件更加被大眾所需求。在參考了專業(yè)網站問卷星上的有關文獻和其對在校學生、農民工、社會人士、現(xiàn)役軍人和其他人群的調查內容分析。大學生和農民工這兩個群體雖不是基數(shù)最大的,但其具有鮮明的代表性,具有購票群體的共性,尤其在節(jié)假日期間。購票的方便程度嚴重影響其購票選擇。在選擇購買火車票的時候,網上購票成為了一種主要購票形式,火車訂票系統(tǒng)能夠及時的發(fā)布訂票信息、快速訂票、實時更新,不用排隊也不必浪費過多時間,無論是否能夠預定上票,都會事實信息通知,不會太過于揪心?,F(xiàn)如今,上網方便,買票時間沒有限制。調查研究表明,自從增加了網絡訂票,相比于傳統(tǒng)的窗口排隊購票,有50%的乘客認為網絡購票更加的方便。在鐵路客戶服務中心官網登陸不上訂票很難,尤其是在勞動節(jié),十一黃金周、寒暑假和春運前夕,火車訂票更加的困難。12306客服電話總是系統(tǒng)忙,95105105也多次因不明原因返回主菜單,并且無法接通人工客服?;疖囉喥避浖軌蚋颖憬莞咝У目朔陨蠁栴},因此,火車訂票軟件更適應市場需求。但在不熟悉互聯(lián)網的人群中,繁雜的購票界面,對他們來說也是一項挑戰(zhàn),相對于其他購票系統(tǒng)而言,我的火車訂票模擬系統(tǒng)簡單操作,易于流通,較輕量化的設計能保證更好的穩(wěn)定運行。1.3主要工作本系統(tǒng)使用SpringBoot框架,JavaScript和MySQL數(shù)據(jù)庫,實現(xiàn)火車訂票模擬系統(tǒng),幫助公司成本管理,提供長久的依據(jù),其研究內容主要涉及:后臺數(shù)據(jù)庫的表設計,數(shù)據(jù)的約束,前臺頁面及動態(tài)數(shù)據(jù)實現(xiàn),后端采用SpringBoot框架快速搭建項目,SpringMVC框架快速web接口開發(fā)的研究。主要研究內容有:(1)依據(jù)需求進行分析,完成需求文檔的編寫,記錄準備實現(xiàn)的功能模塊。(2)根據(jù)功能模塊,完成功能的流程圖,時序圖相關的設計。(3)選擇SpringBoot框架,完成項目創(chuàng)建,依據(jù)MVC的原則,創(chuàng)建整體的項目結構。(4)根據(jù)功能模塊,依據(jù)SpringMVC框架,完成接口的編寫。(5)編寫的接口,通過postman軟件進行接口測試。(6)依據(jù)需求文檔,通過HTML/JavaScript完成網頁的設計。(7)獲得接口數(shù)據(jù),完成數(shù)據(jù)的展示,最終完善設計說明書。2需求分析隨著交通的便利,國民經濟能力的提高,各類群體或因學業(yè)、工作、旅行等原因而選擇出行的基數(shù)較十年前大大提高?;疖嚦鲂袑Ρ蕊w機輪船汽車有更明顯的優(yōu)勢,這也給火車售票帶來了更大的壓力,在這種大環(huán)境下,訂票系統(tǒng)能為傳統(tǒng)購票模式起到分流的作用。他更加的方便快捷,節(jié)省人力物力。根據(jù)調研需求,將該火車訂票模擬系統(tǒng)設計成前臺用戶訂票與后臺管理員管理,滿足用戶的注冊登錄、個人信息修改、公告信息查看、充值加購、訂票退簽等功能;同時方便管理員管理用戶填寫的個人信息、車次與公告信息、生成的用戶訂單信息等。2.1功能性需求本小節(jié)分析了系統(tǒng)的功能性需求。系統(tǒng)可以分為以下功能模塊:用戶登錄和注冊:新用戶通過系統(tǒng)完成注冊,然后返回登錄界面進行登錄;老用戶直接登錄即可。個人信息管理:用戶能修改預留的手機號,重設密碼等操作。訂單信息管理:用戶可以查詢近期車票訂單情況,若行程出現(xiàn)變更,可以進行退票或改簽。公告信息:用戶可以通過系統(tǒng)提供的查詢功能進行相關火車票信息的檢索,也可在系統(tǒng)推出的公告信息中進行選擇。購物車:用戶根據(jù)自己的行程安排,確定乘坐的火車車次后,將選中車次加入購物車進行充值購買。個人中心:用戶可以進行充值儲蓄等操作,也可以根據(jù)自身的使用情況為系統(tǒng)提供寶貴的整改意見。登錄登錄注冊公告信息個人信息個人中心訂單信息購物車圖2-1用戶功能模塊加購加購訂購訂購情況訂購成功部分成功充值余額不足訂購失敗登錄車次查詢車次信息需求車次添加個人信息否是是否是否圖2-2用戶基本操作功能管理員登錄功能:可憑專用的賬號和密碼登錄到后臺對整個系統(tǒng)進行維護和管理。用戶信息管理:能夠顯示用戶注冊時所填寫的基本信息,可通過關鍵詞查詢指定用 戶信息,管理員有權對用戶信息進行禁用、啟用、刪除等相關操作。個人信息管理:可以查看和刪除近期所有管理員登錄記錄,對本人登錄密碼可進行 修改。訂單信息管理:可查看所有用戶生成的訂票信息、退票信息與對系統(tǒng)使用的評價信 息;管理員可對用戶提交的改簽申請進行審核。車次信息管理:對車次信息、車次類型等信息實時更新,并對相關線路站點信息進 行維護。網站管理:對網站推送公告進行更新,保證系統(tǒng)正常使用。登錄登錄網站信息個人信息車次信息訂單信息用戶信息圖2-3管理員功能模塊2.2非功能性需求2.2.1易用性需求分析表2-1系統(tǒng)易用性需求主要質量屬性詳細要求正確性所涉及的信息數(shù)據(jù)正確率必須達到98%以上健壯性應用程序界面簡單,用戶操作方便易用性錄入信息快速,使用簡單可擴展性能夠很方便將新的其他功能集成到系統(tǒng)中兼容性兼容市面上主流瀏覽器2.2.2界面需求分析 現(xiàn)如今,各式各樣的軟件應用層出不窮。相對于其他界面而言,簡約大氣并具有特色的設計界面,可以更加快速的吸引用戶的注意,也可以讓用戶在瀏覽頁面的過程中感到舒適。與此同時,界面的設計也不應過于繁瑣,由此用戶便可以快速熟悉并掌握系統(tǒng)的基本操作。這樣不僅能夠吸引到更多的用戶使用,還可以在滿足用戶需求的前提下提高工作效率。本系統(tǒng)采用JSP技術來實現(xiàn)動態(tài)網頁的界面設計,更加方便用戶的操作。2.2.3安全性需求 本系統(tǒng)主要目的是為用戶出行提供方便,為了用戶的信息安全,要時刻保障數(shù)據(jù)庫數(shù)據(jù)安全,根據(jù)角色的不同設置相應的管理權限,管理員具有對數(shù)據(jù)操作的權限和用戶管理的權限,用戶只能有數(shù)據(jù)查看權限,僅有少量的信息修改權限如個人信息修改等,這樣能夠保證數(shù)據(jù)的安全性,完整性,一致性。3系統(tǒng)分析3.1系統(tǒng)可行性分析 通過在網上查找各種資料并結合自己對開發(fā)方面的學習,接下來分析本系統(tǒng)技術方面的實現(xiàn)難度。技術對于開發(fā)火車訂票模擬系統(tǒng)設計與實現(xiàn)的成功與否至關重要。系統(tǒng)實現(xiàn)的技術不同,對開發(fā)人員的要求也千差萬別,在開發(fā)本系統(tǒng)時充分的考慮了技術方面的問題。Java語言是大學主修的編程語言,SpringBoot框架是我們學習過程時所要具備的專業(yè)課程技術,已經具有熟練的開發(fā)基礎。另外,通過詳細的調查明確了用戶的基本需求后,找到了多方面設計實現(xiàn)本系統(tǒng)模塊的方法,做到了既滿足用戶需求的同時,也避免設計程序過程中因失誤而導致系統(tǒng)錯漏問題。3.1.1操作可行性 本系統(tǒng)是通過JSP技術來實現(xiàn)前臺界面運行顯示,相對于程序編寫人員較為容易實現(xiàn)且編碼簡單。同時在前臺界面中會加入一些信息提示來方便用戶基本功能的操作,這樣使得用戶很容易就可以了解并且使用該平臺,可以幫助用戶加強對界面的使用與了解。3.1.2經濟可行性本系統(tǒng)開發(fā)對使用電腦配置的要求相對較低,居戶所有的電腦都能滿足要求;且系統(tǒng)開發(fā)所涉及到的編寫軟件基本免費,有效降低開發(fā)所需成本;同時,大部分的人員都可以使用本系統(tǒng),在控制開發(fā)成本的基礎上降低投入精力。關于系統(tǒng)設計方面,用戶訂票所使用的小圖標對計算機的配置要求不高,達到基礎運算的計算機完全可以運行,所以本系統(tǒng)在成本上更具有優(yōu)勢和可行性。3.2系統(tǒng)性能分析此火車訂票模擬系統(tǒng)對管理權限要求嚴謹,具體要求如下:1.對于用戶來說,未注冊賬號,只可以查看和瀏覽一些車次信息,想進入本系統(tǒng)進行功能方面的操作,就必須注冊賬號,登錄到本系統(tǒng)方可進行訂票等功能方面的操作。2.角色不同權限不同,用戶能登陸后只能進行前臺的個人信息修改、車票查詢和購票等基礎操作,系統(tǒng)管理員可以對系統(tǒng)進行維護與管理。3.用戶的個人基本信息、操作歷史等私人信息,除管理員外,其他人無權查看訪問。只有管理員有權限調取查看,由此來保障用戶信息的安全。3.3系統(tǒng)用例分析根據(jù)系統(tǒng)所實現(xiàn)功能以用例圖的方式來描述系統(tǒng)的行為以及各功能之間的關系,具體描述如下:圖3-1用戶用例圖圖3-2管理員用例圖4開發(fā)工具4.1開發(fā)工具本系統(tǒng)使用idea軟件進行開發(fā),使用Tomcat服務器作為web服務器。idea是java語言的集成開發(fā)環(huán)境,我使用idea進行maven的配置,使用SpringBoot完成創(chuàng)建項目,完成自身項目結構和啟動類,利用SpringBoot自帶Tomcat。使用maven完成代碼的打包部署。Tomcat是集成在SpringBoot中,主要是對項目中打包的jar文件發(fā)布到web服務器上進行讀取。4.2JSP技術JSP是java公司開發(fā)的一種針對Servlet簡化的標記語言,集成了HTML語言在我的項目中使用JSP標簽,完成對數(shù)據(jù)的展示。Web服務的通過JSP頁面獲得請求,使用Servlet進行處理請求,然后響應回頁面后使用JSP標簽進行展示。4.3MySQL數(shù)據(jù)庫本系統(tǒng)選擇關系型數(shù)據(jù)庫MySQL,首先選擇MySQL數(shù)據(jù)庫主要是因為能夠滿足我們系統(tǒng)的要求。其次是這個關系型數(shù)據(jù)庫完全符合SQL規(guī)范,能夠標準化使用SQL語句。我們從數(shù)據(jù)表設計完成,到SQL語句的編寫都符合項目的需求。使用JDBC連接數(shù)據(jù)庫,通過java進行對數(shù)據(jù)的操作,通過設計持久層的接口,完成功能的實現(xiàn)。4.4B/S結構B/S結構是目前比較流行的結構,我們使用java語言編程后臺產需,使用JSP完成頁面。不需要考慮C/S結構。這樣通過瀏覽器對服務器的訪問,就能輕松解決問題,避免軟件安裝的繁瑣和配置。而且程序的運行穩(wěn)定在服務端,客戶只要有網絡就可以訪問,使用起來高效快捷。B/S的優(yōu)勢在于程序執(zhí)行在服務器端即可,服務端只要沒有以外,就是一直保持運行。程序部署也簡單快捷,只需要將程序的文件打包成jar或war,放到tomcat服務器的發(fā)布文件夾中,讓后服務端使用java–jar命令完成啟動,項目就能穩(wěn)定運行。不會對客戶端產生任何文件。本文開發(fā)的火車訂票模擬系統(tǒng),就是基于B/S結構開發(fā)的,客戶只要有瀏覽器就能完成對服務器上頁面的訪問。5數(shù)據(jù)庫設計5.1數(shù)據(jù)庫設計1.應具備的數(shù)據(jù)信息:應有用戶注冊登錄、管理員登錄、車次管理、公告推送、車票訂單等有關信息。2.所要完成的數(shù)據(jù)處理要求:該系統(tǒng)對于用戶來說,既要完成用戶信息、車次公告信息、訂票信息的查看,同時也要實現(xiàn)訂票信息的添加、刪除,修改。對于管理員,能夠完成車次和途徑點信息等信息修改,以及用戶信息的管理。3.數(shù)據(jù)的有效保障:用戶個人的基本信息和歷史訂單都屬于重要信息,要保證信息安全,嚴禁外泄。5.2概念結構設計該概念結構設計將需求分析得到的用戶需求抽象為信息結構,是整個數(shù)據(jù)庫設計的關鍵,在概念結構設計中,E-R圖是最常用的描述方法。1.管理員信息實體E-R圖如圖5-1所示:圖5-1管理員信息實體E-R圖2.公告信息實體屬性E-R圖如圖5-2所示:圖5-2公告信息實體E-R圖3.訂票信息實體屬性圖如圖5-3所示:圖5-3訂票信息實體屬性圖4、用戶信息實體屬性圖如圖5-4所示:圖5-4用戶信息實體屬性圖5.系統(tǒng)E-R圖如圖5-5所示:圖5-5系統(tǒng)E-R圖5.3邏輯結構設計1)管理員信息表:通過賬號登錄進入系統(tǒng)后臺運行界面進行管理,該表主要有編號、用戶名、密碼,如下表5-1所示:表5-1t_admin管理員信息表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注adminIdint(11)NO√編號adminNamevarchar(255)YES用戶名adminPasswordvarchar(255)YES密碼2)公告信息表:表中需要有編號、公告名稱、公告詳情、公告圖片、圖片名稱、添加日期、公告分類ID、分類名稱,如下表5-2所示:表5-2t_gonggao公告信息表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注gonggaoIdint(11)YES√編號ggtypeNamevarchar(255)YES公告名稱gonggaoMarkTextYES公告詳情gonggaoImgvarchar(255)YES公告圖片gonggaoImgNamevarchar(255)YES圖片名稱gonggaoDatedatetimeYES添加日期ggtypeIdint(11)YES公告分類IDggtypeNamevarchar(255)YES分類名稱3)訂票信息表:表中需要有編號、訂票名稱、訂票詳情、日期、訂票類型、訂票圖片、圖片名稱、用戶ID、用戶名,如下表5-3所示:表5-3t_shuju訂票信息表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注shujuIdint(11)YES√編號shujuNamevarchar(255)YES訂票名稱shujuMarkvarchar(2550)YES訂票詳情shujuDateDatetimeYES日期shujuTypeint(11)YES訂票類型shujuImgvarchar(255)YES訂票圖片shujuImgNamevarchar(255)YES圖片名稱userIdint(11)YES用戶IDuserNamevarchar(255)YES用戶名4)用戶信息表:用戶可通過填寫表中的編號、用戶名、密碼、用戶姓名等信息進行注冊,如下表5-4所示:表5-4t_user用戶信息表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注userIdint(11)YES√編號userNamevarchar(255)YES用戶名userPasswordvarchar(255)YES密碼userXingmingvarchar(255)YES用戶姓名userSexint(11)YES性別userAgeint(11)YES年齡userMinzuvarchar(255)YES民族userPhonevarchar(255)YES聯(lián)系電話userMarkvarchar(2550)YES用戶詳情userDatevarchar(255)YES添加日期userTypevarchar(255)YES用戶分類userImgvarchar(255)YES用戶頭像5)登錄日志表:用戶與管理員登錄記錄都會有顯示,本表中有編號、用戶名、IP地址、登錄時間,如下表5-5所示:表5-5t_rizhi登錄日志表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注rizhiIdint(11)YES編號rizhiNamevarchar(255)YES用戶名dengluIpvarchar(255)YESIP地址dateDatetimeYES登錄時間6)公告類型表:前臺的公告信息分為不同的類型,可幫助用戶快速定位信息,本表中有編號、公告類型名稱、公告類型詳情,如下表5-6所示:表5-6t_ggtype公告類型表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注ggtypeIdint(11)NO√編號ggtypeNamevarchar(255)YES類型名稱ggtypeMarkvarchar(255)YES類型詳情7)途徑點信息表:車次會途徑不同的地方,對途徑地點進行管理,該表需要有編號、途徑點名稱、途徑點詳情,如下表5-7所示:表5-7t_buyuan途徑點信息表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注buyuanIdint(11)NO√編號buyuanNamevarchar(255)YES途徑點名稱buyuanMarkvarchar(255)YES途徑詳情8)管理員后臺標題表:管理員登錄到后臺后,可以根據(jù)標題找到具體功能,表中有編號、標題名稱、標題類型、標題順序,如下表5-8所示:表5-8t_buyuan管理員后臺標題表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注jcbiaotiIdint(11)NO√編號jcbiaotiNamevarchar(255)YES標題名稱jcbiaotiTypeint(11)YES標題類型jcbiaotiPaixuint(11)YES標題順序9)管理員后臺導航表:表中有編號、功能名稱、功能內容、功能順序、功能類型,如下表5-9所示:表5-9t_buyuan管理員后臺導航表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注jcdaohangIdint(11)NO√編號jcdaohangNamevarchar(255)YES功能名稱jcdaohangNeirongvarchar(255)YES功能內容jcdaohangPaixuint(11)YES功能順序jcdaohangTypeint(11)YES功能類型10)用戶改簽申請表:用戶需要改變行程時,可申請車票改簽,表中有編號、改簽緣因、具體說明、提交改簽的時間、改簽狀態(tài),如下表5-10所示:表5-10t_sjjianchu用戶改簽申請表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注sjjianchuIdint(11)NO√編號sjjianchuNamevarchar(255)YES緣由sjjianchuMarkvarchar(255)YES說明sjjianchuDatedatetimeYES時間sjjianchuZongint(11)YES狀態(tài)11)用戶充值表:用戶在購票前,需要進行充值,表中有編號、充值時間、充值金額、用戶編號、用戶姓名,如下表5-11所示:表5-11t_uxinxi用戶充值表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注uxinxiIdint(11)NO√編號uxinxiDatedatetimeYES充值時間uxinxiDoublevarchar(255)YES充值金額userIdint(11)NO用戶編號userNamevarchar(255)YES用戶姓名12)訂單信息表:用戶購票之后會生成訂單,表中有編號、訂票人姓名、訂票人身份證號碼、手機號碼、所訂票的出發(fā)地、訂票時間、訂票金額等信息,如下表5-12所示:表5-12t_sjshaochu訂單信息表字段名數(shù)據(jù)類型默認值允許非空自動遞增備注sjshaochuIdint(11)NO√編號sjshaochuNamevarchar(255)YES用戶姓名sjshaochuMarkvarchar(255)YES用戶身份證號sjshaochuMark1varchar(255)YES用戶手機號sjshaochuMark2varchar(255)YES出發(fā)地sjshaochuDatedatetimeYES訂票時間sjshaochuDoubleint(11)YES金額6系統(tǒng)設計6.1系統(tǒng)結構設計火車訂票系統(tǒng)主要是分為管理員和用戶兩個角色,采用B/S結構。該系統(tǒng)中所有功能都是通過瀏覽器發(fā)送請求到mvc-dispatcher-servlet.xml的配置文件中,找到對應的控制器類,然后利用反射原理創(chuàng)建對象,使用RequestMapping注解的url和請求地址一致找到對用的方法。然后我們使用Autowired注解,注入的DAO層的接口。將數(shù)據(jù)傳給實體類。利用配置文件找到對應的mapper.xml里寫的sql完成數(shù)據(jù)操作。最后我們講返回的結果,通過ModleAndView返回視圖解析器,將數(shù)據(jù)渲染到頁面??刂破骺刂破鱩vc-dispatcher-servlet.xml*.JSP數(shù)據(jù)庫圖6-1系統(tǒng)結構圖6.2系統(tǒng)架構設計基于系統(tǒng)角色進行功能劃分,具體實現(xiàn)功能模塊如下圖6-2所示:火車訂票模擬系統(tǒng)火車訂票模擬系統(tǒng)管理員用戶個人信息個人中心公告信息訂單信息購物車個人信息車次管理網站管理訂單管理用戶管理圖6-2系統(tǒng)架構圖6.3系統(tǒng)順序圖設計順序圖可將用例圖表達的需求轉化為更加正式的精細表達,描述了如何實現(xiàn)類與類之間的方法調用過程,具體如下:首先需要繪制實體類、控制類與邊界類表格。表6-1實體類實體類說明Admin管理員的基本信息User用戶的基本信息Shuju車次的基本信息Rizhi登錄記錄信息Shaochu訂單基本信息表6-2邊界類邊界類說明Loginjs注冊登錄界面Userjs用戶的基本信息管理界面Shujusjs車次的基本信息管理界面Gonggaojs公告顯示界面Shaochujs用戶訂單基本信息界面表6-3控制類控制類說明UserAction負責用戶信息管理LoginAction負責角色登錄管理ShujuAction負責車次信息更新ShaochuAction負責訂單管理GonggaoAction負責公告信息管理依據(jù)上述表格完成順序圖設計如下。1.對用戶信息管理順序圖:系統(tǒng)管理員輸入賬號與密碼進行登錄,數(shù)據(jù)庫驗證信息正確后,管理員則成功登錄,可進入用戶管理界面對用戶信息進行相應操作,同時數(shù)據(jù)庫也會更新數(shù)據(jù)信息。2.對車次信息管理順序圖:系統(tǒng)管理員進入后臺車次信息管理界面,選擇編輯某一車次信息,系統(tǒng)會完成對其增刪改查等相應操作,并提供更改信息給數(shù)據(jù)庫,確認無誤后,數(shù)據(jù)庫也完成更新。3.對后臺數(shù)據(jù)管理順序圖:管理員可對系統(tǒng)數(shù)據(jù)進行相應維護操作,確認操作后,數(shù)據(jù)庫完成數(shù)據(jù)更新。4.用戶進行訂票順序圖:用戶通過登錄界面輸入信息,數(shù)據(jù)庫檢驗信息是否存在后,顯示登錄成功。用戶可以在主頁面選擇自己想要購買的票,系統(tǒng)會對其進行相應操作并將信息提供給數(shù)據(jù)庫,用戶確認完成后,數(shù)據(jù)會更新保存到數(shù)據(jù)庫中。7系統(tǒng)實現(xiàn)7.1管理員功能模塊實現(xiàn)7.1.1管理員功能界面1.車次信息是后臺管理中最重要部分,管理員可在車次途徑點界面,添加刪除修改途徑點信息與停留時間;車次類型界面可以添加類型信息;車次信息界面用于添加每個車次的基本信息,填入信息必須完整,幫助用戶快速購票:主要代碼:對于車次信息中的信息有添加刪除的權力獲取程序需要的數(shù)據(jù)進行一一校驗,交與service處理邏輯,對數(shù)據(jù)庫進行增刪改查。@RequestMapping("/deleteShuju")
publicvoiddeleteShuju(HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
JSONObjectresult=newJSONObject();
StringdelIds=(String)request.getParameter("delIds");
try{
Stringstr[]=delIds.split(",");
for(inti=0;i<str.length;i++){
shujuService.deleteShuju(Integer.parseInt(str[i]));
}
result.put("success","true");
result.put("delNums",str.length);
ResponseUtil.write(response,result);
}catch(Exceptione){
e.printStackTrace();
}
}2.管理員可通過用戶信息管理界面查看已注冊用戶的基本信息,對已注冊用戶賬號能進行禁用、啟用操作,可在用戶充值界面查看所有用戶的充值記錄,在用戶反饋界面查看用戶使用本系統(tǒng)提出的意見:主要代碼:在session中獲取數(shù)據(jù)并進行解析交由service處理對數(shù)據(jù)庫進行增刪改查操作。publicvoiddaochuUyijian(HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
try{
Datedate=newDate();
Stringstrdate=DateUtil.formatDate(date,"yyyyMMddhhmmss");
StringexcelName=strdate+".xls";
StringmubanLujing="";
StringdaochuLujing=""+excelName;
StringdelIds=(String)request.getParameter("delIds");
JSONObjectresult=newJSONObject();
Stringstr[]=delIds.split(",");
List<List<String>>list=newArrayList<List<String>>();
Uyijianuyijian=newUyijian();
for(inti=0;i<str.length;i++){
List<String>row=newArrayList<String>();
uyijian=uyijianService.getUyijian(Integer.parseInt(str[i]));
row.add(TypeUtil.toString(i+1));
row.add(uyijian.getUserName());
row.add(uyijian.getUyijianMark1());
list.add(row);
}
if(ExcelUtil.daochuExcle(list,mubanLujing,daochuLujing)){
result.put("success","true");
ResponseUtil.write(response,result);
}else{
result.put("success","true");
result.put("errorMsg","導出Excel出錯!");
ResponseUtil.write(response,result);
}
}catch(Exceptione){
e.printStackTrace();
}
}訂單信息管理可對用戶訂票信息、退票信息、改簽申請和評論信息進行管理,管理員可查看所有用戶生成的訂票信息、退票信息與對系統(tǒng)使用的評價信息,可對用戶提交的改簽申請進行審核:主要代碼:publicvoidsjlaiyuanComboList(HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
StringsjlaiyuanType1=(String)request.getParameter("sjlaiyuanType1");
StringsjlaiyuanType=(String)request.getParameter("sjlaiyuanType");
Sjlaiyuansjlaiyuan=newSjlaiyuan();
try{
if(StringUtil.isNotEmpty(sjlaiyuanType)){
sjlaiyuan.setSjlaiyuanType(Integer.parseInt(sjlaiyuanType));
}
if(StringUtil.isNotEmpty(sjlaiyuanType1)){
sjlaiyuan.setSjlaiyuanType1(Integer.parseInt(sjlaiyuanType1));
}
JSONArrayjsonArray=newJSONArray();
JSONObjectjsonObject=newJSONObject();
jsonObject.put("id","");
jsonObject.put("sjlaiyuanName","請選擇...");
jsonArray.add(jsonObject);
jsonArray.addAll(JSONArray.fromObject(sjlaiyuanService.querySjlaiyuans(sjlaiyuan,
0,0)));
ResponseUtil.write(response,jsonArray);
}catch(Exceptione){
e.printStackTrace();
}
}7.2用戶功能模塊的實現(xiàn)7.2.1用戶功能界面登錄界面需要選擇角色登錄,管理員有指定的密碼和賬號直接登錄即可;用戶分為新老用戶,老用戶可直接進行登錄,新用戶需點擊注冊,填寫基本信息,注冊成功后返回登錄界面通過正確的用戶名與密碼進行登錄:主要代碼:注冊功能是通過獲取輸入框中的數(shù)據(jù)賦值給對象,進行驗證驗證成功后存入數(shù)據(jù)庫。登錄為獲取輸入框的數(shù)據(jù)進行對比,對比成功后進行頁面跳轉,失敗顯示相應提示。publicList<List<Jcdaohang>>jiazaiDaohang(List<Jcbiaoti>jcbiaotis){
List<List<Jcdaohang>>jcdaohangslist=newArrayList<List<Jcdaohang>>();
for(inti=0;i<jcbiaotis.size();i++){
List<Jcdaohang>jcdaohangs=newArrayList<Jcdaohang>();
Jcdaohangjcdaohang=newJcdaohang();
jcdaohang.setJcdaohangType1(0);
jcdaohang.setJcbiaotiId(jcbiaotis.get(i).getJcbiaotiId());
jcdaohangs=jcdaohangService.queryJcdaohangs(jcdaohang,0,0);
jcdaohangslist.add(jcdaohangs);
}
returnjcdaohangslist;
}用戶的個人中心界面包括個人信息、購物車、訂票信息等,是整個設計必須要完成的功能,可以根據(jù)要求對個人信息進行修改,能夠進行不同金額的充值,用以購買加入購物車或收藏的車票;同時該模塊也可查看本人出行訂票退票改簽等情況:主要代碼:用戶充值需要在session中獲取數(shù)據(jù)并進行解析交由service處理,對數(shù)據(jù)庫進行增刪改查。publicvoiddaoruUxinxi(HttpServletRequestrequest,HttpServletResponseresponse,MultipartFileuploadFile)
throwsException{
try{
Stringdirectory="/file";
StringtargetDirectory=request.getSession().getServletContext().getRealPath(directory);
StringfileName=uploadFile.getOriginalFilename();
Filedir=newFile(targetDirectory,fileName);
if(!dir.exists()){
dir.mkdirs();
}
//MultipartFile自帶的解析方法
uploadFile.transferTo(dir);
excelFile=newFileInputStream(dir);
List<List<String>>list=newArrayList<List<String>>();
list=ExcelUtil.jiexiExcel(excelFile);
for(inti=1;i<list.size();i++){
List<String>row=list.get(i);
StringuxinxiName=row.get(0);
StringuxinxiMark=row.get(1);
StringuxinxiMark1=row.get(2);
StringuserId=row.get(3);
Uxinxiuxinxi=newUxinxi();
if(StringUtil.isNotEmpty(uxinxiName)){
uxinxi.setUxinxiName(uxinxiName);
}
if(StringUtil.isNotEmpty(uxinxiMark)){
uxinxi.setUxinxiMark(uxinxiMark);
}
if(StringUtil.isNotEmpty(uxinxiMark1)){
uxinxi.setUxinxiMark1(uxinxiMark1);
}
if(StringUtil.isNotEmpty(userId)){
uxinxi.setUserId(Integer.parseInt(userId));
Useruser=newUser();
user=userService.getUser(Integer.parseInt(userId));
uxinxi.setUserName(user.getUserName());
uxinxi.setBumenId(user.getBumenId());
uxinxi.setBumenName(user.getBumenName());
uxinxi.setBuyuanId(user.getBuyuanId());
uxinxi.setBuyuanName(user.getBuyuanName());
}
Datedate=newDate();
uxinxi.setUxinxiDate(date);
uxinxiService.save(uxinxi);
}
JSONObjectresult=newJSONObject();
result.put("success","true");
ResponseUtil.write(response,result);
}catch(Exceptione){
e.printStackTrace();
}
}3.用戶在前臺界面可查看所有關于訂票的信息,包括系統(tǒng)推薦的最新公告,可點擊查看詳 情進行操作,操作過程中系統(tǒng)會提供友情提示:主要代碼:管理員進行數(shù)據(jù)上傳,如果有則按照id進行操作,否則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中國瑞達投資發(fā)展集團有限公司招聘備考題庫及一套參考答案詳解
- 2026年廣州大學第二次公開招聘事業(yè)編制工作人員備考題庫及參考答案詳解一套
- 2026年庫爾勒公共停車場服務管理有限公司招聘備考題庫參考答案詳解
- 2026年八路軍一二九師紀念館公開招聘勞務派遣人員備考題庫有答案詳解
- 項目質量內控制度
- 村委會內控制度
- 薪酬體系內控制度
- 市局內控制度
- 工商貿易科內控制度
- 公司傳媒發(fā)文內控制度
- 性病防治工作計劃
- 天津市河東區(qū)2024-2025學年七年級上學期期末考試道德與法治試卷(含答案)
- 古建筑保護修繕施工總進度計劃和工期保證措施
- 老房子維修安全協(xié)議書(2篇)
- 擋土墻分部工程驗收鑒定書
- 教育信息化促進鄉(xiāng)村教育振興
- DB45-T 2854-2024 侗族服飾標準規(guī)范
- 老屋記(2023年甘肅蘭州中考語文試卷記敘文閱讀題及答案)
- CTD申報資料:創(chuàng)新藥IND模塊一-行政文件和藥品信息
- 人教版四年級數(shù)學上冊數(shù)與代數(shù)專項復習卷(含答案)
- 改善重癥心肌梗死患者預后仍任重道遠
評論
0/150
提交評論