火車售票系統(tǒng)課程設計報告-姚宇_第1頁
火車售票系統(tǒng)課程設計報告-姚宇_第2頁
火車售票系統(tǒng)課程設計報告-姚宇_第3頁
火車售票系統(tǒng)課程設計報告-姚宇_第4頁
火車售票系統(tǒng)課程設計報告-姚宇_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、沈 陽 工 程 學 院課 程 設 計設計題目: 火車票管理系統(tǒng) 系 別 信息工程系 班級 網(wǎng)絡本101 學生姓名 劉雨嬌 金兆寧 姚宇 夏林 學 號 02 13 19 24 指導教師 孫憲麗 、楊弘平 職稱 副教授 、副教授 起止日期:2012年12月3日起至2012年12月7日止沈 陽 工 程 學 院課程設計任務書課程設計題目: 火車票管理系統(tǒng) 系 別 信息工程系 班級 網(wǎng)絡本101學生姓名 劉雨嬌 金兆寧 姚宇 夏林 學 號 02 13 19 24 指導教師 孫憲麗、楊弘平 職稱 副教授 、副教授課程設計進行地點: 實訓F 任 務 下 達 時 間: 2012 年 12 月 3 日起止日期:

2、 2012年12月3日起至2012年12月7日止教研室主任 年 月 日批準1. 設計的原始資料及依據(jù)查閱有關數(shù)據(jù)庫設計、Java語言程序設計以及案例分析等資料,進一步熟悉面向?qū)ο蟪绦蛟O計基本理論以及基本思想。本設計要求按照軟件工程、數(shù)據(jù)庫設計思想及設計步驟設計一個實用程序,并采用Java開發(fā)該系統(tǒng)。通過本設計可以加深對面向?qū)ο蟪绦蛟O計基本思想的理解,加強學生研發(fā)、調(diào)試程序的能力,培養(yǎng)學生分析、解決問題的能力,提高學生的科技寫作能力。2設計的主要內(nèi)容及要求(1)寫出系統(tǒng)的需求分析。(2)寫出系統(tǒng)的數(shù)據(jù)庫設計過程,包括概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計、物理結(jié)構(gòu)設計。(數(shù)據(jù)庫應用程序管理系統(tǒng)類設計詳細寫,

3、其它類設計可以略)(3)寫出系統(tǒng)設計思路工作原理、功能規(guī)劃。(4)詳細設計數(shù)據(jù)分析、算法思路、類設計、功能實現(xiàn)(包括程序流程圖、主要代碼及注釋)、界面等。(5)運行調(diào)試與分析討論-給出運行屏幕截圖,分析運行結(jié)果,有何改進等。3.對設計說明書撰寫內(nèi)容、格式、字數(shù)的要求(1)學生應撰寫的內(nèi)容為:中文摘要和關鍵詞、目錄、正文、參考文獻等。課程設計說明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求參照沈陽工程學院畢業(yè)設計(論文)撰寫規(guī)范執(zhí)行。應做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。(2)裝訂格式:封面、任務書、成績評審意見表、中文摘要和關鍵詞、目錄、正文、結(jié)論、致謝、參考文獻。(3)課程設計說明書(論文)

4、是體現(xiàn)和總結(jié)課程設計成果的載體,一般不應少于3000字。4. 設計完成后應提交成果的種類、數(shù)量、質(zhì)量等方面的要求(1)每組提交一份課程設計報告。(2)每組提交一份課程設計成品。5.時間進度安排順序階段日期計 劃 完 成 內(nèi) 容備注112.3充分解讀題目內(nèi)容,進行需求分析設計。212.4系統(tǒng)功能結(jié)構(gòu)設計,數(shù)據(jù)庫設計。312.5單元模塊設計及調(diào)試。412.6單元模塊設計及調(diào)試。512.7成績評定以及撰寫課程設計報告6.主要參考資料(文獻)1 耿詳義.JAVA2教程.北京:清華大學出版社,2004。2張仿彥.JAVA項目開發(fā)全程實錄.北京:清華大學出版社,2007。3 楊小虎.軟件工程課程設計.浙江

5、:浙江大學出版社,2007。4 韓萬江.軟件工程案例教程.北京:機械工業(yè)出版社,2007。5 薩師煊,王珊著.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2003。沈 陽 工 程 學 院 面向?qū)ο蟪绦蛟O計 課程設計成績評定表系(部): 信息工程系 班級: 網(wǎng)絡本101 學生姓名: 指 導 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分調(diào)研論證能獨立查閱文獻,收集資料;能制定課程設計方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認真,遵守紀律,出勤情況是否良好,能夠獨立完成設計工作, 0.25432工作量按期圓滿完成規(guī)定的設計任務,工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明

6、書立論正確,論述充分,結(jié)論嚴謹合理,文字通順,技術用語準確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.55432指導教師評審成績(加權(quán)分合計乘以12) 分加權(quán)分合計指 導 教 師 簽 名: 年 月 日評 閱 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分查閱文獻查閱文獻有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴謹合理,文字通順,技術用語準確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績(加權(quán)分合計乘以8)分加權(quán)分合計評 閱 教 師 簽 名: 年 月 日課

7、 程 設 計 總 評 成 績分摘 要隨著Internet和Intranet技術的發(fā)展,人們對網(wǎng)絡信息的需求越來越大,對網(wǎng)絡數(shù)據(jù)庫的交互和查詢速度等性能的要求也越來越高。未來火車站的發(fā)展趨勢是完全自動化的售票信息查詢,網(wǎng)絡訂票,智能化訂票,而且隨著計算機的普及,信息處理量的逐漸擴大,手工處理方式已經(jīng)遠遠不能滿足人們管理活動的需要,各種工作都逐漸由手工轉(zhuǎn)為自動化,將使許多復雜、繁瑣、且需要很多人力的工作變得簡單?;疖囌臼燮惫芾硎潜鞠到y(tǒng)的根本任務,通過實現(xiàn)票務信息的計算機管理,以提高工作效率。實現(xiàn)計算機管理的最佳技術就是數(shù)據(jù)庫技術。我們可以利用數(shù)據(jù)庫將整個火車站的票務情況存入計算機,再配置上功能豐富

8、的用戶接口,以滿足用戶需求。 基于這樣的背景并考慮到一定的實際意義及于我們將實踐與理論結(jié)合起來,我們組在這次課設中選擇了“火車售票管理系統(tǒng)”。在這次課設中我們使用Java技術來開發(fā)該火車票管理系統(tǒng)。因而在本報告中介紹了系統(tǒng)的開發(fā)環(huán)境以及開發(fā)工具,對Java在系統(tǒng)上的應用設計思想做了一個全面的敘述,對于系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表之間的具體關聯(lián)等方面也做出了詳細說明,并且具體講述了系統(tǒng)各個功能模塊的設計以及實現(xiàn)過程。關鍵詞 火車售票管理系統(tǒng) Java技術 網(wǎng)絡數(shù)據(jù)庫目 錄摘要I第1章 緒論11.1 項目背景11.2 編寫目的11.3 開發(fā)環(huán)境11.3.1 硬件環(huán)境11.3.2 軟件環(huán)境1第2章 系統(tǒng)功

9、能介紹32.1 系統(tǒng)功能總框圖32.2 模塊功能介紹32.2.1 系統(tǒng)登錄32.2.2 管理員登錄32.2.3 普通用戶登錄42.3組內(nèi)任務分工4第3章 數(shù)據(jù)庫設計53.1 數(shù)據(jù)庫需求分析53.2 數(shù)據(jù)流圖53.3 數(shù)據(jù)庫概念結(jié)構(gòu)設計63.4 數(shù)據(jù)庫表的設計7第4章 系統(tǒng)功能實現(xiàn)104.1 登陸系統(tǒng)104.2 管理員系統(tǒng)114.2.1 用戶管理114.2.2 票務管理204.3 普通用戶登錄214.3.1 查詢214.3.2 售票27結(jié)論31致謝32參考文獻33第1章 緒論信息社會的高科技,商品經(jīng)濟的高效益,使計算機的應用普及到經(jīng)濟和社會生活的各個領域。計算機與人類的關系愈來愈密切,計算機操作

10、為人們帶了越來越多的便利。為了適應現(xiàn)代社會人們高度強烈的時間觀念,火車票管理系統(tǒng)將會為人們帶來極大的方便。1.1 項目背景在火車大力普及的今天,一個火車站售票信息管理系統(tǒng)應達到的目標是提供及時、廣泛的信息服務,加快信息檢索的效率,實況靈活的查詢,減輕管理人員制作報表和統(tǒng)計分析的負擔,且系統(tǒng)規(guī)模不太大但又要保證支持日常工作的要求,以便系統(tǒng)應易于擴充,方便日后統(tǒng)一聯(lián)網(wǎng)與管理,提高管理水平。根據(jù)以上的設計目標和要求,本設計用Java編程語言結(jié)合微軟的Access數(shù)據(jù)庫進行開發(fā),主要完成查詢、售票、及對票務和用戶進行管理等功能。其實火車售票系統(tǒng)用計算機管理火車站票務信息的一種計算機應用技術的創(chuàng)新,在計

11、算機還未普及之前售票業(yè)務都是由工作人員人工完成的、查詢方式來操作的?,F(xiàn)在一般的車站售票業(yè)務都采用計算機智能化管理,采用計算機作為工具的實用的計算機訂單管理程序來幫助前臺管理員進行更有效的車票業(yè)務查詢,出售管理工作。火車售票管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS):其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 經(jīng)過分析:我們使用Java編程語言開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時間內(nèi)建立系統(tǒng)應用原

12、型,然后對初始原型系統(tǒng)進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。1.2 編寫目的電腦的漸漸普及,以及互聯(lián)網(wǎng)所容納的信息量大、內(nèi)容豐富、信息及時、準確,更有相關信息的全面介紹與比較。為了人們在火車站購買車票以及售票員對車票的、管理、查詢以及相應的操作變的簡單,開發(fā)這樣一個火車票管理系統(tǒng)成為很有必要的事情。1.3 開發(fā)環(huán)境1.3.1 硬件環(huán)境PC機。1.3.2 軟件環(huán)境 操作系統(tǒng):Windows XP 開發(fā)工具:EclipseEclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為C+、Python、PHP等其他語言的開

13、發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持,使得Eclipse擁有較佳的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse采用的技術是IBM公司開發(fā)的(SWT),這是一種基于Java的窗口組件,類似Java本身提供的AWT和Swing窗口組件;不過IBM聲稱SWT比其他Java窗口組件更有效率。Eclipse的用戶界面還使用了GUI中間層JFace,從而簡化了基于SWT的應用程序的構(gòu)建。Eclipse的設計思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本內(nèi)核包括:圖形API (

14、SWT/Jface), Java開發(fā)環(huán)境插件(JDT),插件開發(fā)環(huán)境(PDE)等。 數(shù)據(jù)庫:Microsoft Access2003Access 是微軟公司推出的基于Windows的桌面關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),是Office系列應用軟件之一。它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立數(shù)據(jù)庫系統(tǒng)的對象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲、數(shù)據(jù)查詢、界面設計、報表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分數(shù)據(jù)管理的任務。 Access是一種關系型數(shù)據(jù)庫管理系統(tǒng),其主要特點如下: 1) 存儲方式單一 Acces

15、s管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為(.mdb)的數(shù)據(jù)庫文件種,便于用戶的操作和管理。 2) 面向?qū)ο?Access是一個面向?qū)ο蟮拈_發(fā)工具,利用面向?qū)ο蟮姆绞綄?shù)據(jù)庫系統(tǒng)中的各種功能對象化,將數(shù)據(jù)庫管理的各種功能封裝在各類對象中。它將一個應用系統(tǒng)當作是由一系列對象組成的,對每個對象它都定義一組方法和屬性,以定義該對象的行為和外國,用戶還可以按需要給對象擴展方法和屬性。通過對象的方法、屬性完成數(shù)據(jù)庫的操作和管理,極大地簡化了用戶的開發(fā)工作。同時,這種基于面向?qū)ο蟮拈_發(fā)方式,使得開發(fā)應用程序更為簡便。 3)界面友好、易操作 Access是一個可視化工具,是風格

16、與Windows完全一樣,用戶想要生成對象并應用,只要使用鼠標進行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報表設計器以及數(shù)據(jù)庫向?qū)?、表向?qū)А⒉樵兿驅(qū)?、窗體向?qū)А蟊硐驅(qū)У裙ぞ?,使得操作簡便,容易使用和掌握?4)集成環(huán)境、處理多種數(shù)據(jù)信息 Access基于Windows操作系統(tǒng)下的集成開發(fā)環(huán)境,該環(huán)境集成了各種向?qū)Ш蜕善鞴ぞ?,極大地提高了開發(fā)人員的工作效率,使得建立數(shù)據(jù)庫、創(chuàng)建表、設計用戶界面、設計數(shù)據(jù)查詢、報表打印等可以方便有序地進行。 5)Access支持ODBC(開發(fā)數(shù)據(jù)庫互連,Open Data Base Connectivity),利用Access強大的DDE(動

17、態(tài)數(shù)據(jù)交換)和OLE(對象的聯(lián)接和嵌入)特性,可以在一個數(shù)據(jù)表中嵌入位圖、聲音、Excel表格、Word文檔,還可以建立動態(tài)的數(shù)據(jù)庫報表和窗體等。Access還可以將程序應用于網(wǎng)絡,并與網(wǎng)絡上的動態(tài)數(shù)據(jù)相聯(lián)接。利用數(shù)據(jù)庫訪問頁對象生成HTML文件,輕松構(gòu)建Internet/Intranet的應用。第2章 系統(tǒng)功能介紹2.1 系統(tǒng)功能總框圖系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務的基礎上完成。根據(jù)系統(tǒng)分析確定的邏輯模型,確定新系統(tǒng)的物理模型,即計算機化信息系統(tǒng)應用軟件的總體結(jié)構(gòu)和數(shù)據(jù)庫設計,并提出系統(tǒng)配置方案,繼而對物理模型進行詳細的設計。主要內(nèi)容有:代碼設計,用戶界面設計,處理過程設計,編寫系統(tǒng)設計

18、說明書。系統(tǒng)設計是以系統(tǒng)分析為基礎,而系統(tǒng)設計又是系統(tǒng)實施的基礎,系統(tǒng)設計的主要任務是代碼設計、物理設計、數(shù)據(jù)庫設計、功能結(jié)構(gòu)圖設計。本火車票管理系統(tǒng)功能包括用戶登錄、用戶信息管理、火車票信息管理、火車票信息查詢等如圖2.1所示。圖2.1 系統(tǒng)功能圖2.2 模塊功能介紹2.2.1 系統(tǒng)登錄火車票管理系統(tǒng)可以分為2種登錄方式登錄系統(tǒng),分別為管理員、普通用戶。考慮到數(shù)據(jù)庫中數(shù)據(jù)的安全性和用戶的權(quán)益,該系統(tǒng)采用“用戶標識”和“口令”相結(jié)合的數(shù)據(jù)庫安全技術,并通過自動認證用戶的“權(quán)限”來判斷用戶應該登陸到的界面。其中管理員使用密碼登錄可以直接登錄到管理系統(tǒng),進行火車票信息和用戶信息進行管理;普通用戶使

19、用密碼登錄到用戶界面,可以在對火車票查詢的基礎上對乘客所要求買的車票信息進行查詢和填寫以及火車票記錄的打印等操作。2.2.2 管理員登錄管理員是該火車售票系統(tǒng)數(shù)據(jù)的直接管理者,他對該系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)享有所有的權(quán)限。針對這一點,管理員管理界面包含了“用戶管理”、“票務管理”以及“系統(tǒng)幫助”三個選項。(1)用戶管理用戶管理界面是管理員才能進入的界面,在該窗口中,管理員可以對使用該系統(tǒng)的用戶進行管理,具體包括“查找用戶”、“增加用戶”、“刪除用戶”、“修改用戶”等功能,并將各個子功能的結(jié)果顯示在窗口左邊的顯示區(qū)域內(nèi),初次登陸此界面時顯示區(qū)域內(nèi)的信息是所有用戶的信息。通過該模塊的功能,管理員可以很方

20、便的對使用該系統(tǒng)的用戶進行管理。(2)票務管理顧名思義“票務管理”就是對火車票進行的管理,在此模塊中我們可以進行“所有票數(shù)”、“賣出票數(shù)”等的預覽。運行界面如圖2.2所示。圖2.2“票務管理”窗口2.2.3 普通用戶登錄在這個功能模塊里普通用戶即售票員可以進行火車及或火車票的信息進行查詢及售票。查詢子功能中可以“按車次查詢”,也可以“按車站查詢”;在售票子功能中選擇好車票相關信息后并核對確認好乘客需要次車票后可以可預覽車票信息;如果乘客需要數(shù)據(jù)單,則可以點擊“打印”來打印數(shù)據(jù)單。查詢:“查詢”功能中的“按車次查詢”和“按車站查詢”思想相差無幾,這里我們重點說明“按車次查詢”。如現(xiàn)在乘客詢問“T

21、1”的火車具體信息及車票信息或者是購買“T1”的車票,售票員便在“火車票”窗口選擇“按車次查詢”,然后在“車次”一欄中輸入“T1”以及選擇好日期以后點擊“查詢”便會出發(fā)相應的查詢事件即將“車次”和“日期”傳遞給查詢語句后將數(shù)據(jù)庫中各個表中的相關信息查詢出來顯示在“火車票”窗口相應的地方,具體包括始發(fā)站、終點站、發(fā)車時間、剩余票數(shù)、單價等信息。售票:在用戶選定了需要的票之后,點擊確定按鈕之后,會彈出電子票窗口。在購票成功之后,需要對數(shù)據(jù)庫進行更新操作,這就是售票系統(tǒng)的主要功能。2.3 組內(nèi)任務分工表2.1 組內(nèi)任務分工姓名任務分工成績姚宇(組長)數(shù)據(jù)庫連接與數(shù)據(jù)交互、用戶管理(增加、查找、修改、

22、刪除)金兆寧數(shù)據(jù)庫需求分析、選擇車票(打?。┫牧謹?shù)據(jù)流圖、票務管理(已賣票、所有票)劉雨嬌數(shù)據(jù)庫設計、用戶登錄、系統(tǒng)幫助(車票顯示)第3章 數(shù)據(jù)庫設計火車票管理系統(tǒng)是一個數(shù)據(jù)庫應用系統(tǒng),各類數(shù)據(jù)的所有信息都是保存在數(shù)據(jù)庫中。在數(shù)據(jù)庫應用系統(tǒng)的開發(fā)進程中,數(shù)據(jù)庫的結(jié)構(gòu)設計是一個非常重要的問題。我們這里所說的數(shù)據(jù)庫結(jié)構(gòu)設計是指數(shù)據(jù)庫中各個表結(jié)構(gòu)的設計,包括信息保存在哪個表格中,各個表的結(jié)構(gòu)如何以及各個表之間的關系如何等。數(shù)據(jù)庫結(jié)構(gòu)設計的好壞將直接對應用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響,好的數(shù)據(jù)庫結(jié)構(gòu)設計會減少數(shù)據(jù)庫的存儲量,數(shù)據(jù)庫的完整性和一致性比較高,系統(tǒng)具有較快的響應速度,簡化基于數(shù)據(jù)庫的應用

23、程序的實現(xiàn)等。由數(shù)據(jù)庫設計的重要性,人們提出了許多數(shù)據(jù)庫結(jié)構(gòu)設計的技術。但是這些設計方法和設計者的工作經(jīng)驗有很大關系。因此要從根本上解決所有數(shù)據(jù)庫結(jié)構(gòu)設計的問題,就需要多實踐,在實踐中積累經(jīng)驗和教訓,最終成為數(shù)據(jù)庫結(jié)構(gòu)設計的專家。3.1 數(shù)據(jù)庫需求分析數(shù)據(jù)庫結(jié)構(gòu)設計的一個非常重要的階段就是數(shù)據(jù)庫需求分析階段。在這個階段主要是收集基本數(shù)據(jù)以及數(shù)據(jù)處理流程,為以后進一步設計打下基礎。需求分析主要解決兩個問題:內(nèi)容要求:調(diào)查應用系統(tǒng)用戶所操作的數(shù)據(jù),決定的數(shù)據(jù)庫中存儲什么數(shù)據(jù)。處理要求:調(diào)查應用系統(tǒng)用戶要求對數(shù)據(jù)進行什么樣的處理,理數(shù)據(jù)庫中的各種數(shù)據(jù)之間的關系如何。解決這兩個問題的時候,程序設計人員

24、需要向應用系統(tǒng)的用戶做詳細調(diào)查,保證信息收集的完整性,否則有可能后面所做的所有工作都白白浪費?,F(xiàn)在軟件開發(fā)過程中最常用的需求分析技術是快速原型法,其實質(zhì)就是快速建立展示目標產(chǎn)品主要功能的軟件,在開發(fā)過程中根據(jù)用戶反饋對模型不斷修改、完善。因此其最重要的一方面體現(xiàn)在“快速”上,要盡可能快地建立原型。第二個方面是所構(gòu)造的原型必須可以改變,可以根據(jù)用戶反饋不斷更改、完善。在開發(fā)本系統(tǒng)過程中,基本遵循快速原型法原則,經(jīng)過初步調(diào)研后,先建立應用程序框架,然后根據(jù)與用戶的交流,在原型的基礎上不斷修改、完善,直到最后交付使用。這種方法最大的優(yōu)點是開發(fā)周期短、見效快、實用性強。在此系統(tǒng)中用戶中的管理員需求對火

25、車和火車票進行保存、更新,對普通用戶進行增加、刪除、查詢、修改;普通則要求對火車票的相關信息進行查詢、打印,將火車票準確及時的賣出給乘客。這就需要數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入與輸出,實現(xiàn)有組織地、動態(tài)地存儲大量關聯(lián)數(shù)據(jù),方便用戶訪問系統(tǒng)中的數(shù)據(jù),它與文件系統(tǒng)的重要區(qū)別是數(shù)據(jù)的充分共享,交叉訪問,與應用程序的高度獨立性。3.2 數(shù)據(jù)流圖結(jié)構(gòu)化方法使用數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的變化過程。數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信息的流向,并表示了系統(tǒng)的邏輯處理的功能,是一種功能模型。火車票管理系統(tǒng)的數(shù)據(jù)流圖如下圖3.1所示。圖3.1數(shù)據(jù)流

26、圖3.3 數(shù)據(jù)庫概念結(jié)構(gòu)設計這一階段是在需求分析的基礎上,設計出能夠滿足需求的各種實體,以及它們之間的關系,且為后面的邏輯結(jié)構(gòu)設計打下基礎。這個階段不用考慮所采用得數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、機器類型等問題。這個階段可用的工具很多。用得最多的是E-R圖(Entity-Relation,實體-關系圖),另外還有許多計算機輔助工具(Computer Aided Software, CASE)可以幫助進行設計。本系統(tǒng)都是采用E-R圖的方法進行數(shù)據(jù)庫概念結(jié)構(gòu)設計的,現(xiàn)在先對E-R圖的方法進行一下簡單的介紹。E-R圖是描述數(shù)據(jù)實體及其關系的一種直觀的描述工具。這種圖中有: 實體。用方框表示,方框內(nèi)為實體名

27、稱。在火車售票系統(tǒng)中的實體有用戶、車票。 實體的各種屬性。用橢圓表示,橢圓內(nèi)為屬性名稱。使用線段將其和相應的實體連接起來。概括起來,該系統(tǒng)中各實體的屬性如下:1) 用戶(用戶名,用戶號、用戶密碼、用戶權(quán)限);2) 車票(車票號,車票類型,票價);3) 火車(火車號,車型,始發(fā)時間,始發(fā)站,終點站,途經(jīng)站,運行時間,全程行程);4) 車站(車站號,車站名);5) 車廂(車廂號,類型,總票數(shù),剩余票數(shù));6) 實體之間的聯(lián)系。用菱形表示,菱形內(nèi)部為聯(lián)系的名稱。圖3.2 總E-R圖3.4 數(shù)據(jù)庫表的設計在做出數(shù)據(jù)庫的具體表之前,我們需要有相應的概念結(jié)構(gòu)。概念結(jié)構(gòu)是獨立于實際數(shù)據(jù)模型的,必須將其轉(zhuǎn)化為

28、邏輯結(jié)構(gòu)后才能進行數(shù)據(jù)庫應用設計。也就是要將上面的數(shù)據(jù)庫概念轉(zhuǎn)化為Access數(shù)據(jù)庫所支持的實際數(shù)據(jù)模型。在上面的實體與實體之間關系的基礎上,形成數(shù)據(jù)庫中的表格,以及各個表格之間的關系。具體關系模式如下: 用戶信息(用戶ID,登錄名,用戶密碼,用戶權(quán)限);車票(票號,車票類型,票價);車站信息(車站號,車站名);車廂信息(車廂編號,火車編號,類型,座位總數(shù),剩余數(shù)量);火車信息(火車號,車型,始發(fā)時間,始發(fā)站,終點站,途經(jīng)站,運行時間,全程行程);管理/賣票(票號,火車號);“火車票管理系統(tǒng)”的數(shù)據(jù)庫名稱為Trainticket,數(shù)據(jù)庫中包含6張表。下面根據(jù)系統(tǒng)的關系模式分別給出數(shù)據(jù)表概要說明

29、和主要數(shù)據(jù)表的結(jié)構(gòu),每個表格表示數(shù)據(jù)庫中的一個表。按照關系模式可分為Tickettable表描述車票信息(如表3.3所示)、Salesticket表描述賣票聯(lián)系(如表3.4所示)、Brailway表描述車廂信息(如表3.5所示)、Users表描述用戶信息(如表3.6所示)、Trainstage表描述車站信息(如表3.7所示)、Trainstation 表描述火車信息(如表3.8所示)。表3.3 Tickettable表字段名稱字段類型約束條件ttypeno車票號char(10)主鍵tickettype車票類型char(10)Not nullcharge票價float(8,2)Not null表

30、3.4 Salesticket 表字段名稱字段類型約束條件ticketno車票編號char(10)主鍵,參照tickettable表trainno火車編號char(10)主鍵,參照trainstation表表3.5 Brailway表字段名稱字段類型約束條件Trainno火車編號char(10)主鍵railwayno車廂號int(10)主鍵railwaytype類型char(10)Not nullseatcount總票數(shù)int(10)unsigned Not nulluseable剩余票數(shù)int(10)unsigned Not null表3.6 Users表字段名稱字段類型約束條件userno

31、用戶號碼int(10)主鍵username用戶名char(10)Not nulluserpassword用戶密碼char(10)Not nulluserpopedom用戶權(quán)限char(10)Not null表3.7 Trainstage 表字段名稱字段類型約束條件stagenameindex站號char(10)主鍵stagename站名varchar(50)Not null表3.8 Trainstation表字段名稱字段類型約束條件trainno火車編號char(10)主鍵traintype車型char(10)Not nullStartstage始發(fā)站varchar(45)Not null,參

32、照表trainstageArrivestage終點站varchar(45)Not null,參照表trainstageChangetrain途經(jīng)站varchar(45)Not null,參照表trainstagearrivetime到達時間char(10)Not nullexittime運行時間char(10)Not nullrunmileage全程行程int(10Not null第4章 系統(tǒng)功能實現(xiàn)4.1 登陸系統(tǒng)我們在數(shù)據(jù)庫中設計了管理員權(quán)限(admin)與普通用戶權(quán)限(user)。通過判斷輸入的用戶名和密碼判斷權(quán)限,然后登陸系統(tǒng)。登陸界面如圖4.1所示。 圖4.1 登陸界面具體代碼實現(xiàn)如

33、下:public void actionPerformed(ActionEvent e)Conn conn = new Conn();if(e.getSource()=_jbsub)/提交 String username = _jfid.getText().trim();/用戶名String userpassword = new String(_jfpass.getPassword().trim();if(conn.Login(username,userpassword)if(conn.ifadmin(username,userpassword,userpopedom)dispose();/關

34、閉該窗口并釋放資源JOptionPane.showMessageDialog(this,"歡迎管理員登錄!");new Manage(username,userpassword,userpopedom);/管理員管理事物類elsenew Trainticket(username,userpassword);/車票查詢及售票類dispose();elseJOptionPane.showMessageDialog(this,"登錄失敗,請檢查密碼是否正確!");if(e.getSource()=_jbcan)/取消System.exit(0);4.2 管理員

35、系統(tǒng)管理員權(quán)限是火車售票的最高權(quán)限,分為“用戶管理”和“票務統(tǒng)計”兩大塊,圖4.2為管理員登陸后的操作界面。圖4.2 管理員界面4.2.1 用戶管理在“用戶管理”模塊下可以進行“增加用戶”、“查找用戶”、“刪除用戶”、“修改用戶”操作。如圖4.3所示。圖4.3 用戶管理界面 查找用戶管理員通過輸入該用戶號來查找用戶,如查找用戶號為2的用戶,其輸入界面如圖4.4所示,運行結(jié)果如圖4.5所示。具體實現(xiàn)思想為:將從輸入界面輸入的用戶號傳遞給一條用于數(shù)據(jù)庫數(shù)據(jù)查找的SQL語句-select語句來查找出擁有該用戶號的用戶的信息然后返回給“查找用戶”類最后顯示在“用戶管理”界面。圖4.4 “查找用戶”輸入

36、界面圖4.5 查找用戶運行結(jié)果界面查詢用戶信息的代碼如下:public Checkuser(String name,String password,String popedom) super("查找用戶"); _jl = new JLabel("號碼"); _jt = new JTextField(10); _jb1 = new JButton("提交"); _jb2 = new JButton("返回"); jp1= new JPanel(); jp2= new JPanel(); username = name

37、; userpassword = password; userpopedom = popedom; if(conn.ifadmin(username,userpassword,userpopedom) else JOptionPane.showMessageDialog(this,"非法請求!"); System.exit(0); jp1.add(_jl); jp1.add(_jt); jp2.add(_jb1); jp2.add(_jb2); _jb1.addActionListener(this); _jb2.addActionListener(this); this.

38、add(jp1,"Center");this.add(jp2,"South"); pack(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); int W = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(); int H = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); this.setLocat

39、ion(W-this.getWidth()/2,(H-this.getHeight()/2); public Vector checkUser(String userno) throws SQLException/查詢用戶信息 Vector v = new Vector(); try String sql = "select * from user where userno = ?" try ps = con.prepareStatement(sql); ps.setInt(1, Integer.valueOf(userno); rs = ps.executeQuery()

40、; catch (SQLException e) System.out.println(e.getMessage(); while (rs.next() UserVo s = new UserVo(); s.setUserno(rs.getString("userno"); s.setUsername(rs.getString("username"); s.setUserpassword(rs.getString("userpassword"); s.setUserpopedom(rs.getString("userpope

41、dom"); v.add(s); catch (SQLException ex) Logger.getLogger(Conn.class.getName().log(Level.SEVERE, null, ex); finally ps.close(); con.close(); return v; 增加用戶管理員可以根據(jù)需要通過該功能增加一個或多個用戶,假設我們現(xiàn)在新增一個用戶,在“增加用戶”界面輸入用戶的信息之后,這些信息便會傳遞給一條用與插入數(shù)據(jù)的SQL語句-insert語句,增加用戶成功后便會在“用戶管理”界面的顯示區(qū)域內(nèi)顯示出刷新后的用戶信息。其輸入用戶信息界面及運行界面分

42、別如圖4.6和4.7所示。圖4.6 “增加用戶”輸入界面圖4.7 增加用戶運行結(jié)果界面增加用戶的代碼如下:public class Addusers extends JFrame implements ActionListener JTextField _jt1,_jt2,_jt3,_jt4;JButton _jb1,_jb2;JPanel jp1,jp2,jp3,jp4,jp5,jp6,jp7;JLabel _jl1,_jl2,_jl3,_jl4;Conn conn = new Conn();String username,userpassword,userpopedom; public A

43、ddusers(String name,String password,String popedom) super("添加用戶"); username = name; userpassword = password; userpopedom = popedom; if(conn.ifadmin(username,userpassword,userpopedom) else JOptionPane.showMessageDialog(this,"非法請求!"); System.exit(0); _jt1 = new JTextField(10); _jt2

44、 = new JTextField(10); _jt3 = new JTextField(10); _jt4 = new JTextField(10); _jb1 = new JButton("提交"); _jb2 = new JButton("返回"); jp1 = new JPanel(); jp2 = new JPanel(); jp3 = new JPanel(); jp4 = new JPanel(); jp5 = new JPanel(); jp6 = new JPanel(new GridLayout(4,1); _jl1 = new JL

45、abel("號 碼"); _jl2 = new JLabel("姓 名"); _jl3 = new JLabel("密 碼"); _jl4 = new JLabel("權(quán) 限"); jp1.add(_jl1); jp1.add(_jt1); jp2.add(_jl2); jp2.add(_jt2); jp3.add(_jl3); jp3.add(_jt3); jp4.add(_jl4); jp4.add(_jt4); jp5.add(_jb1); jp5.add(_jb2); jp6.add(jp1); jp6.a

46、dd(jp2); jp6.add(jp3); jp6.add(jp4); _jb1.addActionListener(this); _jb2.addActionListener(this); this.add(jp6,"Center");this.add(jp5,"South"); pack(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); int W = (int)Toolkit.getDefaultToolkit().getScreen

47、Size().getWidth(); int H = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); this.setLocation(W-this.getWidth()/2,(H-this.getHeight()/2); public void actionPerformed(ActionEvent e) if(e.getSource()=_jb1) String no = _jt1.getText().trim(); String name = _jt2.getText().trim(); String passw

48、ord = _jt3.getText().trim(); String popedom = _jt4.getText().trim(); if(no.equals("")|name.equals("")|password.equals("")|!popedom.equals("admin")&&!popedom.equals("user") JOptionPane.showMessageDialog(this,"資料不能為空或者n權(quán)限只能為“admin”,“user”!

49、"); else if(conn.isDigitString(no)/判斷用戶號碼中的是不是都是數(shù)字 int _no = Integer.parseInt(no); conn.adduser(_no,name,password,popedom); JOptionPane.showMessageDialog(this,"注冊成功!"); dispose(); JOptionPane.showMessageDialog(this,"歡迎管理員回來!"); new Usermanage(username,userpassword,userpopedo

50、m); else JOptionPane.showMessageDialog(this,"號碼不能是英文!"); if(e.getSource()=_jb2) dispose(); JOptionPane.showMessageDialog(this,"歡迎管理員回來!"); new Usermanage(username,userpassword,userpopedom); public void adduser(int number,String name,String password,String popedom)/向用戶表中添加用戶 Strin

51、g sql = "insert into user(userno,username,userpassword,userpopedom) values(?,?,?,?)" try ps = con.prepareStatement(sql);ps.setInt(1,number);ps.setString(2,name);ps.setString(3,password);ps.setString(4,popedom);ps.executeUpdate();/執(zhí)行插入語句并返回值為int類型ps.close();con.close(); catch(SQLException e) System.out.println (e.getMessage(); 刪除用戶管理員通過“查找用戶”功能查找到要刪除的用戶后在顯示區(qū)域選中該用戶或是直接在顯示區(qū)域選中要刪除的用戶點擊“刪除用戶”即可刪除該用戶并在顯示區(qū)列出刷新后的用戶信

溫馨提示

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

評論

0/150

提交評論