

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 火車旅客信息管理系統(tǒng)</p><p> 姓 名: xxxx </p><p> 系 部: 信息工程系 </p><p> 專 業(yè):10計算機信息管理</p><p&
2、gt; 指導教師: xxxxxx </p><p> 日 期: 2013年5月25日 </p><p><b> 目錄</b></p><p><b> 目錄1</b></p><p><b> 摘 要3</b></p>
3、;<p><b> 引 言4</b></p><p> 第一章 需求分析5</p><p> 1.1任務需求分析5</p><p> 1.2數(shù)據(jù)流圖、數(shù)據(jù)字典及實體聯(lián)系圖5</p><p> 1.2.1 數(shù)據(jù)流圖5</p><p> 1.2.2數(shù)據(jù)字典
4、6</p><p> 1.2.3數(shù)據(jù)庫的具體設計如下7</p><p> 1.2.4實體聯(lián)系E-R圖10</p><p> 第二章 系統(tǒng)概要設計15</p><p> 2.1總體設計15</p><p> 2.2系統(tǒng)功能模塊圖15</p><p> 2.3數(shù)據(jù)庫概念設計
5、17</p><p> 2.4數(shù)據(jù)庫邏輯結構設計18</p><p> 2.5連接數(shù)據(jù)庫的特點20</p><p> 第三章 詳細設計21</p><p> 3.1系統(tǒng)的主要功能及實現(xiàn)21</p><p> 3.1.1系統(tǒng)登陸管理模塊21</p><p> 3.1.2時刻
6、信息管理模塊22</p><p> 3.1.3車次信息管理模塊22</p><p> 3.1.4 售票訂票信息管理模塊23</p><p> 31.5 新用戶注冊模塊25</p><p> 3.1.6通知乘車常識等信息管理模塊26</p><p> 3.2程序流程圖27</p>&l
7、t;p> 3.3用戶界面設計28</p><p> 3.3.1一般交互設計28</p><p> 3.3.2信息顯示設計29</p><p> 3.3.3輸入界面設計29</p><p> 3.4軟件測試30</p><p> 3.4.1測試的方法和步驟30</p><
8、p> 5.4.2測試用例30</p><p><b> 參考文獻32</b></p><p><b> 設計總結33</b></p><p><b> 致 謝34</b></p><p><b> 摘 要</b></p
9、><p> 火車旅客信息網(wǎng)上管理系統(tǒng)的總體目標是:在計算機網(wǎng)絡,數(shù)據(jù)庫和先進的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,分析和設計一個具有開放體系結構的、易擴充的、易維護的、具有良好人機交互界面的火車旅客信息網(wǎng)上管理系統(tǒng),為主管部門的決策者和管理者提供充足的信息、快捷的查詢和有效的管理方式,減少不必要的損失和浪費,提高人事管理的效率。</p><p> 關鍵詞:鐵路系統(tǒng);數(shù)據(jù)庫;數(shù)據(jù)字典
10、;信息管理</p><p><b> 引 言</b></p><p> 隨著人類文明的飛速發(fā)展,人類的活動不僅僅局限在一個小的圈子里。而且物品也越來越豐富,致使鐵路運輸企業(yè)有了很大的發(fā)展。與之俱來的是對旅客信息的管理。如果單憑人力,根本跟不上環(huán)境的要求,不但工作量大而且容易出錯。隨著科技的發(fā)展,計算機軟硬件技術已經(jīng)達到了相當高的水平。于是,火車旅客信息網(wǎng)上管
11、理軟件迎合了市場,為企業(yè)創(chuàng)造了不少價值。</p><p> 火車旅客信息網(wǎng)上管理,不僅僅是對旅客信息的簡單管理,它包括火車時刻表、車次查詢、緊急通知、乘車小常識等信息的發(fā)布和相關管理。這是對旅客的熱情服務也是人性化關懷的充分展現(xiàn)。</p><p> 這套系統(tǒng)分二部分進行信息管理:管理員管理,是最為重要的一部分,它包括售票訂票系統(tǒng)的權限設置,旅客意見的采納與回復;火車時刻表管理,是對車輛
12、信息的管理,包括車輛的車次,始發(fā)站與終點站,快慢等級,發(fā)車時間與到達時間,及中途站點停車時間等;緊急通知編輯,是當火車在行車過程中遇到緊急突發(fā)事件,如道路受損、讓車、技術停車等情況下對旅客進行及時通知;乘車小常識管理,包括沿途風光介紹,沿線土特產(chǎn)介紹,防盜與安全意識介紹等,是人性化服務很重要的一個組成部分。</p><p> 本系統(tǒng)采用Web模式來設計,服務器端我們采用Oracle數(shù)據(jù)庫Jsp+servlet組
13、件來構成服務系統(tǒng);客戶端采用瀏覽器來完成查詢,修改,刪除全過程,同時可進行遠程系統(tǒng)維護和治理。</p><p><b> 第一章 需求分析</b></p><p><b> 1.1任務需求分析</b></p><p><b> 系統(tǒng)任務主要包括:</b></p><p>
14、; 1)時刻信息:時刻信息的輸入、查詢、修改;</p><p> 2)車次信息:車次信息的輸入、查詢、修改;</p><p> 3)售票信息:售票信息的輸入、查詢、修改;</p><p> 4)訂票信息:訂票信息的輸入、查詢、修改;</p><p> 5)通知、常識等信息:通知、乘車常識信息的輸入、查詢、修改;</p>
15、<p> 6)用戶注冊,用戶信息的輸入等等;</p><p> 7)用戶登陸,用戶登錄時查詢,進入后進行購票;</p><p> 8)管理員信息:初始化管理員,對其他管理員的增加,刪除,查詢</p><p> 1.2數(shù)據(jù)流圖、數(shù)據(jù)字典及實體聯(lián)系圖</p><p> 1.2.1 數(shù)據(jù)流圖</p><p&
16、gt;<b> 圖3-1數(shù)據(jù)流圖</b></p><p> 數(shù)據(jù)流圖由四種基本的元素構成:數(shù)據(jù)流(Data Flow),處理(Process),數(shù)據(jù)存儲和數(shù)據(jù)源(數(shù)據(jù)終點)。</p><p> 數(shù)據(jù)流(Data Flow):為具有名稱且有流向的數(shù)據(jù),用標有名稱的箭頭表示,一個數(shù)據(jù)可以是記錄、組合項或基本項。</p><p> 處理(Pr
17、ocess):表示對數(shù)據(jù)所進行的加工和變換,在圖中用矩形框表示。指向處理數(shù)據(jù)流為該處理的輸入數(shù)據(jù),離開處理的數(shù)據(jù)為處理的輸出數(shù)據(jù)。</p><p> 數(shù)據(jù)存儲:表示用文件方式或數(shù)據(jù)庫形式所存儲的數(shù)據(jù),堆砌進行的存取分別以指向或離開數(shù)據(jù)存儲的箭頭表示。</p><p> 數(shù)據(jù)源及數(shù)據(jù)終點:表示數(shù)據(jù)的來源或數(shù)據(jù)的去向,可以是一個組織或人員,它處于系統(tǒng)范圍之外,所以又稱它為外部實體,它是為了
18、幫助理解系統(tǒng)界面而引入的,一般只出現(xiàn)在數(shù)據(jù)流圖的起點和終點。</p><p><b> 1.2.2數(shù)據(jù)字典</b></p><p> 數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。</p><p> (a) (b)</p>&l
19、t;p> (c) (d)</p><p> (c) (d)</p><p><b> (e)</b></p><p> 圖3-2 火車旅客信息網(wǎng)上管理系統(tǒng)的數(shù)據(jù)字典</p><
20、;p> 1.2.3數(shù)據(jù)庫的具體設計如下</p><p> A.管理員管理信息表</p><p><b> B.訂票管理信息表</b></p><p> C.貨物托運管理信息表</p><p><b> D.時刻信息管理表</b></p><p> E.站內新
21、聞管理信息表</p><p> F.車次信息通知管理信息表</p><p> G.售票信息管理信息表</p><p><b> H.車次信息管理表</b></p><p><b> 用戶信息管理表</b></p><p> 1.2.4實體聯(lián)系E-R圖</p&g
22、t;<p> 根據(jù)對數(shù)據(jù)流圖和數(shù)據(jù)字典的分析,我們可以確定該應用中的實體,屬性和實體之間的關系,并畫出如下所示的E-R圖。</p><p> 火車旅客信息網(wǎng)上管理系統(tǒng)E-R模型,如圖所示:</p><p><b> 前臺操作流程:</b></p><p><b> 后臺操作流程:</b></p&
23、gt;<p> 圖3-3 訂票管理E-R圖</p><p> 圖3-4 時刻管理E-R圖</p><p> 圖3-5 車次管理E-R圖</p><p> 圖3-6 售票管理E-R圖</p><p> 圖3-7 通知管理E-R圖</p><p> 圖3-8 系統(tǒng)后臺ER圖</p
24、><p><b> 系統(tǒng)ER圖說明</b></p><p> 售票過程中一個售票員可以售出多車票,一個乘客只能乘坐一輛車。</p><p> 一次訂票可能會定出多張車票。</p><p> 通知常識等信息等的緊急程度可以采用等級制。</p><p><b> 視圖設計:</b
25、></p><p> 查詢視圖:可以查詢訂票信息,時刻信息,售票信息和訂票信息。</p><p> 輸入視圖:當售出車票時,可以添加信息,每次的存儲信息發(fā)生改變時可以進行輸入。</p><p> 修改視圖:可以很方便的在一定權力下對系統(tǒng)信息進行修改,比如售票訂票信息等。</p><p> 第二章 系統(tǒng)概要設計</p>
26、;<p><b> 2.1總體設計</b></p><p> 總體設計過程通常由兩個主要階段組成:系統(tǒng)設計階段,確定系統(tǒng)的具體設計方案。結構設計階段,確定軟件結構。</p><p> 系統(tǒng)概要設計的基本目的是用比較抽象的概括方式確定系統(tǒng)如何完成預定的任務,也就是要確定系統(tǒng)的配置物理方案。軟件結構設計時應該遵循的最主要的原理是模塊獨立,讓模塊彼此間的
27、接口關系應該盡量簡單。</p><p> 2.2系統(tǒng)功能模塊圖</p><p> 可以根據(jù)模塊獨立原理對軟件結構進行精化。為了合理的分解,得到盡可能高的內聚、盡可能松散的耦合,最終要的是,為了得到一個易于實現(xiàn)、易于測試和易于維護的軟件結構,應該對模塊進行再分解或合并。</p><p> 系統(tǒng)功能模塊圖如下圖所示:</p><p> 圖
28、4-1系統(tǒng)功能模塊圖</p><p> 本系統(tǒng)共包括五大模塊,分別是時刻信息管理模塊,車次信息管理模塊,售票信息管理模塊,訂票信息管理模塊和通知乘車常識信息管理模塊。每個模塊的功能如下:</p><p> 1. 時刻信息管理模塊功能:</p><p> (1)實現(xiàn)時刻表相關信息的查詢;</p><p> (2)實現(xiàn)時刻表信息的更新,包
29、括增加、刪除、修改功能。</p><p> 2. 車次管理模塊功能:</p><p> (1)實現(xiàn)車次信息的查詢;</p><p> (2)實現(xiàn)車次信息的修改,添加,刪除。</p><p> 3. 售票信息管理模塊功能:</p><p> (1)實現(xiàn)售票信息的查詢;</p><p>
30、 (2)實現(xiàn)售票信息的適時更新,包括增加、刪除、修改功能。</p><p> 4.訂票信息管理模塊</p><p> (1)實現(xiàn)訂票信息的查詢;</p><p> (2)實現(xiàn)訂票信息的增加,修改功能。</p><p> 5.通知乘車常識等信息的管理模塊</p><p> (1)實現(xiàn)通知乘車常識等信息的查詢;&
31、lt;/p><p> (2)實現(xiàn)信息通知乘車常識等的增加和修改功能。</p><p> 6.站內新聞信息管理等模塊</p><p> (1)實現(xiàn)站內新聞信息的增加刪除修改;</p><p> (2)實現(xiàn)站內新聞信息的查詢和分頁</p><p> 2.3數(shù)據(jù)庫概念設計</p><p> 數(shù)
32、據(jù)庫一般分為三級模式:外模式、概念模式和內模式。外模式也就是不同用戶所對的數(shù)據(jù)視圖,它將數(shù)據(jù)庫內部抽象的數(shù)據(jù)及其互相之間的關系表示為簡單、直觀的應用界面。概念模式是數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結構和特征描述,通常以某種數(shù)據(jù)模型為基礎。內模式是對數(shù)據(jù)的物理結構和存儲方式的描述。</p><p> 在這里我們將要設計的是數(shù)據(jù)庫的概念模式,通過對火車旅客信息網(wǎng)上管理系統(tǒng)的內容和數(shù)據(jù)流程分析及E-R圖,設計如下數(shù)據(jù)項和數(shù)據(jù)結
33、構。</p><p> 訂票信息表(訂票單號,訂票時間,訂單總價,車票價格,訂票人,車次,起始站點,終點站點,發(fā)車時間,購買的票數(shù),付款狀態(tài),退訂事宜)</p><p> 時刻信息表(時刻編號,車次,發(fā)車時刻,中途停車時間,到達時刻)</p><p> 車次信息表(火車編號,車次,列車類別,起始站,終點站,)</p><p> 售票信
34、息表(售票單號,售票時間,車票價格,客票類別,車次,起始站點,終點站點)</p><p> 通知乘車常識等信息表(通知編號,通知時間,通知事件,播報人,車次)</p><p> 用戶信息表(用戶編號,用戶名,用戶真實名字,用戶密碼,用戶郵箱,用戶電話,證件類型,身份證號碼)</p><p> 站內新聞表(新聞編號,新聞標題,新聞內容,新聞圖片,發(fā)布新聞時間)&
35、lt;/p><p> 托運貨物表(托運貨物訂單表,托運人名字,貨物名字,托運貨物價錢,托運人的目的地,托運人電話,接貨人名字,接貨人電話,接貨人地址,貨物描述,托運時間)</p><p> 2.4數(shù)據(jù)庫邏輯結構設計</p><p> 在數(shù)據(jù)庫設計中相當重要的一步就是將概念模型轉化為計算機上DBMS所支持的數(shù)據(jù)模型,例如,將E-R圖模型轉化為關系模型,道理很簡單,我
36、們設計概念模型基本上都是一些抽象的關系,在再數(shù)據(jù)庫設計的實現(xiàn)過程中,在計算機上有效地表示出這些關系就成了數(shù)據(jù)庫設計的關鍵。根據(jù)運輸企業(yè)信息管理系統(tǒng)的功能要求,選取Oracle庫。</p><p> 一、在上面的實體和實體之間的E-R圖設計基礎上,形成數(shù)據(jù)庫中的表格及表格之間的關系。</p><p> 表4-1訂票信息表(A)</p><p> 表4-2車次信息
37、表(B)</p><p> 表4-3 時刻信息表(C)</p><p> 表4-4 售票信息表(D)</p><p> 表4-5 通知乘車常識等信息表(E)</p><p> 表4-6 管理員信息表(F)</p><p> 表4-7 用戶信息表(F)</p><p> 表4
38、-8 新聞表 (F)</p><p> 表4-9 用戶注意信息表(F)</p><p> 2.5連接數(shù)據(jù)庫的特點</p><p> 當開發(fā)環(huán)境通過連接到數(shù)據(jù)庫上之后,在設計中使用數(shù)據(jù)庫畫筆可實現(xiàn)對該數(shù)據(jù)庫中表格,視圖等的操作,如創(chuàng)建表空間,創(chuàng)建用戶,創(chuàng)建表,修改表,刪除表,增加/刪除記錄。</p><p> 設計中設計數(shù)據(jù)窗口的時候
39、,通過對話框實現(xiàn)與數(shù)據(jù)的連接。在應用程序中</p><p> 則一般是在應用程序對象中書寫連接數(shù)據(jù)庫的程序代碼,使得應用程序開始運行并實現(xiàn)與數(shù)據(jù)庫的連接,此時采用的是最基礎是JDBC的方式連接數(shù)據(jù)庫,并對其數(shù)據(jù)庫進行操作。</p><p><b> 第三章 詳細設計</b></p><p> 3.1系統(tǒng)的主要功能及實現(xiàn)</p>
40、;<p> 根據(jù)上面的需求分析,設計好數(shù)據(jù)庫系統(tǒng),然后開發(fā)應用程序可以考慮的窗體的系統(tǒng),每一個窗體實現(xiàn)不同的功能,可以設計下面的幾個模塊。</p><p> 3.1.1系統(tǒng)登陸管理模塊</p><p> 功能:本模塊的主要功能是對用戶身份進行,驗證只有系統(tǒng)的合法用戶才能進入系統(tǒng)。并且不同的用戶具有不同的權限,權限低的用戶對有的功能將不可用。</p><
41、;p><b> 詳細設計如下:</b></p><p> public class UserLoginServlet extends HttpServlet {</p><p> private static final long serialVersionUID = -35371583551546599L;</p><p> p
42、ublic void doGet(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> this.doPost(request, response);</p><p><b>
43、 }</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p><b> try {</b>&
44、lt;/p><p> String userName = request.getParameter("userName");</p><p> String passWord = request.getParameter("passWord");</p><p> CheckDao d = new CheckDao();&l
45、t;/p><p> UsersModel users = new UsersModel();</p><p> users.setUserName(userName);</p><p> users.setPassWord(passWord);</p><p> //根據(jù)userName,passWord判斷userName是否存在這樣的
46、信息返回boolean</p><p> //為真則存在,不為真則不存在</p><p> boolean f = d.checkLoginUsers(users);</p><p> List<NewsModel> listNews = new ArrayList<NewsModel>();</p><p>&
47、lt;b> //創(chuàng)建數(shù)據(jù)庫鏈接</b></p><p> Connection conn = DBConnection.getConnection();</p><p> //隨機產(chǎn)生6條最新新聞信息</p><p> String sql = "select rownum rs, n.* from news n where r
48、ownum<=6 order by times desc ";</p><p> PreparedStatement ps = conn.prepareStatement(sql);</p><p><b> //執(zhí)行查詢操作</b></p><p> ResultSet rs = ps.executeQuery();&l
49、t;/p><p><b> //進行遍歷取值</b></p><p> while (rs.next()) {</p><p> NewsModel news = new NewsModel();</p><p> news.setNewsId(rs.getInt("newsId"));</
50、p><p> news.setTitle(rs.getString("title"));</p><p> ................</p><p> listNews.add(news);</p><p><b> }</b></p><p> request.
51、setAttribute("listNews", listNews);</p><p> FindAllDao da = new FindAllDao();</p><p> List<NoticeInfoModel> list = da.findAllNoticeInfoModel();</p><p> request.se
52、tAttribute("list", list);</p><p> FindAllDao fd = new FindAllDao();</p><p> List<NewsModel> listnews = fd.findAllRandom();</p><p> request.setAttribute("list
53、news", listnews);</p><p><b> if (f) {</b></p><p> HttpSession session = request.getSession();</p><p> session.setAttribute("userName", userName);</p
54、><p> request.getRequestDispatcher("/WEB-INF/view/index.jsp")</p><p> .forward(request, response);</p><p><b> } else {</b></p><p> //不存在則返回到登錄頁面返
55、回提示信息msg</p><p> String msg = "用戶名或密碼錯誤";</p><p> request.setAttribute("msg1", msg);</p><p> request.getRequestDispatcher(</p><p> "/WEB-IN
56、F/view/users/userLogin.jsp?msg=300").forward(</p><p> request, response);</p><p><b> }</b></p><p> } catch (SQLException e) {</p><p> e.printStackT
57、race();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.1.2時刻信息管理模塊</p><p> 功能:該模塊主要是實現(xiàn)時刻的信息查詢、修改,刪除等
58、幾個功能。</p><p> 旅客信息查詢:該模塊為所有旅客提供查詢功能,查詢其詳細信息,但是對于信息沒有修改權限。</p><p> 具體實現(xiàn):管理員(有操作此系統(tǒng)權限的任何人)對信息具有修改刪除等權限,并允許每位旅客查詢,當列車時刻信息有變化時通過管理員對信息進行修改。</p><p> 3.1.3車次信息管理模塊</p><p>
59、 功能:本模塊的主要功能是把車次信息寫入存儲器,同時對數(shù)據(jù)庫中的信息進行更新,以備用戶將來對存儲的信息進行查詢和打印,此外還可以對車次信息進行查詢和刪除功能。</p><p> 具體實現(xiàn):提供車次查詢、信息修改、信息刪除等功能。當有新的車次安排時,將車次的詳細信息輸入并保存,當線路取消或變更時進行修改或刪除。</p><p> 增加信息具體實現(xiàn)如下:</p><p
60、> public boolean insertTrainInfo(TrainInfoModel trainInfo) {</p><p> boolean flag = false;</p><p><b> try {</b></p><p> conn = DBConnection.getConnection();</p
61、><p> ps = conn.prepareStatement(TrainInfoCommons.SqlInsertTrainInfo);</p><p> ps.setInt(1, trainInfo.getaNo());</p><p> ps.setString(2, trainInfo.getTicketValue());</p><
62、p> ps.setString(3, trainInfo.getbLevel());</p><p> ps.setString(4, trainInfo.getbFrom());</p><p> ps.setString(5, trainInfo.getbTo());</p><p> ps.setInt(6, trainInfo.getTicke
63、tNumber());</p><p> ps.setString(7, trainInfo.getSaleTime());</p><p> int n = ps.executeUpdate();</p><p> if (n != 0) {</p><p> flag = true;</p><p><
64、;b> }</b></p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> } finally {</p><p> DBConnection.closeAllConnection(conn, ps, null);<
65、/p><p><b> }</b></p><p> return flag;</p><p><b> }</b></p><p> 3.1.4 售票訂票信息管理模塊</p><p> 當列車已經(jīng)開始運營,旅客需要訂票或購票來登上火車。此時售票訂票信息顯得尤為重要。所
66、以此模塊必須可以滿足旅客查詢、登陸、訂票購票以及重要信息安全保密以確??蛻舻囊笞畲笙薅鹊牡靡詽M足。</p><p> 具體實現(xiàn):可以定義兩個標志變量,來表示車票是否售出和是否預定,當已經(jīng)有新任務時,如果客戶愿意等待此項任務完成則將預約項做標志。根據(jù)每次售票訂票的情況,隨時更新各線路車票的剩余狀況。</p><p> public class InsertBookingTicketSe
67、rvlet extends HttpServlet {</p><p><b> …….</b></p><p> @SuppressWarnings("deprecation")</p><p> public void doPost(HttpServletRequest request, HttpServletRe
68、sponse response)</p><p> throws ServletException, IOException {</p><p><b> //隨機產(chǎn)生訂單號</b></p><p> double dl = Math.random() * 1000000000;</p><p><b>
69、 //轉化成整數(shù)</b></p><p> double i = Math.floor(dl);</p><p> int aid = (int) i;</p><p> //轉化成數(shù)值類型Integer.parseInt(request.getParameter("aNo"))</p><p> I
70、nteger aNo = Integer.parseInt(request.getParameter("aNo"));</p><p> Integer ticketNumber = Integer.parseInt(request</p><p> .getParameter("ticketNumber"));</p><p
71、> float ticketValue = Float.parseFloat(request</p><p> .getParameter("ticketValue"));</p><p> String bLevel = request.getParameter("bLevel");</p><p> //將b
72、Level,bFrom,bTo,aOthers轉換成utf-8類型的中文編碼,以防插入時出現(xiàn)中午亂碼</p><p> bLevel = new String(bLevel.getBytes("iso-8859-1"), "utf-8");</p><p> String bFrom = request.getParameter("bF
73、rom");</p><p> bFrom = new String(bFrom.getBytes("iso-8859-1"), "utf-8");</p><p> float totalMoney = ticketValue * ticketNumber;</p><p> String userName
74、= request.getParameter("username");</p><p> String bTo = request.getParameter("bTo");</p><p> bTo = new String(bTo.getBytes("iso-8859-1"), "utf-8");<
75、/p><p> String aOthers = request.getParameter("aTime2");// 發(fā)車時間</p><p> String aTime2 = request.getParameter("aOthers");</p><p> aOthers = new String(aOthers.get
76、Bytes("iso-8859-1"), "utf-8");</p><p> int moneyStatus = 0;// 0表示未付款,1表示已付款</p><p> Date date = new Date();</p><p> int y = date.getYear() + 1900;</p>
77、<p> int M = date.getMonth() + 1;</p><p> int d = date.getDate();</p><p> int h = date.getHours();</p><p> int m = date.getMinutes();</p><p> int s = date.get
78、Seconds();</p><p> //獲取系統(tǒng)的時間進行拼接成我們自身需要的時間</p><p> String time = y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s;</p><p> Bo
79、okingModel bookingModel = new BookingModel();</p><p> bookingModel.setaId(aid);</p><p> bookingModel.setaName(totalMoney);// 應付款金額</p><p> bookingModel.setaTime1(time);// 買票時間<
80、;/p><p> bookingModel.setaTime2(aTime2);// 發(fā)車時間</p><p> bookingModel.setbFrom(bFrom);// 起點站</p><p> bookingModel.setbTo(bTo);// 終點站</p><p><b> ……………..</b>&
81、lt;/p><p> FindByIdDao fd = new FindByIdDao();</p><p> TrainInfoModel trainInfoModel = fd.findTrainInfoByIdAno(aNo);</p><p><b> //計算剩余的票數(shù)</b></p><p> Integ
82、er number = trainInfoModel.getTicketNumber() - ticketNumber;</p><p> InsertDao id = new InsertDao();</p><p> //更新系統(tǒng)剩余的票數(shù),更新成功后才操作插入用戶所購票的信息</p><p> boolean flag = id.insertBookin
83、g(bookingModel);</p><p> if (flag) {</p><p> TrainInfoModel infoModel = new TrainInfoModel();</p><p> infoModel.setaNo(aNo);</p><p> infoModel.setTicketNumber(numbe
84、r);</p><p> UpdateDao ud = new UpdateDao();</p><p> ud.updateTrainInfoByaNo(infoModel);</p><p><b> ……..</b></p><p> request.getRequestDispatcher(</p&
85、gt;<p> "/WEB-INF/view/booking/updateBooking.jsp").forward(request,</p><p> response);</p><p><b> } else {</b></p><p> request.getRequestDispatcher(
86、"/WEB-INF/view/booking/error.jsp")</p><p> .forward(request, response);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b
87、></p><p> 31.5 新用戶注冊模塊</p><p> 當一個新用戶登錄本網(wǎng)站的時候,進行購票業(yè)務是,必須進行實名的注冊才進行購票,方便用戶信息的管理,也方便用戶對自己的信息的維護</p><p><b> 具體實現(xiàn)如下:</b></p><p><b> 用戶注冊源代碼</b&g
88、t;</p><p> public class InsertUserResigerServlet extends HttpServlet {</p><p> public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
89、 {</p><p> String userName = request.getParameter("userName");</p><p> String realName = request.getParameter("realName");</p><p> //對輸入的中文信息進行轉碼,防止出現(xiàn)插入的時候出現(xiàn)中
90、文亂碼</p><p> realName = new String(realName.getBytes("iso-8859-1"), "utf-8");</p><p> String passWord = request.getParameter("passWord");</p><p> Str
91、ing userEmail = request.getParameter("userEmail");</p><p> String email = "";</p><p> String phone = "";</p><p> if(userEmail==""){</p&
92、gt;<p> //對插入的空信息進行初始化</p><p> email = "aa@qq.com";</p><p><b> }</b></p><p> String userPhone = request.getParameter("userPhone");</p&g
93、t;<p> String cardLevel = request.getParameter("cardLevel");</p><p> String userCard = request.getParameter("userCard");</p><p> if(userPhone==""){</p&
94、gt;<p> phone = "12345678900";</p><p><b> }</b></p><p> //對插入時的信息進行設置</p><p> UsersModel usersModel = new UsersModel();</p><p><b>
95、; ........</b></p><p> CheckDao d = new CheckDao();</p><p> UsersModel users = new UsersModel();</p><p> users.setUserName(userName);</p><p> //判斷該userName的值
96、是否存在返回boolean</p><p> boolean f = d.CheckUsersByUserName(users);</p><p> //判斷該userCard的值是否存在返回boolean</p><p> UsersModel f1 = new UsersModel();</p><p> f1.setUserCa
97、rd(userCard);</p><p> boolean b = d.CheckUsersByUserCard(f1);</p><p> if (f && b) {</p><p> ............</p><p> request.setAttribute("userCard",
98、userCard);</p><p> String msg = "該證件號已經(jīng)存在";</p><p> request.setAttribute("msg", msg);</p><p> String username = userName + "該用戶已經(jīng)存在";</p><
99、;p> request.setAttribute("usernamemsg", username);</p><p> request.getRequestDispatcher("/WEB-INF/view/users/userAdd.jsp")</p><p> .forward(request, response);</p>
100、;<p> } else if (f) {</p><p><b> .......</b></p><p> request.setAttribute("userCard", userCard);</p><p> String username = userName + "該用戶已經(jīng)存在&
101、quot;;</p><p> request.setAttribute("usernamemsg", username);</p><p> request.getRequestDispatcher("/WEB-INF/view/users/userAdd.jsp")</p><p> .forward(request
102、, response);</p><p> } else if (b) {</p><p> .............</p><p> String msg = "該證件號已經(jīng)存在";</p><p> request.setAttribute("msg", msg);</p>
103、<p> request.getRequestDispatcher("/WEB-INF/view/users/userAdd.jsp")</p><p> .forward(request, response);</p><p><b> } else {</b></p><p> InsertDao d
104、ao = new InsertDao();</p><p> boolean flag = dao.insertUsers(usersModel);</p><p> if (flag) {</p><p> request.getRequestDispatcher("/WEB-INF/view/users/ok.jsp")</p&g
105、t;<p> .forward(request, response);</p><p><b> } else {</b></p><p> request.getRequestDispatcher("/WEB-INF/view/users/error.jsp")</p><p> .forward(r
106、equest, response);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.1.6通知
107、乘車常識等信息管理模塊</p><p> 當列車在行駛途中,車組人員有緊急狀況需要通知或根據(jù)沿途風光向旅客介紹乘車常識等都需要做記錄。方便以后管理人員查詢。</p><p> 具體實現(xiàn):對每一次播報進行統(tǒng)一,唯一的編號,作為搜索查找的關鍵字,允許編號中出現(xiàn)字符,以方便查找。</p><p><b> 具體實現(xiàn)如下:</b></p&g
108、t;<p> String aNo = request.getParameter("aNo");</p><p> String currentPage = request.getParameter("currentPage");</p><p> //創(chuàng)建一個緩沖字符數(shù)組,存放信息</p><p> S
109、tringBuffer paras = new StringBuffer();</p><p> if (aNo != null && !aNo.equals("")) {</p><p><b> //查詢條件的拼接</b></p><p> paras.append(" and aNo l
110、ike '%" + aNo.toLowerCase().trim() + "%'");</p><p><b> }</b></p><p> request.setAttribute("aNo", aNo);</p><p> if (currentPage == nul
111、l || "".equals(currentPage)) {</p><p> currentPage = "1";</p><p><b> }</b></p><p><b> //設置當前頁碼</b></p><p> Integer curre
112、ntpage = Integer.parseInt(currentPage);</p><p> PageInfo page = new PageInfo();</p><p> FenyeMoment f = new FenyeMoment();</p><p> //設置初始開始位置</p><p> int start = (c
113、urrentpage - 1) * page.getPageSize() + 1;</p><p><b> //設置結束位置</b></p><p> int end = currentpage * page.getPageSize();</p><p> page.setCurrentPage(currentpage);</p&
114、gt;<p> request.setAttribute("page", page);</p><p> List<MomentModel> list = f.findByPage(page, paras.toString(), start, end);</p><p> request.setAttribute("curren
115、tPage", currentpage);</p><p> request.setAttribute("listMoment", list);</p><p> request.getRequestDispatcher("/WEB-INF/view/moment/listMoment.jsp")</p><p>
116、; .forward(request, response);</p><p><b> 3.2程序流程圖</b></p><p> 程序流程圖的優(yōu)點是對控制流程的描繪很直觀,易于掌握。通過對系統(tǒng)的調查和可行性分析,畫出程序的流程圖如下所示,程序過程設計主要是在借助過程設計工具的情況下,對程序的具體實現(xiàn)過程進行設計。程序的主要部分設計在這個環(huán)節(jié)完成。其主要包括以下
117、幾個部分:</p><p> 圖5-1 程序流程圖</p><p><b> 3.3用戶界面設計</b></p><p> 3.3.1一般交互設計</p><p> 一般交互涉及信息顯示、數(shù)據(jù)輸入、和系統(tǒng)整體控制等方面。</p><p><b> 1、一致性</b>
118、</p><p> 為客戶交互界面中的菜單選擇、命令輸入、數(shù)據(jù)顯示以及眾多的其他功能,使用一致的格式。在設計的過程中,基本上保持了系統(tǒng)的格式一致。</p><p> 2、在有較大影響的操作前提示用戶確認</p><p> 在設計過程中,如果用戶要執(zhí)行刪除操作,以及對數(shù)據(jù)庫的讀寫操作時,都會有窗體彈出詢問繼續(xù)操作或者予以提示。</p><p&
119、gt;<b> 3、允許錯誤</b></p><p> 允許用戶的失誤操作,盡量不對系統(tǒng)造成傷害。</p><p> 3.3.2信息顯示設計 </p><p> 應當盡量為用戶提供的界面顯示時完整的、明確的和容易理解的。這樣才能滿足用戶的需求。使用不同的方式顯示信息:用文字、圖形、聲音,按位置、移動和大小,使用顏色和省略等方式傳達信息。
120、</p><p> 1、只顯示與當前工作有關的信息</p><p> 在用戶操作有關系統(tǒng)的特定功能的信息時,不必看到與之無關的數(shù)據(jù)、菜單和圖形。</p><p> 2、使用便于用戶迅速吸收數(shù)據(jù)的方式來表示數(shù)據(jù)</p><p> 在系統(tǒng)設計的過程中,較多地使用了圖表的形式表示數(shù)據(jù),例如在分析中就使用了柱狀圖的形式表現(xiàn)了復雜的數(shù)據(jù)。這樣,
121、用戶可以直觀的體會到圖表所表示的含義。</p><p> 3、使用一致的標記、標準的縮寫和可預知的顏色</p><p> 為了使系統(tǒng)所表達的含義準確、無誤,就必須適用一致的標記、標準的縮寫和可以預知的縮寫,這樣用戶就無需參照其他信息源就能理解,而正確地適用軟件。</p><p> 4、產(chǎn)生有意義的錯誤信息</p><p> 對于系統(tǒng)在
122、運行過程中產(chǎn)生的錯誤盡量給用戶返回一個容易理解的錯誤信息,以使用戶保持對系統(tǒng)的信任,和系統(tǒng)的可用性。</p><p> 5、使用窗口分隔不同類型的信息</p><p> 使用不同的窗口顯示、保存不同類型的信息。</p><p> 3.3.3輸入界面設計</p><p> 用戶的大部分時間用在選擇菜單命令、鍵入數(shù)據(jù)和向系統(tǒng)提供輸入。在
123、系統(tǒng)中,鍵盤是主要的輸入介質,但是鼠標等設備的也是重要的輸入手段,所以,對于他們的數(shù)據(jù)輸入操作有如下約定:</p><p> 1、保持信息顯示和數(shù)據(jù)輸入間的一致性</p><p> 為了方便用戶的使用,鼠標應當盡量減少操作的幅度。</p><p> 2、保持顯示信息和輸入信息之間的一致性</p><p> 對于用戶來說,要保證其輸入的
124、數(shù)據(jù)在顯示上與其他顯示的視覺特征(例如:文字大小、顏色、位置等)要一致。</p><p> 對于不同類型的用戶在登錄到系統(tǒng)后,由于有不同的權限,所以在主界面中會有一些項目受到限制而無法使用,所以要使這些項目不發(fā)生作用,以保證系統(tǒng)安全。</p><p><b> 3.4軟件測試 </b></p><p> 3.4.1測試的方法和步驟<
125、/p><p> 軟件的測試方法有兩種,一種是黑盒測試(功能測試),另外一種是白盒測試(結構測試)。</p><p> 黑盒測試把程序看作一個黑盒子,完全不考慮程序的內部結構和處理過程。也就是說,黑盒測試是在程序接口進行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)慕邮茌斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息,程序運行過程中能否保持外部信息的完整性。</p>
126、<p> 白盒測試的前提是可以把程序看成裝在一個透明的白盒子里,測試者完全知道程序的結構和處理算法。這種方法按照程序內部的邏輯測試程序,檢測程序中的主要執(zhí)行通路是否能按預定的要求正確工作。</p><p> 在本次軟件的測試工作中,由于水平的限制,僅僅對軟件的各個功能模塊進行了測試,并對各個模塊之間的接口進行了詳細的測試(用黑盒測試法)。</p><p><b>
127、 測試的步驟</b></p><p> 由于該系統(tǒng)是一個小系統(tǒng),可以把整個系統(tǒng)作為一個單獨的實體來測試。當然,在測試的過程中可以分模塊、分階段來進行。 </p><p><b> 5.4.2測試用例</b></p><p> 測試用例是指對一向特定的軟件產(chǎn)品進行測試任務的描述,體現(xiàn)測試方案,方式,方法和技術。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java畢業(yè)設計火車旅客信息網(wǎng)上管理系統(tǒng)
- 基于java火車旅客信息網(wǎng)上管理系統(tǒng)(含源文件)畢業(yè)設計論文
- 專利繳費信息網(wǎng)上補充及管理系統(tǒng)
- 火車票售票管理系統(tǒng)畢業(yè)設計
- 旅游信息網(wǎng)站畢業(yè)設計
- 火車票售票管理系統(tǒng)畢業(yè)設計
- 網(wǎng)上論壇管理系統(tǒng)畢業(yè)設計
- 網(wǎng)上花店管理系統(tǒng)畢業(yè)設計
- 網(wǎng)上購物銷售管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---網(wǎng)上書店管理系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設計
- 網(wǎng)上購物銷售管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計----網(wǎng)上設備管理系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計--網(wǎng)上教學管理系統(tǒng)
- 畢業(yè)設計---網(wǎng)上教學管理系統(tǒng)
- 交通信息網(wǎng)上查詢系統(tǒng)的設計與實現(xiàn)——畢業(yè)論文
- 畢業(yè)設計----網(wǎng)上書店管理信息系統(tǒng)設計與開發(fā)
- 畢業(yè)設計---圖書館信息網(wǎng)絡系統(tǒng)
- 畢業(yè)生信息網(wǎng)上采集系統(tǒng)操作手冊
評論
0/150
提交評論