火車(chē)票預(yù)訂軟件工程課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
火車(chē)票預(yù)訂軟件工程課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
火車(chē)票預(yù)訂軟件工程課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余18頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、茨藏班工犬爭(zhēng)軟件工程實(shí)驗(yàn)說(shuō)明書(shū)院 系:計(jì)算機(jī)科學(xué)與工程學(xué)院 專(zhuān)業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 號(hào):學(xué)生:指導(dǎo)教師:年 月曰摘要出行一直是人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧T诳萍及l(fā)達(dá)的今天,人們希望足不出戶(hù)就可 以方便、快捷地查詢(xún)到出行所需的信息,預(yù)訂出行所需的車(chē)票,為自己的行程進(jìn)行合理的安排。 開(kāi)發(fā)一套火車(chē)車(chē)次查詢(xún)系統(tǒng)既能方便廣大乘客出行,節(jié)省時(shí)間,提供便利,省去不必要的麻煩, 也能為車(chē)站工作人員帶來(lái)工作便利,提高工作效率,節(jié)省人力資源。本軟件工程系統(tǒng)利用 JSP 實(shí)現(xiàn)了“火車(chē)票查詢(xún)訂購(gòu)系統(tǒng)”功能:火車(chē)車(chē)次的查詢(xún)功能和火車(chē) 車(chē)票的預(yù)訂功能等。本文對(duì)系統(tǒng)的需求分析、總體設(shè)計(jì)及詳細(xì)設(shè)計(jì)進(jìn)行了詳細(xì)地闡述,

2、主要實(shí)現(xiàn) 了以下功能:用戶(hù)注冊(cè)、用戶(hù)登錄、車(chē)次查詢(xún)、車(chē)票預(yù)訂、車(chē)票退訂、車(chē)次信息管理、修改密碼、 訂票管理等功能。最終實(shí)現(xiàn)完成了該系統(tǒng)。關(guān)鍵詞 :火車(chē)票預(yù)訂;查詢(xún)車(chē)次;預(yù)訂車(chē)票;軟件工程目錄1 需求分析 . 12 課題總體設(shè)計(jì) . 22.1 模塊描述 . 22.2 結(jié)構(gòu)設(shè)計(jì) . 43 課題詳細(xì)設(shè)計(jì) . 73.1 程序代碼 . 73.2 程序調(diào)試 . 144 總 結(jié). 16參考文獻(xiàn) . 171需求分析需求分析是軟件開(kāi)發(fā)和設(shè)計(jì)過(guò)程中的一個(gè)重要環(huán)節(jié)。本階段,主要是相關(guān)技術(shù)人員對(duì)火車(chē)票訂 購(gòu)系統(tǒng)的應(yīng)用情況作全面調(diào)查,以確定系統(tǒng)目標(biāo),并對(duì)系統(tǒng)所需要的基礎(chǔ)數(shù)據(jù)以及數(shù)據(jù)處理要求進(jìn) 行分析,從而確定管理人員的

3、操作模式和用戶(hù)的需求。線(xiàn)上預(yù)訂火車(chē)票系統(tǒng)是一款功能強(qiáng)大、操作 簡(jiǎn)便、易維護(hù)的、具有良好人機(jī)交互界面的線(xiàn)上訂票系統(tǒng),它包括用戶(hù)管理模塊、系統(tǒng)參數(shù)設(shè)置模 塊、票務(wù)信息模塊(提供票價(jià)、列車(chē)的實(shí)時(shí)信息)、訂票管理模塊(提供訂票和退訂功能)、實(shí)時(shí) 信息提示模塊(提供車(chē)況、路況、列車(chē)晚點(diǎn)等實(shí)時(shí)信息)、數(shù)據(jù)管理模塊(提供數(shù)據(jù)備份、數(shù)據(jù)操 作功能)。實(shí)現(xiàn)火車(chē)票線(xiàn)上預(yù)定的自動(dòng)化的計(jì)算機(jī)系統(tǒng),為旅客提供準(zhǔn)確、精細(xì)、迅速的火車(chē)票銷(xiāo) 售信息和方便、簡(jiǎn)單的訂票功能。線(xiàn)上預(yù)訂火車(chē)票系統(tǒng)主要是對(duì)于訂票信息的統(tǒng)一管理,滿(mǎn)足了中小型線(xiàn)上訂票對(duì)于用戶(hù)的管 理,訂票信息的收集和處理方面的要求。用現(xiàn)代化的方式取代以前的傳統(tǒng)模式,更有

4、利于信息的流 通,資源的宏觀管理。具有體積小,代碼簡(jiǎn)潔,易維護(hù)、易修改的優(yōu)點(diǎn)。1.功能需求網(wǎng)上火車(chē)訂購(gòu)系統(tǒng)是一個(gè)融合火車(chē)票的訂購(gòu)、列車(chē)路線(xiàn)的添加、管理員管理、列車(chē)信息及售票 信息查詢(xún)?yōu)橐簧淼木C合系統(tǒng)。功能需求從用戶(hù)與管理員兩個(gè)方面的進(jìn)行分析。從用戶(hù)的角度看,用戶(hù)需要訂購(gòu)自己所需要的火車(chē)票,所以本系統(tǒng)的使用者應(yīng)該有注冊(cè)賬戶(hù) 功能、登陸功能、站點(diǎn)、車(chē)次查詢(xún)功能、訂票、退票功能、查看自己的訂票信息功能同時(shí)還有修改 自己的注冊(cè)信息功能。從管理員的角度看,管理員可以通過(guò)登錄權(quán)限進(jìn)入管理員模式。管理員可以進(jìn)行路線(xiàn)、車(chē)次 的添加、刪除以及修改并且可以通過(guò)系統(tǒng)查看用戶(hù)的訂購(gòu)票務(wù)信息。2性能需求為了保證系統(tǒng)能夠

5、長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本系統(tǒng)應(yīng)該滿(mǎn)足以下的性能需求。準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能及時(shí)而且準(zhǔn)確的根據(jù)用戶(hù)權(quán)限及所輸 入的信息做出響應(yīng)。由于本系統(tǒng)的查詢(xún)功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的 很多數(shù)據(jù)來(lái)源,車(chē)票的數(shù)量和時(shí)間又影響用戶(hù)的決策活動(dòng),其準(zhǔn)確性和及時(shí)性很大程度上決定了系 統(tǒng)的成敗。在系統(tǒng)開(kāi)發(fā)過(guò)程中,必須采用一定的方法保證系統(tǒng)的準(zhǔn)確性和及時(shí)性。易用性本系統(tǒng)是直接面對(duì)用戶(hù)的,而用戶(hù)往往對(duì)計(jì)算機(jī)并不是很熟悉。這就是要求系統(tǒng)能夠提供良好 的用戶(hù)接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就是要求系統(tǒng)應(yīng)該盡量使用用戶(hù)熟悉的術(shù)語(yǔ)和 中文信息的

6、界面,從而保證系統(tǒng)的易用性。安全性網(wǎng)上訂票系統(tǒng)中涉及到相當(dāng)重要的信息數(shù)據(jù),系統(tǒng)要保證用戶(hù)的權(quán)限,對(duì)于車(chē)次等信息用戶(hù)只有享有查詢(xún)服務(wù),不得更改;系統(tǒng)還要提供方便的手段供系統(tǒng)維護(hù)人員進(jìn)行數(shù)據(jù)備份、日常安全管 理、以及系統(tǒng)意外崩潰時(shí)數(shù)據(jù)的恢復(fù)等工作。同時(shí)系統(tǒng)還要保證對(duì)數(shù)據(jù)庫(kù)進(jìn)行及時(shí)更新,保證數(shù)據(jù)的一致性。3.可行性研究可行性分析的主要任務(wù)是了解用戶(hù)的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和管理等三方面研究。(1)技術(shù)可行性技術(shù)可行性是根據(jù)現(xiàn)有的技術(shù)條件,能否達(dá)到所提出的要求當(dāng)前的軟硬件技術(shù)能否滿(mǎn)足對(duì)系統(tǒng) 提出的要求。現(xiàn)在地鐵已經(jīng)實(shí)行了自動(dòng)驗(yàn)票,火車(chē)票也已經(jīng)有人工售票機(jī)了,而且現(xiàn)在動(dòng)畫(huà)應(yīng)用也多不勝數(shù),所以將他們

7、三者合在一起,是可行的。(2)經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性主要是對(duì)項(xiàng)目預(yù)估費(fèi)用支出和取得的收益進(jìn)行評(píng)價(jià)?;疖?chē)票相對(duì)于其他運(yùn)輸工具是比較便宜的,所以現(xiàn)在采用火車(chē)為交通工具的人群越來(lái)越多。對(duì)于此產(chǎn)生的經(jīng)濟(jì)效益是不可估量的,還為社會(huì)做出了巨大貢獻(xiàn)。所以系統(tǒng)的更新是勢(shì)在必得的。(3)管理可行性管理可行性是指管理方面的條件和管理人員對(duì)開(kāi)發(fā)應(yīng)用項(xiàng)目的態(tài)度。2課題總體設(shè)計(jì)2.1模塊描述本系統(tǒng)是面向鐵道部門(mén)的管理人員和用戶(hù),主要方便管理人員對(duì)火車(chē)票管理操作以及用戶(hù)對(duì)火 車(chē)票的訂購(gòu)等操作。系統(tǒng)主要分為管理員端和用戶(hù)端兩個(gè)模塊,管理人員和用戶(hù)可以在自己的權(quán)限 圍進(jìn)行不同的功能操作。其主要功能有:管理人員對(duì)火車(chē)和車(chē)票信息的

8、添加、查詢(xún)、修改、刪除及 修改密碼等;用戶(hù)對(duì)車(chē)票的查詢(xún)、訂購(gòu),查看個(gè)人信息、修改密碼及退票等。系統(tǒng)總體功能結(jié)構(gòu)圖 如圖2.1所示。圖2.1系統(tǒng)總功能結(jié)構(gòu)圖1管理員模塊功能本模塊功能包括:添加、修改、刪除和查詢(xún)火車(chē)、線(xiàn)路和火車(chē)票信息以及修改個(gè)人密碼等。(1) 添加火車(chē)、線(xiàn)路和火車(chē)票信息: 主要是管理人員對(duì)火車(chē)自身信息、線(xiàn)路上存在的火車(chē)信息 以及相應(yīng)的火車(chē)票信息的添加。(2) 修改火車(chē)、線(xiàn)路和火車(chē)票信息: 主要是管理人員對(duì)由于某些原因?qū)е鲁霈F(xiàn)不合法火車(chē)信息 和車(chē)票信息的更改、修訂。(3) 刪除火車(chē)、線(xiàn)路和火車(chē)票信息:主要是管理人員對(duì)一些不存在現(xiàn)實(shí)價(jià)值意義的火車(chē)和車(chē)票 信息的刪除。(4) 查詢(xún)火車(chē)、

9、線(xiàn)路和火車(chē)票信息:主要是管理人員對(duì)火車(chē)、線(xiàn)路和車(chē)票信息的查詢(xún)。(5) 修改密碼:管理人員修改自己的登錄密碼。2用戶(hù)模塊功能本模塊功能包括:用戶(hù)注冊(cè)信息,修改個(gè)人密碼,查詢(xún)個(gè)人信息,查詢(xún)火車(chē)和線(xiàn)路信息,訂購(gòu) 車(chē)票和退換車(chē)票以及查看通知等。(1) 注冊(cè)信息:主要是用戶(hù)在使用此系統(tǒng)之前向系統(tǒng)數(shù)據(jù)庫(kù)中注冊(cè)個(gè)人信息,便于系統(tǒng)以后的管理和保障系統(tǒng)的安全。(2) 修改個(gè)人密碼:主要是為了保障用戶(hù)信息安全,用戶(hù)可以對(duì)自己密碼進(jìn)行替換和重新設(shè)置。(3) 查詢(xún)個(gè)人信息:主要是用戶(hù)對(duì)自己的信息查詢(xún)。(4) 查詢(xún)火車(chē)和線(xiàn)路信息:主要是用戶(hù)根據(jù)自己所想要訂購(gòu)的車(chē)票,查詢(xún)其相應(yīng)的火車(chē)及其線(xiàn)路的相關(guān)信息。(5) 訂購(gòu)車(chē)票:

10、用戶(hù)訂購(gòu)自己所需要的車(chē)票。(6) 退換撤銷(xiāo):主要是用戶(hù)在特定的時(shí)間和權(quán)限圍對(duì)自己購(gòu)買(mǎi)的車(chē)票給予退還和更換,從而買(mǎi)到自己真正尋求的車(chē)票。(7) 查詢(xún)通知:主要是用戶(hù)查詢(xún)鐵道部門(mén)的最新通知,以便為購(gòu)買(mǎi)車(chē)票作相應(yīng)的準(zhǔn)備。3數(shù)據(jù)需求輸入信息信息處理信息輸出輸入車(chē)次搜索系統(tǒng)數(shù)據(jù)庫(kù)符合用戶(hù)需求的車(chē)次以及相關(guān)信息用戶(hù)輸入個(gè)人信息以及需訂購(gòu)的車(chē)票信息更新系統(tǒng)中的訂票信息。 將新的信息存入系統(tǒng)數(shù)據(jù)庫(kù)訂票用戶(hù)輸入身份證號(hào)或交易的訂單號(hào)檢索系統(tǒng)數(shù)據(jù)庫(kù)符合用戶(hù)需求的訂票信息用戶(hù)輸入自己的身份證檢索系統(tǒng)數(shù)據(jù)庫(kù)以得到訂票記 錄,刪除用戶(hù)請(qǐng)求的訂票記錄, 已更新系統(tǒng)數(shù)據(jù)庫(kù)退票2.2結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)針對(duì)火車(chē)站網(wǎng)上訂票系統(tǒng)

11、,通過(guò)對(duì)網(wǎng)上訂票工作的過(guò)程、容以及數(shù)據(jù)流程分析,設(shè)計(jì)如下所示的 數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):車(chē)次信息:車(chē)號(hào)、出發(fā)地、目的地、發(fā)車(chē)日期、開(kāi)出時(shí)刻、剩余座位數(shù)票價(jià)、座位類(lèi)型。訂票記錄:訂單號(hào)、身份證號(hào)、車(chē)號(hào)、訂購(gòu)日期、訂購(gòu)票數(shù)、總價(jià)。用戶(hù)信息:用戶(hù)名、身份證號(hào)、性別、圖2.4訂單信息(E-R圖)圖2.6總體聯(lián)系圖(E-R圖)3課題詳細(xì)設(shè)計(jì)3.1程序代碼package servlet;import bea n. user;public class usersvlt exte nds HttpServlet public usersvlt() super();public void destroy。super.

12、destroy(); / Just puts "destroy" string in log/ Put your code hereboolea n flag;public void doGet(HttpServletRequest req, HttpServletResp onse res) throws ServletExcepti on, I OExcepti on req.setCharacterE ncodi ng("UTF-8");String userid =req.getParameter("userid");int

13、success = 0;String action = req.getParameter("act ion ”);user u = nu II;String message=""/* if ("update".equalsIg no reCase(act ion) flag=true;u = doUpdate(req,res, userid); if(flag)se ndBea n( req,res,u,"/useri nfo.jsp");*/if ("delete".equalsIg no reCase

14、(act ion) trysuccess = doDelete(userid);catch(SQLException e)affected:" +if (success != 1) doError(req, res, "usersvlt:Delete un successful. Rowssuccess); else res.se ndRedirect("useri nfo.jsp");/* public user doNew(HttpServletRequest req,HttpServletResp onse res )throws ServletE

15、xcepti on ,IOExcepti onuser stu= new u();String userid=req.getParameter("useid");String n ame=req.getParameter(" name");String password= req.getParameter("password");String dep=req.getParameter("dep");String sex = req.getParameter("sex");String jigua

16、 n = req.getParameter("jigua n");if(isTrue(req,res,stu_id1, name,password )&& hasLogi n( req,res,stu_id1)stu.setId(stu_i d1);stu.setName (n ame);stu.setPassword(password);stu.setDep(dep);stu.setSex(sex);stu.setJigua n(jigua n);stu.addStude nt(); return stu;userid)public user doUpda

17、te(HttpServletRequestreq,HttpServletResponseres ,StringthrowsServletExcepti on ,IOExcepti onuser u = new user();String user name=new Strin g(req.getParameter("user name").getBytes("gbk");Stri ng email = req.getParameter("email");Stri ng id=req.getParameter("id"

18、;);Stri ng sex = req.getParameter("sex");String phon e=req.getParameter("pho ne");String address=req.getParameter("address");if(isTrue(req,res,user name,email,id,pho ne,address)u.setuserId(userid);u.setuserName(user name);u.setEmail(email);u.setAddress(address);u.setPh

19、on e(ph on e);u.setld(id);u.setSex(sex);u.updateUser(); return u;*/public int doDelete(Stri ng userid) throws SQLExcepti on int num=0;user u=new user();num=u.deleteUser(userid);return num;public void sen dBea n( HttpServletRequest req, HttpServletResp onse res,user uu, String target)throws ServletEx

20、cepti on, I OExcepti on req.setAttribute("user", uu);RequestDispatcher rd = getServletC on text().getRequestDispatcher(target); rd.forward(req, res);public void doError(HttpServletRequest req,HttpServletResp onse res,Stri ng str)throws ServletExcepti on, I OExceptio n flag=false;req.setAtt

21、ribute("problem", str);RequestDispatcherrdgetServletC on text().getRequestDispatcher("/errorpage.jsp");rd.forward(req, res);res,Stri ngpublicboolea n hasLogi n( HttpServletRequestreq, HttpServletResp onseuserid)throws ServletExcepti on, I OExcepti onboolea n f=true;String message

22、="對(duì)不起,該用戶(hù)已經(jīng)被注冊(cè)過(guò)了!";user u= new user();f= u.hasLogi n( userid);if(f=false)doError(req,res,message);return f;public boolea n isTrue(HttpServletRequest req, HttpServletResp onse res.pho ne,Stri ngStringn ame,Stri ngemail,Stri ngid,Stri ngaddress)throws ServletExcepti on, I OExcepti on boolea

23、n f=true;String message =""if(n ame=nu II | n ame.equals("") f=false;message=" 不能為空,請(qǐng)重新填寫(xiě)!if(flag)doError(req,res,message);if(email=nu II | email.equals("") f=false;message="電子不能為空,請(qǐng)重新填寫(xiě)!if(flag) doError(req,res,message);if(id=null | id.equals("") f=

24、false;message="身份證號(hào)不能為空,請(qǐng)重新填寫(xiě)!if(flag) doError(req,res,message);if(phone=n ull | phon e.equals("") f=false;message="不能為空,請(qǐng)重新填寫(xiě)!"if(flag) doError(req,res,message);if(address=nu II | address.equals("") f=false;message="聯(lián)系地址不能為空,請(qǐng)重新填寫(xiě)! if(flag) doError(req,res,me

25、ssage);return f;public void doPost(HttpServletRequest req, HttpServletResp onse res) throws ServletExcepti on, I OExcepti on doGet(req, res);package bea n;public class sqlBea n public Connection conn=n ull;public ResultSet rs=nu II;Stri ng/DataSource 數(shù)據(jù)源名稱(chēng)DSNprivateDatabaseC onn Str="jdbc:mysql

26、:/localhost:3306/orderi ng?use Uni code=true&characterE ncodi n g=utf-8"+",root,sa"/定義方法/*setXxx 用于設(shè)置屬?;getXxx用于得到屬??*/public void setDatabaseDriver(Stri ng Driver)this.DatabaseDriver=Driver;public String getDatabaseDriver()retur n (this.DatabaseDriver);public void setDatabaseC on

27、n Str(Stri ng Conn Str)this.DatabaseCo nn Str=Co nn Str;public String getDatabaseC onn Str()retur n (this.DatabaseC onn Str);public sqlBea n()/構(gòu)?函?tryClass.forName(DatabaseDriver);catch(java .Ian g.ClassNotF oun dExcepti on e)(”加載驅(qū)動(dòng)器有錯(cuò)誤:"+e.getMessage();執(zhí)行插入有錯(cuò)?:"+e.getMessage();輸出到客戶(hù)端publi

28、c int execute In sert(Stri ng sql)int num=O;tryconnDriverMa nager.getC onn ecti on ("jdbc:mysql:/localhost:3306/orderi ng?use Uni code=true&char acterE ncodi ng=utf-8","root","sa");Stateme nt stmt=c onn. createStateme nt();num=stmt.executeUpdate(sql);catch(SQLExcept

29、io n ex)(”執(zhí)行插入有錯(cuò)?:"+ex.getMessage();執(zhí)行插入有錯(cuò)?:"+ex.getMessage();輸出到客戶(hù)端CloseDataBase();return num;/ display datapublic ResultSet executeQuery(Stri ng sql)rs=n ull;tryconnDriverMa nager.getC onn ecti on ("jdbc:mysql:/localhost:3306/orderi ng?use Uni code=true&char acterE ncodi ng=utf-

30、8","root","sa");Stateme nt stmt=c onn. createStateme nt();rs=stmt.executeQuery(sql);catch(SQLExceptio n ex)(”執(zhí)行查詢(xún)有錯(cuò)?:"+ex.getMessage();執(zhí)行查詢(xún)有錯(cuò)?:"+ex.getMessage(); /輸出到客戶(hù)端return rs;/ delete datapublic int executeDelete(Stri ng sql)int num=0;tryconnDriverMa nager.getC onn ecti on ("jdbc:mysql:/localhos

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論