軟件工程課程設(shè)計《航空售票系統(tǒng)》_第1頁
軟件工程課程設(shè)計《航空售票系統(tǒng)》_第2頁
軟件工程課程設(shè)計《航空售票系統(tǒng)》_第3頁
軟件工程課程設(shè)計《航空售票系統(tǒng)》_第4頁
軟件工程課程設(shè)計《航空售票系統(tǒng)》_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

胡竹青《航空售票系統(tǒng)的設(shè)計與實現(xiàn)》第33頁共41頁PAGE33航空售票系統(tǒng)的設(shè)計與實現(xiàn)學(xué)生姓名:胡竹青指導(dǎo)老師:鄧廣慧摘要本系統(tǒng)是采用VB開發(fā)的一個管理系統(tǒng)。本系統(tǒng)要解決的是機場售票中所要解決的問題,包括艙位信息的輸入和修改,客機信息的輸入、修改和查詢,航線信息的輸入、修改和查詢,客戶等級信息的輸入、修改,客戶信息的輸入、修改和查詢和訂票信息的輸入、查詢和修改等六個方面的功能。在整個系統(tǒng)中采用文件來存儲信息,角色劃分為系統(tǒng)管理員、售票員、顧客三種,各自擁有不同的操作權(quán)限。在整個系統(tǒng)設(shè)計過程中,嚴(yán)格按照軟件工程設(shè)計標(biāo)準(zhǔn)來設(shè)計系統(tǒng)。關(guān)鍵詞飛機信息;部分匹配檢索;文件操作AirticketingsystemStudentname:HUZhuqingAdvisor:DENGGuanghuiAbstractThissystemisdevelopedbyVBisamanagementsystem.Thissystemtosolvetheticketintheairportistosolvetheproblemthattheinputinformation,includingshippingandmodification,thepassengerinformationinput,modifyandquery,routeinformationinput,modifyandquery,customerinformationinput,modifylevel,customerinformationinput,modifyandqueryandbookinginformationqueryandmodifytheinput,sixaspectsoffunction.Inthesystemadoptsdocumenttostoreinformation,roleintosystemadministrator,conductor,customers,withthreedifferentpermissions.Intheprocessofsystemdesign,instrictaccordancewiththesoftwareengineeringdesignstandarddesignsystem.KeywordsAircraftinformation;Partofretrieval;Fileoperations1引言1.1課題設(shè)計的目的和背景意義近年來,國內(nèi)外一些學(xué)者對中國航空業(yè)的競爭力進(jìn)行了討論,例如胡鞍鋼對比分析了中美航空市場的開放度和國際競爭力。認(rèn)為我國空中市場開放程度低下,其國際競爭能力十分薄弱,美國的航空市場開放程度最大,美國的航空運輸業(yè)國際競爭力最強,這表明空中市場越開放。劉世錦和馮飛在民航業(yè)國內(nèi)外市場的開放和競爭嚴(yán)重不對稱的情況下,對競爭的考慮首先是如何提高本國企業(yè)的國際市場競爭力。TaeHoonOum和ChunyanYu研究比較了世界主要航空公司獲利能力。在數(shù)據(jù)方面,他們利用了從1986~1995年的22個航空公司的年度數(shù)據(jù),研究生產(chǎn)率增長的變化以及在成本以上提高價格的能力。他們認(rèn)為和北美的競爭者來相比,歐洲航空運營商在投入價格方面的增長更為快速,而在航空票價方面的下跌更為迅速。這主要是歸功于在歐洲范圍內(nèi)競爭的加劇,所以導(dǎo)致他們比較高的生產(chǎn)增長率。自九十年代以來,因特網(wǎng)技術(shù)的飛速發(fā)展正在迅速地改變著人們的生活方式,因特網(wǎng)正在由科學(xué)工作者的工具變?yōu)槠胀ò傩斋@取信息、進(jìn)行交流的場所,而因特網(wǎng)的商業(yè)應(yīng)用則尤為引人注目。隨著國內(nèi)因特網(wǎng)的發(fā)展,國內(nèi)航空公司也開始醞釀網(wǎng)上訂票、售票業(yè)務(wù)。網(wǎng)上訂票系統(tǒng)是一個取代過去由人工處理的訂票系統(tǒng),在一定程度上提高了購票的通明度和自主性,但網(wǎng)站在方便消費者的同時,仍存在許多不足的地方。例如,航空公司網(wǎng)站只能提供公司自有航班的機票信息,客觀上限制了人們的選擇范圍;旅行社網(wǎng)站則多以旅游產(chǎn)品為主,很少單獨提供機票的預(yù)訂服務(wù),因此其在機票服務(wù)的專業(yè)性、豐富性上都會大打折扣。個別旅游、機票預(yù)訂等服務(wù),但因這類網(wǎng)站缺乏實時的機票數(shù)據(jù)信息,因而在其所提供的票務(wù)信息的權(quán)威性、服務(wù)內(nèi)容的專業(yè)性上仍然不盡人意。因此,消費者仍然真正做到自主選購機票,而所獲得的購票體驗也仍存在著“費時費力,無法排除訂票的不確定性”,或者“價格折扣等關(guān)鍵信息可信度不高”等負(fù)面感覺??蛻裟茈S時隨地通過因特網(wǎng)查詢航班的詳細(xì)信息,并預(yù)定最滿意的航班??蛻魺o須來往與機場和家、辦公室之間,不必在售票點排隊買票或訂票,只要有一根網(wǎng)線就能輕松搞定從查詢航班到訂票到取票等一系列過程。[3]2系統(tǒng)分析2.1需求分析系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成。本例子中的航空公司管理信息系統(tǒng)需要完成功能主要有:艙位信息的輸入和修改,包括艙位等級編號、艙位等級名稱、提供的各種服務(wù)類別,以及備注信息等。客機信息的輸入、修改和查詢,包括客機編號、客機型號、購買時間、服役時間、經(jīng)濟艙座位數(shù)量、公務(wù)艙座位數(shù)量、頭等艙座位數(shù)量以及備注信息等。航線信息的輸入、修改和查詢,包括航線編號、出發(fā)城市、到達(dá)城市、航班日期、出發(fā)時間、到達(dá)時間、客機編號、經(jīng)濟艙價格、公務(wù)艙價格、頭等艙價格和備注信息等。客戶等級信息的輸入、修改,包括客戶等級編號、客戶等級名稱、折扣比例和備注信息等。客戶信息的輸入、修改和查詢,包括客戶編號、客戶姓名、客戶性別、身份證號碼、聯(lián)系電話、客戶類型和備注信息等。訂票信息的輸入、查詢和修改,包括訂票編號、客戶編號、客戶姓名、客戶類型、折扣比例、航線編號、出發(fā)城市、到達(dá)城市、出發(fā)時間、艙位類型、票價、結(jié)算金額和備注信息等。2.2運行環(huán)境硬件要求CPU:300MHz以上的處理器。內(nèi)存:128MB,推薦256MB。硬盤:150MB以上剩余空間。顯示像素:最低800*600,最佳效果1024*768。軟件要求操作系統(tǒng):Windows2000/NT/XP/CE。數(shù)據(jù)庫:SQLServer2000。3系統(tǒng)設(shè)計3.1結(jié)構(gòu)設(shè)計根據(jù)各項功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計的要求,得到如圖3-1所示的系統(tǒng)功能模塊圖。圖3-1系統(tǒng)功能模塊圖3.2數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。數(shù)據(jù)庫設(shè)計一般包括如下幾個步驟:數(shù)據(jù)庫需要分析、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計。3.2.1數(shù)據(jù)庫需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。仔細(xì)分析調(diào)查有關(guān)航空公司管理信息需求的基礎(chǔ)上,將得到如圖2-2所示的本系統(tǒng)所處理的數(shù)據(jù)流程。圖3-2航空公司管理信息系統(tǒng)數(shù)據(jù)流程圖通過對航空公司管理工作過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計如下面所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):(1)艙位等級信息,包括的數(shù)據(jù)項有:艙位等級編號、艙位等級名稱、是否有禮品、是否有報紙、是否有飲料、是否有午餐、是否有電影、是否可以改簽、是否可以退票、是否可以打折、備注信息等。(2)客機信息,包括的數(shù)據(jù)項有:客機編號、客機型號、購買時間、服役時間、經(jīng)濟艙座位數(shù)量、公務(wù)艙座位數(shù)量、頭等艙座位數(shù)量、備注信息等。(3)航線信息,包括的數(shù)據(jù)項有:航線編號、出發(fā)城市、到達(dá)城市、航班日期、出發(fā)時間、到達(dá)時間、客機編號、經(jīng)濟艙價格、公務(wù)艙價格、頭等艙價格、備注信息等。(4)客戶類型信息,包括的數(shù)據(jù)項有:客戶類型編號、客戶類型名稱、折扣比例、備注信息等。(5)客戶信息,包括的數(shù)據(jù)項有:客戶編號、客戶姓名、客戶性別、身份證號碼、聯(lián)系電話、客戶類型、備注信息等。(6)訂票信息,包括的數(shù)據(jù)項有:訂票編號、顧客編號、顧客姓名、顧客類型、折扣比例、航線編號、出發(fā)城市、到達(dá)城市、艙位類型、機票價格、結(jié)算金額、備注信息等。3.2.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計得到上面的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。根據(jù)上面的設(shè)計規(guī)劃出的實體有:艙位等級信息實體、客機信息實體、航線信息實體、客戶類型信息實體、客戶信息實體、訂票信息實體。各個實體具體的描述E-R圖如下。艙位等級信息實體E-R圖如圖3-3所示。圖3-3艙位等級信息實體E-R圖客機信息實體E-R圖如圖3-4所示。圖3-4客機信息實體E-R圖航線信息實體E-R圖如圖3-5所示。圖3-5航線信息實體E-R圖客戶類型信息實體E-R圖如圖3-6所示。圖3-6客戶類型信息實體E-R圖客戶信息實體E-R圖如圖3-7所示。圖3-7客戶信息實體E-R圖訂票信息實體E-R圖如圖3-8所示。圖3-8訂票信息實體E-R圖實體之間關(guān)系的E-R圖如圖3-9所示。圖3-9實體之間關(guān)系的E-R圖3.2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計現(xiàn)在需要將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為SQLServer2000數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。航空公司管理信息系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如下面表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表3-1為供應(yīng)商信息表。表3-1serviceInfo艙位等級信息表列名數(shù)據(jù)類型可否為空說明serviceNOcharNOTNULL艙位等級編號serviceNamenvarcharNULL艙位等級名稱noPresentcharNULL是否有禮物noNewsPapercharNULL是否有報紙noDrinkcharNULL是否有飲料noFoodcharNULL是否有午餐noMoviecharNULL是否有電影canChangecharNULL是否可以改簽canCancelcharNULL是否可以退票canDiscountcharNULL是否可以打折serviceMemotextNULL備注信息表3-2planeInfo客機信息表格列名數(shù)據(jù)類型可否為空說明planeNOcharNOTNULL客機編號planeTypecharNULL客機型號buyDatedatetimeNULL購買日期serveDatedatetimeNULL服役日期isCommonnvarcharNULL經(jīng)濟艙座位數(shù)量isCommercialnvarcharNULL公務(wù)艙座位數(shù)量isFirstnvarcharNULL頭等艙座位數(shù)量planeMemotextNULL備注信息表3-3airlineInfo航線信息表列名數(shù)據(jù)類型可否為空說明airlineNOcharNOTNULL航線編號departCitynvarcharNULL出發(fā)城市arrivalCitynvarcharNULL到達(dá)城市departDatecharNULL航班日期departTimecharNULL出發(fā)時間arrivalTimecharNULL到達(dá)時間planeNOcharNULL客機編號commonPricenumericNULL經(jīng)濟艙價格commercialPricenumericNULL公務(wù)艙價格firstPricenumericNULL頭等艙價格airlineMemotextNULL備注信息表3-4customerType客戶類型信息表列名數(shù)據(jù)類型可否為空說明ctypeNOcharNOTNULL客戶類型編號ctypeNamecharNULL客戶類型名稱discountnumericNULL折扣比例續(xù)表列名數(shù)據(jù)類型可否為空說明ctypeMemotextNULL備注表3-5customerInfo客戶信息表列名數(shù)據(jù)類型可否為空說明customerNOcharNOTNULL客戶編號customerNamecharNULL客戶姓名customerSexcharNULL客戶性別customerIDcharNULL身份證號碼customerTelecharNULL客戶聯(lián)系電話customerTypecharNULL客戶類型customerMemotextNULL備注表3-6ticketInfo訂票信息表列名數(shù)據(jù)類型可否為空說明ticketNOcharNOTNULL訂票編號customerNOcharNULL客戶編號customerNamecharNULL客戶姓名customerTypecharNULL客戶類型discountnumericNULL折扣比例airlineNOcharNULL航線編號departCitynvarcharNULL出發(fā)城市arrivalCitynvarcharNULL到達(dá)城市ticketDatedatetimeNULL出發(fā)日期serviceTypecharNULL艙位類型ticketPricenumericNULL機票價格ticketSumnumericNULL結(jié)算金額customerMemotextNULL備注4系統(tǒng)詳細(xì)設(shè)計4.1數(shù)據(jù)庫結(jié)構(gòu)的實現(xiàn)4.1.1創(chuàng)建系統(tǒng)用戶表CREATETABLE[dbo].[user_Info1]( [user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL, [user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL, [user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]4.1.2創(chuàng)建艙位等級信息表CREATETABLE[dbo].[serviceInfo]( [serviceNO][char](4)COLLATEChinese_PRC_CI_ASNOTNULL, [serviceName][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL, [noPresent][char](2)COLLATEChinese_PRC_CI_ASNULL, [noNewsPaper][char](2)COLLATEChinese_PRC_CI_ASNULL, [noDrink][char](2)COLLATEChinese_PRC_CI_ASNULL, [noFood][char](2)COLLATEChinese_PRC_CI_ASNULL, [noMovie][char](2)COLLATEChinese_PRC_CI_ASNULL, [canChange][char](2)COLLATEChinese_PRC_CI_ASNULL, [canCancel][char](2)COLLATEChinese_PRC_CI_ASNULL, [canDiscount][char](2)COLLATEChinese_PRC_CI_ASNULL, [serviceMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4.1.3創(chuàng)建客機信息表CREATETABLE[dbo].[planeInfo]( [planeNO][char](18)COLLATEChinese_PRC_CI_ASNOTNULL, [planeType][char](20)COLLATEChinese_PRC_CI_ASNULL, [buyDate][datetime]NULL, [serveDate][datetime]NULL, [isCommon][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL, [isCommercial][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL, [isFirst][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL, [planeMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4.1.4創(chuàng)建航線信息表CREATETABLE[dbo].[airlineInfo]( [airlineNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [departCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL, [arrivalCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL, [departDate][char](10)COLLATEChinese_PRC_CI_ASNULL, [departTime][char](10)COLLATEChinese_PRC_CI_ASNULL, [arrivalTime][char](10)COLLATEChinese_PRC_CI_ASNULL, [planeNO][char](18)COLLATEChinese_PRC_CI_ASNULL, [commonPrice][numeric](18,2)NULL, [commercialPrice][numeric](18,2)NULL, [firstPrice][numeric](18,2)NULL, [airlineMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4.1.5創(chuàng)建客戶類型信息表CREATETABLE[dbo].[customerType]( [ctypeNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [ctypeName][char](20)COLLATEChinese_PRC_CI_ASNULL, [discount][numeric](2,0)NULL, [ctypeMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4.1.6創(chuàng)建客戶信息表CREATETABLE[dbo].[customerInfo]( [customerNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [customerName][char](50)COLLATEChinese_PRC_CI_ASNULL, [customerSex][char](2)COLLATEChinese_PRC_CI_ASNULL, [customerID][char](18)COLLATEChinese_PRC_CI_ASNULL, [customerTele][char](20)COLLATEChinese_PRC_CI_ASNULL, [customerType][char](14)COLLATEChinese_PRC_CI_ASNULL, [customerMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4.1.7創(chuàng)建訂票信息表CREATETABLE[dbo].[ticketInfo]( [ticketNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [customerNO][char](14)COLLATEChinese_PRC_CI_ASNULL, [customerName][char](50)COLLATEChinese_PRC_CI_ASNULL, [customerType][char](14)COLLATEChinese_PRC_CI_ASNULL, [discount][numeric](18,0)NULL, [airlineNO][char](14)COLLATEChinese_PRC_CI_ASNULL, [departCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL, [arrivalCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL, [ticketDate][datetime]NULL, [serviceType][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL, [ticketPrice][numeric](18,2)NULL, [ticketSum][numeric](18,2)NULL, [ticketMemo][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]4.2航空公司管理信息系統(tǒng)主窗體的創(chuàng)建4.2.1創(chuàng)建公用模塊函數(shù),用以執(zhí)行各種SQL語句。添加函數(shù)ExecuteSQL,代碼如下:PublicFunctionExecuteSQL(ByValSQL_AsString,MsgStringAsString)_AsADODB.Recordset'執(zhí)行SQL語句,并返回記錄集對象‘聲明一個連接DimcnnAsADODB.Connection‘聲明一個數(shù)據(jù)集對象DimrstAsADODB.RecordsetDimsTokens()AsString'異常處理OnErrorGoToExecuteSQL_Error'用Split函數(shù)產(chǎn)生一個包含各個子串的數(shù)組sTokens=Split(SQL)‘創(chuàng)建一個連接Setcnn=NewADODB.Connection'打開連接cnn.OpenConnectStringIfInStr("INSERT,DELETE,UPDATE",_UCase$(sTokens(0)))Then‘執(zhí)行查詢語句cnn.ExecuteSQLMsgString=sTokens(0)&_"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim$(SQL),cnn,_adOpenKeyset,_adLockOptimistic'rst.MoveLast'getRecordCount'返回記錄集對象SetExecuteSQL=rstMsgString="查詢到"&rst.RecordCount&_"條記錄"EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString="查詢錯誤:"&_Err.DescriptionResumeExecuteSQL_ExitEndFunction在ExecuteSQL函數(shù)中使用了ConnectString函數(shù),這個函數(shù)用來連接數(shù)據(jù)庫,代碼如下:PublicFunctionConnectString()_AsString'返回一個數(shù)據(jù)庫連接ConnectString="FileDSN=ticket.dsn;UID=sa;PWD="EndFunction4.3艙位信息管理模塊的創(chuàng)建4.3.1顯示艙位信息窗體的創(chuàng)建代碼如下:PrivateSubmenuCarbin_Click()frmService.txtSQL="select*fromserviceInfo"frmService.Show0EndSub窗體的Show方法后面加上0或者1,可以得到不同的窗體顯示方式。參數(shù)為0時,顯示的窗體為無模式形式,窗體切換時不需要進(jìn)行其他操作;參數(shù)為1時,顯示的窗體為有模式形式,窗體切換時必須進(jìn)行相關(guān)操作。載入窗體時將自動顯示各條記錄,代碼如下:PrivateSubForm_Load()ShowTitleShowDataEndSub函數(shù)ShowTitle用來顯示表頭,代碼如下:PrivateSubShowTitle()DimiAsIntegerWithmsgList.Cols=12.TextMatrix(0,1)="等級編號".TextMatrix(0,2)="機艙等級".TextMatrix(0,3)="是否有禮品".TextMatrix(0,4)="是否有報紙".TextMatrix(0,5)="是否有飲料".TextMatrix(0,6)="是否有午餐".TextMatrix(0,7)="是否提供電影".TextMatrix(0,8)="是否可以改簽".TextMatrix(0,9)="是否可以退票".TextMatrix(0,10)="是否可以打折".TextMatrix(0,11)="備注信息"'固定表頭.FixedRows=1'設(shè)置各列的對齊方式Fori=0To11.ColAlignment(i)=0Nexti'表頭項居中.FillStyle=flexFillRepeat.Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4'設(shè)置單元大小.ColWidth(0)=1000.ColWidth(1)=1000.ColWidth(2)=2000.ColWidth(3)=1000.ColWidth(4)=1000.ColWidth(5)=1000.ColWidth(6)=1000.ColWidth(7)=1000.ColWidth(8)=1000.ColWidth(9)=1000.ColWidth(10)=1000.ColWidth(11)=1000.Row=1EndWithEndSub函數(shù)ShowData把各條記錄加到表格中,并顯示出來,代碼如下:PrivateSubShowData()DimjAsIntegerDimiAsIntegerDimMsgTextAsString‘獲得數(shù)據(jù)集Setmrc=ExecuteSQL(txtSQL,MsgText)WithmsgList.Rows=1‘判斷是否為空DoWhileNotmrc.EOF‘移動到下一行.Rows=.Rows+1‘循環(huán)Fori=1Tomrc.Fields.Count‘判斷是否為空IfNotIsNull(Trim(mrc.Fields(i-1)))Then‘根據(jù)數(shù)據(jù)類型顯示SelectCasemrc.Fields(i-1).TypeCaseadDBDate.TextMatrix(.Rows-1,i)=Format(mrc.Fields(i-1)&"","yyyy-mm-dd")CaseElse.TextMatrix(.Rows-1,i)=mrc.Fields(i-1)&""EndSelectEndIfNextI‘移動到下一條記錄mrc.MoveNextLoopEndWith‘關(guān)閉數(shù)據(jù)集對象mrc.CloseEndSub在窗體顯示時,可以控制窗體中各個控件按照要求的位置顯示。可以在窗體的Resize事件中加入代碼,代碼如下:PrivateSubForm_Resize()‘判斷當(dāng)前窗體所處的狀態(tài),當(dāng)前窗體不處于最小化狀態(tài)并且主窗體不處于最小化狀態(tài)時進(jìn)行后面的操作IfMe.WindowState<>vbMinimizedAndfMainForm.WindowState<>vbMinimizedThen'邊界處理IfMe.ScaleHeight<10*lblTitle.HeightThenExitSubEndIfIfMe.ScaleWidth<lblTitle.Width+lblTitle.Width/2ThenExitSubEndIf'控制控件的位置lblTitle.Top=lblTitle.HeightlblTitle.Left=(Me.Width-lblTitle.Width)/2‘控制表格控件的位置msgList.Top=lblTitle.Top+lblTitle.Height+lblTitle.Height/2msgList.Width=Me.ScaleWidth-200msgList.Left=Me.ScaleLeft+100msgList.Height=Me.ScaleHeight-msgList.Top-1500‘控制按鈕位置Frame2.Top=msgList.Top+msgList.Height+50Frame2.Left=Me.ScaleWidth/2-3000EndIfEndSub4.3.2添加艙位信息窗體的創(chuàng)建代碼如下:PrivateSubForm_Load()DimintCountAsIntegerDimMsgTextAsStringDimiAsInteger‘判斷是否為添加IfgintSmode=1ThenMe.Caption=Me.Caption&"添加"Fori=0To7Combo1(i).AddItem"否"Combo1(i).AddItem"是"Combo1(i).ListIndex=0NextI‘載入當(dāng)前選擇記錄內(nèi)容ElseIfgintSmode=2ThenSetmrc=ExecuteSQL(txtSQL,MsgText)‘判斷記錄是否為空Ifmrc.EOF=FalseThenWithmrcForintCount=0To1txtItem(intCount)=.Fields(intCount)NextintCounttxtItem(2)=.Fields(10)Fori=0To7Combo1(i).AddItem"否"Combo1(i).AddItem"是"Combo1(i).ListIndex=0NextiEndWithtxtItem(0).Enabled=FalseEndIfMe.Caption=Me.Caption&"修改"EndIfmblChange=FalseEndSub輸入內(nèi)容完畢,單擊“保存”按鈕,將首先判斷輸入內(nèi)容是否滿足要求,然后添加到數(shù)據(jù)庫中。代碼如下:PrivateSubcmdSave_Click()DimintCountAsIntegerDimsMegAsStringDimMsgTextAsString‘判斷輸入內(nèi)容是否為空ForintCount=0To1IfTrim(txtItem(intCount)&"")=""ThenSelectCaseintCountCase0sMeg="機艙等級編號"Case1sMeg="機艙等級名稱"EndSelectsMeg=sMeg&"不能為空!"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtItem(intCount).SetFocusExitSubEndIfNextintCount‘判斷輸入內(nèi)容是否為數(shù)字IfNotIsNumeric(Trim(txtItem(0)))ThensMeg="機艙等級編號"sMeg=sMeg&"請輸入數(shù)字!"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtItem(0).SetFocusEndIf'添加判斷是否有相同的ID記錄IfgintSmode=1ThentxtSQL="select*fromserviceInfowhereserviceNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox"已經(jīng)存在此編號的記錄!",vbOKOnly+vbExclamation,"警告"txtItem(0).SetFocusExitSubEndIfmrc.CloseEndIf'判斷是否有相同內(nèi)容的記錄txtSQL="select*fromserviceInfowhereserviceNO<>'"&Trim(txtItem(0))&"'andserviceName='"&Trim(txtItem(1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox"已經(jīng)存在相同機艙等級的記錄!",vbOKOnly+vbExclamation,"警告"txtItem(1).SetFocusExitSubEndIf'先刪除已有記錄txtSQL="deletefromserviceInfowhereserviceNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)'再加入新記錄txtSQL="select*fromserviceInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.AddNewForintCount=0To1mrc.Fields(intCount)=Trim(txtItem(intCount))NextintCountForintCount=0To7mrc.Fields(intCount+2)=Trim(Combo1(intCount))NextintCountmrc.Fields(10)=Trim(txtItem(2))‘更新數(shù)據(jù)集內(nèi)容mrc.Update‘關(guān)閉數(shù)據(jù)集內(nèi)容mrc.CloseIfgintSmode=1ThenMsgBox"添加記錄成功!",vbOKOnly+vbExclamation,"添加記錄"ForintCount=0To1txtItem(intCount)=""NextintCountForintCount=0To3Combo1(intCount).ListIndex=0NextintCounttxtItem(2)=""mblChange=FalseUnloadfrmServicefrmService.txtSQL="select*fromserviceInfo"frmService.ShowElseIfgintSmode=2ThenUnloadMeUnloadfrmServicefrmService.txtSQL="select*fromserviceInfo"frmService.ShowEndIfEndSub4.3.3修改艙位等級信息代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger判斷列表中是否有記錄IffrmService.msgList.Rows>1Then‘改變狀態(tài)變量gintSmode=2‘記錄選擇記錄位置intCount=msgList.RowIfintCount>0ThenfrmService1.txtSQL="select*fromserviceInfowhereserviceNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmService1.Show1ElseMsgBox"警告",vbOKOnly+vbExclamation,"請首先選擇需要修改的記錄!"EndIfEndIfEndSub4.3.4刪除艙位等級信息代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷信息列表中內(nèi)容是否為空IfmsgList.Rows>1Then‘提示信息IfMsgBox("真的要刪除機艙等級為"&Trim(msgList.TextMatrix(msgList.Row,2))&"的記錄嗎?",vbOKCancel+vbExclamation,"警告")=vbOKThen‘記錄選擇記錄位置intCount=msgList.Row‘刪除重復(fù)記錄txtSQL="deletefromserviceInfowhereserviceNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)‘卸載窗體UnloadfrmService‘重新載入記錄并顯示frmService.txtSQL="select*fromserviceInfo"frmService.ShowEndIfEndIfEndSub4.4客機信息管理模塊的創(chuàng)建4.4.1顯示客機信息窗體的創(chuàng)建代碼如下:PrivateSubcmdSave_Click()DimintCountAsIntegerDimsMegAsStringDimMsgTextAsString‘判斷輸入內(nèi)容是否為空ForintCount=0To6IfTrim(txtItem(intCount)&"")=""ThenSelectCaseintCountCase0sMeg="客機編號"Case1sMeg="客機型號"Case2sMeg="購買時間"Case3sMeg="服役時間"Case4sMeg="經(jīng)濟艙座位數(shù)量"Case5sMeg="公務(wù)艙座位數(shù)量"Case6sMeg="頭等艙座位數(shù)量"EndSelectsMeg=sMeg&"不能為空!"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtItem(intCount).SetFocusExitSubEndIfNextintCount‘判斷輸入內(nèi)容為數(shù)字ForintCount=4To6IfNotIsNumeric(Trim(txtItem(intCount)))ThensMeg="座位數(shù)量"sMeg=sMeg&"請輸入數(shù)字!"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtItem(intCount).SetFocusEndIfNextintCount‘判斷輸入內(nèi)容是否為日期ForintCount=2To3IfIsDate(txtItem(intCount))ThentxtItem(intCount)=Format(txtItem(intCount),"yyyy-mm-dd")ElseMsgBox"時間應(yīng)輸入日期(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告"txtItem(intCount).SetFocusExitSubEndIfNextintCount'添加判斷是否有相同的ID記錄IfgintPmode=1ThentxtSQL="select*fromplaneInfowhereplaneNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox"已經(jīng)存在此編號的記錄!",vbOKOnly+vbExclamation,"警告"txtItem(0).SetFocusExitSubEndIfmrc.CloseEndIf'先刪除已有記錄txtSQL="deletefromplaneInfowhereplaneNO='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)'再加入新記錄txtSQL="select*fromplaneInfo"Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.AddNewForintCount=0To7mrc.Fields(intCount)=Trim(txtItem(intCount))NextintCount‘更新數(shù)據(jù)集mrc.Update‘關(guān)閉數(shù)據(jù)集對象mrc.CloseIfgintPmode=1ThenMsgBox"添加記錄成功!",vbOKOnly+vbExclamation,"添加記錄"ForintCount=0To7txtItem(intCount)=""NextintCountmblChange=FalseUnloadfrmPlanefrmPlane.txtSQL="select*fromplaneInfo"frmPlane.ShowElseIfgintPmode=2ThenUnloadMeUnloadfrmPlanefrmPlane.txtSQL="select*fromplaneInfo"frmPlane.ShowEndIfEndSub4.4.2修改客機信息代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger‘判斷列表內(nèi)容是否為空IffrmPlane.msgList.Rows>1ThengintPmode=2‘記載選擇記錄的位置intCount=msgList.RowIfintCount>0ThenfrmPlane1.txtSQL="select*fromplaneInfowhereplaneNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmPlane1.Show1ElseMsgBox"警告",vbOKOnly+vbExclamation,"請首先選擇需要修改的記錄!"EndIfEndIfEndSub4.4.3刪除客機信息代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷列表內(nèi)容是否為空IfmsgList.Rows>1ThenIfMsgBox("真的要刪除客機編號為"&Trim(msgList.TextMatrix(msgList.Row,1))&"的型號為"&Trim(msgList.TextMatrix(msgList.Row,2))&"的客機記錄嗎?",vbOKCancel+vbExclamation,"警告")=vbOKThen‘記載選擇記錄的位置intCount=msgList.RowtxtSQL="deletefromplaneInfowhereplaneNO='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)UnloadfrmPlane‘重新載入所有記錄,并顯示出來frmPlane.txtSQL="select*fromplaneInfo"frmPlane.ShowEndIfEndIfEndSub5測試和運行結(jié)果的截圖5.1系統(tǒng)的實現(xiàn)現(xiàn)在已經(jīng)完成了程序各個功能模塊的創(chuàng)建,現(xiàn)在來運行整個系統(tǒng)。運行程序,出現(xiàn)如圖5-1所示的登錄窗口。

圖5-1用戶登錄窗口輸入用戶名和密碼后,進(jìn)入系統(tǒng)。選擇“航線信息管理|艙位信息”菜單,出現(xiàn)如圖5-2所示的窗體。圖5-2顯示艙位信息窗體選擇“航線信息管理|客機信息”菜單,將顯示所有客機信息,如圖5-3所示。圖5-3顯示客機信息的窗體在客機信息列表中單擊“添加”按鈕,出現(xiàn)如圖5-4所示的窗體,在其中輸入客機信息。圖5-4添加客機信息選擇“航線信息管理|航線信息”菜單,出現(xiàn)如圖5-5所示的航線信息列表。圖5-5航線信息列表在航線信息列表中單擊“添加”按鈕,并輸入航線內(nèi)容,如圖5-6所示。圖5-6添加航線信息在航線信息列表中單擊“查詢”按鈕,并設(shè)置查詢內(nèi)容,如圖5-7所示。圖5-7查詢航線信息窗體航線查詢結(jié)果如圖5-8所示。圖5-8航線信息查詢結(jié)果選擇“客戶信息管理|客戶信息”菜單,并輸入客戶信息,如圖5-9所示。圖5-9添加客戶信息選擇“訂票信息管理|訂票信息”菜單,出現(xiàn)如圖5-10所示的機票信息列表。圖5-10機票信息列表在機票信息列表中單擊“添加”按鈕,出現(xiàn)如圖5-11所示的窗體,輸入訂票信息。圖5-11添加訂票信息單擊“保存”按鈕,出現(xiàn)如圖5-12所示的對話框提示訂票成功。圖5-12訂票提示信息在機票信息列表中,單擊“查詢”按鈕,出現(xiàn)如圖5-13所示的窗體,輸入查詢內(nèi)容,可以得到剩余機票信息。圖5-13機票信息查詢窗體查詢結(jié)果如圖5-14所示。圖5-14機票信息查詢結(jié)果結(jié)束語兩星期的課程設(shè)計已接近尾聲了,這個航空售票系統(tǒng)也基本上完成了。然以前也有過管理信息系統(tǒng)的編寫經(jīng)歷,但是像這次系統(tǒng)這么專業(yè)的卻是第一次。在這次系統(tǒng)的開發(fā)過程中學(xué)到了好多知識,更加熟練地掌握了VB開發(fā)工具和SQLServer2000數(shù)據(jù)庫。這次的課程設(shè)計使我對軟件工程的知識有了更深刻的理解、更貼切的感受,感謝我的指導(dǎo)老師鄧廣慧老師幫忙講解。通過兩星期的課程設(shè)計,磨煉了自己的耐心,培養(yǎng)了自己查資料和同學(xué)討論的好習(xí)慣,相信我以后會在這些方面做得更好。參考文獻(xiàn)[1]常君義.管理信息系統(tǒng).2003年9月.中國電力出版社[2]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.2005年1月.高等教育出版社[3]陳明.VisualBasic程序設(shè)計.2000年12月.陳明[4]劉韜,駱娟.VisualBasic實效編程百例.2002年7月.人民郵電出版社附錄:源程序代碼usemastergoifexists(select*fromdbo.sysdatabaseswherename='Ticket')dropdatabaseTicketGOcreatedatabaseTicketgouseTicketgoifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[airlineInfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[airlineInfo]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[customerInfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[customerInfo]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[customerType]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[customerType]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[planeInfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[planeInfo]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[serviceInfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[serviceInfo]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[ticketInfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[ticketInfo]GOCREATETABLE[dbo].[airlineInfo]( [airlineNO][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [departCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL, [arrivalCity][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL, [departDate][char](10)COLLATEChinese_PRC_CI_ASNULL, [departTime][char](10)COLLATEChinese_PRC_CI_ASNULL, [arrivalTime][char](10)COLLATEChinese_PRC_CI_ASNULL, [planeNO][char](18)COLLATEChinese_PRC_CI_ASNULL, [commonPrice][numeric](18,2)NULL, [commercialPrice][numeric](18,2)NULL, [firstPrice][numeri

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論