版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、青島理工大學(xué)數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)院(系): 計(jì)算機(jī)工程學(xué)院 專業(yè): XXXXXXXXX 姓名: XXXXXXX 班級(jí): XXXXXXXXX 學(xué)號(hào): XXXXXXXXXX 題目: 民航機(jī)場(chǎng)售票管理系統(tǒng) 起迄日期: 2011.1.3 2011.1.14 設(shè)計(jì)地點(diǎn): 2號(hào)實(shí)驗(yàn)樓402 指導(dǎo)教師: XXXXXX 目錄第1章 前言41.1. 課題背景41.2. 開(kāi)發(fā)工具41.2.1 Windows SDK41.2.2 SQL Server 2005數(shù)據(jù)庫(kù)41.2.3 ODBC API數(shù)據(jù)庫(kù)連接技術(shù)5第2章 需求分析62.1. 任務(wù)概述62.1.1 系統(tǒng)目標(biāo)62.1.2 用戶特點(diǎn)62.2. 系統(tǒng)的功能需求6
2、2.2.1 系統(tǒng)角色功能需求62.2.2 功能模塊62.3. 系統(tǒng)的性能需求72.4. 系統(tǒng)的數(shù)據(jù)需求7第3章 系統(tǒng)總體設(shè)計(jì)83.1. 系統(tǒng)總體設(shè)計(jì)8第4章 數(shù)據(jù)庫(kù)設(shè)計(jì)94.1. 數(shù)據(jù)庫(kù)概念設(shè)計(jì)94.1.1 訂票信息實(shí)體E-R圖94.1.2 客戶信息實(shí)體E-R圖94.1.3 航線信息實(shí)體E-R圖104.1.4 客機(jī)信息實(shí)體E-R圖104.1.5 艙位等級(jí)實(shí)體E-R圖104.1.6 實(shí)體間關(guān)系E-R圖114.2. 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)114.2.1 AIR_BOOK_TABLE(訂票管理表)114.2.2 AIR_PLANE_TABLE(飛機(jī)管理表)114.2.3 AIR_SEAT_TABLE(艙位管
3、理表)124.2.4 AIR_GUEST_TABLE(客戶管理表)124.2.5 AIR_LINE_TABLE(航線管理表)12第5章 詳細(xì)設(shè)計(jì)135.1. 頁(yè)面設(shè)計(jì)135.1.1 “登陸”界面135.1.2 程序主界面135.1.3 “機(jī)票預(yù)訂信息管理”界面145.1.4 “客戶信息管理”界面145.1.5 “航線信息管理”界面155.1.6 “客機(jī)信息管理”界面155.1.7 “艙位信息管理”界面165.1.8 “關(guān)于”界面165.2. 編碼設(shè)計(jì)175.2.1 與數(shù)據(jù)庫(kù)建立的鏈接175.2.2 獲取數(shù)據(jù)庫(kù)中特定表的某元組175.2.3 從數(shù)據(jù)庫(kù)中刪除、向數(shù)據(jù)庫(kù)中添加信息185.2.4 與數(shù)
4、據(jù)庫(kù)斷開(kāi)連接19第6章 結(jié)論與展望19參考文獻(xiàn)20第1章 前言1.1. 課題背景現(xiàn)在人們更多的使用飛機(jī)作為出行交通工具,因此機(jī)票票務(wù)市場(chǎng)也在快速發(fā)展。人們希望機(jī)票銷售手段也能相應(yīng)地有所調(diào)整,并對(duì)如何能經(jīng)濟(jì)、方便和及時(shí)地購(gòu)買到自己所需要的機(jī)票表現(xiàn)出極大的關(guān)注。隨著社會(huì)的不斷進(jìn)步,國(guó)內(nèi)外航空事業(yè)的飛速發(fā)展,各航空公司對(duì)票務(wù)管理的要求也在不斷的提高,本系統(tǒng)就是針對(duì)這種日益增長(zhǎng)的需求也進(jìn)行開(kāi)發(fā)的。隨著旅游業(yè)的逐漸的成熟發(fā)達(dá),航空客運(yùn)量大幅度的提高,國(guó)內(nèi)國(guó)際的旅游航班的增加,這些都對(duì)航空的信息管理系統(tǒng)提出了更高的要求,所以要不斷地完善更新航空售票系統(tǒng),提高航空售票系統(tǒng)的工作效率。航空系統(tǒng)中,售票系統(tǒng)是很
5、重要的一個(gè)環(huán)節(jié),要想提高整個(gè)航空公司的工作效率,就要先提高售票系統(tǒng)的工作效率和安全性,故而研發(fā)此系統(tǒng),此系統(tǒng)能夠?yàn)槭燮惫ぷ魈峁┓奖憧旖莸氖燮狈?wù),廣大的客戶可以得到更高更好的票務(wù)服務(wù)。本系統(tǒng)實(shí)現(xiàn)一個(gè)單機(jī)版的機(jī)票售票管理系統(tǒng),通過(guò)考察分析,構(gòu)建出數(shù)據(jù)庫(kù),并且實(shí)現(xiàn)票務(wù)管理模塊、客戶信息管理模塊和航班信息管理模塊。本系統(tǒng)的開(kāi)發(fā)嚴(yán)格遵守軟件工程開(kāi)發(fā)的標(biāo)準(zhǔn)流程。通過(guò)對(duì)各個(gè)模塊的實(shí)現(xiàn)來(lái)完成最后軟件總體功能的實(shí)現(xiàn)。通過(guò)觀察,進(jìn)行需求分析,畫出E-R圖和功能模塊結(jié)構(gòu)圖。在模塊設(shè)計(jì)的同時(shí)進(jìn)行單元測(cè)試,系統(tǒng)設(shè)計(jì)完成進(jìn)行系統(tǒng)調(diào)試。設(shè)計(jì)完成后,編寫完整的軟件說(shuō)明書和用戶手冊(cè),最后寫對(duì)自己所作設(shè)計(jì)的評(píng)價(jià)和總結(jié)。1.2.
6、 開(kāi)發(fā)工具1.2.1 Windows SDKSDK,Software Development Kit 的縮寫,中文即“軟件開(kāi)發(fā)工具包”。廣義上指輔助開(kāi)發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。SDK是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等創(chuàng)建應(yīng)用軟件的開(kāi)發(fā)工具的集合,一般而言SDK即開(kāi)發(fā) Windows 平臺(tái)下的應(yīng)用程序所使用的SDK。它可以簡(jiǎn)單的為某個(gè)程序設(shè)計(jì)語(yǔ)言提供應(yīng)用程序接口 API 的一些文件,但也可能包括能與某種嵌入式系統(tǒng)通訊的復(fù)雜的硬件。一般的工具包括用于調(diào)試和其他用途的實(shí)用工具。SDK 還經(jīng)常包括示例代碼、支持性的技術(shù)注解或者其他的為基本參考資料澄清疑
7、點(diǎn)的支持文檔。本系統(tǒng)是用傳統(tǒng)的WINDOWS SDK編程方式,通過(guò)調(diào)用ODBC API來(lái)實(shí)現(xiàn)C+與數(shù)據(jù)庫(kù)之間的鏈接。1.2.2 SQL Server 2005數(shù)據(jù)庫(kù)SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開(kāi)發(fā)推廣SQL Server 的Windows NT 版本。S
8、ybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)SQL Server安裝界面用。SQL Server 2005 通過(guò)在可伸縮性、數(shù)據(jù)集成、開(kāi)發(fā)工具和強(qiáng)大的分析等方面的革新更好的確立了微軟在BI領(lǐng)域的領(lǐng)導(dǎo)地位。SQL Server 2005 能夠把關(guān)鍵的信息及時(shí)的傳遞到組織內(nèi)員工的手中,從而實(shí)現(xiàn)了可伸縮的商業(yè)智能。從CEO 到信息工作者,員工可以快速的、容易的處理數(shù)據(jù),以更快更好的做出決策。SQL Server 2005全面的集成、分析和報(bào)表功能使企業(yè)能夠提高他們已有應(yīng)用的價(jià)值,即便這些應(yīng)用是在不同的平臺(tái)上。1.2.3 ODBC API數(shù)據(jù)庫(kù)連接技術(shù)ODBC是一種使用SQL的
9、程序設(shè)計(jì)接口。使用ODBC 讓應(yīng)用程序的編寫者避免了與數(shù)據(jù)源相聯(lián)的復(fù)雜性。這項(xiàng)技術(shù)目前已經(jīng)得到了大多數(shù)DBMS 廠商們的廣泛支持。ODBC 是一種使用SQL 的程序設(shè)計(jì)接口。使用ODBC 讓應(yīng)用程序的編寫者避免了與數(shù)據(jù)源相聯(lián)的復(fù)雜性。這項(xiàng)技術(shù)目前已經(jīng)得到了大多數(shù)DBMS 廠商們的廣泛支持。Microsoft Developer Studio 為大多數(shù)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)格式提供了32 位ODBC 驅(qū)動(dòng)器。這些標(biāo)準(zhǔn)數(shù)據(jù)格式包括有:SQL Server,Access,Paradox,dBase,F(xiàn)oxPro,Excel,Oracle 以及Microsoft Text。如果用戶希望使用其他數(shù)據(jù)格式,用戶需要
10、相應(yīng)的ODBC 驅(qū)動(dòng)器及DBMS。ODBC API 是一個(gè)內(nèi)容豐富的數(shù)據(jù)庫(kù)編程接口,包括60 多個(gè)函數(shù)、SQL 數(shù)據(jù)類型以及常量的聲明。ODBCAPI 是獨(dú)立于DBMS 和操作系統(tǒng)的,而且它與編程語(yǔ)言無(wú)關(guān)。ODBC API 以X/Open 和ISO/IEC 中的CLI規(guī)范為基礎(chǔ),ODBC 3.0 完全實(shí)現(xiàn)了這兩種規(guī)范,并添加了基于視圖的數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)人員所需要的共同特性,例如可滾動(dòng)光標(biāo)。ODBC API 中的函數(shù)由特定DBMS 驅(qū)動(dòng)程序的開(kāi)發(fā)人員實(shí)現(xiàn),應(yīng)用程序用這些驅(qū)動(dòng)程序調(diào)用函數(shù),以獨(dú)立于DBMS 的方式訪問(wèn)數(shù)據(jù)。ODBC API 涉及了數(shù)據(jù)源連接與管理、結(jié)果集檢索、數(shù)據(jù)庫(kù)管理、數(shù)據(jù)綁定
11、、事務(wù)操作等內(nèi)容,目前的最高版本是3.0。通常使用ODBC API 開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序需要經(jīng)過(guò)如下步驟: 連接數(shù)據(jù)源。 分配語(yǔ)句句柄。 準(zhǔn)備并執(zhí)行SQL 語(yǔ)句。 獲取結(jié)果集。 提交事務(wù)。 斷開(kāi)數(shù)據(jù)源連接并釋放環(huán)境句柄。第2章 需求分析2.1. 任務(wù)概述2.1.1 系統(tǒng)目標(biāo)本系統(tǒng)需要滿足以下幾個(gè)系統(tǒng)設(shè)計(jì)目標(biāo)。1) 實(shí)用性原則:真正為用戶的實(shí)際工作服務(wù),給民航機(jī)場(chǎng)售票業(yè)務(wù)帶來(lái)方便。 2) 友好性原則:本民航機(jī)場(chǎng)售票管理系統(tǒng)的用戶是各大機(jī)場(chǎng)的售票人員,所以系統(tǒng)操作上要求簡(jiǎn)單、方便、快捷,便于用戶使用。2.1.2 用戶特點(diǎn)本系統(tǒng)面向各大民航機(jī)場(chǎng),因?yàn)樵诿磕甑暮?、暑假、重要的假期,?huì)有大量的用戶訂購(gòu)飛
12、機(jī)票,所以會(huì)在節(jié)假日的開(kāi)始與結(jié)束時(shí),本系統(tǒng)會(huì)出現(xiàn)較大的負(fù)荷。其它時(shí)間符合比較均衡。2.2. 系統(tǒng)的功能需求2.2.1 系統(tǒng)角色功能需求本系統(tǒng)只有一種角色:管理員。管理員負(fù)責(zé)添加、刪除客機(jī)信息、客戶信息、航線信息、艙位信息以及票務(wù)信2.2.2 功能模塊本系統(tǒng)主要負(fù)責(zé)管理模塊,各個(gè)子模塊功能需求如下:1) 機(jī)票預(yù)訂信息管理模塊管理員可以添加機(jī)票預(yù)訂信息,并可以對(duì)添加的機(jī)票預(yù)訂信息進(jìn)行添加、查詢、刪除。2) 客戶信息管理模塊管理員可以批量添加客戶信息,并可以對(duì)添加的客戶信息進(jìn)行添加、刪除。3) 航線信息管理模塊管理員可以批量添加航線信息,并可以對(duì)添加的航線信息進(jìn)行添加、刪除。4) 客機(jī)信息管理模塊管
13、理員可以批量添加客機(jī)信息,并可以對(duì)添加的客機(jī)信息進(jìn)行添加、刪除。5) 艙位信息管理模塊管理員只可以修改飛機(jī)艙位信息。2.3. 系統(tǒng)的性能需求為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,系統(tǒng)應(yīng)該滿足以下的性能需求:1) 系統(tǒng)的開(kāi)放性和系統(tǒng)的可擴(kuò)充性系統(tǒng)在開(kāi)發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如飛機(jī)信息屬性添加、修改;客戶信息屬性添加、修改等模塊也會(huì)不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過(guò)系統(tǒng)的開(kāi)放性來(lái)完成,既系統(tǒng)應(yīng)是一個(gè)開(kāi)放系統(tǒng),只要符合一定的規(guī)范,可以簡(jiǎn)單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過(guò)軟件的修補(bǔ)、替換完成系統(tǒng)的升
14、級(jí)和更新?lián)Q代。2) 系統(tǒng)的易用性和易維護(hù)性系統(tǒng)是直接面對(duì)使用人員的,而有些使用人員往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)和中文信息的界面;針對(duì)用戶可能出現(xiàn)的使用問(wèn)題,要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程。系統(tǒng)中涉及到的數(shù)據(jù)是高校實(shí)驗(yàn)室相當(dāng)重要的信息,因此系統(tǒng)為不同角色的用戶提供了方便的管理后臺(tái)進(jìn)行數(shù)據(jù)管理,特別為系統(tǒng)管理員提供了數(shù)據(jù)備份,日常安全管理,防止系統(tǒng)意外崩潰等功能。3) 系統(tǒng)的響應(yīng)速度系統(tǒng)設(shè)計(jì)中摒棄大量數(shù)據(jù)冗余,提出了優(yōu)化數(shù)據(jù)庫(kù)的解決方案,大量使用存儲(chǔ)過(guò)程,大大提高系統(tǒng)響應(yīng)時(shí)間和
15、速度。系統(tǒng)在日常處理中的響應(yīng)速度為秒級(jí),達(dá)到實(shí)時(shí)要求,以及時(shí)反饋信息。嚴(yán)格保證操作人員不會(huì)因?yàn)樗俣葐?wèn)題而影響工作效率。2.4. 系統(tǒng)的數(shù)據(jù)需求通過(guò)對(duì)系統(tǒng)功能需求的分析,可以初步確定該系統(tǒng)的基本數(shù)據(jù)需求。由各個(gè)功能模塊可以進(jìn)一步確定具體的數(shù)據(jù)需求,具體數(shù)據(jù)需求如下:1) 機(jī)票預(yù)訂模塊數(shù)據(jù)需求該模塊主要管理客戶訂票,需要表示的數(shù)據(jù)有:訂票數(shù)據(jù):應(yīng)包含機(jī)票編號(hào)、機(jī)票價(jià)格客戶數(shù)據(jù):客戶編號(hào)、客戶姓名航線數(shù)據(jù):航線編號(hào)、起始城市、終點(diǎn)城市、出發(fā)日期艙位數(shù)據(jù):艙位類型編號(hào)2) 客戶信息管理模塊該模塊主要管理客戶自身信息,需要表示的數(shù)據(jù)有:客戶編號(hào)、客戶姓名、客戶性別、客戶證件號(hào)、客戶電話。3) 航線信息管
16、理模塊該模塊主要管理航線自身信息,需要表示的數(shù)據(jù)有:航線編號(hào)、起始城市、終點(diǎn)城市、出發(fā)時(shí)間、到達(dá)時(shí)間、飛機(jī)編號(hào)、經(jīng)濟(jì)艙價(jià)格、頭等艙價(jià)格。4) 客機(jī)信息管理模塊該模塊主要管理客機(jī)自身信息,需要表示的數(shù)據(jù)有:飛機(jī)編號(hào)、飛機(jī)類型、經(jīng)濟(jì)艙座位數(shù)、頭等艙座位數(shù)。5) 艙位信息管理模塊該模塊主要管理艙位自身信息,需要表示的數(shù)據(jù)有:艙位類型編號(hào)、艙位類型名稱、是否有報(bào)刊、是否有飲料、是否有食物、是否可取消、是否可打折第3章 系統(tǒng)總體設(shè)計(jì)3.1. 系統(tǒng)總體設(shè)計(jì)民航機(jī)場(chǎng)售票管理系統(tǒng)機(jī)票預(yù)訂信息管理客戶信息管理航線信息管理客機(jī)信息管理艙位信息管理訂票信息添加訂票信息查詢訂票信息刪除客戶信息添加客戶信息刪除航線信息
17、添加航線信息刪除客機(jī)信息添加客機(jī)信息刪除修改艙位信息第4章 數(shù)據(jù)庫(kù)設(shè)計(jì)4.1. 數(shù)據(jù)庫(kù)概念設(shè)計(jì)4.1.1 訂票信息實(shí)體E-R圖訂票信息實(shí)體訂票編號(hào)客戶編號(hào)客戶姓名航線編號(hào)出發(fā)城市到達(dá)城市出發(fā)日期艙位類型機(jī)票價(jià)格4.1.2 客戶信息實(shí)體E-R圖客戶信息實(shí)體客戶編號(hào)客戶姓名客戶性別證件號(hào)碼聯(lián)系電話4.1.3 航線信息實(shí)體E-R圖航線信息實(shí)體航線編號(hào)出發(fā)城市到達(dá)城市航班日期出發(fā)時(shí)間到達(dá)時(shí)間客機(jī)編號(hào)經(jīng)濟(jì)艙價(jià)格頭等艙價(jià)格4.1.4 客機(jī)信息實(shí)體E-R圖客機(jī)信息實(shí)體客機(jī)編號(hào)客機(jī)型號(hào)經(jīng)濟(jì)艙座位數(shù)量頭等艙座位數(shù)量4.1.5 艙位等級(jí)實(shí)體E-R圖艙位等級(jí)實(shí)體艙位等級(jí)編號(hào)艙位等級(jí)名稱是否有報(bào)紙是否有飲料是否有午餐
18、是否可以退票是否可以打折4.1.6 實(shí)體間關(guān)系E-R圖艙位等級(jí)實(shí)體航線信息實(shí)體客戶信息實(shí)體訂票信息實(shí)體客機(jī)信息實(shí)體訂票1nn114.2. 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)現(xiàn)在需要將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為SQL Server 2005數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。民航機(jī)場(chǎng)售票管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下面表格所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。4.2.1 AIR_BOOK_TABLE(訂票管理表)列名數(shù)據(jù)類型可否為空說(shuō)明TicketNoint否機(jī)票編號(hào)CustomerNoint否客戶編號(hào)CustomerNamenvarchar(10)否客戶姓名AirLineNoint否航
19、線編號(hào)StartCitynvarchar(10)否出發(fā)城市EndCitynvarchar(50)否終點(diǎn)城市TicketDatenvarchar(50)否出發(fā)日期ServiceTypeint否艙位類型TicketPriceint否機(jī)票價(jià)格4.2.2 AIR_PLANE_TABLE(飛機(jī)管理表)列名數(shù)據(jù)類型可否為空說(shuō)明PlaneNoint否飛機(jī)編號(hào)PlaneTypenvarchar(15)否飛機(jī)型號(hào)CommonNoint否經(jīng)濟(jì)艙座位數(shù)FirstNoint否頭等艙座位數(shù)4.2.3 AIR_SEAT_TABLE(艙位管理表)列名數(shù)據(jù)類型可否為空說(shuō)明ServiceNoint否艙位類型編號(hào)ServiceN
20、amenvarchar(15)否艙位類型名稱IsNewsPapernvarchar(7)否是否有報(bào)紙IsDrinknvarchar(7)否是否有飲料IsFoodnvarchar(7)否是否有食物CanCancelnvarchar(7)否是否可取消CanDiscountnvarchar(7)否是否可打折4.2.4 AIR_GUEST_TABLE(客戶管理表)列名數(shù)據(jù)類型可否為空說(shuō)明GuestNoint否客戶編號(hào)GuestNamenvarchar(10)否客戶姓名GuestSexnvarchar(4)否客戶性別GuestIDnvarchar(20)否客戶證件號(hào)GuestTelenvarchar(1
21、5)否客戶電話4.2.5 AIR_LINE_TABLE(航線管理表)列名數(shù)據(jù)類型可否為空說(shuō)明AirLineNoint否航線編號(hào)StartCitynchar(10)否起始城市EndCitynchar(10)否終點(diǎn)城市StartTimedatetime否出發(fā)時(shí)間EndTimedatetime否到達(dá)時(shí)間PlaneNoint否飛機(jī)編號(hào)CommonPriceint否經(jīng)濟(jì)艙價(jià)格FirstPriceint否頭等艙價(jià)格第5章 詳細(xì)設(shè)計(jì)5.1. 頁(yè)面設(shè)計(jì)5.1.1 “登陸”界面通過(guò)用戶輸入的用戶名及密碼,如果用戶名/密碼輸入錯(cuò)誤,則會(huì)提示是否重新輸入,若放棄輸入,則該系統(tǒng)會(huì)自動(dòng)退出。 圖表5-1 圖表5-25.
22、1.2 程序主界面系統(tǒng)登陸成功后,則會(huì)看到主界面,該系統(tǒng)的各功能可以從菜單欄中選擇。圖表5-35.1.3 “機(jī)票預(yù)訂信息管理”界面圖表5-45.1.4 “客戶信息管理”界面圖表5-55.1.5 “航線信息管理”界面圖表5-65.1.6 “客機(jī)信息管理”界面圖表5-75.1.7 “艙位信息管理”界面在菜單上按“艙位信息管理”按鈕后,會(huì)彈出“艙位信息管理”對(duì)話框。管理者可以在這個(gè)管理界面中實(shí)現(xiàn)對(duì)飛機(jī)艙位信息的修改。圖表5-85.1.8 “關(guān)于”界面在菜單上按“關(guān)于”按鈕后,會(huì)彈出“關(guān)于”對(duì)話框,它顯示了作者的信息。圖表5-95.2. 編碼設(shè)計(jì)5.2.1 與數(shù)據(jù)庫(kù)建立的鏈接用ODBC API與數(shù)據(jù)庫(kù)
23、建立連接需要經(jīng)過(guò)如下幾步:分配環(huán)境句柄->設(shè)置ODBC版本號(hào)->分配連接句柄->“用戶名/密碼”登陸數(shù)據(jù)庫(kù)。我創(chuàng)建了函數(shù)ODBC_CONNECT來(lái)管理系統(tǒng)與數(shù)據(jù)庫(kù)的鏈接,該函數(shù)會(huì)在主程序執(zhí)行時(shí)被調(diào)用。BOOL ODBC_CONNECT(const char *DSN_NAME, const char *USER_NAME, const char *USER_PASSWORD)/分配環(huán)境句柄nResult=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);if(nResult != SQL_SUCCESS) &
24、amp;& (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;/設(shè)置ODBC版本號(hào)nResult=SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;/分配連接背景nResult=SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if(nResu
25、lt != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;/連接數(shù)據(jù)庫(kù)nResult=SQLConnect(hdbc, (SQLCHAR*)DSN_NAME, SQL_NTS, (SQLCHAR*)USER_NAME, SQL_NTS, (SQLCHAR*)USER_PASSWORD, SQL_NTS);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;return TRUE;5.
26、2.2 獲取數(shù)據(jù)庫(kù)中特定表的某元組是用ODBC API從數(shù)據(jù)庫(kù)中取出特定表中的某一個(gè)元組,需要經(jīng)過(guò)如下操作:分配句柄->執(zhí)行SQL語(yǔ)句->獲取語(yǔ)句執(zhí)行后返回的數(shù)據(jù)的屬性的個(gè)數(shù)->將每一個(gè)屬性與本地變量綁定->循環(huán)取數(shù)據(jù),每次一個(gè)元組,并做相應(yīng)處理->釋放語(yǔ)句執(zhí)行句柄.為實(shí)現(xiàn)該功能,我編寫了ODBC_DISPLAYLIST函數(shù),它會(huì)在每次產(chǎn)生子對(duì)話框時(shí)被調(diào)用,它也會(huì)在每次用戶更新數(shù)據(jù)庫(kù)后被調(diào)用(因?yàn)轱@示在程序界面上的數(shù)據(jù)要和數(shù)據(jù)庫(kù)中的數(shù)據(jù)同步)。BOOL ODBC_DISPLAYLIST(const char *SQLSCENTENCE, HWND &hwn
27、dDlg, int ControlID)/分配句柄nResult=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;/執(zhí)行SQL語(yǔ)句nResult=SQLExecDirect(hstmt, (unsigned char*)SQLSCENTENCE, SQL_NTS);if(nResult != SQL_SUCCESS) && (nResult != SQL_SU
28、CCESS_WITH_INFO)return FALSE;/獲取語(yǔ)句執(zhí)行后返回的數(shù)據(jù)的屬性的個(gè)數(shù),保存在nCols變量中SQLNumResultCols(hstmt, &nCols);/將每一個(gè)屬性與本地變量綁定for(nCount=0; nCount<nCols; nCount+)SQLBindCol(hstmt, (UWORD)(nCount+1), SQL_C_CHAR, datanCount, MAXDATALEN, (long *)&dwDataLennCount);/循環(huán)取數(shù)據(jù),每次一個(gè)元組,并做相應(yīng)處理(在此是用這些填充列表框)while(SQL_SUCCE
29、SS=SQLFetch(hstmt)memset(DATA_TEMP, 0, sizeof(DATA_TEMP);for(nCount=0; nCount<nCols; nCount+)if(dwDataLennCount!=SQL_NULL_DATA)wsprintf(DATA_ENUM, "%-30s", datanCount);lstrcat(DATA_TEMP, DATA_ENUM);/向列表框中填充數(shù)據(jù)SendDlgItemMessage(hwndDlg, ControlID, LB_ADDSTRING, 0, (LPARAM)DATA_TEMP);/為列表
30、框添加滾動(dòng)條SendDlgItemMessage(hwndDlg, ControlID, LB_SETHORIZONTALEXTENT, 1500, 0);/釋放語(yǔ)句執(zhí)行句柄SQLCloseCursor(hstmt);SQLFreeStmt(hstmt, SQL_UNBIND);SQLFreeHandle(SQL_HANDLE_STMT, hstmt);return TRUE;5.2.3 從數(shù)據(jù)庫(kù)中刪除、向數(shù)據(jù)庫(kù)中添加信息數(shù)據(jù)庫(kù)信息的添加、刪除分別是執(zhí)行SQL語(yǔ)句的“INSERT INTO”、“DELETE FROM”,所以我編寫了ODBC_EXECSQLDIRT函數(shù)來(lái)實(shí)現(xiàn)程序?qū)QL語(yǔ)句的執(zhí)
31、行,統(tǒng)一了插入、刪除算法的編寫,都是經(jīng)過(guò):獲取變量值->構(gòu)造SQL語(yǔ)句->執(zhí)行SQL語(yǔ)句->完畢。該函數(shù)將在每次用戶向數(shù)據(jù)庫(kù)中“插入”、“刪除”數(shù)據(jù)時(shí)執(zhí)行。BOOL ODBC_EXECSQLDIRT(const char *SQLSCENTENCE)nResult=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); if(nResult!=SQL_SUCCESS) && (nResult!=SQL_SUCCESS_WITH_INFO)return FALSE;nResult=SQLExecDirect(hstmt, (unsigned char *)SQLSCENTENCE, SQL_NTS);if(nResult!=SQL_SUCCESS) && (nResult!=SQL_SUCCESS_WITH_INFO) && (
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年黑龍江公交車從業(yè)資格證考試題庫(kù)
- 2024年六盤水道路旅客運(yùn)輸從業(yè)資格證模擬考試
- 2024年烏魯木齊客運(yùn)駕駛資格證考試試題及答案
- 2024年湛江客運(yùn)從業(yè)資格證考試題目
- 2024年江蘇客運(yùn)資格證考試試題模擬a1
- 2025屆福建省莆田六中語(yǔ)文高三第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 2025屆湖北省黃岡市麻城市實(shí)驗(yàn)高中高三語(yǔ)文第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 2024年黨校入黨積極分子培訓(xùn)班培訓(xùn)結(jié)業(yè)考試試卷及答案(共六套)
- 遼寧撫順市六校聯(lián)合體2025屆高二數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 2025屆山東省文登市大水泊中學(xué)生物高一上期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 靜壓樁施工對(duì)周邊環(huán)境的影響及控制措施
- 肖戰(zhàn)分析報(bào)告
- 第20課《讓社區(qū)更和諧》課件
- 鍋爐吊裝安全施工方案
- 既有建筑幕墻安全維護(hù)管理辦法范文
- 站變接地保護(hù)測(cè)控裝置技術(shù)使用說(shuō)明書南網(wǎng)版
- 大學(xué)生抖音使用狀況的調(diào)研報(bào)告
- 挖掘機(jī)的基礎(chǔ)知識(shí)-挖掘機(jī)的結(jié)構(gòu)及特點(diǎn)
- 大學(xué)生人文知識(shí)競(jìng)賽題庫(kù)
- 消防安全檢查表-
- 叉車服務(wù)搬運(yùn)流程
評(píng)論
0/150
提交評(píng)論