概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)_第1頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)_第2頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)_第3頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)_第4頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

機(jī)票預(yù)訂系統(tǒng)概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)1引言1.1編寫目的本文檔是機(jī)票預(yù)訂系統(tǒng)設(shè)計(jì)中重要的組成部分,編寫機(jī)票預(yù)訂系統(tǒng)的文檔是為了讓使用者和任務(wù)提出者更好的了解開發(fā)者的思維,編寫數(shù)據(jù)庫設(shè)計(jì)文檔的目的是:明確數(shù)據(jù)庫的表名、字段名等數(shù)據(jù)信息;熟悉系統(tǒng)流程,對(duì)各模塊畫出數(shù)據(jù)流程圖,并簡(jiǎn)單功能描述;懂得設(shè)計(jì)各種異常情況的處理,是系統(tǒng)的安全性達(dá)到最好;完成UML類圖設(shè)計(jì),并用偽碼設(shè)計(jì)其實(shí)現(xiàn)流程。通過此文檔來指導(dǎo)后期的數(shù)據(jù)庫腳本的開發(fā)。本文檔的讀者對(duì)象包括客戶、業(yè)務(wù)人員、需求分析人員、系統(tǒng)設(shè)計(jì)人員、開發(fā)人員、測(cè)試人員、用戶文檔編寫人和項(xiàng)目管理人員。1.2背景開發(fā)的系統(tǒng)的名稱:機(jī)票預(yù)訂系統(tǒng)。項(xiàng)目的任務(wù)提出者:軟件工程導(dǎo)論指導(dǎo)教師;項(xiàng)目的任務(wù)開發(fā)者:軟件6班肖雄、唐立雅、鄒胤屏、賀江平、何浩;項(xiàng)目的使用者:旅客、航空公司和旅游公司;項(xiàng)目的維護(hù)機(jī)構(gòu):開發(fā)此軟件的人員。項(xiàng)目的開發(fā)目的:機(jī)票預(yù)訂系統(tǒng)將給旅客提供查詢、改簽、取消訂票、機(jī)票預(yù)訂等功能,能更好的提高航空公司的工作效率、降低運(yùn)作成本;項(xiàng)目的實(shí)施背景:隨著人們生活水平的提高,旅游業(yè)和商務(wù)的發(fā)展,航空業(yè)的飛速發(fā)展,機(jī)票預(yù)訂系統(tǒng)也應(yīng)用而生,而相關(guān)的信息管理,如國(guó)內(nèi),國(guó)際機(jī)票的預(yù)定信息和機(jī)票政策信息等管理卻落后。靠以往的管理方式進(jìn)行管理,已經(jīng)不能適應(yīng)社會(huì)的快速發(fā)展。這樣就迫切需要一個(gè)高效率的管理方式來引導(dǎo)機(jī)票預(yù)訂服務(wù)業(yè)的發(fā)展。項(xiàng)目系統(tǒng)的發(fā)展、操作和維護(hù)的歷史:航空公司為給旅客乘機(jī)提供方便,需要開發(fā)一個(gè)機(jī)票預(yù)定系統(tǒng)。各個(gè)旅行社把預(yù)定機(jī)票的旅客信息(姓名、性別、工作單位、身份證號(hào)碼(護(hù)照號(hào)碼)、旅行時(shí)間、旅行始發(fā)地和目的地,航班艙位要求等)輸入到系統(tǒng)中,系統(tǒng)為旅客安排航班。當(dāng)旅客交付了預(yù)訂金后,系統(tǒng)打印出取票通知和帳單給旅客,旅客在飛機(jī)起飛前一天憑取票通知和帳單交款取票,系統(tǒng)核對(duì)無誤即打印出機(jī)票給旅客。此外航空公司為隨時(shí)掌握各個(gè)航班飛機(jī)的乘載情況,需要定期進(jìn)行查詢統(tǒng)計(jì),以便適當(dāng)調(diào)整。項(xiàng)目與其他軟件,系統(tǒng)的關(guān)系:本項(xiàng)目采用客戶機(jī)/服務(wù)器原理,客戶端的程序是建立在WindowsNT系統(tǒng)上以BorlandDelphi為開發(fā)軟件的應(yīng)用程序,服務(wù)器端采用Windows2000為操作系統(tǒng)的工作站,是采用MicrosoftSQLserver為開發(fā)軟件的數(shù)據(jù)庫服務(wù)程序。1.3定義管理員:負(fù)責(zé)航空訂票系統(tǒng)和軟件地維護(hù)以及管理更新的實(shí)際個(gè)人或帳號(hào)。航班:以航空器從事乘客、郵件或貨物的公共運(yùn)輸?shù)娜魏味ㄆ诤桨?,或客機(jī)航行的班次。客戶:使用網(wǎng)上訂票系統(tǒng)進(jìn)行交易的個(gè)人或群體。機(jī)票:人們乘坐飛機(jī)的一種憑證。機(jī)票預(yù)訂:根據(jù)用戶提供的起始航班地址來去頂用戶所需航班。SQLSERVER:系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。主鍵:數(shù)據(jù)庫表中的關(guān)鍵域。值互不相同。外部主鍵:數(shù)據(jù)庫表中與其他表主鍵關(guān)聯(lián)的域。1.4參考資料【1】軟件工程(第三版)王立福、孫艷春、劉學(xué)洋編著北京大學(xué)出版社;2總體設(shè)計(jì)2.1系統(tǒng)流程處理設(shè)計(jì)2.1.1購(gòu)票流程圖文字說明:在向售票員購(gòu)票時(shí),售票員登錄成功后,看客戶是否有沒有預(yù)訂該票,若是,則付清余款并修改訂單信息表;若沒有,則售票員通過客戶所需要的進(jìn)行查詢,若有客戶的想要的票則輸入客戶相應(yīng)的信息進(jìn)行購(gòu)票。開始開始售票員登錄登錄成功Y旅客是否預(yù)訂NYN直接查詢訂單付齊余款輸入相應(yīng)的相關(guān)信息有無對(duì)應(yīng)的航班?YN輸入客戶的身份證號(hào)、姓名、性別是否有效YN付全款購(gòu)買成功結(jié)束2.1.2文字說明:旅行社和機(jī)場(chǎng)管理員及售票員有權(quán)力進(jìn)行該項(xiàng)功能。首先能過查詢(輸入出發(fā)城市、到達(dá)城市、出發(fā)日期)得到旅客所需的航班后,并確定該航班是否還有自己想要的票,然后輸入自己的相關(guān)信息并進(jìn)行付款預(yù)訂。開始開始輸入出發(fā)城市、到達(dá)城市、出發(fā)日期是否有該航班及其票NY輸入客戶的身份證號(hào)、姓名、性別是否有效YN付預(yù)訂金額付款成功?訂票成功訂票不成功結(jié)束2.1.3文字說明:開始開始售票員登錄登錄成功YN查詢訂單是否過期輸出修改成功YN查詢符合條件的航班是否存在修改訂單信息表結(jié)束改簽失敗NY2.1.3該功能只有售票員有權(quán)力進(jìn)行此操作,得用身份證號(hào)和對(duì)應(yīng)的訂單號(hào)進(jìn)行查詢機(jī)票訂單信息后,觀察是否可以進(jìn)行退訂操作,若可則進(jìn)行修改并輸出修改成功,反之則結(jié)束操作。開始開始是否登錄成功Y售票員登錄N輸入身份證號(hào)和對(duì)應(yīng)的訂單號(hào)修改訂單信息表輸出修改成功結(jié)束判斷是否可修改YN2.2接口設(shè)計(jì)2.2.1用戶接口在用戶界面部分,根據(jù)需求分析的結(jié)果,用戶需要一個(gè)用戶友善界面。在界面設(shè)計(jì)上,應(yīng)做到簡(jiǎn)單明了,易于操作,并且要注意到界面的布局,應(yīng)突出的顯示重要以及出錯(cuò)信息。外觀上也要做到合理化,考慮到用戶多對(duì)WINDOW風(fēng)格較熟悉,應(yīng)盡量向這一方向靠攏。在設(shè)計(jì)語言上,將會(huì)使用MyEclipes中提供的Java語言進(jìn)行編程,向WINDOWS風(fēng)格靠近。并且服務(wù)器程序界面要做到操作簡(jiǎn)單,易于管理??偟膩碚f,就是使系統(tǒng)的用戶界面應(yīng)作到可靠性、簡(jiǎn)單性、易學(xué)習(xí)和使用。2.2.2外部本軟件不需要實(shí)現(xiàn)外部接口2.2.3內(nèi)部接口方面,各模塊之間采用涵數(shù)調(diào)用、參數(shù)傳遞、返回值的方式進(jìn)行傳遞。具體參數(shù)的結(jié)構(gòu)將在下面數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的內(nèi)容中說明。接口經(jīng)的信息將是以數(shù)據(jù)結(jié)構(gòu)封裝了的數(shù)據(jù),以參數(shù)傳遞或返回值的形工在各模塊間傳輸。2.2.4軟件服務(wù)器程序使用的是MyEclipes提供的對(duì)SQLSERVER的接口,進(jìn)行對(duì)數(shù)據(jù)庫的所有訪問。服務(wù)器程序上可使用SQLSERVER的對(duì)數(shù)據(jù)庫的備份命令,以做到對(duì)數(shù)據(jù)的保存。在網(wǎng)絡(luò)軟件接口方面,使用一種無差錯(cuò)的傳輸協(xié)議,采用滑動(dòng)窗口方式對(duì)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸及接收。2.2.5硬件在輸入方面,對(duì)于鍵盤、鼠標(biāo)的輸入,可以使用Java的標(biāo)準(zhǔn)輸入/輸出,對(duì)輸入行處理。在輸出方面,打印機(jī)的連接及使用,也可用的標(biāo)準(zhǔn)輸入/輸出對(duì)其進(jìn)行處理。在網(wǎng)絡(luò)傳輸部分,在網(wǎng)絡(luò)硬件部分,為了實(shí)現(xiàn)高速傳輸,將使用高速ATM。2.3數(shù)據(jù)庫設(shè)計(jì)2.3.1關(guān)系模型:(雙下劃線是主鍵、單下劃線是外鍵)航班信息表航班編號(hào)、所屬航空公司、出發(fā)城市、到達(dá)城市、出發(fā)時(shí)間、預(yù)計(jì)到達(dá)時(shí)間、座位總數(shù)旅客信息表身份證號(hào)、姓名、性別、工作單位、聯(lián)系電話訂單信息表訂單號(hào)編號(hào)、身份證號(hào)、航班編號(hào)、座位號(hào)、訂單金額、下單時(shí)間、訂單狀態(tài)售票員信息表售票員編號(hào)、登錄號(hào)、密碼、姓名、性別、聯(lián)系電話管理員信息表管理員編號(hào)、登錄號(hào)、密碼、姓名、性別、聯(lián)系電話E-R圖航班信息E-R圖航班信息表航班信息表(flights)航班編號(hào)航班編號(hào)航班編號(hào)預(yù)計(jì)到達(dá)時(shí)間出發(fā)時(shí)間到達(dá)城市出發(fā)城市所屬航空公司票價(jià)旅客信息E-R圖旅客信息表(旅客信息表(traveler)性別身份證號(hào)姓名聯(lián)系電話工作單位訂單信息E-R圖訂單信息表訂單信息表(order)訂單號(hào)編號(hào)座位號(hào)訂單金額訂單狀態(tài)下單時(shí)間售票員信息表(saler)售票售票員信息表(manage)售票員編號(hào)登錄號(hào)聯(lián)系電話性別姓名密碼管理員信息E-R圖管理員信息表管理員信息表(manage)管理員編號(hào)登錄號(hào)聯(lián)系電話性別姓名密碼總體信息E-R圖管理員信息表管理員信息表(manage)航班信息表(flights)訂單信息表(order)售票員信息表(manage)旅客信息表(traveler)查詢11查詢NMNM擁有包含N12.3.3表結(jié)構(gòu)航班信息表航班信息表(flights)字段名字段類型類型說明約束檢查是否為空字段含義flight_IDCHAR(15)字符型主鍵航班編號(hào)companyVARCHAR(20)字符型所屬航空公司startCityVARCHAR(20)字符型出發(fā)城市endCityVARCHAR(20)字符型到達(dá)城市startTimetimestamp日期型出發(fā)時(shí)間preEndTimetimestamp日期型預(yù)計(jì)到達(dá)時(shí)間totalSeatssmallint短整形座位總數(shù)reSeatssmallint短整形剩余座位數(shù)priceDecimal(6.2)浮點(diǎn)型票價(jià)旅客信息表(traveler)字段名字段類型類型說明約束檢查是否為空字段含義traveler_IDVARCHAR(19)字符型主鍵身份證號(hào)traveler_nameVARCHAR(10)字符型姓名traveler_sexsmallint短整型性別traveler_placeVARCHAR(20)字符型工作單位traveler_telint整型聯(lián)系電話訂單信息表(order)字段名字段類型類型說明約束檢查是否為空字段含義order_IDCHAR(15)字符型主鍵訂單號(hào)編號(hào)traveler_IDVARCHAR(19)字符型外鍵身份證號(hào)flight_IDCHAR(15)字符型外鍵航班編號(hào)seatNumsmallint短整型座位號(hào)order_moneyfloat浮點(diǎn)型訂單金額order_timetimestamp日期型下單時(shí)間order_statuCHAR(10)字符型訂單狀態(tài)售票員信息表(saler)字段名字段類型類型說明約束檢查是否為空字段含義saler_IDCHAR(15)字符型主鍵售票員編號(hào)saler_numVARCHAR(20)字符型登錄號(hào)saler_pwdint整型密碼saler_nameVARCHAR(10)字符型姓名saler_sexsmallint短整型性別saler_telint整型聯(lián)系電話管理員信息表(manage)字段名字段類型類型說明約束檢查是否為空字段含義manager_IDCHAR(15)字符型主鍵管理員編號(hào)managerr_numVARCHAR(20)字符型登錄號(hào)managerr_pwdint整型密碼managerr_nameVARCHAR(10)字符型姓名manager_sexsmallint短整型性別manager_telint整型聯(lián)系電話2.4運(yùn)行設(shè)計(jì)客戶機(jī)程序在有輸入時(shí)啟動(dòng)接收數(shù)據(jù)模塊,通過各模塊之間的調(diào)用,讀入并對(duì)輸入進(jìn)行格式化。在接收數(shù)據(jù)模塊得到充分的數(shù)據(jù)時(shí),將調(diào)用網(wǎng)絡(luò)傳輸模塊,將數(shù)據(jù)通過網(wǎng)絡(luò)送到服務(wù)器,并等待接收服務(wù)器返回的信息。接收到返回信息后隨即調(diào)用數(shù)據(jù)輸出模塊,對(duì)信息進(jìn)行處理,產(chǎn)生相應(yīng)的輸出。服務(wù)器程序的接收網(wǎng)絡(luò)數(shù)據(jù)模塊必須始終處于活動(dòng)狀態(tài)。接收到數(shù)據(jù)后,調(diào)用數(shù)據(jù)處理/查詢模塊對(duì)數(shù)據(jù)庫進(jìn)行訪問,完成后調(diào)用網(wǎng)絡(luò)發(fā)送模塊,將信息返回客戶機(jī)。2.5出錯(cuò)處理設(shè)計(jì)出錯(cuò)輸出信息:程序在運(yùn)行時(shí)主要會(huì)出現(xiàn)兩種錯(cuò)誤:1、由于輸入信息,或無法滿足要求時(shí)產(chǎn)生的錯(cuò)誤,稱為軟錯(cuò)誤。2、由于其他問題,如網(wǎng)絡(luò)傳輸超時(shí)等,產(chǎn)生的問題,稱為硬錯(cuò)誤。對(duì)于軟錯(cuò)誤,須在定票/領(lǐng)票操作成功判斷及輸入數(shù)據(jù)驗(yàn)證模塊由數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,判斷錯(cuò)誤類型,再生成相應(yīng)的錯(cuò)誤提示語句,送到輸出模塊中。對(duì)于硬錯(cuò)誤,可在出錯(cuò)的相應(yīng)模塊輸出簡(jiǎn)單的出錯(cuò)語句,并將程序重置。返回輸入階段。出錯(cuò)信息必須給出相應(yīng)的出錯(cuò)原因,如《全部班機(jī)座位已滿!》《查無此定位信息!》出錯(cuò)處理對(duì)策:所有的客戶機(jī)及服務(wù)器都必須安裝不間斷電源以防止停電或電壓不穩(wěn)造成的數(shù)據(jù)丟失的損失。若真斷電時(shí),客戶機(jī)上將不會(huì)有太大的影響,主要是服務(wù)器上:在斷電后恢復(fù)過程可采用SQLSERVER的日志文件,對(duì)其進(jìn)行ROLLBACK處理,對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。在網(wǎng)絡(luò)傳輸方面,可考慮建立一條成本較低的后備網(wǎng)絡(luò),以保證當(dāng)主網(wǎng)絡(luò)斷路時(shí)數(shù)據(jù)的通信。在硬件方面要選擇較可靠、穩(wěn)定的服務(wù)器機(jī)種,保證系統(tǒng)運(yùn)行時(shí)的可靠性。2.6安全保密設(shè)計(jì)由于數(shù)據(jù)的傳輸上需要通過網(wǎng)絡(luò)傳輸,為了客戶資料進(jìn)行保密,需要在網(wǎng)絡(luò)的傳輸過程中對(duì)數(shù)據(jù)進(jìn)行加密。這個(gè)工作主要是在準(zhǔn)備網(wǎng)絡(luò)包,及解開網(wǎng)絡(luò)包這兩個(gè)模塊完成,它們各對(duì)數(shù)據(jù)進(jìn)行加密及解密還原工作。在加密算法選擇上可以使用RSA加密算法2.6維護(hù)設(shè)計(jì)維護(hù)方面主要為對(duì)服務(wù)器上的數(shù)據(jù)庫數(shù)據(jù)進(jìn)行維護(hù)。可使用SQLSERVER的數(shù)據(jù)庫維護(hù)功能機(jī)制。例如,定期為數(shù)據(jù)庫進(jìn)行Backup,維護(hù)管理數(shù)據(jù)庫死鎖問題和維護(hù)數(shù)據(jù)庫內(nèi)數(shù)據(jù)的一致性等。3詳細(xì)設(shè)計(jì)3.1UML類圖設(shè)計(jì)Login.jspLogin.jspUsername登錄名Password密碼Logintype登錄類型checkUser()核對(duì)用戶信息submit()提交SearchFight.javastartCity出發(fā)城市endCity到達(dá)城市startDate出發(fā)日期fight_ID航班編號(hào)style查詢類型judgeStyle()判斷查詢類型findFight()BookTicket.javaBookTicket.javastartCity出發(fā)城市endCity到達(dá)城市startDate出發(fā)日期traveler_ID旅客證號(hào)traveler_name姓名order_ID訂單號(hào)fight_ID航班編號(hào)seatNum座位號(hào)order_money訂單金額order_time下單時(shí)間order_statu訂單狀態(tài)findFight()根據(jù)條件查詢航班checktraveler()核對(duì)旅客身份addOrder()添加訂單信息SearchOrder.javatraveler_ID旅客證號(hào)traveler_name姓名order_ID訂單號(hào)findOrder()BuyTicket.javaBuyTicket.javastartCity出發(fā)城市endCity到達(dá)城市startDate出發(fā)日期traveler_ID旅客證號(hào)traveler_name姓名order_ID訂單號(hào)fight_ID航班編號(hào)seatNum座位號(hào)order_money訂單金額order_time下單時(shí)間order_statu訂單狀態(tài)dealOrder()預(yù)訂處理findFight()根據(jù)條件查詢航班checktraveler()核對(duì)旅客身份addOrder()添加訂單信息ChangeTicket.javaorder_ID訂單號(hào)startCity出發(fā)城市endCity到達(dá)城市startDate出發(fā)日期fight_ID航班編號(hào)seatNum座位號(hào)order_money訂單金額order_time下單時(shí)間order_statu訂單狀態(tài)findOrder()findFight()根據(jù)條件查詢航班changeInf()ManageTraInf.javaManageTraInf.javatraveler_ID旅客證號(hào)traveler_name姓名traveler_sex性別traveler_palce工作單位traveler_tel聯(lián)系電話addTraInf()deleteTraInf()changeTraInf()findTraInf()ManageSaleInf.javasaler_ID售票員編號(hào)saler_num登錄號(hào)saler_name姓名saler_sex性別saler_tel聯(lián)系電話addSaleInf()deleteSaleInf()changeSaleInf()findSaleInf()ManageFigInf.javaManageFigInf.javafight_ID航班編號(hào)startCity出發(fā)城市endCity到達(dá)城市inputDate日期order_ID訂單號(hào)startTime出發(fā)時(shí)間preEndCity預(yù)計(jì)到達(dá)時(shí)間totalSeats座位總數(shù)price票價(jià)addFigInf()deleteFigInf()changeFigInf()findFigInfInf()findTraInf()BackTicket.javaorder_ID訂單號(hào)fight_ID航班編號(hào)seatNum座位號(hào)order_money訂單金額order_time下單時(shí)間order_statu訂單狀態(tài)checkOrder()changeOrder()3.1方法流程設(shè)計(jì)1、登錄procedureLoginbeginget(username)get(password)if(connectdatabaseseccess)beginexcuteSql(select*fromusewherename="username"andpwd="password")if(exist)forward(manager.jsp)elseprint"用戶或密碼不正確"endelseprint"數(shù)據(jù)庫連接失敗"end2、預(yù)訂完成后添加一條訂單信息procedureaddOrderbeginif(findFight()==true)fight_ID=findFight().fight_IDseatNum=findFight().seatNumorder_money=findFight().priceif(checktraveker()==true)traveler_ID=checktraveker().traveler_IDcreateorder_IDorder_time=getSystemTimeorder_statu="已預(yù)訂"if(connectdatabaseseccess)b

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論