數據庫課程設計 機票預定系統(tǒng)
《數據庫課程設計 機票預定系統(tǒng)》由會員分享,可在線閱讀,更多相關《數據庫課程設計 機票預定系統(tǒng)(20頁珍藏版)》請在裝配圖網上搜索。
1、 1 引言 1.1課題背景 隨著社會發(fā)展的不斷進步,民航事業(yè)的壯大,人們消費水平的提高,乘坐民航的消費者也越來越多,旅游也逐漸成為普通老百姓的生活組成部分,飛機票預定查詢系統(tǒng)在各機票預定網點中的作用也越顯重要。目前,我國一些旅行社和酒店的機票預定還停留在人工處理階段,這已經嚴重制約了工作效率,在計算機技術高速發(fā)展的今天,有必要引入高效的計算機系統(tǒng),來協(xié)助處理機票預定工作。因此,開發(fā)一套具有完整的存儲,查詢,核對,打印機票功能的實時機票預定系統(tǒng)勢在必行。 機票預定系統(tǒng)是為機場工作人員和客戶提供訂票退票等與機票相關內容和管理的系統(tǒng),它具有開放體系結構的、易擴充的、易維護的、具有良好人機界面
2、的優(yōu)點.它除克服了存儲乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實現(xiàn)航空公司的機票銷售的自動化。它為企業(yè)的決策層提供準確、精細、迅速的機票銷售信息,為乘客出行提供方便,便于機場工作人員對機票信息進行管理,提高了機場工作人員對機票管理的工作效率。 1.2課程設計目的 應用對數據庫系統(tǒng)原理的理論學習,通過上機實踐的方式將理論知識與實踐更好的結合起來,鞏固所學知識。 實踐和鞏固在課堂教學中學習的關于數據庫的有關知識,熟練掌握對于給定結構的數據庫的創(chuàng)建、基本操作、程序系統(tǒng)的建立和調試以及系統(tǒng)評價。 實踐和鞏固在課堂教學中學習的關于關系數據庫原理的有關知識和數據庫系統(tǒng)的建
3、立方法,熟練掌握對于給定實際問題,為了建立一個關系數據庫信息管理系統(tǒng),必須得經過系統(tǒng)調研、需求分析、概念設計、邏輯設計、物理設計、系統(tǒng)調試、維護以及系統(tǒng)評價的一般過程,為畢業(yè)設計打下基礎。 1.3課程設計任務 本課程設計任務是通過開發(fā)一個數據庫機票預訂系統(tǒng),學習數據庫系統(tǒng)的設計與開發(fā), SQL 相關的軟件為開發(fā)工具。通過對計算機硬件和軟件解決方案的論證,對應用領域進行調查分析,參考各種資料和進行數據庫系統(tǒng)開發(fā)實踐。在指導老師的幫助下,已經基本上成功地實現(xiàn)了設計任務書的要求,使得設計的數據庫系統(tǒng)能夠實現(xiàn)一般數據庫的管理。
4、 2系統(tǒng)結構分析 2.1需求分析 隨著社會發(fā)展的不斷進步,民航事業(yè)的壯大,人們消費水平的提高,乘坐民航的消費者也越來越多,機票的預定也越顯重要,航空公司為方便旅客出行,需開發(fā)一個機票預定系統(tǒng)。預定機票的旅客信息,包括姓名、性別、身份證號碼、旅行時間、旅行目的地,輸入機票預定系統(tǒng)的客戶端程序,系統(tǒng)經過查詢航空公司內的航班數據服務器后,為旅客安排航班,印出取票通知。旅客在飛機起飛前一天憑取票通知和帳單交款后取票,系統(tǒng)校對無誤后即印出機票給旅客。如果某方面出現(xiàn)問題,旅客可以持有效證件去飛機場退票。 經過綜合分析,確定了機票預訂系統(tǒng)主要包括以下功能:
5、 (1) 航班信息管理功能 主要實現(xiàn)航班的一些基本信息,航班編號、票價、起飛地、目的地、起飛時間的添加、修改、刪除和查詢。 (2) 機票信息管理功能 主要實現(xiàn)機票的一些基本信息,航班編號、座位號、座位信息、機票類型的添加、修改、刪除和查詢。 (3) 旅客信息管理功能 此模塊的主要實現(xiàn)旅客一些基本信息,姓名、性別、聯(lián)系方式、證件號碼、的查詢功能。 (4) 取票信息管理功能 此模塊用于取票信息的管理,包括對航班基本信息,航班編號等,旅客基本信息,旅客姓名、座位號、取票時間的查詢。 (5) 退票信息管理功能 此模塊用于退票信息的管理,包括對訂單號、旅客姓名、聯(lián)系方式、證件
6、號碼的查詢。 2.2功能模塊圖 (1) 根據上述的功能,可以設計出系統(tǒng)的總體功能模塊,如圖2.1所示。 機票預訂系統(tǒng) 航班信息管理模塊 機票信息管理模塊 退票信息管理模塊 取票信息管理模塊 旅客信息管理模塊 圖2.1 機票預訂系統(tǒng)功能模塊示意圖 (2) 取票信息管理模塊的細化功能模塊如圖2.2所示。 取票信息管理 旅客基本信息查詢 機票基本信息查詢 圖2.2 取票信息管理模塊 (3) 退票信息管理模塊的細化功能模塊如圖2.3所示。 取票信息管理 旅客基本信息查詢 訂單信息查詢 圖2.3 退票信息管理模塊 3系統(tǒng)數據庫設計 3.
7、1 概念結構設計 根據需求分析抽象出信息結構,可得該系統(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) 機票信息E-R圖,如圖3.3所示。 機票信息 航班編號 座位號 座位信息碼 機票類型 圖3.3機票信息E-R圖 (4) 取票通知E-R圖,如圖3.4所示。 取票通知 航班編號 旅客姓名 座位號 取票時間 證件號碼
8、 圖3.4取票通知E-R圖 (5) 退票信息E-R圖,如圖3.5所示。 退票信息 旅客姓名 訂單號 證件號碼碼 聯(lián)系方式 圖3.5退票信息E-R圖 根據分E-R圖和需求分析,可得到總E-R圖,如圖3.6所示。 n n n 1 1 m n 退票信息 航班信息 旅客 購買 包含 退票 取票通知 機票信息 購買 1 姓名 性別 證件號碼碼 聯(lián)系方式 起飛時間 航班編號 目的地 起飛地 票價 航班編號 座位號 機票類型 座位信息碼 航班編號 旅客姓名 座位號 取票時間 訂單號 旅客姓名 證件號碼碼
9、聯(lián)系方式 證件號碼 圖3.6系統(tǒng)總體結構E-R圖 3.2 邏輯結構設計 (1) E-R圖向關系模型的轉換 將圖3.6總體概念結構E-R圖轉化成關系模型。 退票信息(訂單號,旅客姓名,聯(lián)系方式,證件號碼) 旅客(旅客姓名,證件號碼,聯(lián)系方式,性別) 航班信息表(航班號,票價,起飛地,目的地,起飛時間) 取票通知單(旅客姓名,取票時間,證件號碼,航班號,座位號) 機票信息表(座位號,航班號,座位信息,機票類型) (2)數據模型的優(yōu)化 將轉化的關系模式進行優(yōu)化,最終達到第三范式。 ① 確定數據依賴 退票信息(訂單號,旅客
10、姓名,聯(lián)系方式,證件號碼)根據這個關系寫出數據依賴 訂單號→旅客姓名,訂單號→聯(lián)系方式,訂單號→證件號碼 旅客(旅客姓名,證件號碼,聯(lián)系方式,性別) 旅客姓名→證件號碼,旅客姓名→聯(lián)系方式,旅客姓名→性別 航班信息表(航班號,票價,起飛地,目的地,起飛時間) 航班號→起飛地,航班號→票價,航班號→目的地,航班號→起飛時間 取票通知單(旅客姓名,取票時間,航班號,座位號) 旅客姓名→取票時間,旅客姓名→航班號,旅客姓名→座位號, 機票信息表(座位號,航班號,座位信息,機票類型) (座位號,航班號)→艙位類型,(座位號,航班號,座位信息)→機票類型 ②對各關系模式間數據
11、依賴進行極小化處理,消除冗余 訂單號→旅客姓名,訂單號→聯(lián)系方式,訂單號→證件號碼 旅客姓名→性別,旅客姓名→取票時間,旅客姓名→航班號,旅客姓名→座位號,旅客姓名→機票類型 航班號→起飛地,航班號→目的地,航班號→起飛時間 (座位號,航班號)→座位信息 ③看這些模式是否符合要求,確定是否要對某些模式進行合并或者分解 最終分解成第三范式: (訂單號,聯(lián)系方式,證件號碼)(訂單號,旅客姓名)(旅客姓名,取票時間,性別,機票類型)(旅客姓名,航班號)(旅客姓名,座位號)(航班號,座位號,票價)(航班號,起飛地,目的地,起飛時間) (3)數據庫的結構 根據總體結構圖
12、設計機票預定系統(tǒng)基本表結構,其相應標的定義如下: 表3-1旅客信息系統(tǒng)的結構 字段名 數據類型 長度 約束 描述 passager name varchar 50 主鍵 旅客姓名 id decimal 不為空 證件號碼 telephone number decimal 不為空 聯(lián)系方式 sex varchar 50 不為空 性別 表3-2 退票信息系統(tǒng)的結構 字段名 數據類型 長度 約束 描述 order form decimal 主鍵 訂單號 passager name varchar 50 不為空
13、 旅客姓名 telephone number decimal 不為空 聯(lián)系方式 id varchar 50 不為空 證件號碼 表3-3 航班信息系統(tǒng)的結構 字段名 數據類型 長度 約束 描述 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)的結構 字段名 數據類型 長度 約束 描述 passager name varchar 50 主鍵 旅客姓名 get ticket time time 不為空 取票時間 flight number decimal 不為空 航班號 seat number decimal 不為空 座位號 flight ticket type varchar 50 不為空 機票類型 表3-5 航班座位信息表 字段名 數據類型 長度 約束 描述 seat number
15、 decimal 主鍵 座位號 flight number decimal 不為空 航班號 seat message varchar 50 不為空 座位信息 flight ticket type varchar 50 不為空 機票類型 3.3數據庫表的建立 根據數據庫的基本表結構分別建立六個基本表,這里給出具體的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數據庫編程 4.1數據庫的連接 創(chuàng)建函數ExecuteSQL () Public Function ExecuteSQL(By Val SQL_ As String,MsgString As String)_ As ADODB.Recordset //此函數功能為執(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 //打開與數據庫的連接 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 //切斷與數據庫的連接 Set rst = Nothing Set cnn = Nothing Exit Function 4.2系統(tǒng)功能模塊設
22、計 設計類clsPlane,包含兩個類成員和三個類方法,類的兩個成員定義如下。 Public txtSQL As String Dim mrc As ADODB.Recordset 類的 ShowData 方法在窗口加載的時候用來顯示數據庫中的相關記錄,這里通過控件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、錄進行更新,并在更新前首先判斷是否具有相同的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"已經存在此編號的記錄!",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登陸界面 在已經完成了程序各個功能模塊的創(chuàng)建,現(xiàn)在來運行整個系統(tǒng)。運行程序,出現(xiàn)如圖5.1所示的登錄窗口。 圖5.1登錄窗口 5.2各功能模塊的實現(xiàn) 輸入用戶名和密碼后,進入系統(tǒng)。選擇“航線信息管理|航線信息”菜單,將顯示所有航線信息,如圖5.2所示。 圖5.2航線信息列表 在航線信息列表中單擊“查詢”按鈕,并設置查詢內容,如圖5.3所示。 圖5.3查詢航線信息窗體 航線查詢結果如圖5.4所示。 圖5.4
29、航線信息查詢結果 在機票信息列表中單擊“添加”按鈕,出現(xiàn)如圖5.5所示的窗體,輸入訂票信息。 圖5.5 添加訂票信息 單擊“保存”按鈕,出現(xiàn)如圖5.6所示的對話框提示訂票成功。 圖5.6 訂票提示信息 在機票信息列表中,單擊“查詢”按鈕,出現(xiàn)如圖5.7所示的窗體,輸入查詢內容,可以得到剩余機票信息。 圖5.7 機票信息查詢窗體 查詢結果如圖5.8所示。 圖5.8 機票信息查詢結果 6結束語 經過兩周的努力,本次課程設計終于完成了。通過這次課程設計,使我對數據庫這門課程有了更深入的理解,數據庫
30、是一門實踐性較強的課程。通過這次課程設計,我明白了理論與實際應用相結合的重要性,掌握并熟練運用SQL語句以及VB 的應用,提高了我的綜合運用所學知識的能力。 在本次課程設計和過程中,由于時間不是很長,再加上要求獨立完成,系統(tǒng)需求分析上可能不是很全面,程序中還存在很多缺,希望老師能給予批評和指導。經過這次課程設計,我的知識得到了很大提高,經驗也更加豐富。希望能在今后的不斷的學習中和努力中,把程序做得更好。最后,感謝指導老師所給我的幫助。 參考文獻 [1] 陳艷峰,高文姬,邵蘊秋.《Visual Basic數據庫項目案例導航》.北京:清華大學出版社,2004 [2] 尹建民,張海卿 著.《Visual Basic.NET入門與進階》.北京:清華大學出版社,2004 [3] 鄭阿奇,顧韻華,黃群 著.《Visual Basic實用教程》.北京:電子工業(yè)出版社,2004 [4] 王珊,陳紅.《數據庫系統(tǒng)原理教程》.清華大學出版社,1998,7
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。