九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

機(jī)票預(yù)訂系統(tǒng) 課程設(shè)計(jì) 數(shù)據(jù)庫

上傳人:紫** 文檔編號(hào):54372152 上傳時(shí)間:2022-02-14 格式:DOC 頁數(shù):30 大?。?60KB
收藏 版權(quán)申訴 舉報(bào) 下載
機(jī)票預(yù)訂系統(tǒng) 課程設(shè)計(jì) 數(shù)據(jù)庫_第1頁
第1頁 / 共30頁
機(jī)票預(yù)訂系統(tǒng) 課程設(shè)計(jì) 數(shù)據(jù)庫_第2頁
第2頁 / 共30頁
機(jī)票預(yù)訂系統(tǒng) 課程設(shè)計(jì) 數(shù)據(jù)庫_第3頁
第3頁 / 共30頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《機(jī)票預(yù)訂系統(tǒng) 課程設(shè)計(jì) 數(shù)據(jù)庫》由會(huì)員分享,可在線閱讀,更多相關(guān)《機(jī)票預(yù)訂系統(tǒng) 課程設(shè)計(jì) 數(shù)據(jù)庫(30頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1概述應(yīng)用對(duì)數(shù)據(jù)庫技術(shù)及應(yīng)用的理論學(xué)習(xí),通過上機(jī)實(shí)踐的方式將理論知識(shí)與實(shí)踐更好的結(jié)合起來,鞏固所學(xué)知識(shí)。實(shí)踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于數(shù)據(jù)庫的有關(guān)知識(shí),熟練掌握對(duì)于給定實(shí)訓(xùn)任務(wù)的數(shù)據(jù)庫的創(chuàng)建、基本操作、程序系統(tǒng)的建立和調(diào)試以及系統(tǒng)評(píng)價(jià)。實(shí)踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于關(guān)系數(shù)據(jù)庫原理的有關(guān)知識(shí)和數(shù)據(jù)庫系統(tǒng)的建立方法,熟練掌握對(duì)于給定實(shí)際問題,為了建立一個(gè)關(guān)系數(shù)據(jù)庫信息管理系統(tǒng),必須得經(jīng)過系統(tǒng)調(diào)研、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、系統(tǒng)調(diào)試、維護(hù)以及系統(tǒng)評(píng)價(jià)的一般過程,為將來在學(xué)習(xí)工作中的應(yīng)用打下基礎(chǔ)。1.1課程實(shí)訓(xùn)目的與要求課程實(shí)訓(xùn)的目的是:本次課程實(shí)訓(xùn)的主要任務(wù)是運(yùn)用在數(shù)據(jù)庫原理及應(yīng)用

2、課程中學(xué)到的理論知識(shí)來指導(dǎo)實(shí)踐,了解數(shù)據(jù)庫設(shè)計(jì)過程及其實(shí)現(xiàn)方法,學(xué)會(huì)用數(shù)據(jù)庫建模的方法解決實(shí)際問題。掌握數(shù)據(jù)庫原理、范式理論、規(guī)范化等相關(guān)知識(shí),掌握數(shù)據(jù)庫分析設(shè)計(jì)的具體步驟與基本方法,掌握SQL語言的基本語法和基本內(nèi)容,并能運(yùn)用SQL Server 2005實(shí)現(xiàn)設(shè)計(jì)數(shù)據(jù)庫,掌握SQL Server 2005數(shù)據(jù)庫、表、視圖、約束、索引、存儲(chǔ)過程、觸發(fā)器的使用,利用一種前臺(tái)開發(fā)工具實(shí)現(xiàn)數(shù)據(jù)庫管理系統(tǒng)的開發(fā),實(shí)現(xiàn)特定的業(yè)務(wù)功能。通過綜合課程實(shí)訓(xùn),提高實(shí)踐動(dòng)手技能,培養(yǎng)獨(dú)立分析分析問題和解決問題的能力。課程實(shí)訓(xùn)的要求:本次課程實(shí)訓(xùn)的選題比較靈活,可以是自主選題,也可以自己選擇比較感興趣的題目,重點(diǎn)是

3、完成數(shù)據(jù)庫的分析、設(shè)計(jì)與實(shí)現(xiàn),題目要符合數(shù)據(jù)庫原理及應(yīng)用的要求,并且具備一定的難度和深度;除此以外,可以從備選題目之外選擇一個(gè)題目完成。1.2機(jī)票預(yù)訂系統(tǒng)在所給的實(shí)訓(xùn)題目中,我選擇的是機(jī)票預(yù)訂系統(tǒng)的設(shè)計(jì)。1.2.1系統(tǒng)功能的基本要求每個(gè)航班信息的輸入;每個(gè)航班的坐位信息的輸入;當(dāng)旅客進(jìn)行機(jī)票預(yù)定時(shí),輸入旅客基本信息,系統(tǒng)為旅客安排航班,打印取票通知和帳單;旅客在飛機(jī)起飛前一天憑取票通知交款取票;旅客能夠退訂機(jī)票;能夠查詢每個(gè)航班的預(yù)定情況、計(jì)算航班的滿座率。1.2.2 數(shù)據(jù)庫要求在數(shù)據(jù)庫中至少應(yīng)該包含下列數(shù)據(jù)表:航班信息表;航班坐位情況表;旅客訂票信息表;取票通知表;帳單。2需求分析2.1背景

4、分析隨著社會(huì)發(fā)展的不斷進(jìn)步,民航事業(yè)的壯大,人們消費(fèi)水平的提高,乘坐民航的消費(fèi)者也越來越多,旅游也逐漸成為普通老百姓的生活組成部分,飛機(jī)票預(yù)定查詢系統(tǒng)在各機(jī)票預(yù)定網(wǎng)點(diǎn)中的作用也越顯重要。目前,我國一些旅行社和酒店的機(jī)票預(yù)定還停留在人工處理階段,這已經(jīng)嚴(yán)重制約了工作效率,在計(jì)算機(jī)技術(shù)高速發(fā)展的今天,有必要引入高效的計(jì)算機(jī)系統(tǒng),來協(xié)助處理機(jī)票預(yù)定工作。因此,開發(fā)一套具有完整的存儲(chǔ),查詢,核對(duì),打印機(jī)票功能的實(shí)時(shí)機(jī)票預(yù)定系統(tǒng)勢(shì)在必行。機(jī)票預(yù)定系統(tǒng)是為機(jī)場(chǎng)工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).它除克服了存儲(chǔ)乘客信息少,

5、查詢效率低下等問題外,更重要的是其安全性,可靠性,實(shí)現(xiàn)航空公司的機(jī)票銷售的自動(dòng)化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場(chǎng)工作人員對(duì)機(jī)票信息進(jìn)行管理,提高了機(jī)場(chǎng)工作人員對(duì)機(jī)票管理的工作效率。2.2功能分析經(jīng)過綜合分析,確定了機(jī)票預(yù)訂系統(tǒng)主要包括以下功能:(1) 航班信息管理功能主要實(shí)現(xiàn)航班的一些基本信息,航班編號(hào)、票價(jià)、起飛地、目的地、起飛時(shí)間的添加、修改、刪除和查詢。(2) 航班座位信息管理功能主要實(shí)現(xiàn)航班座位,也就是機(jī)票的一些基本信息,航班編號(hào)、座位號(hào)、座位信息、機(jī)票類型的添加、修改、刪除和查詢。(3) 旅客信息管理功能此模塊的主要實(shí)現(xiàn)旅客一些基本信

6、息,姓名、性別、聯(lián)系方式、證件號(hào)碼、的查詢功能。(4) 取票信息管理功能此模塊用于取票信息的管理,包括對(duì)航班基本信息,航班編號(hào)等,旅客基本信息,旅客姓名、座位號(hào)、取票時(shí)間的查詢。(5) 退票信息管理功能此模塊用于退票信息的管理,包括對(duì)訂單號(hào)、旅客姓名、聯(lián)系方式、證件號(hào)碼的查詢。2.3數(shù)據(jù)詞典經(jīng)分析之后,本系統(tǒng)要用到五個(gè)基本表:航班信息表,航班座位情況表,旅客訂票信息表,取票和賬單信息表,退票信息表。數(shù)據(jù)結(jié)構(gòu)定義如表:數(shù)據(jù)結(jié)構(gòu)名含義說明組成航班信息表定義了航班的有關(guān)信息航班號(hào),起飛地,目的地,起飛時(shí)間,票價(jià)航班座位情況表定義了航班座位有關(guān)信息航班號(hào),座位號(hào),座位信息,機(jī)票類型旅客訂票信息表定義了

7、旅客有關(guān)信息旅客姓名,身份證號(hào),性別,電話號(hào)取票和賬單信息表定義了取票通知相關(guān)有關(guān)信息旅客姓名,取票時(shí)間,航班號(hào),座位號(hào),機(jī)票類型退票信息表定義了退票旅客的有關(guān)信息旅客姓名,身份證號(hào),訂單號(hào),電話號(hào)機(jī)票預(yù)訂系統(tǒng)的主要數(shù)據(jù)字典如下:(1)航班信息 數(shù)據(jù)流來源:航班管理 數(shù)據(jù)流去向:航班安排 數(shù)據(jù)項(xiàng)組成:航班號(hào),起飛地,目的地,起飛時(shí)間,票價(jià)(2)航班座位情況數(shù)據(jù)流來源:航班管理和訂票情況數(shù)據(jù)流去向:旅客座位數(shù)據(jù)項(xiàng)組成:航班號(hào),座位號(hào),座位信息,機(jī)票類型(3)旅客信息 數(shù)據(jù)流來源:確定旅客信息后管理人員輸入系統(tǒng)數(shù)據(jù)流去向:安排顧客的航班 數(shù)據(jù)項(xiàng)組成:旅客姓名,身份證號(hào),性別,電話號(hào)(4)取票通知和

8、賬單信息 數(shù)據(jù)流來源:打印取票通知和賬單 數(shù)據(jù)流去向:核對(duì)訂票信息 數(shù)據(jù)項(xiàng)組成:旅客姓名,取票時(shí)間,航班號(hào),座位號(hào),機(jī)票類型(5)退票信息數(shù)據(jù)流來源:旅客退票申請(qǐng)數(shù)據(jù)流去向:訂票信息申請(qǐng)退票數(shù)據(jù)項(xiàng)組成:旅客姓名,身份證號(hào),訂單號(hào),電話號(hào)3概念結(jié)構(gòu)設(shè)計(jì)3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟1 概念結(jié)構(gòu)設(shè)計(jì)的方法概念設(shè)計(jì)階段我采用自底向上的方法,即自頂向下的進(jìn)行需求分析,然后再自底向上的進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)。對(duì)已經(jīng)細(xì)化到無法再分的階段逐步集成在一起,最終合成一個(gè)全局概念模式。2 概念結(jié)構(gòu)設(shè)計(jì)的步驟第一步是進(jìn)行局部視圖的設(shè)計(jì):由于高層的數(shù)據(jù)流圖只能反映系統(tǒng)的概貌,而中層流圖能較好的反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)

9、組成。因此我們先逐一的設(shè)計(jì)分E-R圖。第二步是進(jìn)行視圖的集成:各子系統(tǒng)的E-R圖設(shè)計(jì)好之后,下一步就是要將所有的分E-R圖合成一個(gè)系統(tǒng)的總E-R圖,一般有兩個(gè)方式,多個(gè)分E-R圖一次集成,另一種是一次集成兩個(gè)分E-R圖。我想采用一次集成兩個(gè)分E-R圖的方式。3.2局部E-R圖設(shè)計(jì)根據(jù)需求分析抽象出信息結(jié)構(gòu),可得該系統(tǒng)的E-R圖。(1) 航班信息E-R圖,如圖3.1所示。航班信息起飛時(shí)間航班編號(hào)目的地票價(jià)起飛地圖3.1航班信息E-R圖(2) 航班座位信息E-R圖,如圖3.2所示。航班座位信息航班編號(hào)座位號(hào)座位信息碼機(jī)票類型圖3.2機(jī)票信息E-R圖 (3) 旅客E-R圖,如圖3.3所示。旅客身份證

10、號(hào)姓名電話號(hào)性別圖3.3旅客E-R圖(4) 取票通知E-R圖,如圖3.4所示。取票通知和賬單航班編號(hào)旅客姓名座位號(hào)取票時(shí)間機(jī)票類型圖3.4取票通知E-R圖(5) 退票信息E-R圖,如圖3.5所示。退票信息旅客姓名訂單號(hào)身份證號(hào)電話號(hào)圖3.5退票信息E-R圖3.3總體概念E-R圖結(jié)構(gòu)經(jīng)過逐步細(xì)化再進(jìn)行每?jī)蓚€(gè)一集成初步形成一個(gè)E-R圖,最后得到圖3.6總體概念結(jié)構(gòu)E-R圖。nnn11mn退票信息航班信息旅客購買包含退票取票通知和賬單航班座位信息購買1姓名性別身份證號(hào)電話號(hào)起飛時(shí)間航班編號(hào)目的地起飛地票價(jià)航班編號(hào)座位號(hào)機(jī)票類型座位信息碼航班編號(hào)旅客姓名座位號(hào)取票時(shí)間訂單號(hào)旅客姓名身份證號(hào)碼電話號(hào)機(jī)票

11、類型圖3.6系統(tǒng)總體結(jié)構(gòu)E-R圖4邏輯結(jié)構(gòu)設(shè)計(jì)4.1 邏輯結(jié)構(gòu)設(shè)計(jì)(1) E-R圖向關(guān)系模型的轉(zhuǎn)換將圖3.6總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型。 退票信息(訂單號(hào),旅客姓名,聯(lián)系方式,證件號(hào)碼)旅客(旅客姓名,證件號(hào)碼,聯(lián)系方式,性別) 航班信息表(航班號(hào),票價(jià),起飛地,目的地,起飛時(shí)間) 取票通知單(旅客姓名,取票時(shí)間,證件號(hào)碼,航班號(hào),座位號(hào))機(jī)票信息表(座位號(hào),航班號(hào),座位信息,機(jī)票類型)(2)數(shù)據(jù)模型的優(yōu)化將轉(zhuǎn)化的關(guān)系模式進(jìn)行優(yōu)化,最終達(dá)到第三范式。 確定數(shù)據(jù)依賴退票信息(訂單號(hào),旅客姓名,聯(lián)系方式,證件號(hào)碼)根據(jù)這個(gè)關(guān)系寫出數(shù)據(jù)依賴訂單號(hào)旅客姓名,訂單號(hào)聯(lián)系方式,訂單號(hào)證件號(hào)碼旅客(

12、旅客姓名,證件號(hào)碼,聯(lián)系方式,性別)旅客姓名證件號(hào)碼,旅客姓名聯(lián)系方式,旅客姓名性別 航班信息表(航班號(hào),票價(jià),起飛地,目的地,起飛時(shí)間)航班號(hào)起飛地,航班號(hào)票價(jià),航班號(hào)目的地,航班號(hào)起飛時(shí)間取票通知單(旅客姓名,取票時(shí)間,航班號(hào),座位號(hào))旅客姓名取票時(shí)間,旅客姓名航班號(hào),旅客姓名座位號(hào),機(jī)票信息表(座位號(hào),航班號(hào),座位信息,機(jī)票類型)(座位號(hào),航班號(hào))艙位類型,(座位號(hào),航班號(hào),座位信息)機(jī)票類型對(duì)各關(guān)系模式間數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余訂單號(hào)旅客姓名,訂單號(hào)聯(lián)系方式,訂單號(hào)證件號(hào)碼旅客姓名性別,旅客姓名取票時(shí)間,旅客姓名航班號(hào),旅客姓名座位號(hào),旅客姓名機(jī)票類型航班號(hào)起飛地,航班號(hào)目的地

13、,航班號(hào)起飛時(shí)間(座位號(hào),航班號(hào))座位信息看這些模式是否符合要求,確定是否要對(duì)某些模式進(jìn)行合并或者分解 最終分解成第三范式: (訂單號(hào),聯(lián)系方式,證件號(hào)碼)(訂單號(hào),旅客姓名)(旅客姓名,取票時(shí)間,性別,機(jī)票類型)(旅客姓名,航班號(hào))(旅客姓名,座位號(hào))(航班號(hào),座位號(hào),票價(jià))(航班號(hào),起飛地,目的地,起飛時(shí)間)(3)數(shù)據(jù)庫的結(jié)構(gòu)根據(jù)總體結(jié)構(gòu)圖設(shè)計(jì)機(jī)票預(yù)定系統(tǒng)基本表結(jié)構(gòu),其相應(yīng)標(biāo)的定義如下:表4-1 航班信息系統(tǒng)的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度約束描述flight numberdecimal主鍵航班號(hào)take off placevarchar50不為空起飛地destinationvarchar50不為

14、空目的地flight timetime不為空起飛時(shí)間priceint不為空票價(jià)表4-2 航班座位信息表字段名數(shù)據(jù)類型長(zhǎng)度約束描述seat numberdecimal主鍵座位號(hào)flight numberdecimal不為空航班號(hào)seat messagevarchar50不為空座位信息flight ticket typevarchar50不為空機(jī)票類型表4-3旅客信息系統(tǒng)的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度約束描述passager namevarchar50主鍵旅客姓名iddecimal不為空身份證號(hào)telephone numberdecimal不為空聯(lián)系方式sexvarchar50不為空性別表4-4取票和賬

15、單信息系統(tǒng)的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度約束描述passager name varchar50主鍵旅客姓名get ticket timetime不為空取票時(shí)間flight numberdecimal不為空航班號(hào)seat numberdecimal不為空座位號(hào)flight ticket typevarchar50不為空機(jī)票類型表4-5 退票信息系統(tǒng)的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度約束描述order form decimal主鍵訂單號(hào)passager namevarchar50不為空旅客姓名telephone numberdecimal不為空聯(lián)系方式idvarchar50不為空證件號(hào)碼4.2數(shù)據(jù)庫表的建立根據(jù)數(shù)

16、據(jù)庫的基本表結(jié)構(gòu)分別建立5個(gè)基本表: (1)創(chuàng)建航班信息表(2)創(chuàng)建航班座位信息表(3)創(chuàng)建旅客信息表(4)創(chuàng)建取票和賬單信息表(5)創(chuàng)建退票信息表5物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫物理設(shè)計(jì)是指設(shè)計(jì)出數(shù)據(jù)庫的物理數(shù)據(jù)模型,它是數(shù)據(jù)庫在物理設(shè)備上的具體實(shí)現(xiàn),即數(shù)據(jù)庫服務(wù)器物理空間上的表空間、表、字段、索引、視圖、存儲(chǔ)過程、觸發(fā)器以及相應(yīng)的數(shù)字字典的設(shè)計(jì)。經(jīng)過數(shù)據(jù)庫的需求分析和概念模型設(shè)計(jì),得到數(shù)據(jù)庫的邏輯結(jié)構(gòu),現(xiàn)在可以設(shè)計(jì)好的邏輯結(jié)構(gòu)在SQL server中建立數(shù)據(jù)庫及數(shù)據(jù)庫的數(shù)據(jù)表。5.1表的建立與數(shù)據(jù)載入需要明確數(shù)據(jù)庫需要建立幾張表,以及每個(gè)表中所要包括的屬性。在建立表的過程中。要對(duì)每個(gè)表進(jìn)行字段屬性的設(shè)

17、置。(至少包括5張表,每個(gè)表都有主鍵;根據(jù)實(shí)際情況,建立視圖)在機(jī)票預(yù)訂系統(tǒng)中,主要建立了5個(gè)表,分別是:航班信息表,航班座位情況表,旅客訂票信息表,取票和賬單信息表,退票信息表。5.2視圖建立視圖是查看數(shù)據(jù)庫表中數(shù)據(jù)的一種方式。視視圖提供了存儲(chǔ)預(yù)定義的查詢語句作為數(shù)據(jù)庫中的對(duì)象以備以后使用的能力。視圖是一種邏輯對(duì)象,是一種虛擬表。在機(jī)票預(yù)訂系統(tǒng)中,我建立了兩個(gè)視圖。分別是航班和座位視圖和旅客和取票信息視圖。他們分別通過飛機(jī)編號(hào)也就是flight number項(xiàng)和旅客信息也就是passage number項(xiàng)聯(lián)系起來。5.3索引建立索引是一個(gè)單獨(dú)的、物理的數(shù)據(jù)庫結(jié)構(gòu),它是某個(gè)表中一列或若干列值的

18、集合和相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁的邏輯指針清單。索引依賴于表建立,它提供了數(shù)據(jù)庫中編排表中數(shù)據(jù)的內(nèi)部方法。在機(jī)票預(yù)訂系統(tǒng)中,我建立了三個(gè)索引,分別是在航班信息表中建立了flight number索引,在旅客信息表中建立passage name索引,在航班座位信息表中建立了seat number索引。索引類型為唯一性的非聚集索引。5.4存儲(chǔ)過程我創(chuàng)建了三個(gè)存儲(chǔ)過程,輸出三個(gè)表的全部信息。分別是航班信息表、航班座位信息表、旅客信息表。命令為:CREATE PROC aaaASSELECT *FROM 航班信息CREATE PROC bbbASSELECT *FROM 航班座位信息CREA

19、TE PROC cccASSELECT *FROM 旅客信息5.5觸發(fā)器觸發(fā)器是一種實(shí)施復(fù)雜的完整性約束的特殊存儲(chǔ)過程,它在SQL server進(jìn)行某個(gè)特定的表修改時(shí)由SQL Server自動(dòng)執(zhí)行。觸發(fā)器一般用于加強(qiáng)數(shù)據(jù)庫的某些使用規(guī)則。在機(jī)票管理系統(tǒng)中,我建立了一個(gè)DDL觸發(fā)器,用于保護(hù)當(dāng)前SQL Server服務(wù)器里的所有數(shù)據(jù)庫不被刪除。具體代碼為:CREATE TRIGGER notdeleteON all serverFOR DROP_DATABASEASPRINT不能刪除數(shù)據(jù)庫ROLLBACKGO另外分別在航班信息表、航班座位信息表、旅客信息表、取票通知和賬單這四個(gè)表中建立了四個(gè)觸發(fā)

20、器,對(duì)于表中的添加和更改數(shù)據(jù),提示錯(cuò)誤信息。代碼為:CREATE TRIGGER a ON hangbanxinxiFOR INSERT,UPDATEAS RAISERROR(不能添加和更新數(shù)據(jù),16,1)ROLLBACK TRANSACTIONGOCREATE TRIGGER b ON hangbanzuoweixinxiFOR INSERT,UPDATEAS RAISERROR(不能添加和更新數(shù)據(jù),16,1)ROLLBACK TRANSACTIONGOCREATE TRIGGER c ON lvkexinxiFOR INSERT,UPDATEAS RAISERROR(不能添加和更新數(shù)據(jù),1

21、6,1)ROLLBACK TRANSACTIONGOCREATE TRIGGER d ON qupiaotongzhihezhangdanFOR INSERT,UPDATEAS RAISERROR(不能添加和更新數(shù)據(jù),16,1)ROLLBACK TRANSACTIONGO5.6創(chuàng)建登陸賬戶和添加數(shù)據(jù)庫用戶在實(shí)訓(xùn)中,我利用SQL創(chuàng)建了一個(gè)“l(fā)ogin1”的登陸賬號(hào)。密碼為123456。在一個(gè)數(shù)據(jù)庫中,用戶賬號(hào)唯一標(biāo)識(shí)一個(gè)用戶,用戶對(duì)數(shù)據(jù)庫的訪問權(quán)限以及對(duì)數(shù)據(jù)庫對(duì)象的所有關(guān)系都是通過用戶賬號(hào)來控制的。在機(jī)票預(yù)訂系統(tǒng)中,我創(chuàng)建了一個(gè)用戶名為user1的用戶。6數(shù)據(jù)流圖及程序結(jié)構(gòu)框圖6.1功能模塊圖根

22、據(jù)所需的功能,可以設(shè)計(jì)出系統(tǒng)的總體功能模塊,如圖6.1所示。機(jī)票預(yù)訂系統(tǒng)航班信息管理模塊機(jī)票信息管理模塊退票信息管理模塊取票信息管理模塊旅客信息管理模塊圖6.1 機(jī)票預(yù)訂系統(tǒng)功能模塊示意圖 取票信息管理模塊的細(xì)化功能模塊如圖6.2所示。取票信息管理旅客基本信息查詢機(jī)票基本信息查詢圖6.2 取票信息管理模塊退票信息管理模塊的細(xì)化功能模塊如圖6.3所示。取票信息管理旅客基本信息查詢訂單信息查詢圖6.3 退票信息管理模塊6.2數(shù)據(jù)流圖旅客旅客機(jī)票預(yù)訂系統(tǒng)訂票信息付費(fèi)信息取票通知和賬單機(jī)票圖6.4 0層數(shù)據(jù)流圖旅客旅客訂票取票旅客信息通知、賬單信息通知、賬單信息圖6.5 1層數(shù)據(jù)流圖7界面設(shè)計(jì)與功能測(cè)

23、試7.1登錄界面及代碼代碼如下:Private Declare Function GetUserName Lib advapi32.dll Alias GetUserNameA (ByVal lpbuffer As String, nSize As Long) As LongPublic OK As BooleanPrivate Sub Form_Load() Dim sBuffer As String Dim lSize As Long sBuffer = Space$(255) lSize = Len(sBuffer) Call GetUserName(sBuffer, lSize) If

24、 lSize 0 Then txtUserName.Text = Left$(sBuffer, lSize) Else txtUserName.Text = vbNullString End IfEnd SubPrivate Sub cmdCancel_Click() OK = False Me.HideEnd SubPrivate Sub cmdOK_Click() ToDo: create test for correct password check for correct password If txtPassword.Text = Then OK = True Me.Hide Els

25、e MsgBox Invalid Password, try again!, , Login txtPassword.SetFocus txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword.Text) End IfEnd Sub7.2進(jìn)入系統(tǒng)界面代碼如下:Private Sub MDIForm_Load() Me.Left = GetSetting(App.Title, Settings, MainLeft, 1000) Me.Top = GetSetting(App.Title, Settings, MainTop,

26、 1000) Me.Width = GetSetting(App.Title, Settings, MainWidth, 6500) Me.Height = GetSetting(App.Title, Settings, MainHeight, 6500) End SubPrivate Sub MDIForm_Unload(Cancel As Integer) If Me.WindowState vbMinimized Then SaveSetting App.Title, Settings, MainLeft, Me.Left SaveSetting App.Title, Settings,

27、 MainTop, Me.Top SaveSetting App.Title, Settings, MainWidth, Me.Width SaveSetting App.Title, Settings, MainHeight, Me.Height End IfEnd SubPrivate Sub menuAirline_Click() frmAirline.txtSQL = select * from airlineInfo frmAirline.Show 0End SubPrivate Sub menuBookticket_Click() frmTicket.txtSQL = select

28、 * from ticketInfo frmTicket.Show 0End SubPrivate Sub menuCarbin_Click() frmService.txtSQL = select * from serviceInfo frmService.Show 0End SubPrivate Sub menuCtype_Click() frmcType.txtSQL = select * from customerType frmcType.Show 0End SubPrivate Sub menuCustomer_Click() frmCustomer.txtSQL = select

29、 * from customerInfo frmCustomer.Show 0End SubPrivate Sub menuPlane_Click() frmPlane.txtSQL = select * from planeInfo frmPlane.Show 0End SubPrivate Sub searchcustom_Click() frmCustomer.Show 1End Sub7.3訂票過程代碼如下:Private Sub Form_Load() ShowTitle ShowData End SubPrivate Sub Form_Resize() If Me.WindowSt

30、ate vbMinimized And fMainForm.WindowState vbMinimized Then 邊界處理 If Me.ScaleHeight 10 * lblTitle.Height Then Exit Sub End If If Me.ScaleWidth lblTitle.Width + lblTitle.Width / 2 Then Exit Sub End If 控制控件的位置 lblTitle.Top = lblTitle.Height lblTitle.Left = (Me.Width - lblTitle.Width) / 2 msgList.Top = l

31、blTitle.Top + lblTitle.Height + lblTitle.Height / 2 msgList.Width = Me.ScaleWidth - 200 msgList.Left = Me.ScaleLeft + 100 msgList.Height = Me.ScaleHeight - msgList.Top - 1500 Frame2.Top = msgList.Top + msgList.Height + 50 Frame2.Left = Me.ScaleWidth / 2 - 3000 End IfEnd SubPublic Sub FormClose() Unl

32、oad MeEnd SubPrivate Sub ShowData() Dim j As Integer Dim i As Integer Dim MsgText As String Set mrc = ExecuteSQL(txtSQL, MsgText) With msgList .Rows = 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 C

33、ase adDBDate .TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i - 1) & , yyyy-mm-dd) Case Else .TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & End Select End If Next i mrc.MoveNext Loop End With mrc.Close End Sub顯示Grid表頭Private Sub ShowTitle() Dim i As Integer With msgList .Cols = 7 .TextMatrix(0, 0) =

34、 旅客姓名 .TextMatrix(0, 1) = 旅客性別 .TextMatrix(0, 2) = 身份證號(hào)碼 .TextMatrix(0, 3) = 聯(lián)系電話 .TextMatrix(0, 4) = 起飛時(shí)間 .TextMatrix(0, 5) = 目的地 .TextMatrix(0, 6) = 備注信息固定表頭 .FixedRows = 1 設(shè)置各列的對(duì)齊方式 For i = 0 To 6 .ColAlignment(i) = 0 Next i 表頭項(xiàng)居中 .FillStyle = flexFillRepeat .Col = 0 .Row = 0 .RowSel = 1 .ColSel

35、= .Cols - 1 .CellAlignment = 4 設(shè)置單元大小 .ColWidth(0) = 1000 .ColWidth(1) = 1000 .ColWidth(2) = 1000 .ColWidth(3) = 1000 .ColWidth(4) = 2000 .ColWidth(5) = 1000 .ColWidth(6) = 3000 .Row = 1 End WithEnd SubPrivate Sub msgList_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) 右鍵彈出 If

36、 Button = 2 And Shift = 0 Then End If End Sub添加用戶信息:代碼如下:Option Explicit是否改動(dòng)過記錄,ture為改過Dim mblChange As BooleanDim mrc As ADODB.RecordsetPublic txtSQL As StringPrivate Sub cmdExit_Click() If mblChange And cmdSave.Enabled Then If MsgBox(保存當(dāng)前記錄的變化嗎?, vbOKCancel + vbExclamation, 警告) = vbOK Then 保存 Call

37、 cmdSave_Click End If End If Unload MeEnd SubPrivate Sub cmdSave_Click() Dim intCount As Integer Dim sMeg As String Dim MsgText As String For intCount = 0 To 2 If Trim(txtItem(intCount) & ) = Then Select Case intCount Case 0 sMeg = 旅客姓名 Case 1 sMeg = 身份證號(hào)碼 Case 2 sMeg = 聯(lián)系電話 End Select sMeg = sMeg &

38、 不能為空! MsgBox sMeg, vbOKOnly + vbExclamation, 警告 txtItem(intCount).SetFocus Exit Sub End If Next intCount For intCount = 0 To 1 If Trim(Combo1(intCount) & ) = Then Select Case intCount Case 0 sMeg = 起飛時(shí)間 Case 1 sMeg = 目的地 End Select sMeg = sMeg & 不能為空! MsgBox sMeg, vbOKOnly + vbExclamation, 警告 Combo

39、1(intCount).SetFocus Exit Sub End If Next intCount 判斷是否有相同內(nèi)容的記錄 txtSQL = select * from customerInfo where customerNO & Trim(txtNo) & and customerName= & Trim(txtItem(0) & Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = False Then MsgBox 已經(jīng)存在相同客戶的記錄!, vbOKOnly + vbExclamation, 警告 txtItem(0).SetFoc

40、us Exit Sub End If 先刪除已有記錄 txtSQL = delete from customerInfo where customerNO= & Trim(txtNo) & Set mrc = ExecuteSQL(txtSQL, MsgText) 再加入新記錄 txtSQL = select * from customerInfo Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.AddNew mrc.Fields(0) = Trim(txtNo) mrc.Fields(1) = Trim(txtItem(0) mrc.Fields(2) =

41、 Trim(Combo1(0) For intCount = 1 To 2 mrc.Fields(intCount + 2) = Trim(txtItem(intCount) Next intCount mrc.Fields(5) = Trim(Combo1(1) mrc.Fields(6) = Trim(txtItem(3) mrc.Update mrc.Close If gintCmode = 1 Then MsgBox 添加記錄成功!, vbOKOnly + vbExclamation, 添加記錄 For intCount = 0 To 3 txtItem(intCount) = Nex

42、t intCount mblChange = False Unload frmCustomer frmCustomer.txtSQL = select * from customerInfo frmCustomer.Show ElseIf gintCmode = 2 Then Unload Me Unload frmCustomer frmCustomer.txtSQL = select * from customerInfo frmCustomer.Show End IfEnd SubPrivate Sub Form_Load() Dim intCount As Integer Dim Ms

43、gText As String Dim i As Integer Dim mrcc As ADODB.Recordset If gintCmode = 1 Then Me.Caption = Me.Caption & 添加 txtNo = GetRkno() ElseIf gintCmode = 2 Then Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = False Then With mrc txtNo = .Fields(0) txtItem(0) = .Fields(1) For intCount = 1 To 2 txtItem(

44、intCount) = .Fields(intCount + 2) Next intCount txtItem(3) = .Fields(6) End With End If Me.Caption = Me.Caption & 修改 End If For intCount = 0 To 1 Combo1(intCount).Clear Next intCount Combo1(0).AddItem 男 Combo1(0).AddItem 女 txtSQL = select DISTINCT ctypeName from customerType Set mrcc = ExecuteSQL(tx

45、tSQL, MsgText) If Not mrcc.EOF Then Do While Not mrcc.EOF Combo1(1).AddItem mrcc.Fields(0) mrcc.MoveNext Loop End If mrcc.Close mblChange = FalseEnd SubPrivate Sub Form_Unload(Cancel As Integer) gintCmode = 0End SubPrivate Sub txtItem_Change(Index As Integer) 有變化設(shè)置gblchange mblChange = TrueEnd SubPr

46、ivate Sub txtItem_GotFocus(Index As Integer) txtItem(Index).SelStart = 0 txtItem(Index).SelLength = Len(txtItem(Index)End SubPrivate Sub txtItem_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) EnterToTab KeyCodeEnd Sub8總結(jié)經(jīng)過一周的實(shí)訓(xùn),本次課程設(shè)計(jì)終于完成了。通過這次課程設(shè)計(jì),使我對(duì)數(shù)據(jù)庫這門課程有了更深入的理解。數(shù)據(jù)庫是一門實(shí)踐性較強(qiáng)的課程,通過這次課程設(shè)計(jì),我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,掌握并熟練運(yùn)用SQL語句以及VB 的應(yīng)用,提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。在本次課程設(shè)計(jì)和過程中,由于時(shí)間不是很長(zhǎng),再加上要求獨(dú)立完成,系統(tǒng)需求分析上可能不是很全面,程序中還存在很多不足,希望老師能給予批評(píng)和指導(dǎo)。經(jīng)過這次課程設(shè)計(jì),我的知識(shí)得到了很大提高,經(jīng)驗(yàn)也更加豐富。希望能在今后的不斷的學(xué)習(xí)中和努力中,把程序做得更好。最后,感謝指導(dǎo)老師所給我的幫助。主要參考文獻(xiàn):數(shù)據(jù)庫技術(shù)及應(yīng)用主編:劉太安 林曉霞 中國石油大學(xué)出版社

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!