




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE42 摘要 本文針對用戶沒有時間買票、買票難以及目前旅游公司靠人工的記錄客戶的火車票需求信息的情況而開發了這款火車票網上在線預訂管理系統。本系統的研究可以解決這一問題,系統的實現不僅讓旅客能更加方便更加快捷地預訂火車票這一產品,也極大地減輕旅游公司在火車票預訂這塊的人力物力財力,提高公司的盈利。此次系統的開發按照軟件工程的結構化設計思想,經過項目的可行性研究和需求分析、總體設計、詳細設計,以及編碼實現和調試等步驟進行設計開發。并運用數據流圖和數據字典、E-R圖和數據庫邏輯結構、層次圖、系統流程圖、以及程序流程圖,對該系統的數據需求、數據庫、系統軟件結構、系統流程、以及處理過程等進行了分析和設計。 本次設計采用java語言、jsp、struts和spring框架、MySQL數據庫管理系統以及MyEclipse開發工具來開發一個基于網站的火車票預訂管理系統,使得公司管理員能夠有效地管理車次、旅客信息、退票信息。同時旅客可以通過查詢到相關的火車票信息,選擇適合自己的車票,也可以直接在網上訂票、退票,省時省力。 火車票網上在線預訂管理系統在功能上已基本實現管理員在后臺進行車次信息、訂單信息、注冊會員信息等模塊的相關操作以及管理員身份驗證和用戶在前臺注冊、身份驗證,以及查詢余票、訂票、退票的相關操作。此系統操作簡單、界面簡潔,使用人員稍加培訓就可以完全掌握和使用該系統。此系統的缺陷就是界面不夠絢麗,比較單一,同時有些模塊功能的設計考慮得不是很周全。關鍵詞:信息管理;火車售票;數據庫管理系統 Abstract Thetrainticketsonlinebookingmanagementsystem,whichispresentedinthispaper,isdevelopedtosolvethreefollowingproblems.Thefirstproblemistheuserdoesnothavetimetobuytickets.Thesecondproblemisthatitisdifficultfortheuserstobuytickets.Thethirdproblemisthattravelcompaniesrelyonthemanualrecordofcustomerdemandinformation.Thissystemcansolvethisproblem,theimplementationofthesystemnotonlywillenabletravelersbookingtrainticketsmoreconvenientandfaster,butalsogreatlyreducethecostoftravelcompanyonhuman,materialandfinancialresourcesforbookingtraintickets,soastoimprovetheprofitabilityofthecompany.Thedevelopmentofthissystem,whichisbasedonstructureddesignmethodofsoftwareengineering,canbedividedintofeasibilitystudy,requirementsanalysis,systemdesign,detaildesign.Inthedesignphase,datafollowchart,datadictionary,E-Rgraphic,databaselogicalstructure,andtypicalUMLmodelingfacilitysuchasclassdiagram,activitydiagram,usecasediagramandsequencediagramareuesdtoanalysisanddesignthedatademandofthesystem,thedatabase,thesoftwarestructure,systemprocessandtreatmentprocess. Thedesignusesthejavalanguage,jsp,strutsandthespringframework,MySQLdatabasemanagementsystem,aswellastheMyEclipsedevelopmenttoolstodevelopaweb-basedtrainticketbookingsystem,makingthecompanyadministratormanagethetrips,passengerinformation,refundinformationeffectively.Atthesametimevisitorscanquerytherelevantticketinformation,chooseticket,butalsodirectlybookonline,andrefund,soastosavetimeandeffort. Trainticketsonlinebookingmanagementsystemhasthebasicfunctions.Firstlyadministratorscanmanagetripsinformation,orderinformation,memberinformation.Secondlyadministratorshavetoauthenticatebythesystem.Thirdlyuserscanregisterintheforeground,authenticate,performquery,booking,andrefund-relatedoperations.Thissystemisuser-friendly.Afterminimaltraining,theuserscanfullygraspandusethesystem.Thedefectsofthissystemisthattheinterfaceisnotbrilliant,relativelysimple,thedesignconsiderationsofsomemodulefunctionalityisnotverycomprehensive.Keywords:Informationmanagement;Ticketselling;Databasemanagement目錄TOC\o"1-4"\h\z\u +adminName+"'"; List<AdminInfo>list=jdbcTemplate.query(sql,newAdminMapper()); if(list!=null){ for(AdminInfoadminInfo:list){ if(adminInfo.getAdminPassWord().equals(adminPassWord)) returntrue; } } returnfalse; } 2)后臺管理系統登錄失敗界面,如圖5.2所示: 圖5.2后臺登陸失敗頁面 3)系統后臺主要有管理車次信息、訂單信息、注冊會員信息,以及管理員修改自己的個人信息等功能。管理員只有經過身份驗證成功之后才能進入后臺管理頁面,否則系統會提示你重新登錄。圖5.3為后臺管理系統的主界面。 圖5.3系統主界面 4)點擊增加車次信息按鈕進行添加車次信息,可以批量添加車次信息,在頁面中對輸入的信息進行了驗證[1],不能提交為空的數據,可以添加多個車次信息,同時也可以減少車次信息提交的數量如圖5.4所示: 圖5.4添加車次信息頁面 添加車次信息的主要代碼如下: /** *添加車次信息 */ publicbooleanAddTrain(List<TrainInfo>trainInfo){ jdbcTemplate=newJdbcTemplate(dataSource); for(TrainInfotrainInfo2:trainInfo){ Stringsql="insertintotb_train(trainId,trainStartPlace,trainEndPlace,trainStartTime," +"trainEndTime,hardSeatLeft,hardSeatPrice,softSeatLeft,softSeatPrice)values(?,?,?,?,?,?,?,?,?)"; Objectargs[]={trainInfo2.getTrainId(), trainInfo2.getTrainStartPlace(), trainInfo2.getTrainEndPlace(), trainInfo2.getTrainStartTime(), trainInfo2.getTrainEndTime(),trainInfo2.getHardSeatLeft(), trainInfo2.getHardSeatPrice(), trainInfo2.getSoftSeatLeft(),trainInfo2.getSoftSeatPrice()}; try{ jdbcTemplate.update(sql,args); }catch(DataAccessExceptione){ e.printStackTrace(); returnfalse; } } returntrue; } 5)查詢車次信息,可以進行多條件進行動態條件查詢,以分頁形式展示給用戶,結果如圖5.5所示: 圖5.5查詢車次信息頁面 圖5.5查詢車次信息頁面 查詢車次信息的主要代碼如下: /** *動態查找車次信息 */ @SuppressWarnings("unchecked") publicList<TrainInfo>findTrain(StringtrainId,DatetrainStartTime, StringtrainStartPlace,intbeginIndex,intpageSize){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); Stringdate; if(trainStartTime!=null){ date=format.format(trainStartTime); }else date=""; System.out.println(date); booleanflags1=false,flags2=false; jdbcTemplate=newJdbcTemplate(dataSource); Stringsql="select*fromtb_train"; if(trainId!=null&&!"".equals(trainId.trim())){ flags1=true; sql=sql+"wheretrainId='"+trainId+"'"; } if(date!=null&&!"".equals(date.trim())){ flags2=true; if(flags1) sql=sql+"and'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d')"; else sql=sql+"where'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d')"; } if(trainStartPlace!=null&&!"".equals(trainStartPlace.trim())){ if(flags1||flags2){ sql=sql+"andtrainStartPlacelike'%"+trainStartPlace+"%'"; }else{ sql=sql+"wheretrainStartPlacelike'%"+trainStartPlace+"%'"; } } sql+="limit"+beginIndex+","+pageSize; List<TrainInfo>list=jdbcTemplate.query(sql,newTrainMapper()); returnlist; } 查詢結果如圖5.6所示: 圖5.6查詢車次信息結果 點擊修改按鈕進行修改車次信息,界面如圖5.7所示: 圖5.7修改車次信息頁面 7)點擊訂單管理按鈕進行查詢會員已經預定的車票信息,界面如圖5.8所示: 圖5.8查詢訂單信息頁面 查詢訂單的主要代碼如下: /** *動態查找訂單信息 */ @SuppressWarnings("unchecked") publicList<OrderInfo>findOrder(StringtrainId,StringticketType, DatebookTime,StringseatType,StringuserId,intbeginIndex, intpageSize){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); StringbookDate; Stringsql="select*fromtb_orderwhere1=1"; jdbcTemplate=newJdbcTemplate(dataSource); if(bookTime!=null){ bookDate=format.format(bookTime); }else{ bookDate=""; } if(trainId!=null&&!"".equals(trainId.trim())){ sql=sql+"andtrainIdlike'%"+trainId+"%'"; } if(seatType!=null&&!"".equals(seatType.trim())){ sql=sql+"andseatType='"+seatType+"'"; } if(bookDate!=null&&!"".equals(bookDate)){ sql=sql+"and'"+bookDate +"'=DATE_FORMAT(bookTime,'%Y-%m-%d')"; } if(ticketType!=null&&!"".equals(ticketType)){ sql=sql+"andticketType='"+ticketType+"'"; } if(userId!=null&&!"".equals(userId)){ sql=sql+"anduserId='"+userId+"'"; } sql+="limit"+beginIndex+","+pageSize; System.out.println(sql); List<OrderInfo>list=jdbcTemplate.query(sql,newOrderMapper()); System.out.println(list); returnlist; } 查詢結果界面如圖5.9所示: 圖5.9訂單查詢結果 點擊修改按鈕來修改訂單信息,界面如圖5.10所示: 圖5.10修改訂單信息頁面 8)點擊會員管理按鈕進行會員信息的查詢,界面如圖5.11所示: 圖5.11查詢會員信息頁面 查詢注冊會員信息主要代碼如下: /** *根據動態條件查詢會員信息 * *@paramvipInfo *@returnList<VipInfo>findVip */ @SuppressWarnings("unchecked") publicList<VipInfo>findVip(VipInfovipInfo){ jdbcTemplate=newJdbcTemplate(dataSource); SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); StringregisterDate; if(vipInfo.getRegisterTime()!=null){ registerDate=format.format(vipInfo.getRegisterTime()); }else{ registerDate=""; } Stringsql="select*fromtb_vipwhere1=1"; if(vipInfo.getUserName()!=null &&!"".equals(vipInfo.getUserName().trim())) sql=sql+"anduserNamelike'%"+vipInfo.getUserName()+"%'"; if(vipInfo.getUserSex()!=null &&!"".equals(vipInfo.getUserSex().trim())) sql=sql+"anduserSex='"+vipInfo.getUserSex()+"'"; if(vipInfo.getRegisterTime()!=null &&!"".equals(vipInfo.getRegisterTime().toString().trim())) sql=sql+"and'"+registerDate +"'=DATE_FORMAT(registerTime,'%Y-%m-%d')"; if(vipInfo.getUserId()!=null &&!"".equals(vipInfo.getUserId().trim())) sql=sql+"anduserId='"+vipInfo.getUserId()+"'"; System.out.println(sql); list=jdbcTemplate.queryForList(sql); returnlist; } 點擊查詢查看結果,界面如圖5.12所示: 圖5.12會員信息顯示頁面 點擊修改按鈕來修改會員的信息,界面如圖5.13所示: 圖5.13修改會員信息頁面5.1.2前臺訂票網站運行截圖 1)本系統設計要求用戶通過登錄框選擇訪問權限,登錄系統。其中,用戶須輸入用戶名和密碼,以進入系統。未使用過本系統的用戶選擇注冊會員,系統自動跳轉至主界面。系統用戶權限登錄訪問時,車次信息查詢、訂票信息查詢、訂票、退票等功能均可用。系統用戶輸入正確的用戶名和密碼,訪問系統,得到其相應的權限。沒有注冊的用戶可以查詢但不可以預訂和查詢訂單操作,訂票如圖5.14。 圖5.14登陸界面 2)當用戶的用戶名或者密碼錯誤時將跳轉到錯誤提示頁面,并且三秒鐘之后會跳轉到主頁面中,登錄失敗界面如圖5.15所示: 圖5.15登錄失敗界面 3)會員必須填寫姓名,身份證號,性別,密碼以及手機號碼進行注冊,如果不填寫相關內容或者填寫的格式不正確提交的話將會有提示框來提示用戶重新注冊。注冊頁面如圖5.16所示: 圖5.16注冊頁面 會員注冊主要代碼如下: 4)前臺預訂網站主界面,用戶可以進行查詢火車余票信息,可以登錄之后進行訂票,查詢訂單,退票等操作,也可以注冊會員。用戶如果沒有注冊會員,那么該用戶就只能進行查詢相應的火車票余票信息而不能進行預訂車票、查詢訂單、退票操作。注冊成功后的會員不僅可以查詢火車余票,而且可以預訂滿足自己要求的火車票,還能查詢自己的訂單以及選擇退票操作。在用戶注冊的過程中都進行了前后臺驗證處理。如果用戶輸入的個人信息有誤,則系統會提示用戶的輸入信息有誤,然后跳轉到首頁中。用戶注冊成功之后會跳轉到首頁中,其用戶名會顯示在頁面中,圖5.17為前臺用戶注冊、登錄、查詢余票、預訂車票,以及退票操作的主界面。 圖5.17預訂網站主界面 5)對車次信息的查詢,系統提供了車次信息,進行精確的查詢,系統經過檢索,返回符合用戶要求的車次,再由用戶自行選擇滿意的車次。 圖5.18預訂網站查詢車次頁面 會員查詢車票的主要代碼如下:/ ** *根據動態條件查詢車次里的車票信息 * *@paramfindTicketDate *,findTicketStart,findTicketEnd,findTicketId *@returnlist */ @SuppressWarnings("unchecked") publicList<TrainInfo>findTicket(DatefindTicketDate, StringfindTicketStart,StringfindTicketEnd,StringfindTicketId, intbeginIndex,intpageSize){ jdbcTemplate=newJdbcTemplate(dataSource); SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); Stringdate; if(findTicketDate!=null){ date=format.format(findTicketDate); }else date=""; Stringsql="select*fromtb_trainwhere1=1"; if(findTicketStart!=null&&!"".equals(findTicketStart.trim())){ sql=sql+"andtrainStartPlacelike'%"+findTicketStart+"%'"; } if(findTicketDate!=null&&!"".equals(findTicketDate)){ sql=sql+"and'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d')"; } if(findTicketEnd!=null&&!"".equals(findTicketEnd)) sql=sql+"andtrainEndPlacelike'%"+findTicketEnd+"%'"; if(findTicketId!=null&&!"".equals(findTicketId)) sql=sql+"andtrainIdlike'%"+findTicketId+"%'"; sql+="limit"+beginIndex+","+pageSize; System.out.println(sql); List<TrainInfo>list=jdbcTemplate.query(sql,newTrainMapper()); returnlist; } 查詢結果如圖5.19所示: 圖5.19車次信息查詢結果 點擊預訂按鈕可預訂客戶滿意的車票,預訂界面如圖5.20所示,同時可以預訂多張車票: 圖5.20預訂車票頁面 會員預訂車票主要代碼如下: /** *進行車票預訂 * *@paramlist *,trainId,trainStartTime *@returnboolean */ publicbooleanbookTicket(List<TicketInfo>list,StringtrainId, DatetrainStartTime){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm"); Stringdate=format.format(trainStartTime); jdbcTemplate=newJdbcTemplate(dataSource); StringcountSelledTicket="selectcount(*)fromtb_ticketwheretrainId='"http://查詢該次列車已經售出多少張票 +trainId +"'and'" +date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d%H:%i')"; for(TicketInfoticketInfo:list){ countSelledTicket=countSelledTicket+"andseatType='" +ticketInfo.getSeatType()+"'"; intcountSeatId=jdbcTemplate.queryForInt(countSelledTicket); StringcountTicketLeft="select" +ticketInfo.getSeatType()//查詢車次信息里面還有多少剩余車票 +"Leftfromtb_trainwheretrainId='"+trainId +"'and'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d%H:%i')"; intcountTicket=jdbcTemplate.queryForInt(countTicketLeft); inttotalPrice; if(ticketInfo.getSeatType().equals("hardSeat")){//查詢相應座位類型的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江藥科職業大學《中醫藥學概論(1)》2023-2024學年第一學期期末試卷
- 遼寧省阜新市二中2024-2025學年高三教學情況調研(一)化學試題含解析
- 湖南省師大附中2025年高三下學期三校五測歷史試題試卷含解析
- 四川省遂寧市蓬溪縣重點中學2024-2025學年第二學期統一檢測試題題初三化學試題試卷含解析
- 浙江理工大學科技與藝術學院《發酵工程及實驗》2023-2024學年第二學期期末試卷
- 山西管理職業學院《歷史學課程與教學論》2023-2024學年第二學期期末試卷
- 江西省撫州市臨川達標名校2025屆初三下學期期末調研測試生物試題文試卷含解析
- 湖南石油化工職業技術學院《高級英語寫作》2023-2024學年第二學期期末試卷
- 浙江省溫州市育才高中市級名校2025年初三年級第三次月考英語試題含答案
- 神木職業技術學院《網絡商務策劃與創新實踐》2023-2024學年第二學期期末試卷
- 新版食品安全法培訓課件
- 2025年高考物理專項復習:電磁感應綜合題
- 第13課 亞非拉民族獨立運動 課件(共26張)2024-2025學年統編版高中歷史(必修)中外歷史綱要(下)
- 2020-2025年中國遼寧省風力發電行業發展潛力分析及投資方向研究報告
- 安全車輛測試題及答案
- 2025年貫徹中央八項規定精神及八項規定實施細則應知應會試題及答案
- (二模)咸陽市2025年高考模擬檢測(二)語文試卷(含答案)
- 2025高校教資《高等教育法規》核心備考題庫(含典型題、重點題)
- sl582-2012水工金屬結構制造安裝質量檢驗通則
- 行政事業單位財務知識培訓
- 眼科中醫診療方案圓翳內障
評論
0/150
提交評論