數(shù)據(jù)庫課程設(shè)計 機(jī)票預(yù)定系統(tǒng)
《數(shù)據(jù)庫課程設(shè)計 機(jī)票預(yù)定系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫課程設(shè)計 機(jī)票預(yù)定系統(tǒng)(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 1 引言 1.1課題背景 隨著社會發(fā)展的不斷進(jìn)步,民航事業(yè)的壯大,人們消費水平的提高,乘坐民航的消費者也越來越多,旅游也逐漸成為普通老百姓的生活組成部分,飛機(jī)票預(yù)定查詢系統(tǒng)在各機(jī)票預(yù)定網(wǎng)點中的作用也越顯重要。目前,我國一些旅行社和酒店的機(jī)票預(yù)定還停留在人工處理階段,這已經(jīng)嚴(yán)重制約了工作效率,在計算機(jī)技術(shù)高速發(fā)展的今天,有必要引入高效的計算機(jī)系統(tǒng),來協(xié)助處理機(jī)票預(yù)定工作。因此,開發(fā)一套具有完整的存儲,查詢,核對,打印機(jī)票功能的實時機(jī)票預(yù)定系統(tǒng)勢在必行。 機(jī)票預(yù)定系統(tǒng)是為機(jī)場工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面
2、的優(yōu)點.它除克服了存儲乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實現(xiàn)航空公司的機(jī)票銷售的自動化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場工作人員對機(jī)票信息進(jìn)行管理,提高了機(jī)場工作人員對機(jī)票管理的工作效率。 1.2課程設(shè)計目的 應(yīng)用對數(shù)據(jù)庫系統(tǒng)原理的理論學(xué)習(xí),通過上機(jī)實踐的方式將理論知識與實踐更好的結(jié)合起來,鞏固所學(xué)知識。 實踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于數(shù)據(jù)庫的有關(guān)知識,熟練掌握對于給定結(jié)構(gòu)的數(shù)據(jù)庫的創(chuàng)建、基本操作、程序系統(tǒng)的建立和調(diào)試以及系統(tǒng)評價。 實踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于關(guān)系數(shù)據(jù)庫原理的有關(guān)知識和數(shù)據(jù)庫系統(tǒng)的建
3、立方法,熟練掌握對于給定實際問題,為了建立一個關(guān)系數(shù)據(jù)庫信息管理系統(tǒng),必須得經(jīng)過系統(tǒng)調(diào)研、需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、系統(tǒng)調(diào)試、維護(hù)以及系統(tǒng)評價的一般過程,為畢業(yè)設(shè)計打下基礎(chǔ)。 1.3課程設(shè)計任務(wù) 本課程設(shè)計任務(wù)是通過開發(fā)一個數(shù)據(jù)庫機(jī)票預(yù)訂系統(tǒng),學(xué)習(xí)數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā), SQL 相關(guān)的軟件為開發(fā)工具。通過對計算機(jī)硬件和軟件解決方案的論證,對應(yīng)用領(lǐng)域進(jìn)行調(diào)查分析,參考各種資料和進(jìn)行數(shù)據(jù)庫系統(tǒng)開發(fā)實踐。在指導(dǎo)老師的幫助下,已經(jīng)基本上成功地實現(xiàn)了設(shè)計任務(wù)書的要求,使得設(shè)計的數(shù)據(jù)庫系統(tǒng)能夠?qū)崿F(xiàn)一般數(shù)據(jù)庫的管理。
4、 2系統(tǒng)結(jié)構(gòu)分析 2.1需求分析 隨著社會發(fā)展的不斷進(jìn)步,民航事業(yè)的壯大,人們消費水平的提高,乘坐民航的消費者也越來越多,機(jī)票的預(yù)定也越顯重要,航空公司為方便旅客出行,需開發(fā)一個機(jī)票預(yù)定系統(tǒng)。預(yù)定機(jī)票的旅客信息,包括姓名、性別、身份證號碼、旅行時間、旅行目的地,輸入機(jī)票預(yù)定系統(tǒng)的客戶端程序,系統(tǒng)經(jīng)過查詢航空公司內(nèi)的航班數(shù)據(jù)服務(wù)器后,為旅客安排航班,印出取票通知。旅客在飛機(jī)起飛前一天憑取票通知和帳單交款后取票,系統(tǒng)校對無誤后即印出機(jī)票給旅客。如果某方面出現(xiàn)問題,旅客可以持有效證件去飛機(jī)場退票。 經(jīng)過綜合分析,確定了機(jī)票預(yù)訂系統(tǒng)主要包括以下功能:
5、 (1) 航班信息管理功能 主要實現(xiàn)航班的一些基本信息,航班編號、票價、起飛地、目的地、起飛時間的添加、修改、刪除和查詢。 (2) 機(jī)票信息管理功能 主要實現(xiàn)機(jī)票的一些基本信息,航班編號、座位號、座位信息、機(jī)票類型的添加、修改、刪除和查詢。 (3) 旅客信息管理功能 此模塊的主要實現(xiàn)旅客一些基本信息,姓名、性別、聯(lián)系方式、證件號碼、的查詢功能。 (4) 取票信息管理功能 此模塊用于取票信息的管理,包括對航班基本信息,航班編號等,旅客基本信息,旅客姓名、座位號、取票時間的查詢。 (5) 退票信息管理功能 此模塊用于退票信息的管理,包括對訂單號、旅客姓名、聯(lián)系方式、證件
6、號碼的查詢。 2.2功能模塊圖 (1) 根據(jù)上述的功能,可以設(shè)計出系統(tǒng)的總體功能模塊,如圖2.1所示。 機(jī)票預(yù)訂系統(tǒng) 航班信息管理模塊 機(jī)票信息管理模塊 退票信息管理模塊 取票信息管理模塊 旅客信息管理模塊 圖2.1 機(jī)票預(yù)訂系統(tǒng)功能模塊示意圖 (2) 取票信息管理模塊的細(xì)化功能模塊如圖2.2所示。 取票信息管理 旅客基本信息查詢 機(jī)票基本信息查詢 圖2.2 取票信息管理模塊 (3) 退票信息管理模塊的細(xì)化功能模塊如圖2.3所示。 取票信息管理 旅客基本信息查詢 訂單信息查詢 圖2.3 退票信息管理模塊 3系統(tǒng)數(shù)據(jù)庫設(shè)計 3.
7、1 概念結(jié)構(gòu)設(shè)計 根據(jù)需求分析抽象出信息結(jié)構(gòu),可得該系統(tǒng)的E-R圖。 (1) 旅客E-R圖,如圖3.1所示。 旅客 姓名 性別 證件號碼碼 聯(lián)系方式 圖3.1旅客E-R圖 (2) 航班信息E-R圖,如圖3.2所示。 航班信息 起飛時間 航班編號 目的地 票價 起飛地 圖3.2航班信息E-R圖 (3) 機(jī)票信息E-R圖,如圖3.3所示。 機(jī)票信息 航班編號 座位號 座位信息碼 機(jī)票類型 圖3.3機(jī)票信息E-R圖 (4) 取票通知E-R圖,如圖3.4所示。 取票通知 航班編號 旅客姓名 座位號 取票時間 證件號碼
8、 圖3.4取票通知E-R圖 (5) 退票信息E-R圖,如圖3.5所示。 退票信息 旅客姓名 訂單號 證件號碼碼 聯(lián)系方式 圖3.5退票信息E-R圖 根據(jù)分E-R圖和需求分析,可得到總E-R圖,如圖3.6所示。 n n n 1 1 m n 退票信息 航班信息 旅客 購買 包含 退票 取票通知 機(jī)票信息 購買 1 姓名 性別 證件號碼碼 聯(lián)系方式 起飛時間 航班編號 目的地 起飛地 票價 航班編號 座位號 機(jī)票類型 座位信息碼 航班編號 旅客姓名 座位號 取票時間 訂單號 旅客姓名 證件號碼碼
9、聯(lián)系方式 證件號碼 圖3.6系統(tǒng)總體結(jié)構(gòu)E-R圖 3.2 邏輯結(jié)構(gòu)設(shè)計 (1) E-R圖向關(guān)系模型的轉(zhuǎn)換 將圖3.6總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型。 退票信息(訂單號,旅客姓名,聯(lián)系方式,證件號碼) 旅客(旅客姓名,證件號碼,聯(lián)系方式,性別) 航班信息表(航班號,票價,起飛地,目的地,起飛時間) 取票通知單(旅客姓名,取票時間,證件號碼,航班號,座位號) 機(jī)票信息表(座位號,航班號,座位信息,機(jī)票類型) (2)數(shù)據(jù)模型的優(yōu)化 將轉(zhuǎn)化的關(guān)系模式進(jìn)行優(yōu)化,最終達(dá)到第三范式。 ① 確定數(shù)據(jù)依賴 退票信息(訂單號,旅客
10、姓名,聯(lián)系方式,證件號碼)根據(jù)這個關(guān)系寫出數(shù)據(jù)依賴 訂單號→旅客姓名,訂單號→聯(lián)系方式,訂單號→證件號碼 旅客(旅客姓名,證件號碼,聯(lián)系方式,性別) 旅客姓名→證件號碼,旅客姓名→聯(lián)系方式,旅客姓名→性別 航班信息表(航班號,票價,起飛地,目的地,起飛時間) 航班號→起飛地,航班號→票價,航班號→目的地,航班號→起飛時間 取票通知單(旅客姓名,取票時間,航班號,座位號) 旅客姓名→取票時間,旅客姓名→航班號,旅客姓名→座位號, 機(jī)票信息表(座位號,航班號,座位信息,機(jī)票類型) (座位號,航班號)→艙位類型,(座位號,航班號,座位信息)→機(jī)票類型 ②對各關(guān)系模式間數(shù)據(jù)
11、依賴進(jìn)行極小化處理,消除冗余 訂單號→旅客姓名,訂單號→聯(lián)系方式,訂單號→證件號碼 旅客姓名→性別,旅客姓名→取票時間,旅客姓名→航班號,旅客姓名→座位號,旅客姓名→機(jī)票類型 航班號→起飛地,航班號→目的地,航班號→起飛時間 (座位號,航班號)→座位信息 ③看這些模式是否符合要求,確定是否要對某些模式進(jìn)行合并或者分解 最終分解成第三范式: (訂單號,聯(lián)系方式,證件號碼)(訂單號,旅客姓名)(旅客姓名,取票時間,性別,機(jī)票類型)(旅客姓名,航班號)(旅客姓名,座位號)(航班號,座位號,票價)(航班號,起飛地,目的地,起飛時間) (3)數(shù)據(jù)庫的結(jié)構(gòu) 根據(jù)總體結(jié)構(gòu)圖
12、設(shè)計機(jī)票預(yù)定系統(tǒng)基本表結(jié)構(gòu),其相應(yīng)標(biāo)的定義如下: 表3-1旅客信息系統(tǒng)的結(jié)構(gòu) 字段名 數(shù)據(jù)類型 長度 約束 描述 passager name varchar 50 主鍵 旅客姓名 id decimal 不為空 證件號碼 telephone number decimal 不為空 聯(lián)系方式 sex varchar 50 不為空 性別 表3-2 退票信息系統(tǒng)的結(jié)構(gòu) 字段名 數(shù)據(jù)類型 長度 約束 描述 order form decimal 主鍵 訂單號 passager name varchar 50 不為空
13、 旅客姓名 telephone number decimal 不為空 聯(lián)系方式 id varchar 50 不為空 證件號碼 表3-3 航班信息系統(tǒng)的結(jié)構(gòu) 字段名 數(shù)據(jù)類型 長度 約束 描述 flight number decimal 主鍵 航班號 take off place varchar 50 不為空 起飛地 destination varchar 50 不為空 目的地 flight time time 不為空 起飛時間 price int 不為空 票價 flight type decim
14、al 不為空 航班型號 表3-4取票通知單系統(tǒng)的結(jié)構(gòu) 字段名 數(shù)據(jù)類型 長度 約束 描述 passager name varchar 50 主鍵 旅客姓名 get ticket time time 不為空 取票時間 flight number decimal 不為空 航班號 seat number decimal 不為空 座位號 flight ticket type varchar 50 不為空 機(jī)票類型 表3-5 航班座位信息表 字段名 數(shù)據(jù)類型 長度 約束 描述 seat number
15、 decimal 主鍵 座位號 flight number decimal 不為空 航班號 seat message varchar 50 不為空 座位信息 flight ticket type varchar 50 不為空 機(jī)票類型 3.3數(shù)據(jù)庫表的建立 根據(jù)數(shù)據(jù)庫的基本表結(jié)構(gòu)分別建立六個基本表,這里給出具體的SQL語句如下。 (1)創(chuàng)建旅客信息表passager create table passager ( passager name varchar(50) primary key, id decimal not null,
16、telephone number decimal not null, sex varchar(50) not null ); (2)創(chuàng)建退票信息表cancellations_message create table cancellations_message ( order form decimal primary key, passager name varchar(50) not null, telephone number decimal not null, id varchar(50) not null ); (3)創(chuàng)建航班信息表flight_message
17、 create table flight_message ( flight number decimal primary key, take off place varchar(50) not null, destination varchar(50) not null, flight time time not null, flight type decimal not null, price int not null ); (4)創(chuàng)建取票通知表ticket_message create table get ticket_message ( passager n
18、ame varchar(50) primary key, get ticket time time not null, flight number decimal not null, seat number decimal not null,, flight ticket type varchar(50) not null ); (5)創(chuàng)建座位信息表flight_seat_message create table flight_seat_message ( seat number decimal primary key, flight number decimal
19、not null, seat message varchar(50) not null, flight ticket type varchar(50) not null ); 4數(shù)據(jù)庫編程 4.1數(shù)據(jù)庫的連接 創(chuàng)建函數(shù)ExecuteSQL () Public Function ExecuteSQL(By Val SQL_ As String,MsgString As String)_ As ADODB.Recordset //此函數(shù)功能為執(zhí)行SQL語句,返回記錄集對象 Dim cnn As ADODB.Connection Dim rst A
20、s ADODB.Recordset Dim sTokens() As String On Error Go To ExecuteSQL_Error //錯誤處理 sTokens()=Split(SQL) Set cnn =New ADODB.Connection cnn.open CONN //打開與數(shù)據(jù)庫的連接 If InStr("INSERT,DELETE,UPDATE",_ //插入記錄 UCase$(sToken(0))) Then Cnn.Execute SQL MsgString=sTokens(0) & _ "查詢成功" Els
21、e Set rst =New ADODB.Recordset Rst.Open Trim$(SQL),cnn,_ adO penKeyset,_ adLockOptimistic Set ExecuteSQL = rst MsgString ="查詢到" & rst.RecordCount & _" 條記錄" End If ExecuteSQL_Exit //切斷與數(shù)據(jù)庫的連接 Set rst = Nothing Set cnn = Nothing Exit Function 4.2系統(tǒng)功能模塊設(shè)
22、計 設(shè)計類clsPlane,包含兩個類成員和三個類方法,類的兩個成員定義如下。 Public txtSQL As String Dim mrc As ADODB.Recordset 類的 ShowData 方法在窗口加載的時候用來顯示數(shù)據(jù)庫中的相關(guān)記錄,這里通過控件MSFlexGrid控件來實現(xiàn)。具體代碼如下。 Public Sub ShowData(By Val msgList As MSFlexGrid) Dim j As Integer Dim i As Integer Set mrc = ExecuteSQL(txtSQL,MsgText) With msgL
23、ist .Row = 1 Do While Not mrc.EOF .Rows = .Rows + 1 For i =1 To mrc.Fields.Count If Not IsNull(Trim(mrc.Fields(i – 1))) Then Select Case mrc.Fields(i – 1).Type Case adDBDate .TextMatrix(.Rows – 1,i0 = Form
24、at(mrc.Fields(i – 1) & "","yyyy-mm-dd") Case Else .T extMatrix(.Rows – 1,i0 = mrc.Fields(i – 1) & "" End Select End If Next i Mrc.MoveNext Loop End With Mrc.Close End Sub 類的 Save 方法用于保存記錄,以及在修改記錄后對記
25、錄進(jìn)行更新,并在更新前首先判斷是否具有相同的ID記錄,方法的具體代碼如下。 Public Sub Save(txtString() As String) Dim intCount As Integer Dim MsgText As String //添加判斷是否有相同的ID記錄 If gintPmod = 1 Then TxtSQL = "select * from flight_message where flight number='" & Trim(txtString(0)) & "" Set mrc = Execute
26、SQL(txtSQL,MsgText) If mrc.EOF = False Then MsgBox"已經(jīng)存在此編號的記錄!",vbOKOnly + vbExclamation, "警告" Exit Sub End If Mrc.Close End If //先刪除已有記錄 txtSQL = "delete from flight_message where flight number='" & Trim(txtString(0)) &"" Set mrc
27、 = ExecuteSQL(txtSQL,MsgText) //再加入行記錄 txtSQL = "select * from flight_message" Set mrc = ExecuteSQL(txtSQL,MsgText) mrc.AddNew For intCount = 0 To 7 Mrc.Fields(intCount) = txtString(intCount) Next intCount mrc.Update mrc.Close End Sub Delete方法用于刪除記錄
28、,代碼比較簡單,在此不作過多贅述。 5功能測試 5.1登陸界面 在已經(jīng)完成了程序各個功能模塊的創(chuàng)建,現(xiàn)在來運行整個系統(tǒng)。運行程序,出現(xiàn)如圖5.1所示的登錄窗口。 圖5.1登錄窗口 5.2各功能模塊的實現(xiàn) 輸入用戶名和密碼后,進(jìn)入系統(tǒng)。選擇“航線信息管理|航線信息”菜單,將顯示所有航線信息,如圖5.2所示。 圖5.2航線信息列表 在航線信息列表中單擊“查詢”按鈕,并設(shè)置查詢內(nèi)容,如圖5.3所示。 圖5.3查詢航線信息窗體 航線查詢結(jié)果如圖5.4所示。 圖5.4
29、航線信息查詢結(jié)果 在機(jī)票信息列表中單擊“添加”按鈕,出現(xiàn)如圖5.5所示的窗體,輸入訂票信息。 圖5.5 添加訂票信息 單擊“保存”按鈕,出現(xiàn)如圖5.6所示的對話框提示訂票成功。 圖5.6 訂票提示信息 在機(jī)票信息列表中,單擊“查詢”按鈕,出現(xiàn)如圖5.7所示的窗體,輸入查詢內(nèi)容,可以得到剩余機(jī)票信息。 圖5.7 機(jī)票信息查詢窗體 查詢結(jié)果如圖5.8所示。 圖5.8 機(jī)票信息查詢結(jié)果 6結(jié)束語 經(jīng)過兩周的努力,本次課程設(shè)計終于完成了。通過這次課程設(shè)計,使我對數(shù)據(jù)庫這門課程有了更深入的理解,數(shù)據(jù)庫
30、是一門實踐性較強(qiáng)的課程。通過這次課程設(shè)計,我明白了理論與實際應(yīng)用相結(jié)合的重要性,掌握并熟練運用SQL語句以及VB 的應(yīng)用,提高了我的綜合運用所學(xué)知識的能力。 在本次課程設(shè)計和過程中,由于時間不是很長,再加上要求獨立完成,系統(tǒng)需求分析上可能不是很全面,程序中還存在很多缺,希望老師能給予批評和指導(dǎo)。經(jīng)過這次課程設(shè)計,我的知識得到了很大提高,經(jīng)驗也更加豐富。希望能在今后的不斷的學(xué)習(xí)中和努力中,把程序做得更好。最后,感謝指導(dǎo)老師所給我的幫助。 參考文獻(xiàn) [1] 陳艷峰,高文姬,邵蘊(yùn)秋.《Visual Basic數(shù)據(jù)庫項目案例導(dǎo)航》.北京:清華大學(xué)出版社,2004 [2] 尹建民,張海卿 著.《Visual Basic.NET入門與進(jìn)階》.北京:清華大學(xué)出版社,2004 [3] 鄭阿奇,顧韻華,黃群 著.《Visual Basic實用教程》.北京:電子工業(yè)出版社,2004 [4] 王珊,陳紅.《數(shù)據(jù)庫系統(tǒng)原理教程》.清華大學(xué)出版社,1998,7
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。