版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
機(jī)票預(yù)定系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著社會(huì)的不斷發(fā)展和計(jì)算機(jī)水平的不斷提高,人們選擇飛機(jī)外出工作、旅游變得相當(dāng)普遍。為了給旅客提供方便,同時(shí)也為了便于民航部門的管理,各種機(jī)票預(yù)定系統(tǒng)應(yīng)運(yùn)而生。正因?yàn)橛腥绱舜蟮氖袌?chǎng)和前景,并且與人們?nèi)粘I畹穆?lián)系有如此之緊密,使得選擇這樣的一個(gè)畢業(yè)設(shè)計(jì)課題變得非常有意義和挑戰(zhàn)。通過本課題的設(shè)計(jì),不僅能對(duì)軟件工程、程序設(shè)計(jì)語言、操作系統(tǒng)、數(shù)據(jù)庫管理提供實(shí)踐機(jī)會(huì),同時(shí)對(duì)于即將步入社會(huì)的我也是一次鍛煉。本系統(tǒng)是以JBuilder2006為前端開發(fā)工具、SQLServer2000為后臺(tái)數(shù)據(jù)庫的C/S二層模式系統(tǒng)。JBuilder2006以java語言為基礎(chǔ),之所以采用JAVA為系統(tǒng)開發(fā)語言,主要是JAVA語言開發(fā)出來的系統(tǒng)具有較強(qiáng)的平臺(tái)移植性,同時(shí)java的類庫非常標(biāo)準(zhǔn)且極其健壯,這為編寫代碼帶來很多方便;SQLServer2000作為微軟公司開發(fā)的產(chǎn)品,其優(yōu)越性自然就不言而喻了,一般的中小型系統(tǒng)大多以SQLServer2000作為后臺(tái)數(shù)據(jù)庫。本系統(tǒng)分為系統(tǒng)管理、旅行社管理、航空公司管理、旅客綜合服務(wù)管理四大模塊,每個(gè)模塊具有不同的功能,使得整個(gè)系統(tǒng)的管理變得有條不紊,從而為管理提供了更多方便。關(guān)鍵詞軟件開發(fā),開發(fā)工具,機(jī)票預(yù)定系統(tǒng),打包
ABSTRACTAsthesocietydevelopedconstantlyandthelevelofcomputerraisewithconstant,peoplechooseplanetogoout,workandtravelwhichbecomequitegeneral。Inordertoprovideconvenienceforpassengers,atthesametimeforthemanagementofcivilaviation'sdepartment,variousticketreservationsystemsariseatthehistoricmoment.Justbecausetherearesolargeamarketandprospect,andtheconnectionwithpeople'sdailylifeissoclose,thus,itisverymeaningfulandchallengetochoosesuchagraduationprojectsubject.Thoughthedesignofthissubjectcannotmerelyofferandcreatethepracticechancetosoftproject,programminglanguage,operatingsystem,databaseadministration,itisalsoaexercisetosteppingintothesocietysoonatthesametime.ThissystemtoregardJBuilder2006asfrontdevelopmenttools,andSQLServer2000asbackstagedatabase,andit’saC/Stwomodelssystem.JBuilder2006isbasedonjavalanguage,weadoptJAVAasthesystemdeveloplanguages,mainlybecausethesystemisdevelopedoutbyJavahasstrongerplatforms,atthesametimeonekindofstorehousesofjavaisverystandardandextremelystalwart,itisbringalotifconvenientforwritingcodes;asMicrosoftdevelopedproducts,SQLServer2000,thesuperiorityonit’sself-evidentnaturally,thegeneralmediumandsmall-scalesystemsaremostlyregardedSQLServer2000asbackstagesupporter'sdatabaseThissystemisdividedintofourmajormodules:systemsmanagement,managementoftravelagency,airline'smanagement,integratedserviceofvisitormanagement.Eachmodulehasdifferentfunctions,thismakethemanagementofthewholesystemorderly,thusitismoreconvenientlytoofferformanagement.Keywordssoftwaredevelopment,developmenttools,airticketsreservationsystems,packaging
目錄摘要 IABSTRACT II1 引言 12軟件開發(fā)基礎(chǔ)知識(shí) 22.1軟件開發(fā)過程 22.2軟件開發(fā)模型 32.3 C/S二層體系開發(fā) 42.3.1C/S體系結(jié)構(gòu)簡(jiǎn)介 42.3.2有關(guān)C/S體系結(jié)構(gòu)的討論 53開發(fā)工具簡(jiǎn)介 63.1PowerDesigner11簡(jiǎn)介 63.1.1認(rèn)識(shí)PowerDesigner 63.1.2PowerDesigner分析過程 63.1.3PowerDesigner的三級(jí)建模功能 63.2JBuilder簡(jiǎn)介 73.2.1JDBC簡(jiǎn)介 73.2.2通過JDBC連接SQLServer2000數(shù)據(jù)庫參數(shù) 83.2.3JDBC的Jbuilder開發(fā) 83.3SQLServer2000簡(jiǎn)介 93.3.1服務(wù)器組件 93.3.2主要管理工具 93.3.2數(shù)據(jù)完整性 103.3.3數(shù)據(jù)庫備份方法 103.3.4SQLServer2000的身份認(rèn)證模式 103.4其他工具簡(jiǎn)介 104機(jī)票預(yù)定系統(tǒng)設(shè)計(jì) 114.1系統(tǒng)分析 114.1.1系統(tǒng)應(yīng)用背景 114.1.2業(yè)務(wù)流程分析 124.1.3功能模塊分析 144.2數(shù)據(jù)庫設(shè)計(jì) 154.2.1數(shù)據(jù)庫分析 154.2.2數(shù)據(jù)模型圖 174.2.3數(shù)據(jù)庫表及字段說明 184.3我的模塊設(shè)計(jì)與編碼 234.3.1JBuilder2006環(huán)境配置 244.3.2Splash窗口設(shè)計(jì) 254.3.3登錄窗口設(shè)計(jì) 274.3.4主窗口設(shè)計(jì) 314.3.5用戶角色模塊設(shè)計(jì) 354.3.6人員信息模塊設(shè)計(jì) 394.3.7修改密碼模塊設(shè)計(jì) 414.3.8旅客信息模塊設(shè)計(jì) 434.3.9系統(tǒng)功能介紹模塊設(shè)計(jì) 454.3.10幫助文檔制作 474.4程序打包、生成以及部署 49總結(jié)與體會(huì) 51參考文獻(xiàn) 52致謝 53引言隨著生活水平的日益提高,人們生活中可選擇的交通工具也變得豐富多彩,外出度假、旅游除了要求方便、舒適的環(huán)境以外,在生活節(jié)奏如此之快的當(dāng)今社會(huì),是否節(jié)省時(shí)間將成為人們最為關(guān)心的話題,故人們會(huì)毫不猶豫地選擇乘坐飛機(jī)出行,本系統(tǒng)也就應(yīng)運(yùn)而生了。國(guó)外對(duì)于機(jī)票預(yù)定系統(tǒng)的研究已經(jīng)達(dá)到了相當(dāng)高的水平,在系統(tǒng)處理的準(zhǔn)確性和及時(shí)性、系統(tǒng)的開放性和可擴(kuò)充性、系統(tǒng)的易用性和易維護(hù)性、系統(tǒng)的標(biāo)準(zhǔn)性、系統(tǒng)的先進(jìn)性、系統(tǒng)的響應(yīng)速度以及系統(tǒng)的適時(shí)性和容錯(cuò)性方面都有很深的研究,相對(duì)而言系統(tǒng)也就比較成熟。當(dāng)然,盡管我國(guó)在這方面的研究起步稍微有些晚,但就發(fā)展前景而言,我們還是有很大發(fā)展空間的。當(dāng)然,除了系統(tǒng)本身的意義之外,本課題對(duì)我們自己也是非常有意義的:=1\*GB3①通過畢業(yè)設(shè)計(jì)的實(shí)踐及其前后的準(zhǔn)備與總結(jié),復(fù)習(xí)、領(lǐng)會(huì)、鞏固和運(yùn)用課堂上所學(xué)的軟件開發(fā)方法和知識(shí),比如,軟件項(xiàng)目的完整設(shè)計(jì)與開發(fā)過程、結(jié)構(gòu)化技術(shù)、快速原型法和面向?qū)ο蠓椒ǖ取L貏e是結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、快速原型開發(fā)、面向?qū)ο蠓治雠c面向?qū)ο笤O(shè)計(jì)。=2\*GB3②為自己適應(yīng)畢業(yè)后團(tuán)隊(duì)合作開發(fā)規(guī)模稍大項(xiàng)目和綜合應(yīng)用本專業(yè)所學(xué)習(xí)的多門課程知識(shí)(例如,軟件工程、程序設(shè)計(jì)語言、操作系統(tǒng)、數(shù)據(jù)庫等)創(chuàng)造實(shí)踐機(jī)會(huì)。為自己提供主動(dòng)學(xué)習(xí)(比如,對(duì)Java開發(fā)環(huán)境、客戶機(jī)/服務(wù)器技術(shù)、Visio、JBuilder、PowerDesigner軟件工具以及SQLServer2000數(shù)據(jù)庫等內(nèi)容的學(xué)習(xí))、積極探索與大膽創(chuàng)新的機(jī)會(huì)。=3\*GB3③使自己通過參加小組團(tuán)隊(duì)的開發(fā)實(shí)踐,了解項(xiàng)目管理、團(tuán)隊(duì)合作、文檔編寫、口頭與書面表達(dá)的重要性。=4\*GB3④使自己了解軟件工具與環(huán)境對(duì)于項(xiàng)目開發(fā)的重要性,并且重點(diǎn)深入掌握好一、兩種較新或較流行的軟件工具或計(jì)算機(jī)應(yīng)用技術(shù)、技能。=5\*GB3⑤通過“稍大的”富有挑戰(zhàn)性的軟件實(shí)驗(yàn)項(xiàng)目開發(fā)實(shí)踐,提高自己的自學(xué)能力、書面與口頭表達(dá)能力、創(chuàng)造能力和與團(tuán)隊(duì)其他成員交往和協(xié)作開發(fā)軟件的能力,提高自己今后參與開發(fā)稍大規(guī)模實(shí)際軟件項(xiàng)目和探索未知領(lǐng)域的能力和自信心??傊?,本課題的研究對(duì)我今后在軟件方面的發(fā)展將是非常有意義的!
2軟件開發(fā)基礎(chǔ)知識(shí)2.1軟件開發(fā)過程軟件開發(fā)過程以及各階段的任務(wù):=1\*GB3①計(jì)劃:對(duì)所要解決的問題進(jìn)行總體定義,包括了解用戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等3個(gè)方面研究并論證本軟件項(xiàng)目的可行性,編寫可行性研究報(bào)告,探討解決問題的方案,并對(duì)可供使用的資源(如計(jì)算機(jī)硬件、系統(tǒng)軟件、人力等)成本,可取得的效益和開發(fā)進(jìn)度作出估計(jì)。制訂完成開發(fā)任務(wù)的實(shí)施計(jì)劃。=2\*GB3②分析:軟件需求分析就是回答做什么的問題。它是一個(gè)對(duì)用戶的需求進(jìn)行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語言(形式功能規(guī)約,即需求規(guī)格說明書)表達(dá)出來的過程。本階段的基本任務(wù)是和用戶一起確定要解決的問題,建立軟件的邏輯模型,編寫需求規(guī)格說明書文檔并最終得到用戶的認(rèn)可。需求分析的主要方法有結(jié)構(gòu)化分析方法、數(shù)據(jù)流程圖和數(shù)據(jù)字典等方法。=3\*GB3③設(shè)計(jì):本階段的工作是根據(jù)需求說明書的要求,設(shè)計(jì)建立相應(yīng)的軟件系統(tǒng)的體系結(jié)構(gòu),并將整個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng)或模塊,定義子系統(tǒng)或模塊間的接口關(guān)系,對(duì)各子系統(tǒng)進(jìn)行具體設(shè)計(jì)定義,編寫軟件概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)說明書,數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明書,組裝測(cè)試計(jì)劃。軟件設(shè)計(jì)可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。實(shí)際上軟件設(shè)計(jì)的主要任務(wù)就是將軟件分解成模塊。概要設(shè)計(jì)就是結(jié)構(gòu)設(shè)計(jì),其主要目標(biāo)就是給出軟件的模塊結(jié)構(gòu),用軟件結(jié)構(gòu)圖表示。詳細(xì)設(shè)計(jì)的首要任務(wù)就是設(shè)計(jì)模塊的程序流程、算法和數(shù)據(jù)結(jié)構(gòu),次要任務(wù)就是設(shè)計(jì)數(shù)據(jù)庫,常用方法還是結(jié)構(gòu)化程序設(shè)計(jì)方法。=4\*GB3④編碼:軟件編碼是指把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序,即寫成以某一程序設(shè)計(jì)語言表示的"源程序清單"。充分了解軟件開發(fā)語言、工具的特性和編程風(fēng)格,有助于開發(fā)工具的選擇以及保證軟件產(chǎn)品的開發(fā)質(zhì)量。當(dāng)前軟件開發(fā)中除在專用場(chǎng)合,已經(jīng)很少使用二十世紀(jì)80年代的高級(jí)語言了,取而代之的是面向?qū)ο蟮拈_發(fā)語言。而且面向?qū)ο蟮拈_發(fā)語言和開發(fā)環(huán)境大都合為一體,大大提高了開發(fā)的速度。=5\*GB3⑤測(cè)試:軟件測(cè)試的目的是以較小的代價(jià)發(fā)現(xiàn)盡可能多的錯(cuò)誤。要實(shí)現(xiàn)這個(gè)目標(biāo)的關(guān)鍵在于設(shè)計(jì)一套出色的測(cè)試用例(測(cè)試數(shù)據(jù)和預(yù)期的輸出結(jié)果組成了測(cè)試用例)。如何才能設(shè)計(jì)出一套出色的測(cè)試用例,關(guān)鍵在于理解測(cè)試方法。不同的測(cè)試方法有不同的測(cè)試用例設(shè)計(jì)方法。兩種常用的測(cè)試方法是白盒法(白盒法測(cè)試對(duì)象是源程序,依據(jù)的是程序內(nèi)部的的邏輯結(jié)構(gòu)來發(fā)現(xiàn)軟件的編程錯(cuò)誤、結(jié)構(gòu)錯(cuò)誤和數(shù)據(jù)錯(cuò)誤。結(jié)構(gòu)錯(cuò)誤包括邏輯、數(shù)據(jù)流、初始化等錯(cuò)誤。用例設(shè)計(jì)的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果)和黑盒法(黑盒法依據(jù)的是軟件的功能或軟件行為描述,發(fā)現(xiàn)軟件的接口、功能和結(jié)構(gòu)錯(cuò)誤。其中接口錯(cuò)誤包括內(nèi)部/外部接口、資源管理、集成化以及系統(tǒng)錯(cuò)誤。黑盒法用例設(shè)計(jì)的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口)。=6\*GB3⑥維護(hù):維護(hù)是旨在已完成對(duì)軟件的研制(分析、設(shè)計(jì)、編碼和測(cè)試)工作并交付使用以后,對(duì)軟件產(chǎn)品所進(jìn)行的一些軟件工程的活動(dòng)。即根據(jù)軟件運(yùn)行的情況,對(duì)軟件進(jìn)行適當(dāng)修改,以適應(yīng)新的要求,以及糾正運(yùn)行中發(fā)現(xiàn)的錯(cuò)誤。編寫軟件問題報(bào)告、軟件修改報(bào)告。一個(gè)中等規(guī)模的軟件,如果研制階段需要一年至二年的時(shí)間,在它投入使用以后,其運(yùn)行或工作時(shí)間可能持續(xù)五年至十年。那么它的維護(hù)階段也是運(yùn)行的這五年至十年期間。在這段時(shí)間,人們幾乎需要著手解決研制階段所遇到的各種問題,同時(shí)還要解決某些維護(hù)工作本身特有的問題。做好軟件維護(hù)工作,不僅能排除障礙,使軟件能正常工作,而且還可以使它擴(kuò)展功能,提高性能,為用戶帶來明顯的經(jīng)濟(jì)效益。然而遺憾的是,對(duì)軟件維護(hù)工作的重視往往遠(yuǎn)不如對(duì)軟件研制工作的重視。而事實(shí)上,和軟件研制工作相比,軟件維護(hù)的工作量和成本都要大得多。在實(shí)際開發(fā)過程中,軟件開發(fā)并不是從第一步進(jìn)行到最后一步,而是在任何階段,在進(jìn)入下一階段前一般都有一步或幾步的回溯。在測(cè)試過程中的問題可能要求修改設(shè)計(jì),用戶可能會(huì)提出一些需要來修改需求說明書等。2.2軟件開發(fā)模型軟件開發(fā)模型(SoftwareDevelopmentModel)是指軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件開發(fā)包括需求、設(shè)計(jì)、編碼和測(cè)試等階段,有時(shí)也包括維護(hù)階段。軟件開發(fā)模型能清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來作為軟件項(xiàng)目工作的基礎(chǔ)。
典型的開發(fā)模型有:瀑布模型(waterfallmodel);漸增模型/演化/迭代(incrementalmodel);原型模型(prototypemodel);螺旋模型(spiralmodel);噴泉模型(fountainmodel);智能模型(intelligentmodel);混合模型(hybridmodel)每個(gè)軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟件開發(fā)模型,并且應(yīng)該隨著當(dāng)前正在開發(fā)的特定產(chǎn)品特性而變化,以減小所選模型的缺點(diǎn),充分利用其優(yōu)點(diǎn),下表列出了幾種常見模型的優(yōu)缺點(diǎn)。表2.1主要開發(fā)模型比較模型優(yōu)點(diǎn)缺點(diǎn)瀑布模型文檔驅(qū)動(dòng)系統(tǒng)可能不滿足客戶的需求快速原型模型關(guān)注滿足客戶需求可能導(dǎo)致系統(tǒng)設(shè)計(jì)差、效率低,難于維護(hù)增量模型開發(fā)早期反饋及時(shí),易于維護(hù)需要開放式體系結(jié)構(gòu),可能會(huì)設(shè)計(jì)差、效率低螺旋模型風(fēng)險(xiǎn)驅(qū)動(dòng)風(fēng)險(xiǎn)分析人員需要有經(jīng)驗(yàn)且經(jīng)過充分訓(xùn)練C/S二層體系開發(fā)2.3.1C/S體系結(jié)構(gòu)簡(jiǎn)介=1\*GB3①C/S結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用,由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,稱為應(yīng)用服務(wù)器,一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來的請(qǐng)求;客戶程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于服務(wù)器電腦,可稱為客戶電腦。當(dāng)需要對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果。在典型的C/S數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序獨(dú)立進(jìn)行的,并且通常把那些不同的(不管是已知還是未知的)前臺(tái)應(yīng)用所不能違反的規(guī)則,在服務(wù)器程序中集中實(shí)現(xiàn),例如訪問者的權(quán)限,編號(hào)不準(zhǔn)重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)這背后的過程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序可以變的非?!笆菪 ?,麻煩的事情,都交給了服務(wù)器和網(wǎng)絡(luò)。在C/S體系的下,數(shù)據(jù)庫真正變成了公共、專業(yè)化的倉庫,受到獨(dú)立的專門管理。=2\*GB3②非C/S結(jié)構(gòu)的應(yīng)用與C/S體系形成對(duì)比,傳統(tǒng)的數(shù)據(jù)庫應(yīng)用體系結(jié)構(gòu),例如基于主機(jī)-多終端的系統(tǒng),或基于LAN上文件服務(wù)器運(yùn)做的多用戶系統(tǒng),數(shù)據(jù)庫是屬于應(yīng)用程序“私有的”,即使它也可以將數(shù)據(jù)文件放置在某臺(tái)機(jī)器上供不同的用戶共同訪問(這種情形,稱為“文件服務(wù)器”),但所有的操作、規(guī)則,都是在一個(gè)包羅萬象的應(yīng)用程序內(nèi)部實(shí)現(xiàn)的。應(yīng)用程序因此具有最大的復(fù)雜性,即使是原班開發(fā)人馬,要想對(duì)已有功能加以擴(kuò)充也是很困難的,當(dāng)數(shù)據(jù)庫稍具復(fù)雜性(比如有稍多相互關(guān)聯(lián)的表與規(guī)則),其他的人員開發(fā)另外的程序共同操作這個(gè)數(shù)據(jù)庫的數(shù)據(jù),幾乎不具可行性。2.3.2有關(guān)C/S體系結(jié)構(gòu)的討論C/S結(jié)構(gòu)是目前技術(shù)條件下,能較好適應(yīng)不確定和變化的需求環(huán)境的比較現(xiàn)實(shí)的方案。它可以令我們以較低的投入,實(shí)現(xiàn)將易變與穩(wěn)定的要素分離,快速地增添和替換“瘦小”而互相獨(dú)立的前臺(tái)應(yīng)用,保持?jǐn)?shù)據(jù)的連續(xù)性和繼承性。以目前的技術(shù)看,先建立C/S結(jié)構(gòu)的局域網(wǎng)絡(luò)應(yīng)用,再向企業(yè)網(wǎng)/互聯(lián)網(wǎng)模式下數(shù)據(jù)庫應(yīng)用過渡,是比較現(xiàn)實(shí),相對(duì)易于把握、成本較低的。即使是一次到位的開發(fā),對(duì)于類似的環(huán)境和小型的應(yīng)用而言,要想實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫,并有效地保證和管理數(shù)據(jù)的安全性、訪問權(quán)限、完整性,采用C/S架構(gòu)和支持C/S架構(gòu)的數(shù)據(jù)平臺(tái),是必然選擇。C/S架構(gòu)的數(shù)據(jù)庫系統(tǒng),由于數(shù)據(jù)庫是建立在通用的平臺(tái)之上,并且支持SQL這樣的通用技術(shù),對(duì)數(shù)據(jù)庫的維護(hù)工作更加專業(yè),但更為開放,這意味著維護(hù)和進(jìn)一步開發(fā)對(duì)原設(shè)計(jì)開發(fā)者的依賴性可以降低。用戶可以更好地適應(yīng)人員的流動(dòng)或服務(wù)/供應(yīng)商的變更。對(duì)體系規(guī)劃的合理性,和一些特殊技術(shù)的采用,例如后臺(tái)服務(wù)器上的存儲(chǔ)過程、觸發(fā)器等,會(huì)影響到這個(gè)特點(diǎn)。出于這個(gè)理由,在C/S應(yīng)用設(shè)計(jì)時(shí),應(yīng)盡可能采用規(guī)范的模式,標(biāo)準(zhǔn)化的技術(shù)。同樣的努力,在其他架構(gòu)中就相對(duì)難以實(shí)現(xiàn)或較少實(shí)際意義。總之,支持采用C/S的理由主要有:①應(yīng)用的不確定性,逐步開發(fā)和增加新應(yīng)用的需要②適應(yīng)將來開放的異種網(wǎng)絡(luò)環(huán)境中應(yīng)用的需要③用戶數(shù)、數(shù)據(jù)量增長(zhǎng)的可能性④適應(yīng)電腦開發(fā)、維護(hù)、供應(yīng)商與相關(guān)技術(shù)人員變更的需要⑤有利于動(dòng)態(tài)規(guī)劃與動(dòng)態(tài)開發(fā)過程,對(duì)系統(tǒng)可靠性的保證此外,從用戶的現(xiàn)有資源的延續(xù)利用與新增投入,及開發(fā)的成本和難度看,采用C/S結(jié)構(gòu),也是比較適中、現(xiàn)實(shí)的選擇。
3開發(fā)工具簡(jiǎn)介3.1PowerDesigner11簡(jiǎn)介3.1.1認(rèn)識(shí)PowerDesigner過去的軟件開發(fā)往往缺乏規(guī)范,開發(fā)的軟件也沒有詳細(xì)的文檔。為了提高軟件質(zhì)量,降低維護(hù)難度,加強(qiáng)重復(fù)使用率,開發(fā)人間、分析人員、測(cè)試人員、數(shù)據(jù)庫管理人員、管理人員以及用戶相互溝通,使系統(tǒng)發(fā)揮最大綜合效率,世界各大數(shù)據(jù)庫廠商和第三方合作開發(fā)了智能化的計(jì)算機(jī)輔助軟件工程(CASE)工具,在此領(lǐng)域中,Rational公司的RationalRose擅長(zhǎng)以UML構(gòu)造模型,具備嚴(yán)謹(jǐn)?shù)姆椒ㄕ摚夹g(shù)偏高。PLATUIM公司的Erwin擅長(zhǎng)以E-R建立實(shí)體聯(lián)系模型,并具有版本控制能力。Sybase公司的PowerDesigner則集UML與E-R精華于一體,更能迎合市場(chǎng)潮流。經(jīng)過不斷的更新,目前最新版本是PowerDesigner11。3.1.2PowerDesigner分析過程分析設(shè)計(jì)人員利用PowerDesigner可建立三類模型,即面向?qū)ο竽P?OrientedObjectModel,簡(jiǎn)稱OOM)、概念數(shù)據(jù)模型(ConceptualDataModel,簡(jiǎn)稱CDM)、物理數(shù)據(jù)模型(PhysicalDataModel,簡(jiǎn)稱PDM),其中OOM包括用例圖、時(shí)序圖、類圖,最終產(chǎn)生五中結(jié)果,即模型倉庫(Repository)、模型報(bào)告(Report)、數(shù)據(jù)庫SQL腳本、用戶數(shù)據(jù)腳本、以及應(yīng)用程序代碼。程序開發(fā)人員利用模型報(bào)告(Report)、數(shù)據(jù)庫SQL腳本、用戶數(shù)據(jù)腳本、以及應(yīng)用程序代碼結(jié)合應(yīng)用程序開發(fā)工具(如PB、VB、C++、C#、JAVA等)和數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS)開發(fā)出符合要求的軟件。完成軟件分析設(shè)計(jì)通常采用三種途徑:一條是從面向?qū)ο蠓治鲈O(shè)計(jì)開始,依次建立用例圖、時(shí)序圖、類圖,由類圖轉(zhuǎn)化為CDM以及PDM;第二條路經(jīng)是從結(jié)構(gòu)化分析設(shè)計(jì)開始依次產(chǎn)生流程分析設(shè)計(jì)模型(ProcessAnalysisModel,簡(jiǎn)稱PAM)、CDM、PDM、以及類圖;第三條路經(jīng)是前兩種途徑的結(jié)合。3.1.3PowerDesigner的三級(jí)建模功能=1\*GB3①面向?qū)ο蠼ML是一種標(biāo)準(zhǔn)的圖形化建模語言,是面向?qū)ο蠓治鲈O(shè)計(jì)的一種標(biāo)準(zhǔn)表示,并為不同領(lǐng)域的人們提供統(tǒng)一的交流標(biāo)準(zhǔn),UML共有九種圖,PD11支持其中重要的三種圖形,這三種圖形描述了系統(tǒng)的靜態(tài)數(shù)據(jù)模型(CDM)或物理數(shù)據(jù)模型(PDM),為信息的存儲(chǔ)建立了數(shù)據(jù)結(jié)構(gòu),同時(shí),類圖還可以轉(zhuǎn)換為C#、C++、IDL-CORBA、JAVA、PB以及VB代碼框架,為應(yīng)用程序的編制奠定了良好的基礎(chǔ)。=2\*GB3②概念數(shù)據(jù)模型概念數(shù)據(jù)模型是建模的重要階段,它把現(xiàn)實(shí)世界中的信息抽象成實(shí)體和聯(lián)系來產(chǎn)生實(shí)體聯(lián)系圖(E-R模型),這一階段為高質(zhì)量的應(yīng)用提供堅(jiān)實(shí)的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)。概念數(shù)據(jù)模型通過實(shí)體和屬性以及這些實(shí)體間的關(guān)系(E-R模型)表明系統(tǒng)內(nèi)部抽象的數(shù)據(jù)結(jié)構(gòu)、概念數(shù)據(jù)模型與模型的實(shí)現(xiàn)方法無關(guān)。=3\*GB3③物理數(shù)據(jù)模型物理數(shù)據(jù)模型把CDM與特定DBMS的特性結(jié)合在一起,產(chǎn)生PDM。同一個(gè)CDM結(jié)合不同的DBMS產(chǎn)生不同的PDM。PDM中包含了DBMS的特征,反映了主鍵(PrimaryKey)、外鍵(ForeignKey)、候選鍵(Alternative)、視圖(View)、索引(Index)、觸發(fā)器(Trigger)、存儲(chǔ)過程(StoredProcedure)等特征。物理數(shù)據(jù)模型是后臺(tái)數(shù)據(jù)庫應(yīng)用藍(lán)本,直接針對(duì)具體的DBMS(如MicrosoftSQLServer2000).PDM可由CDM轉(zhuǎn)換得到,其中實(shí)體(Entity)變?yōu)楸?Table),屬性(Attribute)變?yōu)榱?Column),同時(shí)創(chuàng)建主鍵和索引,CDM中的數(shù)據(jù)類型映射為具體DBMS中的數(shù)據(jù)類型。3.2JBuilder簡(jiǎn)介3.2.1JDBC簡(jiǎn)介=1\*GB3①什么是JDBCJavaDatabaseConnectivity(JDBC)是一項(xiàng)在Java中以面向?qū)ο蟮姆椒▉磉B接數(shù)據(jù)庫的技術(shù)。它是對(duì)ODBCAPI進(jìn)行的一種面向?qū)ο蟮姆庋b和重新設(shè)計(jì),它易于學(xué)習(xí)和使用,并且能夠使您編寫不依賴供應(yīng)商的代碼,用于查詢和操縱數(shù)據(jù)庫。JDBC提供了一些相當(dāng)?shù)蛯拥姆椒▉泶嫒?shù)據(jù)庫。同時(shí)也在高層提供了功能強(qiáng)大的對(duì)象來處理數(shù)據(jù)庫。支持JDBC的所有數(shù)據(jù)庫必須至少支持SQL-92標(biāo)準(zhǔn),這在很大程度上實(shí)現(xiàn)的跨數(shù)據(jù)庫和平臺(tái)的可移植性。=2\*GB3②JDBC驅(qū)動(dòng)程序類型通過JDBC調(diào)用映射到其他關(guān)系數(shù)據(jù)庫的CLI(CallLevelInterface)調(diào)用來實(shí)現(xiàn)JDBC,使用由其他語言所寫的二進(jìn)制庫,要求客戶提供軟件,如JDBC-ODBC橋驅(qū)動(dòng)程序。驅(qū)動(dòng)程序一部分由Java代碼組成,另一部分由使用其他CLI的本地代碼組成,要求客戶端使用二進(jìn)制代碼。純Java驅(qū)動(dòng)程序,使用中間件(middleware)將JDBC調(diào)用轉(zhuǎn)換成訪問數(shù)據(jù)庫所需的廠商相關(guān)的調(diào)度和協(xié)議。純Java驅(qū)動(dòng)程序,實(shí)現(xiàn)了本地協(xié)議,無需中間件或任何客戶端二進(jìn)制代碼,需要時(shí)可下載到客戶端。這些驅(qū)動(dòng)程序的不同主要在于驅(qū)動(dòng)程序的組成部分、各個(gè)部分所處的位置以及用來開發(fā)這些組成部分的語言。每個(gè)數(shù)據(jù)庫廠商都使用不同的調(diào)用和不同的網(wǎng)絡(luò)協(xié)議來訪問數(shù)據(jù)庫。=3\*GB3③JDBCAPI接口編寫數(shù)據(jù)庫應(yīng)用程序,需要完成以下幾件事:加載一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)程序創(chuàng)建到數(shù)據(jù)庫的連接,執(zhí)行查詢,如果查詢有返回值,還要接受結(jié)果并對(duì)其進(jìn)行處理。JDBCAPI的目標(biāo)是提供對(duì)關(guān)系數(shù)據(jù)庫廠商無關(guān)的支持,通過它的使用,可以將使用的各種數(shù)據(jù)庫實(shí)現(xiàn)上的不同都抽象出來,并且它分為兩個(gè)層次,一是面向程序開發(fā)人員的JDBCAPI,另一是底層的JDBCDriveAPI.以下的類是常用的API:DriverManager類:負(fù)責(zé)管理對(duì)JDBC應(yīng)用加載的驅(qū)動(dòng)程序的訪問。Connection類:主要用于創(chuàng)建Statement對(duì)象。Statement類:用來在數(shù)據(jù)庫上執(zhí)行SQL語句,這里的語句可以使任何合法的SQL語句。PrepareStatemen類:與Statement類相似,都是用開執(zhí)行SQL語句的,但它能指定不同的參數(shù)。ResultSet類:用于遍歷SQL的Select語句執(zhí)行后返回的結(jié)果。3.2.2通過JDBC連接SQLServer2000數(shù)據(jù)庫參數(shù)=1\*GB3①裝載驅(qū)動(dòng)程序:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”)=2\*GB3②建立連接:StringconnectionURL=”jdbc:Microsoft:sqlserver://localhost:1433;DataBaseName=ATBS;User=sa;Password=sa”;Connectioncon=DriverManeger.getConnection(connectionURl);3.2.3JDBC的Jbuilder開發(fā)JBuilder的數(shù)據(jù)庫應(yīng)用程序可以連接到任何擁有JDBC驅(qū)動(dòng)的數(shù)據(jù)庫,在Jbuilder中常用的數(shù)據(jù)庫組件是:=1\*GB3①Database組件:通過JDBC來連接具體的數(shù)據(jù)庫。=2\*GB3②DataSet組件:它是一個(gè)虛擬類,所有關(guān)于數(shù)據(jù)設(shè)置的導(dǎo)航、數(shù)據(jù)訪問、更新的API的接口都在這個(gè)類中,支持主要細(xì)節(jié)關(guān)系、行排列、行篩選的接口都包含在這個(gè)類中,一些dbswing的組件也具有DataSet屬性。=3\*GB3③QueryDataSet組件:它負(fù)責(zé)管理由JDBC提供的數(shù)據(jù),它有一個(gè)query屬性,用于定義一個(gè)SQL語句。=4\*GB3④TableDataSet組件:它是一個(gè)普通的DataSet組件,它沒有內(nèi)置提供器的機(jī)制。即便沒有默認(rèn)的提供器,它仍然可被用于恢復(fù)數(shù)據(jù)資源中的數(shù)據(jù)。=5\*GB3⑤DataSetView組件:這個(gè)組件用于提供對(duì)行排列以及行過濾得獨(dú)立瀏覽。=6\*GB3⑥StorageDataSet組件:它可以使用內(nèi)存空間來存儲(chǔ)數(shù)據(jù)當(dāng)然,除了這些組件以外,JBuilder還提供了許多連接數(shù)據(jù)庫的組件,然后將dbstring控件的DataSet屬性設(shè)置為這些組件就能連接到具體的數(shù)據(jù)庫,并對(duì)數(shù)據(jù)庫表進(jìn)行操作了。3.3SQLServer2000簡(jiǎn)介3.3.1服務(wù)器組件=1\*GB3①SQLServer2000數(shù)據(jù)庫引擎(MSSQLSERVER服務(wù))在計(jì)算機(jī)上運(yùn)行的每個(gè)SQLServer實(shí)例都有一個(gè)SQLSERVER服務(wù),當(dāng)有許多個(gè)sqlserver實(shí)例在同一臺(tái)計(jì)算機(jī)運(yùn)行時(shí)每個(gè)實(shí)例都有自己的sqlserver服務(wù),默認(rèn)實(shí)例的服務(wù)名稱為Mssqlserver,命名實(shí)例的服務(wù)名稱為mssql$instancename,instancename代表實(shí)例名。=2\*GB3②SQLServer代理程序(sqlserverAgent服務(wù))Sqlserver代理程序是實(shí)現(xiàn)運(yùn)行調(diào)度的sqlserver管理任務(wù)的代理程序,在計(jì)算機(jī)上的每個(gè)sqlserver實(shí)例都有一個(gè)這個(gè)的代理服務(wù)。=3\*GB3③Microsoft搜索服務(wù)Microsoft搜索服務(wù)僅用于WindowsNT和Windows2000,實(shí)現(xiàn)全文檢索引擎,無論計(jì)算機(jī)上有多少個(gè)SQLServer實(shí)例,都只有一個(gè)搜索服務(wù)。=4\*GB3④分布式事務(wù)處理協(xié)調(diào)器(MSDTC服務(wù))分布式事務(wù)處理協(xié)調(diào)器僅用于WindowsNT和Windows2000,管理分布事務(wù),無論計(jì)算機(jī)上有多少個(gè)SQLServer實(shí)例,都只有一個(gè)MSDTC服務(wù)。3.3.2主要管理工具 Sqlserver2000為數(shù)據(jù)庫管理員提供了多個(gè)管理系統(tǒng)的工具,下面是常用的管理工具:=1\*GB3①企業(yè)管理器企業(yè)管理器是管理控制臺(tái)(MMC)的管理單元組件,MMC支持從單個(gè)控制臺(tái)管理多種類型的服務(wù)器。=2\*GB3②查詢分析器查詢分析器用于交互式輸入T-SQL語句和存儲(chǔ)過程,可以以圖形的形式提供圖形查詢分析功能,包含集成的T-SQL調(diào)試器、對(duì)象瀏覽器、可用于確定數(shù)據(jù)庫中的表、視圖、存儲(chǔ)過程和其他對(duì)象的特性,并支持可用于加快復(fù)雜語句生產(chǎn)速度的模版。=3\*GB3③服務(wù)器網(wǎng)絡(luò)實(shí)用工具=4\*GB3④客戶端網(wǎng)絡(luò)實(shí)用工具3.3.2數(shù)據(jù)完整性所謂的數(shù)據(jù)完整性是指數(shù)據(jù)庫中數(shù)據(jù)在邏輯上的一致性和準(zhǔn)確性,包括域完整性(域完整性指列的輸入有效性)、實(shí)體完整性(實(shí)體完整性指將行定義為特定表的唯一實(shí)體)、參考完整性(參考完整性確保維持主關(guān)鍵字和外部關(guān)鍵字)3.3.3數(shù)據(jù)庫備份方法設(shè)計(jì)數(shù)據(jù)庫備份策略的指導(dǎo)思想是:以最小的代價(jià)恢復(fù)數(shù)據(jù)。數(shù)據(jù)庫備份常用的兩種備份方法:完全備份和差異備份,它們又分為只備份數(shù)據(jù)庫和備份數(shù)據(jù)庫、事務(wù)日志兩種。3.3.4SQLServer2000的身份認(rèn)證模式=1\*GB3①Windows認(rèn)證模式=2\*GB3②混合認(rèn)證模式3.4其他工具簡(jiǎn)介Visio是微軟公司開發(fā)的專業(yè)制圖工具,利用它可以制作許多種比較專業(yè)的圖形,比如流程圖、電氣圖、網(wǎng)絡(luò)拓?fù)鋱D、項(xiàng)目計(jì)劃圖、組織結(jié)構(gòu)圖等等,一般制作規(guī)范一點(diǎn)的圖形都要用到它。此外,在程序制作Splash界面中還用到了PhotoshopCS。
4機(jī)票預(yù)定系統(tǒng)設(shè)計(jì)4.1系統(tǒng)分析4.1.1系統(tǒng)應(yīng)用背景本系統(tǒng)開發(fā)的基本內(nèi)容是:開發(fā)一個(gè)機(jī)票預(yù)定系統(tǒng)。旅行社把旅客信息輸入系統(tǒng),系統(tǒng)為旅客安排航班。旅客交付了預(yù)訂金后,系統(tǒng)打印出取票通知和賬單給旅客,旅客在飛機(jī)起飛前一天憑取票通知和賬單交款取票,系統(tǒng)核對(duì)無誤打印出機(jī)票。此外航空公司為隨時(shí)掌握各個(gè)航班飛機(jī)的乘載情況,需要定期進(jìn)行查詢統(tǒng)計(jì),以便適當(dāng)調(diào)整。除此以外,還要求能滿足一下基本要求:=1\*GB3①在分析系統(tǒng)功能時(shí)要考慮有關(guān)證件的合法性驗(yàn)證(如身份證、取票通知和交款發(fā)票)等。=2\*GB3②對(duì)于本系統(tǒng)還應(yīng)補(bǔ)充以下功能:旅客延誤了取票時(shí)間的處理。航班取消后的處理。旅客臨時(shí)更改航班的處理。=3\*GB3③系統(tǒng)的外部輸入項(xiàng)至少包括:旅客、旅行社和航空公司。本系統(tǒng)對(duì)數(shù)據(jù)的需求應(yīng)包括如下幾點(diǎn):數(shù)據(jù)錄入和處理的準(zhǔn)確性和實(shí)時(shí)性數(shù)據(jù)的輸入是否準(zhǔn)確是數(shù)據(jù)處理的前提,錯(cuò)誤的輸入會(huì)導(dǎo)致系統(tǒng)輸出的不正確和不可用,從而使系統(tǒng)的工作失去意義。數(shù)據(jù)的輸入來源是手工輸入。手工輸入要通過系統(tǒng)界面上的安排系統(tǒng)具有容錯(cuò)性,并且對(duì)操作人員要進(jìn)行系統(tǒng)的培訓(xùn)。在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的,因此系統(tǒng)要有一定的處理能力,以保證迅速的處理數(shù)據(jù)。數(shù)據(jù)的一致性與完整性由于系統(tǒng)的數(shù)據(jù)是共享的,在不同的旅行社中,機(jī)票是共享數(shù)據(jù),所以如何保證這些數(shù)據(jù)的一致性,是系統(tǒng)必須解決的問題。要解決這一問題,要有一定的人員維護(hù)數(shù)據(jù)的一致性,在數(shù)據(jù)錄入處控制數(shù)據(jù)的去向,并且要求對(duì)數(shù)據(jù)庫的數(shù)據(jù)完整性進(jìn)行嚴(yán)格的約束。對(duì)于輸入的數(shù)據(jù),要為其定義完整性規(guī)則,如果不能符合完整性約束,系統(tǒng)應(yīng)該拒絕該數(shù)據(jù)。數(shù)據(jù)的共享與獨(dú)立性整個(gè)機(jī)票預(yù)定系統(tǒng)的數(shù)據(jù)是共享的。然而,從系統(tǒng)開發(fā)的角度上看,共享會(huì)給設(shè)計(jì)和調(diào)試帶來困難。因此,應(yīng)該提供靈活的配置,使各個(gè)分系統(tǒng)能夠獨(dú)立運(yùn)行,而通過人工干預(yù)的手段進(jìn)行系統(tǒng)數(shù)據(jù)的交換。這樣,也能提供系統(tǒng)的強(qiáng)壯性。另外,還應(yīng)建立本系統(tǒng)的約束:Client/Server結(jié)構(gòu)總體設(shè)計(jì)方案對(duì)它的約束:機(jī)票預(yù)定系統(tǒng)做為Client/Server結(jié)構(gòu)的一個(gè)應(yīng)用系統(tǒng),不可避免的要受到Client/Server結(jié)構(gòu)的約束。在其實(shí)施的各個(gè)階段都要服從它的一些規(guī)劃,包括功能設(shè)計(jì)、系統(tǒng)配置和計(jì)劃。同時(shí),由于信息的共享,機(jī)票預(yù)定系統(tǒng)還受到其它系統(tǒng)的信息約束。人力、資金、時(shí)間的約束機(jī)票預(yù)定工程實(shí)施的目標(biāo)就是要帶給航空公司看得出見的效益,其開發(fā)過程中也要考慮到人力、資金和時(shí)間的約束。因此,在設(shè)計(jì)中,重點(diǎn)是銷售系統(tǒng)中的方便快捷,能提供給旅客以優(yōu)質(zhì)高效的服務(wù),并提高銷售的效率和便捷,為航空公司帶來良好的效益。技術(shù)發(fā)展規(guī)律的約束計(jì)算機(jī)技術(shù)和產(chǎn)品的發(fā)展日新月異,將會(huì)給信息處理帶來更多的手段,同時(shí)也會(huì)帶來更加豐富的信息表達(dá)形式。例如圖象和語音技術(shù)的進(jìn)步,多媒體技術(shù)的發(fā)展,這些都要求系統(tǒng)在設(shè)計(jì)時(shí)考慮技術(shù)變化的可能性,為可能的變化預(yù)留一定的系統(tǒng)處理能力。4.1.2業(yè)務(wù)流程分析=1\*GB3①業(yè)務(wù)流程概述通過系統(tǒng)應(yīng)用背景的分析,我們可以得出系統(tǒng)的總目標(biāo):在計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫和先進(jìn)的開發(fā)平臺(tái)上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個(gè)具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的機(jī)票預(yù)定系統(tǒng),實(shí)現(xiàn)航空公司的機(jī)票銷售的自動(dòng)化的計(jì)算機(jī)系統(tǒng),為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息。根據(jù)可行性研究的結(jié)果和客戶的要求,分析現(xiàn)有情況及問題,采用Client/Server結(jié)構(gòu),將機(jī)票預(yù)定系統(tǒng)劃分為兩個(gè)子系統(tǒng):客戶端子系統(tǒng)和服務(wù)器端子系統(tǒng)。本系統(tǒng)中為了簡(jiǎn)化工作,將服務(wù)器端子系統(tǒng)的功能合并到客戶端子系統(tǒng)中開發(fā),這樣,客戶端就只需要對(duì)一些數(shù)據(jù)的有效性進(jìn)行驗(yàn)證就能直接與SQL數(shù)據(jù)庫服務(wù)器關(guān)聯(lián),從而大大降低了工作的復(fù)雜度。常規(guī)流程是:旅行社工作人員從客戶端輸入旅客基本信息和訂票信息,旅行社存儲(chǔ)旅客基本信息的同時(shí)將旅客的訂票信息傳輸至航空公司,航空公司經(jīng)過必要的處理(比如安排航班)后返回帶確認(rèn)信息的旅客訂票信息給旅行社,旅行社經(jīng)過核實(shí)旅客的訂票信息后打印出機(jī)票給用戶。=2\*GB3②業(yè)務(wù)流程圖旅客訂票流程圖:2傳給航空公司1.1旅客信息記錄1安排航班2.2傳給旅行社2傳給航空公司1.1旅客信息記錄1安排航班2.2傳給旅行社航班機(jī)票旅客訂票記錄機(jī)票信息旅客訂票旅客1.3產(chǎn)生取票通知旅客1.3產(chǎn)生取票通知旅客航班機(jī)票信息訂票信息取票通知訂票信息圖4.1旅客訂票流程旅客取票圖:旅客旅客1旅客旅客1旅客信息查詢3.2打印機(jī)票訂票旅客清單售出機(jī)票信息圖4.2旅客取票流程4.1.3功能模塊分析為了能實(shí)現(xiàn)機(jī)票預(yù)定系統(tǒng)的各項(xiàng)功能,并將各個(gè)功能有效、合理的組織起來,經(jīng)過對(duì)需求的分析,本系統(tǒng)的功能模塊劃分圖如下:機(jī)票預(yù)定系統(tǒng)機(jī)票預(yù)定系統(tǒng)系統(tǒng)管理子系統(tǒng)旅行社子系統(tǒng)航空公司子系統(tǒng)統(tǒng)旅客服務(wù)子系統(tǒng)統(tǒng)用戶角色管理人員信息管理旅客訂票管理旅客退票管理航班基本信息管理航班運(yùn)行信息管理航班安排管理旅客綜合查詢旅客信息管理圖4.3功能模塊劃分其中各模塊功能描述如下:=1\*GB3①一級(jí)模塊:系統(tǒng)管理子系統(tǒng):該模塊的主要功能是對(duì)用戶、人員進(jìn)行管理,另外還包括密碼修改、重新登錄、退出系統(tǒng)等功能。旅行社子系統(tǒng):該模塊的主要功能是對(duì)旅客基本信息、旅客訂票、旅客退票等信息進(jìn)行管理。航空公司子系統(tǒng):該模塊的主要功能是對(duì)航班的基本信息、運(yùn)行信息進(jìn)行管理,并對(duì)航班進(jìn)行安排。旅客服務(wù)子系統(tǒng):該模塊的主要功能便是為旅客提供基本查詢。=2\*GB3②二級(jí)模塊:用戶角色管理:該模塊的主要功能是對(duì)用戶進(jìn)行管理,包括用戶的添加、修改、查詢、刪除等功能。人員信息管理:該模塊的主要功能是對(duì)該系統(tǒng)的相關(guān)人員進(jìn)行管理,具體包括人員的添加、修改、查詢、刪除等功能。旅客信息管理:該模塊的主要功能是對(duì)旅客的基本信息進(jìn)行輸入、存儲(chǔ)、傳輸、修改、刪除等。旅客訂票管理:該模塊的主要功能是管理旅客訂票方面的基本信息。旅客退票管理:該模塊的主要功能是管理旅客退票方面的基本信息。航班基本信息管理:該模塊的主要功能是管理航班的一些靜態(tài)信息,如航班起飛時(shí)間、目的地以及有關(guān)艙位和價(jià)格方面的信息。航班運(yùn)行信息管理:該模塊的主要功能是動(dòng)態(tài)描述航班的實(shí)際運(yùn)行信息。航班安排管理:該模塊的主要功能是對(duì)旅行社傳輸過來的訂票信息進(jìn)行航班的安排。旅客綜合查詢:該模塊的主要功能是為旅客提供一些基本信息的查詢,比如航班的基本信息、旅客的訂票狀態(tài)等。此外,系統(tǒng)還提供了一個(gè)功能介紹模塊和一些關(guān)于本系統(tǒng)的幫助信息文件,本人主要負(fù)責(zé)其中的系統(tǒng)管理子模塊、旅客信息管理以及Javadoc幫助文檔等。4.2數(shù)據(jù)庫設(shè)計(jì)4.2.1數(shù)據(jù)庫分析作為一個(gè)與數(shù)據(jù)庫緊密聯(lián)系的管理系統(tǒng),數(shù)據(jù)庫在整個(gè)系統(tǒng)中扮演的角色自然是非常重要的,如果數(shù)據(jù)庫設(shè)計(jì)不正確或是不合理,對(duì)后期開發(fā)系統(tǒng)來說將會(huì)非常困難。所以要想開發(fā)出一個(gè)與數(shù)據(jù)庫相聯(lián)系的管理軟件,對(duì)數(shù)據(jù)庫的分析和設(shè)計(jì)就顯得尤為重要了。為了能建出合理的數(shù)據(jù)庫,本系統(tǒng)使用PowerDesigner11作為概念數(shù)據(jù)模型的開發(fā)工具,用PD11建立數(shù)據(jù)庫的過程如下:=1\*GB3①打開PD11后,選擇File菜單項(xiàng)下的New(快捷鍵Ctrl+N),彈出的窗口中有如下圖幾種選擇:圖4.4數(shù)據(jù)模型選擇其中用到的模型有:ConceptualDataModel--概念數(shù)據(jù)模型、PhysicalDataModel—物理數(shù)據(jù)模型、Multi-ModelReport—多模輸出。選擇ConceptualDataModel建立概念數(shù)據(jù)模型。建立CDM主用到圖4-5所示的組件工具欄:圖4.5概念數(shù)據(jù)模型組件圖4.6實(shí)體屬性修改窗口創(chuàng)建實(shí)體后,通過圖4.6所示的實(shí)體屬性修改窗口添加、修改、刪除屬性,并且可以用選擇Identifiers修改、添加標(biāo)識(shí)。=2\*GB3②完成CDM并檢查沒有錯(cuò)誤后,選擇Tools->GeneratePhysicalDataModel選項(xiàng)生成物理數(shù)據(jù)模型。其中,概念數(shù)據(jù)模型的實(shí)體名轉(zhuǎn)換成物理數(shù)據(jù)模型的表名、概念數(shù)據(jù)模型的屬性名轉(zhuǎn)換成物理數(shù)據(jù)模型的字段。=3\*GB3③選擇Database->GenerateDatabase選項(xiàng)生成具體數(shù)據(jù)庫。4.2.2數(shù)據(jù)模型圖=1\*GB3①本系統(tǒng)的概念數(shù)據(jù)模型(CDM)如下:圖4.7概念數(shù)據(jù)模型=2\*GB3②本系統(tǒng)的物理數(shù)據(jù)模型(PDM)如下:圖4.8概念數(shù)據(jù)模型4.2.3數(shù)據(jù)庫表及字段說明表4.1數(shù)據(jù)庫表格清單名稱代碼訂票信息表T_DPXXB旅行社信息表T_LXSXX旅客信息表T_LKXXB航班艙位價(jià)格信息表T_HBCWJGXXB航班基本信息表T_HBJBXXB航班運(yùn)行信息表T_HBYXXXB航空公司信息T_HKGSXX用戶信息表T_YHXXB角色信息表T_Role人員信息表T_RYXXB各表的列清單以及說明如下:表4.2人員信息表列清單(T_RYXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空人員編號(hào)str_ryxxb_ryidA88是否否人員名vstr_ryxxb_nameVA1616否否否性別str_ryxxb_xbA22否否是人員單位vstr_ryxxb_rydwVA4040否否是聯(lián)系電話str_ryxxb_lxdhA1111否否是家庭住址str_ryxxb_jtzzVA8080否否是身份證vstr_ryxxb_sfzVA1818否否否備注vstr_ryxxb_bzVA400400否否是表4.3旅客信息表列清單(T_LKXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空旅客編號(hào)str_lkxxb_lkidA1414是否否旅客姓名vstr_lkxxb_lkxmVA1515否否否身份證vstr_lkxxb_sfzVA1818否否否旅客性別str_lkxxb_lkxbA22否否是聯(lián)系電話str_lxsxx_lxdhA1111否否是工作單位vstr_lkxxb_gzdwVA2020否否是輸入時(shí)間dat_lkxxb_srsjDT否否是備注vstr_lkxxb_bzVA400400否否是表4.4旅行社信息表列清單(T_LXSXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空旅行社編號(hào)str_lxsxx_lxsidA88是否否旅行社名稱vstr_lxsxx_lxsmcVA1515否否否成立日期d_lxsxx_clsjD否否是聯(lián)系電話str_lxsxx_lxdhA1111否否是等級(jí)str_lxsxx_djA11否否是備注vstr_lxsxx_bzVA400400否否是表4.5用戶信息表列清單(T_YHXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空用戶編號(hào)str_yhxxb_yhidA88是否否角色編號(hào)str_role_roleidA88否是是用戶名vstr_yhxxb_nameVA1616否否否用戶密碼vstr_yhxxb_passwordVA1515否否否登陸次數(shù)int_yhxxb_dlcsI否否是備注vstr_yhxxb_bzVA400400否否是表4.6航班基本信息表列清單(T_HBJBXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空公司編號(hào)str_hkgsxx_gsidA88否是是航班編號(hào)str_hbjbxx_hbidA1212是否否起飛時(shí)間dat_hbjbxxb_qfsjDT否否否到達(dá)時(shí)間dat_hbjbxxb_ddsjDT否否是起飛地vstr_hbjbxxb_qfdVA8080否否是中轉(zhuǎn)地vstr_hbjbxxb_zzdVA8080否否是目的地vstr_hbjbxxb_mddVA8080否否否是否已取消str_hbjbxxb_IfcancelA11否否是備注vstr_hbjbxxb_bzVA400400否否是表4-7航班艙位價(jià)格信息表列清單(T_HBCWJGXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空公司編號(hào)str_hkgsxx_gsidA88否是是航班編號(hào)str_hbjbxx_hbidA1212否是是記錄編號(hào)str_hbcwxxb_jlbhI是否否艙位等級(jí)str_hbcwxxb_cwdjA11否否是座位數(shù)int_hbcwxxb_zwsI否否是全票價(jià)mon_hbcwxxb_qpjN12,212否否是打折率mon_hbcwxxb_dzlN5,25否否是價(jià)格是否有效str_hbjbxxb_IfIneffectA11否否是備注vstr_hbcwxxb_bzVA400400否否是表4.8航班運(yùn)行信息表列清單(T_HBYXXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空公司編號(hào)str_hkgsxx_gsidA88否是是航班編號(hào)str_hbjbxx_hbidA1212否是是運(yùn)行記錄編號(hào)str_hbyxxxb_yxjlidA1414是否否起飛時(shí)間dat_hbyxxxb_qfsjDT否否否到達(dá)時(shí)間dat_hbyxxb_ddsjDT否否是起飛地vstr_hbyxxxb_qfdVA8080否否是目的地vstr_hbyxxxb_mddVA8080否否否執(zhí)行機(jī)型vstr_hbyxxxb_zxjxVA8080否否是飛機(jī)編號(hào)str_hbyxxxb_fjidA1616否否否座位數(shù)int_hbyxxxb_zwsI否否是備注vstr_hbyxxxb_bzVA400400否否是表4.9航空公司信息表列清單(T_HKGSXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空公司編號(hào)str_hkgsxx_gsidA88是否否公司名稱vstr_hkgsxx_gsmcVA1515否否否聯(lián)系電話str_hkgsxx_lxdhA1111否否是成立日期d_hkgsxx_clsjD否否是備注vstr_hkgsxx_bzVA400400否否是表4.10角色信息表列清單(T_Role)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空角色編號(hào)str_role_roleidA88是否否角色名vstr_role_rolenameVA1616否否是備注vstr_role_bzVA400400否否是表4.11訂票信息表列清單(T_DPXXB)名稱代碼數(shù)據(jù)類型長(zhǎng)度是否主鍵是否外鍵是否允許空訂票編號(hào)str_dpxxb_dpidA88是否否旅客編號(hào)str_lkxxb_lkidA1414否是是旅行社編號(hào)str_lxsxx_lxsidA88否是是預(yù)定航班編號(hào)str_dpxxb_ydhbidA88否否是預(yù)定出發(fā)地vstr_dpxxb_ydcfdVA8080否否是預(yù)定目的地vstr_dpxxb_ydmddVA8080否否是預(yù)定起飛時(shí)間dat_dpxxb_ydqfsjT否否否預(yù)定艙位等級(jí)str_dpxxb_ydcwdjA22否否是預(yù)定價(jià)格mon_dpxxb_ydjgMN6,26否否否訂票經(jīng)辦人vstr_dpxxb_dpjbrVA1616否否是是否已出票str_dpxxb_IfsaledA22否否是出票經(jīng)辦人vstr_dpxxb_cpjbrVA1616否否是機(jī)票流水號(hào)str_dpxxb_jplshA88否否是實(shí)際航班編號(hào)str_dpxxb_sjhbidA88否否是機(jī)型vstr_dpxxb_jxVA8080否否是實(shí)際出發(fā)地vstr_dpxxb_sjcfdVA8080否否是實(shí)際起飛時(shí)間dat_dpxxb_sjqfsjDT否否是實(shí)際艙位等級(jí)str_dpxxb_sjcwdjVA22否否是座位號(hào)int_dpxxb_zwhI否否是銷售價(jià)格mon_dpxxb_xsjgN12,212否否是是否已取票str_dpxxb_IftakenA22否否是是否已退票str_dpxxb_IfreturnA22否否是退票原因vstr_dpxxb_reasonVA600600否否是應(yīng)扣手續(xù)費(fèi)mon_dpxxb_yksxfMN6,26否否是退票經(jīng)辦人vstr_dpxxb_tpjbrVA1616否否是備注vstr_dpxxb_bzVA400400否否是4.3我的模塊設(shè)計(jì)與編碼從事本次機(jī)票預(yù)定系統(tǒng)的小組開發(fā)人員有劉昀、劉楠和我,前期的查詢資料和數(shù)據(jù)庫設(shè)計(jì)是由我們共同完成的,接下來的編碼工作我們各自負(fù)責(zé)的模塊見下表:表4.12系統(tǒng)模塊分配情況姓名負(fù)責(zé)具體工作蒲海誠(chéng)登錄模塊、人員信息模塊、角色管理模塊、旅客信息模塊、幫助文檔制作劉昀航班基本信息管理模塊、航班運(yùn)行信息模塊、航班安排模塊劉楠旅客訂票管理模塊、旅客退票管理模塊、旅客綜合查詢模塊4.3.1JBuilder2006環(huán)境配置在開發(fā)具體的系統(tǒng)以前,有許多的前期準(zhǔn)備工作是必須,而且經(jīng)過這些準(zhǔn)備往往能大大提高我們的工作效率,達(dá)到事半功倍的效果。=1\*GB3①安裝好JDBC驅(qū)動(dòng)程序(一般情況下目錄是:C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC)。=2\*GB3②需要加載JDBC驅(qū)動(dòng)程序到JBuilder類庫:選擇Tools->Configure->Libraries,進(jìn)入庫配置窗口,點(diǎn)擊New按鈕,填寫庫名稱以及單ADD按鈕選擇剛才安裝的JDBC目錄(如C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\Lib),單擊確定即可。=3\*GB3③添加配置文件:選擇Enterprise->Enterprisesetup->DatabaseDrivers->單擊ADD按鈕添加前面加載的SQL2000的JDBC驅(qū)動(dòng)。然后重啟JBuilder2006即可。這里需要注意的幾點(diǎn):WindowsXP系統(tǒng)如果沒有給SQL數(shù)據(jù)庫打補(bǔ)丁(至少應(yīng)該是sp2補(bǔ)丁)或是在JBuilder2006中JDBC配置不正確,則會(huì)出如圖所示錯(cuò)誤:圖4.9WindowsXP系統(tǒng)數(shù)據(jù)庫未打補(bǔ)丁或JDBC配置不正確時(shí)顯示的錯(cuò)誤信息SQLServer2000的身份認(rèn)證應(yīng)當(dāng)選擇混合認(rèn)證模式,否則會(huì)出現(xiàn)如圖所示錯(cuò)誤:圖4.10不選擇混合認(rèn)證模式顯示的錯(cuò)誤信息應(yīng)當(dāng)對(duì)JBuilder2006的其它選項(xiàng),比如快捷鍵、代碼模板、編輯器參數(shù)等,進(jìn)行設(shè)置,這將會(huì)為接下來的編碼帶來便利。具體設(shè)置步驟為:選擇Tools->Preferences,然后選擇對(duì)應(yīng)的參數(shù)進(jìn)行設(shè)置即可。4.3.2Splash窗口設(shè)計(jì)=1\*GB3①程序?qū)崿F(xiàn)流程雙擊EXE進(jìn)入系統(tǒng)雙擊EXE進(jìn)入系統(tǒng)5秒鐘到否進(jìn)入登錄系統(tǒng)反對(duì)是否圖4.11Splash窗口程序?qū)崿F(xiàn)流程=2\*GB3②運(yùn)行效果與操作圖4.12Splash界面該界面是雙擊機(jī)票預(yù)定系統(tǒng)exe可執(zhí)行程序所見的第一界面,該界面的功能主要是顯示本系統(tǒng)的版本以及版權(quán)等基本信息,等待5秒鐘后,該界面自動(dòng)關(guān)閉,從而進(jìn)入用戶登錄界面。=3\*GB3③設(shè)計(jì)要點(diǎn)該窗口用的是JWindow類,由于一般的窗口(JFrame)會(huì)有標(biāo)題欄(titleBar),這樣必然會(huì)對(duì)整體美感產(chǎn)生影響,而如果使用對(duì)話框(JDialog)它又必須依賴于一個(gè)父框架,雖然可以將父框架設(shè)置為隱藏,但勢(shì)必也會(huì)影響系統(tǒng)性能,所以使用了JWindow類。為了能達(dá)到系統(tǒng)界面自動(dòng)跳轉(zhuǎn)的目的,需要使用javax的Timer類,該類的主要功能是計(jì)時(shí),在計(jì)時(shí)時(shí)間到時(shí),程序員可以指定需要執(zhí)行的程序。為了使該界面在不同的顯示器(比如常用的800*600、1024*768)中都能居中正常顯示,通過Toolkit.getDefaultToolkit().getScreenSize()得到本地客戶機(jī)上的顯示器屏幕大小(screenSize),然后通過frame.getSize()得到本窗口的大小(frameSize),再通過比較和設(shè)置就可以使系統(tǒng)能居中并正常的顯示了,部分代碼如下:if(frameSize.height>screenSize.height){frameSize.height=screenSize.height;}if(frameSize.width>screenSize.width){frameSize.width=screenSize.width;}//設(shè)置Splash窗口的大小位置frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);//設(shè)置Splash窗口的顯示位置下面章節(jié)中介紹的登錄窗口、主窗口以及各級(jí)模塊都用到了該技術(shù)。本模塊中一些主要控件的屬性和值設(shè)置如下:表4.13Splash界面控件屬性設(shè)置控件名稱控件類型屬性值說明Win_splashJWindowcursorCursor.WAIT_CURSOR鼠標(biāo)設(shè)為等待狀態(tài)jLabel1JLabeltext“”文本屬性設(shè)置為空iconatbs_login.jpg設(shè)置標(biāo)簽空間圖標(biāo)sizeicon.getIconWidth()圖片大小設(shè)置為實(shí)際大小constraintscenter設(shè)置標(biāo)簽位于管理器中央為了清晰地顯示該窗口的功能,將以表格的形式描述該窗口的輸入、輸出、處理圖(IPO圖),如下表:表4.14Splash窗口IPO功能編號(hào)N01功能名稱Splash窗口所屬部門02計(jì)本3調(diào)查人蒲海誠(chéng)調(diào)查時(shí)間2006審核人功能描述顯示機(jī)票預(yù)定系統(tǒng)的基本信息,等待5秒進(jìn)入用戶登錄窗口輸入項(xiàng)無處理描述創(chuàng)建一個(gè)Timer類實(shí)例time,該類構(gòu)造函數(shù)的參數(shù)依次為延遲時(shí)間(delay=5秒)、監(jiān)聽器(listener),同時(shí)還要設(shè)置它的Repeats屬性為false,在窗口添加一個(gè)voidTime_actionPerformed(ActionEventevt)函數(shù),在函數(shù)里設(shè)置要完成的工作——Frm_Loginframe=newFrm_Login(),即彈出登錄窗口。輸出項(xiàng)彈出登錄窗口。界面要求圖形化用戶界面,界面屏幕居中顯示。=4\*GB3④步驟詳解建立工程文件(atbs文件夾)和應(yīng)用文件(App_Main),系統(tǒng)會(huì)同時(shí)自動(dòng)生成一個(gè)窗口Frame(這里設(shè)置成主窗口Frm_Main,有關(guān)主窗口Frm_Main的設(shè)置將在后面章節(jié)介紹).選擇File->New->General->Class,接下來在BaseClass(基類)下拉組合框中選擇JWindow,單擊OK按鈕即可。選擇組件欄的Swing的標(biāo)簽控件(Label),添加到Win_splash窗口中,由于JWindow默認(rèn)的布局管理器是BorderLayout,所以Label控件將填充整個(gè)界面。首先添加一個(gè)事件適配器類window_flash_actionAdapter,接著為窗口添加Timer類,并在窗口的jbInit()初始化函數(shù)里創(chuàng)建并初始化一個(gè)time實(shí)例,然后啟動(dòng)time實(shí)例(time.start())。在窗口內(nèi)創(chuàng)建一個(gè)函數(shù)Time_actionPerformed(ActionEventevt),然后添加創(chuàng)建并居中顯示登錄界面同時(shí)關(guān)閉當(dāng)前窗口的代碼,。在應(yīng)用文件(App_Main)中將Splash窗口設(shè)置為第一個(gè)要顯示的窗口即可。=5\*GB3⑤設(shè)計(jì)體會(huì)本功能的實(shí)現(xiàn)主要用到了一個(gè)計(jì)時(shí)器類,如何設(shè)置計(jì)時(shí)器使之能在指定時(shí)間內(nèi)跳轉(zhuǎn)到指定窗口(這里為登錄窗口)是關(guān)鍵!還有就是布局管理器的使用也是該部分的重點(diǎn)。4.3.3登錄窗口設(shè)計(jì)=1\*GB3①程序?qū)崿F(xiàn)流程進(jìn)入登錄窗口確定還是取消密碼是否為空密碼是否正確進(jìn)入登錄窗口確定還是取消密碼是否為空密碼是否正確進(jìn)入主界面退出系統(tǒng)確定取消是否正確錯(cuò)誤圖4.13登錄窗口實(shí)現(xiàn)流程=2\*GB3②運(yùn)行效果與操作圖4.14用戶登錄界面運(yùn)行Splash窗口后,將自動(dòng)彈出用戶登錄窗口,用戶從用戶賬號(hào)下拉組合框中小選擇賬號(hào)(也可以直接輸入正確的用戶賬號(hào)),接著輸入密碼(如果是guest賬號(hào),則使用默認(rèn)的密碼,這個(gè)賬號(hào)是為旅客設(shè)置的),單擊確定按鈕,此時(shí)系統(tǒng)將會(huì)根據(jù)你的用戶賬號(hào)和密碼判斷你的輸入信息是否合法,當(dāng)密碼為空時(shí)顯示如下信息:圖4.15未輸入密碼時(shí)顯示的信息如果輸入的用戶名和密碼不匹配,則顯示如下信息:圖4.16用戶名和密碼不匹配時(shí)顯示的信息如果輸入的用戶名和密碼不匹配,則進(jìn)入系統(tǒng)主界面。=3\*GB3③技術(shù)要點(diǎn)該窗口繼承自JFrame類,其中用到的重要控件的屬性和值設(shè)置如下表:表4.15用戶登錄窗口重要控件屬性設(shè)置控件名稱控件類型屬性值說明Frm_LoginJFrametitle“歡迎登錄機(jī)票預(yù)定系統(tǒng)”設(shè)置窗口標(biāo)題resizablefalse窗口大小不可變IconImage“atbs_icon.jpg”設(shè)置窗口icon圖標(biāo)jLabel1jLabeltext“用戶賬號(hào)”jLabel2jLabeltext“密碼:”jButton1jButtontext“登陸”登錄按鈕標(biāo)題jButton2jButtontext“退出”退出按鈕標(biāo)題jdbNavComboBox_userNameJdbNavComboBoxDataSetqueryDataSet1設(shè)置數(shù)據(jù)集ColumnNamevstr_yhxxb_name列名為用戶名Editabletrue允許輸入pwdJPasswordFieldtext“”空密碼該窗口的輸入、輸出、處理(IPO圖)如下:表4.16用戶登錄窗口IPO功能編號(hào)N02功能名稱用戶登錄窗口所屬部門02計(jì)本調(diào)查人蒲海誠(chéng)調(diào)查時(shí)間2006審核人功能描述系統(tǒng)根據(jù)用戶賬戶和密碼的判斷,決定用戶能否進(jìn)入機(jī)票預(yù)定系統(tǒng),同時(shí)得到用戶類型,從而在接下來的主窗體中設(shè)置權(quán)限。輸入項(xiàng)通過下拉組合框jdbNavComboBox_userName從數(shù)據(jù)庫表T_YYXXB中檢索出用戶名,用戶亦可直接輸入用戶名。用戶通過密碼框pwd輸入用戶密碼。處理描述用戶單擊登錄按鈕,系統(tǒng)根據(jù)輸入項(xiàng)(用戶名和密碼)判斷用戶是否是合法用戶,從而決定用戶能否進(jìn)入系統(tǒng)。如果用戶是合法的,那么系統(tǒng)會(huì)紀(jì)錄用戶的一些基本信息,比如用戶名(App_Main.userName)、用戶類型(App_Main.userType)、用戶密碼(App_Main.userPassword)、用戶登錄次數(shù)(App_Main.loginTime)等等。用戶單擊退出按鈕,系統(tǒng)退出應(yīng)用程序。輸出項(xiàng)密碼為空,彈出圖4-15所示信息。用戶名不正確,彈出圖4-16所示信息。用戶名和密碼正確,進(jìn)入系統(tǒng)主窗體。退出系統(tǒng)。界面要求圖形化用戶界面,界面屏幕居中顯示。=4\*GB3④步驟詳解選擇File->New->General->Frame,在接下來BaseClass(基類)下拉組合框中使用默認(rèn)的JFrame,單擊OK按鈕即可。按照?qǐng)D4-14所示的布局,向窗體中添加控件。選擇組件框中的DataExpress選項(xiàng)卡,添加Database和QueryDataSet,設(shè)置Database的connection屬性與數(shù)據(jù)庫聯(lián)接,同時(shí)設(shè)置QueryDataSet的query屬性,得到具體數(shù)據(jù)庫表中的數(shù)據(jù)。為“退出”按鈕的actionPerformed事件添加代碼:System.exit(0)。為“登錄”按鈕的actionPerformed事件添加處理代碼。=5\*GB3⑤設(shè)計(jì)體會(huì)在這一階段中,主要運(yùn)用了一個(gè)JdbNavComboBox實(shí)例,使得從數(shù)據(jù)庫中得到用戶名變得非常簡(jiǎn)單,另外,還用到了JOptionPane的幾個(gè)靜態(tài)函數(shù)來彈出信息窗口,如何合理運(yùn)用這些基本控件是關(guān)鍵!4.3.4主窗口設(shè)計(jì)權(quán)限分配進(jìn)入主界面退出系統(tǒng)選擇各級(jí)子菜單右擊桌面背景點(diǎn)擊退出按鈕進(jìn)入各子窗口彈出菜單=1\*GB3權(quán)限分配進(jìn)入主界面退出系統(tǒng)選擇各級(jí)子菜單右擊桌面背景點(diǎn)擊退出按鈕進(jìn)入各子窗口彈出菜單圖4.17主窗口主要功能流程=2\*GB3②主界面設(shè)計(jì)運(yùn)行效果與操作圖4.18機(jī)票預(yù)定系統(tǒng)主界面通過用戶登錄窗口的驗(yàn)證后就可以進(jìn)入系統(tǒng)的主界面了,圖4-17是以超級(jí)管理員身份進(jìn)入系統(tǒng)看到的結(jié)果,根據(jù)用戶進(jìn)入系統(tǒng)時(shí)紀(jì)錄的基本信息設(shè)置用戶權(quán)限,從而使不同的用戶具有不同的權(quán)限。用戶通過選擇不同的菜單進(jìn)入不同的模塊,從而完成不同的工作。技術(shù)要點(diǎn)本系統(tǒng)采用的是多文檔窗體,也就是說其它子窗體只能在父窗體內(nèi)部活動(dòng),為了達(dá)到這一目的,窗體的布局相對(duì)于其它窗體有所不同,原來窗體中使用的內(nèi)容窗格是JPanel,而這里應(yīng)改為JLayeredPane(分層窗格)。分層窗格共分為七層,每一層顯示不同的內(nèi)容,因此,將一個(gè)帶圖標(biāo)的標(biāo)簽放在底層,將其它子窗體放在高層就可以達(dá)到既有背景圖片又能正常顯示子窗體的目的。另外,為了使界面不至于太單調(diào),系統(tǒng)還設(shè)置的彈出菜單,從而用戶不但可以使用系統(tǒng)預(yù)設(shè)的幾張圖片,而且還可以選擇本地的圖片作為背景。一些重要控件的屬性設(shè)置如下:表4.17主窗體主要控件屬性設(shè)置控件名稱控件類型屬性值說明Frm_MainJFrametitle“機(jī)票預(yù)定系統(tǒng)”設(shè)置主窗口標(biāo)題IconImage“atbs_icon.jpg”設(shè)置主窗口圖標(biāo)DefaultCloseOperationDO_NOTHING_ON_CLOSE設(shè)置默認(rèn)關(guān)閉事件JMenuBarjMenuBar1設(shè)置主菜單ContentPanejPanel1設(shè)置窗格為分層窗格jLabel1JLabeltext“”文本屬性設(shè)置為空Icon“atbs_desktop_select.jpg”設(shè)置桌面初始背景步驟詳解選擇創(chuàng)建應(yīng)用程序是系統(tǒng)創(chuàng)建的Frame1,改名稱為Frm_Main,按表4-7所示設(shè)置其屬性。將窗體的內(nèi)容窗格contentpane設(shè)置成分層窗格(JLayeredPane)的實(shí)例jPanel1。添加一個(gè)標(biāo)簽控件JLabel1,設(shè)置其屬性如表4-7,并將之添加到分層窗格的DEFAULT_LAYER層。添加一個(gè)權(quán)限管理函數(shù)privatevoidqxsz(),根據(jù)用戶的登錄信息設(shè)置用戶的權(quán)限。設(shè)計(jì)體會(huì)在Java中使用多文檔窗口技術(shù),除了可以使用分層窗格作為內(nèi)容窗格以外,還可以采用桌面窗格(JDeskTopPane),但如果向桌面窗格中添加含背景圖片的標(biāo)簽控件是可能會(huì)出現(xiàn)不可預(yù)料的結(jié)果。=3\*GB3③主菜單設(shè)計(jì)運(yùn)行效果與操作圖4.19系統(tǒng)管理菜單項(xiàng)圖4.20旅行社菜單項(xiàng)圖4.21航空公司菜單項(xiàng)圖4.22幫助菜單項(xiàng)上面的效果圖便是系統(tǒng)主菜單下的子菜單項(xiàng),單擊某一項(xiàng)或使用助記符(Alt+相應(yīng)下劃線)即可進(jìn)入相應(yīng)的字模塊。技術(shù)要點(diǎn)菜單技術(shù)已經(jīng)成為當(dāng)前管理系統(tǒng)不可或缺的技術(shù),要開發(fā)出友好界面的系統(tǒng)菜單將是最佳選擇,JBuilder2006中有專門的菜單制作工具,基本上每一步都是可視化的,需要設(shè)置的主要屬性有:text—菜單標(biāo)題、mnemonic—設(shè)置助記符、accelerator—設(shè)置快捷菜單、addSeparator—添加分割條等。步驟詳解選擇Structure窗格下的Menu文件夾,雙擊jMenuBar1項(xiàng)進(jìn)入菜單編輯器。依次輸入一級(jí)菜單和二級(jí)菜單的標(biāo)簽。設(shè)置各級(jí)菜單的助記符或快捷菜單。給各級(jí)菜單的actionPerformed事件添加打開各個(gè)子模塊的代碼。設(shè)計(jì)體會(huì)與經(jīng)驗(yàn)由于有可可視化的菜單編輯器,使得在JBuilder中編輯菜單變得容易了許多。=4\*GB3④彈出菜單設(shè)計(jì)運(yùn)行效果與操作圖4.23桌面彈出菜單在主界面桌面背景下單擊鼠標(biāo)右鍵,將彈出如上圖所示菜單,選擇“關(guān)于系統(tǒng)”菜單將彈出一些本系統(tǒng)制作的基本信息,選擇“重新登錄”菜單將關(guān)閉主窗口同時(shí)顯示用戶登錄窗口,選擇“修改密碼”菜單將彈出修改密碼窗口,選擇“更改桌面”菜單下的任意項(xiàng)則桌面背景也隨之修改。技術(shù)要點(diǎn)彈出菜單的制作要點(diǎn)與一般菜單的制作效果完全一樣,不同的是在設(shè)置“更改桌面”菜單項(xiàng)時(shí)采用了jRadioButtonMenuItem菜單,為了能使用戶每次只能選擇一種背景,加入BottonGroup選項(xiàng)按鈕組對(duì)這一組菜單進(jìn)行約束。除此以外,需要設(shè)置的主要屬性有:text—菜單標(biāo)題、mnemonic—設(shè)置助記符、accelerator—設(shè)置快捷菜單、addSeparator—添加分割條等。步驟詳解選擇SwingContainers選項(xiàng)卡下的JPopupMenu添加到Structure窗格的Menu文件夾。依次輸入一級(jí)菜單和二級(jí)菜單的標(biāo)簽。設(shè)置各級(jí)菜單的助記符或快捷菜單,同時(shí)添加一個(gè)BottonGroup控件。將“更改桌面”子菜單項(xiàng)添加到BottonGroup控件。給各級(jí)菜單的actionPerformed事件添加預(yù)實(shí)現(xiàn)的代碼。設(shè)計(jì)體會(huì)這里主要注意設(shè)置單選按鈕菜單以及選項(xiàng)按鈕控件的使用,這樣每次糾只能選擇一種背景。用戶角色管理窗口添加用戶修改用戶查詢用戶輸入用戶數(shù)據(jù)數(shù)據(jù)合法用戶角色管理
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 插座安全使用科普
- 切磚技術(shù)與工具
- 腦血管疾病患者的呼吸管理護(hù)理
- 休克患者的護(hù)理工作倫理困境
- 敗血癥患者心理護(hù)理與支持
- 2026道普信息技術(shù)有限公司招聘?jìng)淇碱}庫(山東)及完整答案詳解
- 2026福建閩江學(xué)院附屬中學(xué)辦公室文員招聘1人備考題庫附答案詳解
- 分班考知識(shí)點(diǎn)講解課件
- 分層級(jí)護(hù)理培訓(xùn)
- 捉小龍蝦技術(shù)培訓(xùn)課件
- 廣西出版?zhèn)髅郊瘓F(tuán)有限公司2026年招聘?jìng)淇碱}庫附答案詳解
- 陶瓷工藝品彩繪師改進(jìn)水平考核試卷含答案
- 2025廣東百萬英才匯南粵惠州市市直事業(yè)單位招聘急需緊缺人才31人(公共基礎(chǔ)知識(shí))測(cè)試題附答案
- 粉塵防護(hù)知識(shí)課件
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫及完整答案詳解一套
- (2025年)糧食和物資儲(chǔ)備局招聘考試題庫(答案+解析)
- 2026年樂陵市市屬國(guó)有企業(yè)公開招聘工作人員6名備考題庫及答案詳解一套
- DB32/T+5309-2025+普通國(guó)省道智慧公路建設(shè)總體技術(shù)規(guī)范
- 人事行政部2026年年度計(jì)劃
- 2026年上海市徐匯區(qū)老年大學(xué)招聘教務(wù)員備考題庫完整參考答案詳解
- 2026年國(guó)家電投集團(tuán)蘇州審計(jì)中心選聘?jìng)淇碱}庫及完整答案詳解一套
評(píng)論
0/150
提交評(píng)論