




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、需求分析在構(gòu)造系統(tǒng)時(shí),首先從需求出發(fā)構(gòu)造數(shù)據(jù)庫表,然后再由數(shù)據(jù)庫表結(jié)合需求劃分系統(tǒng)功能模塊。這樣,就把一個(gè)大的系統(tǒng)分解成了幾個(gè)小系統(tǒng),使整個(gè)系統(tǒng)的功能更加詳細(xì)易于理解,同時(shí)易于實(shí)現(xiàn)系統(tǒng)的整體設(shè)計(jì)。本系統(tǒng)分為車次查詢和車票預(yù)定兩個(gè)部分,其所能實(shí)現(xiàn)的功能:1、 實(shí)現(xiàn)對(duì)車次基本信息的查詢。2、 實(shí)現(xiàn)售票的基本操作。1、業(yè)務(wù)需求分析從實(shí)際角度出發(fā),提供方便快捷的火車站站查詢和訂票服務(wù),提高車次的編組效率,使車次資源得到充分利用,并可以提高車票的出售效率降低工作人員的工作量。2.功能需求 在數(shù)據(jù)操作界面需要有車次信息操作窗口,這需要有實(shí)現(xiàn)車次查詢、車票出售的功能。這是火車訂票系統(tǒng)的基本功能,只有實(shí)現(xiàn)
2、了這幾個(gè)功能一個(gè)火車訂票系統(tǒng)才能開始運(yùn)作,在本系統(tǒng)中實(shí)現(xiàn)了車票的基本信息操作。 功能列表編號(hào) 功能名稱 功能說明1、1車次查詢對(duì)車次基本信息的查詢2、1售票對(duì)車票銷售/預(yù)定的操作3、數(shù)據(jù)需求系統(tǒng)處理的對(duì)象有:城市信息:城市編號(hào)、城市名稱。車次信息:列車區(qū)間編號(hào)、車次號(hào)、起始站、目的站、出發(fā)時(shí)間、到站時(shí)間。座位信息:列車區(qū)間編號(hào)、日期、車廂號(hào)、座位號(hào)。 系統(tǒng)總數(shù)據(jù)流圖用戶系統(tǒng)車次信息系統(tǒng)站站查詢、車票預(yù)定城市、火車和座位信息數(shù)據(jù)字典數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)IDC-1TrainID車次號(hào)Char(255)IDC-2CityID城市名Char(255)IDC-3TrainInterval
3、ID列車區(qū)間號(hào)Int(10)IDC-4Start起始站Int(10)IDC-5End目的站Int(10)IDC-6Starttime發(fā)車時(shí)間Char(255)IDC-7Arrivetime到站時(shí)間Char(255)IDC-8Date日期Char(255)IDC-9CarNo車廂號(hào)Int(10)IDC-10SeatNo座位號(hào)Int(10)二、概要設(shè)計(jì)(一)、系統(tǒng)組成系統(tǒng)開發(fā)的總體目標(biāo)是實(shí)現(xiàn)火車票訂/售票管理的系統(tǒng)化和自動(dòng)化,保證車票售出和車次信息管理的正確無誤,確保車票和車次管理的有效。在本系統(tǒng)中分為兩個(gè)部分,分別是車次信息功能部分和車票預(yù)定功能部分,主要任務(wù)是對(duì)車次信息、車票信息等操作及外理。
4、本系統(tǒng)為C/S結(jié)構(gòu),運(yùn)行平臺(tái)為jdk1.6以上版本,以及MySQL6.0以上版本。下圖為系統(tǒng)結(jié)構(gòu)圖: 系統(tǒng)框架火車訂票系統(tǒng)車票預(yù)定或出售車次查詢(二)、數(shù)據(jù)庫設(shè)計(jì)1、概念結(jié)構(gòu)設(shè)計(jì)概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程。根據(jù)之前的分析,數(shù)據(jù)庫應(yīng)該主要的實(shí)體有列車區(qū)間和車票信息。經(jīng)過分析得到的實(shí)體關(guān)系圖如下車票列車區(qū)間號(hào)日期車廂號(hào)座位號(hào)列車區(qū)間列車區(qū)間號(hào)起始站目的站車次號(hào)到站時(shí)間發(fā)車時(shí)間 實(shí)體關(guān)系圖2、邏輯結(jié)構(gòu)設(shè)計(jì)將E-R圖轉(zhuǎn)化為關(guān)系模式:在設(shè)計(jì)時(shí),將一個(gè)1:n聯(lián)系的單方主碼加至多方。一個(gè)實(shí)體單獨(dú)轉(zhuǎn)化成一張表。根據(jù)設(shè)計(jì)原則和以上E-R圖,轉(zhuǎn)化為以下兩張表:列
5、車區(qū)間表:TrainInterval(列車區(qū)間號(hào) 、車次號(hào)、起始站、目的站、發(fā)車時(shí)間、到站時(shí)間)車票表:ticket(列車區(qū)間號(hào)、日期、車廂號(hào)、座位號(hào))3、數(shù)據(jù)庫模式定義列車區(qū)間表 列名 數(shù)據(jù)類型 取值約束 可否為空 說明TrainIntervalID Int(10) 不可 列車區(qū)間號(hào)StartInt(10) 不可 起始站End Int(10)不可 目的站Starttime Char(30) 可 發(fā)車時(shí)間Arrivetime Char(30) 可 到站時(shí)間TrainID Money(8) 可 車次號(hào)車票表 列名 數(shù)據(jù)類型 取值約束 可否為空 說明TrainIntervalID Int(10)
6、不可 列車區(qū)間號(hào)DateChar(255) 不可 日期CarNo Int(10)不可 車廂號(hào)SeatNo Int(10) 不可 座位號(hào)三、數(shù)據(jù)庫實(shí)施階段數(shù)據(jù)庫的建立是直接在Navicat中建的,數(shù)據(jù)庫中的表清單在之前已經(jīng)列出。在JFrame界面建立數(shù)據(jù)庫不同功能模塊的操作對(duì)話框,并對(duì)所有對(duì)話框中的控件按鈕進(jìn)行設(shè)定,添加成員函數(shù),使得數(shù)據(jù)庫的程序框架確定下來。接著是對(duì)成員函數(shù)進(jìn)行補(bǔ)充使程序能順利運(yùn)行并能連上數(shù)據(jù)庫,對(duì)連接模塊進(jìn)行補(bǔ)充設(shè)定,使得基本權(quán)限確定。在數(shù)據(jù)庫建立過程中通過索引實(shí)現(xiàn)了對(duì)表的快捷查詢。連接數(shù)據(jù)庫時(shí)要注意程序中數(shù)據(jù)庫各項(xiàng)屬性的定義描述,避免其與數(shù)據(jù)庫表中的屬性值產(chǎn)生差異。四、詳細(xì)
7、設(shè)計(jì)1、模塊簡(jiǎn)述本火車訂票管理系統(tǒng)主要的所有模塊主要是分為數(shù)據(jù)庫連接查詢模塊、網(wǎng)絡(luò)連接模塊、線程管理模塊的三個(gè)部分,下面對(duì)三個(gè)個(gè)部分進(jìn)行再分類,共有7個(gè)模塊。模塊類別 模塊編號(hào) 模塊名稱公共模塊模塊功能網(wǎng)絡(luò)連接T1Net.ClientPackets用戶封包處理T2Net.ServerPackets系統(tǒng)封包處理線程管理T3ServerThread系統(tǒng)監(jiān)聽線程T4ClientThread用戶連入線程數(shù)據(jù)庫查詢T5CityTable城市信息查詢T6TrainIntervalTable列車區(qū)間查詢T7SeatTable車票預(yù)定功能2、模塊設(shè)計(jì)下面給出模塊的背景,設(shè)計(jì)思路,算法,界面以及關(guān)鍵代碼,比較簡(jiǎn)
8、單的模塊就僅給界面設(shè)計(jì)以及算法設(shè)計(jì),比較復(fù)雜的模塊會(huì)給出相應(yīng)的數(shù)據(jù)庫有關(guān)觸發(fā)器,存儲(chǔ)過程和視圖的設(shè)計(jì)。而本系統(tǒng)重的模塊主要有一下幾個(gè):1、 數(shù)據(jù)庫查詢模塊此模塊提供系統(tǒng)與數(shù)據(jù)庫的數(shù)據(jù)交換,包括從數(shù)據(jù)庫中讀入城市信息、列車區(qū)間信息和座位信息,并在用戶線程連接的時(shí)候提供城市列表;在查詢車次信息時(shí)從列車區(qū)間中搜索出所有滿足條件的列車信息;在訂票時(shí)首先判斷是否在兩個(gè)城市之間的所有列車區(qū)間上都有同樣的座位是空著的,暫時(shí)不能提供拼票功能。a. 城市信息查詢 當(dāng)一個(gè)用戶線程連接被建立的時(shí)候,系統(tǒng)將預(yù)設(shè)在數(shù)據(jù)庫中的城市信息發(fā)送到用戶端,保證用戶輸入的城市是系統(tǒng)可識(shí)別的。在之后的C/S通信中城市將用其編號(hào)代替。
9、public class CityTable private static CityTable _instance = null;private ArrayList<City> _cityList = new ArrayList<City>();private HashMap<String, City> _cityMap = new HashMap<String, City>();private CityTable() public static CityTable getInstance() public ArrayList<City&g
10、t; getCityList() public int getCityNum() public City getCityByName(String name) b. 列車區(qū)間查詢提供簡(jiǎn)單的站站查詢功能。并為訂票功能模塊提供專門的列車區(qū)間查詢功能。public class TrainIntervalTable private static TrainIntervalTable _instance = null;private ArrayList<TrainInterval> _trainIntervalList = new ArrayList<TrainInterval>
11、();private ArrayList<TrainInterval> _startList = new ArrayList<TrainInterval>();private ArrayList<TrainInterval> _endList = new ArrayList<TrainInterval>();private TrainIntervalTable() public static TrainIntervalTable getInstance() public synchronized ArrayList<TrainInterva
12、l> getTrain(int start, int end, int mask) / used in SeatTable.bookSeatpublic ArrayList<TrainInterval> getTrainIntervalList(int start, int end, String trainID) c. 座位信息查詢提供訂票功能,自動(dòng)判斷是不是存在這樣一個(gè)座位:它在起始站和目標(biāo)站之間的所有列車區(qū)間上都沒有被占用。如果有,返回一個(gè)座位信息,并在數(shù)據(jù)庫中添加訂票信息。否則返回一個(gè)不存在的座位。public class SeatTable private stat
13、ic SeatTable _instance = null;private boolean isTaken = new Boolean Config.TRAIN_CAR_NUM Config.TRAIN_SEAT_NUM ;private SeatTable() public static SeatTable getInstance() public synchronized Seat bookSeat(int start, int end, String trainID, String date) 2、 網(wǎng)絡(luò)連接模塊使用Socket連接。提供封包處理類(PacketHandler),根據(jù)不同
14、的封包編號(hào)交與對(duì)應(yīng)的用戶封包處理類(ClientPacket)處理,并向發(fā)送用戶封包的用戶線程發(fā)送處理結(jié)果的系統(tǒng)封包類(ServerPacket)作為回應(yīng)。a. PacketHandler:封包分類器public class PacketHandler private ClientThread _client;public PacketHandler(ClientThread client) public void handlePacket(byte data) int opcode = data0 & 0xFF;switch(opcode) default:b. ClientPack
15、et:用戶封包處理父類ClientBasePacket,包含從socket管道中讀取各類型數(shù)據(jù)的方法。詳見代碼。c. ServerPacket:處理結(jié)果封包父類ServerBasePacket,提供往socket管道中寫入各類型數(shù)據(jù)的方法。詳見代碼。3、 線程管理模塊提供線程的管理和各類基本操作。a. 線程池GeneralThreadPool線程的創(chuàng)建和管理類,使用java標(biāo)準(zhǔn)線程池。實(shí)際上在本系統(tǒng)中幾乎沒有用到此類的功能。b. ServerThread唯一的一個(gè)系統(tǒng)線程,用于端口監(jiān)聽。當(dāng)出現(xiàn)新的socket連接時(shí),為它建立一個(gè)單獨(dú)的用戶線程。public class ServerThread
16、 extends Thread private static ServerThread _instance;private ServerSocket _serverSocket;private ServerThread() public static ServerThread getInstance() public void initialize() throws Exception Overridepublic void run() while (true) try /監(jiān)聽端口,創(chuàng)建用戶線程 catch (IOException e) c. ClientThread被ServerThread創(chuàng)建的用戶線程,對(duì)應(yīng)于一個(gè)socket連接,在各自的用戶線程中處理查詢和訂票的功能。public class ClientThread implements Runnableprivate Socket _socket;private InputStream _in;private OutputStream _out;private PacketHandler _handler;publ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開題報(bào)告:體育專業(yè)升學(xué)考試制度改革研究
- 輻射事故信息發(fā)布與應(yīng)急措施
- 2025年力與變形檢測(cè)儀合作協(xié)議書
- 醫(yī)療機(jī)構(gòu)疫情防控措施優(yōu)化
- 商用空調(diào)系統(tǒng)組織與安裝措施
- 幼兒園志愿者安全培訓(xùn)計(jì)劃
- 副班主任班級(jí)文化建設(shè)計(jì)劃
- 智能建筑綜合維修崗位職責(zé)
- 河道整治中的生態(tài)保護(hù)措施
- 2025年高效的鍋爐鼓、引風(fēng)機(jī)合作協(xié)議書
- 20240912工業(yè)互聯(lián)網(wǎng)及其驅(qū)動(dòng)的制造業(yè)數(shù)字化轉(zhuǎn)型
- 2024小米在線測(cè)評(píng)題
- 水果店員工手冊(cè)的標(biāo)準(zhǔn)模板
- 霧化吸入療法合理用藥專家共識(shí)(2024版)解讀
- 幼兒園小班安全《不在馬路上玩?!氛n件
- HAF102-2016核動(dòng)力廠設(shè)計(jì)安全規(guī)定
- 【天潤(rùn)乳業(yè)公司盈利質(zhì)量現(xiàn)狀分析10000字】
- 走近湖湘紅色人物智慧樹知到答案2024年湖南工商大學(xué)
- 手術(shù)室管理和工作課件
- 第16課《動(dòng)物面具》(課件)-美術(shù)三年級(jí)下冊(cè)
- 行政許可決定審批表(事務(wù)文書模板)
評(píng)論
0/150
提交評(píng)論