




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
旅游管理系統(tǒng)—畢業(yè)設(shè)計(jì)(論文)旅游管理系統(tǒng)1(選題背景計(jì)算機(jī)軟件開發(fā)在現(xiàn)代已成為一種重要的行業(yè),發(fā)展前景越來(lái)越好,軟件開發(fā)需求人員也越來(lái)越大,尤其是數(shù)據(jù)庫(kù)和信息管理方面的開發(fā),更是供不應(yīng)求。在畢業(yè)之即,作為計(jì)算機(jī)專業(yè)的學(xué)生,為了適應(yīng)社會(huì)的需要,加強(qiáng)自己的編程能力.在畢業(yè)設(shè)計(jì)選題時(shí),我堅(jiān)定不移地選擇了數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)方面的課題。下面將詳細(xì)分析:1.1旅游資源前景旅游業(yè)是當(dāng)今國(guó)際國(guó)內(nèi)發(fā)展最快的產(chǎn)業(yè)之一,也是世界各國(guó)互相理解、交流、,從而增進(jìn)經(jīng)濟(jì)全球化的重要手段,因此各國(guó)政府都非常重視旅游業(yè)的發(fā)展.我國(guó)現(xiàn)代旅游業(yè)只有短短歷史,但已經(jīng)獲得了舉世矚目的成績(jī):1992年國(guó)內(nèi)旅游人次為3.3億人次,收入250億元;1999年到達(dá)7.19億人次,收入2831億元;再創(chuàng)新高,到達(dá)7。44億人次,收入3522.26億元.1999年,我國(guó)國(guó)內(nèi)國(guó)際旅游總收入超過(guò)了4000億元人民幣,創(chuàng)匯140億美元,比1978年增長(zhǎng)48倍。,我國(guó)旅游人數(shù)和收入已經(jīng)從1978年的世界第41位躍至前10名之列.在制定“十五"(至)計(jì)劃和跨世紀(jì)發(fā)展規(guī)劃中,中國(guó)有二十四個(gè)省把旅游作為在經(jīng)濟(jì)構(gòu)造調(diào)整中優(yōu)先發(fā)展的支柱產(chǎn)業(yè)、重點(diǎn)產(chǎn)業(yè)。按照規(guī)劃,估計(jì)到,中國(guó)旅游業(yè)總收入將超過(guò)3。3萬(wàn)億元人民幣,相稱于國(guó)內(nèi)生產(chǎn)總值的百分之八,真正成為國(guó)民經(jīng)濟(jì)的支柱產(chǎn)業(yè)。加入WTO后來(lái)旅游業(yè)成為了愈加活躍、競(jìng)爭(zhēng)愈加劇烈、發(fā)展愈加迅速的第三產(chǎn)業(yè)的支柱之一。目前,我國(guó)旅行社信息化建設(shè)落后,旅行社電腦的用途多數(shù)是打打字。線路銷售手工操作,效率低下輕易出錯(cuò),客戶資料不易整頓,大量丟失,這些都是限制我們旅游發(fā)展的瓶頸了。而目前市場(chǎng)的旅游管理軟件,動(dòng)輒幾萬(wàn)元,遠(yuǎn)非我們所樂(lè)意承受的。旅游業(yè)普遍存在著企業(yè)規(guī)模較小,管理不規(guī)范等弱點(diǎn).由于旅游波及吃、住、行、游、購(gòu)、娛等諸多要素,并且這些要素又分散在不一樣的地區(qū)中,一種人不也許全面掌握所有的信息。一旦掌握某方面的信息的人離開企業(yè),就會(huì)對(duì)企業(yè)的經(jīng)營(yíng)導(dǎo)致負(fù)面影響。旅游資源及線路管理系統(tǒng)可以把多種旅游資源分類存儲(chǔ)管理,通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)資源共享,不僅以便快捷,并且不會(huì)由于人員流動(dòng)影響企業(yè)的經(jīng)營(yíng),是旅游社在劇烈的市場(chǎng)競(jìng)爭(zhēng)中的堅(jiān)強(qiáng)后盾。1。2數(shù)據(jù)庫(kù)和信息管理系統(tǒng)前景社會(huì)的進(jìn)步,科學(xué)的發(fā)達(dá),經(jīng)濟(jì)的高速發(fā)展,使管理工作越來(lái)越離不開信息,信息處理已成為當(dāng)今世間上一項(xiàng)重要的社會(huì)活動(dòng).伴隨微型計(jì)算機(jī)日益增多,它在各行各業(yè)中得到迅速推廣和應(yīng)用,已經(jīng)深入到社會(huì)的各個(gè)領(lǐng)域,計(jì)算機(jī)已經(jīng)成為現(xiàn)代信息處理的重要工具。隨之而來(lái)的就是各行各業(yè)對(duì)計(jì)算機(jī)應(yīng)用軟件的大量需求。1.2。1管理信息系統(tǒng)概念管理信息系統(tǒng)(MIS,ManagementInformationSystem),是一種由人、計(jì)算機(jī)等構(gòu)成的能進(jìn)行信息的搜集、傳送、儲(chǔ)存、維護(hù)和使用的系統(tǒng),可以實(shí)測(cè)企業(yè)的多種運(yùn)行狀況,并運(yùn)用過(guò)去的歷史數(shù)據(jù)預(yù)測(cè)未來(lái),從企業(yè)全局的角度出發(fā)輔助企業(yè)進(jìn)行決策,運(yùn)用信息控制企業(yè)的行為,協(xié)助企業(yè)實(shí)現(xiàn)其規(guī)劃目的。這里給出的定義強(qiáng)調(diào)了管理信息系統(tǒng)的功能和性質(zhì),也強(qiáng)調(diào)了管理信息系統(tǒng)中的計(jì)算機(jī)對(duì)企業(yè)管理而言只是一種工具.管理信息系統(tǒng)是信息系統(tǒng)的重要分支之一,通過(guò)30數(shù)年的發(fā)展,已經(jīng)成為一種具有自身概念、理論、構(gòu)造、體系和開發(fā)措施的覆蓋多學(xué)科的新學(xué)科.信息管理者信息源信息處理信息顧客圖4.2。1管理信息總體構(gòu)造圖而數(shù)據(jù)和信息的結(jié)合在現(xiàn)代社會(huì)生活中體現(xiàn)出了越來(lái)越強(qiáng)大的功能和作用,數(shù)據(jù)已經(jīng)滲透到了社會(huì)中的每一種角落和行業(yè),與我們的生活息息有關(guān)。伴隨計(jì)算機(jī)的日益普及和網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)庫(kù)的應(yīng)用范圍越來(lái)越廣,數(shù)據(jù)庫(kù)應(yīng)用的功能也越來(lái)越強(qiáng)。1。2.2數(shù)據(jù)庫(kù)的基本概念(1)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(database,簡(jiǎn)稱DB),即數(shù)據(jù)的倉(cāng)庫(kù),是存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的有關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和擴(kuò)展性,并可為多種顧客共享。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是高度構(gòu)造化的,可以存儲(chǔ)大量的數(shù)據(jù),并且可以以便地進(jìn)行數(shù)據(jù)的查詢,此外數(shù)據(jù)庫(kù)還具有很好的保護(hù)安全和維護(hù)數(shù)據(jù)一致性的措施,可以以便數(shù)據(jù)的共享.(2)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(databasemanagementsystem,簡(jiǎn)稱DBMS)是在操作系統(tǒng)支持下,為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件系統(tǒng),數(shù)據(jù)庫(kù)管理系統(tǒng)是位于顧客與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它在操作系統(tǒng)的基礎(chǔ)上。對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和控制,運(yùn)用數(shù)據(jù)庫(kù)管理系統(tǒng)提供的一系列命令,顧客可以以便地建立數(shù)據(jù)庫(kù)和操作數(shù)據(jù),例如建表、向表中添加、刪除記錄等。顧客使用的多種數(shù)據(jù)庫(kù)命令以及數(shù)據(jù)庫(kù)應(yīng)用程序的運(yùn)行,都要通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)實(shí)現(xiàn)。此外,數(shù)據(jù)庫(kù)管理系統(tǒng)還要保證數(shù)據(jù)的安全性、完整性、多顧客對(duì)數(shù)據(jù)庫(kù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)等任務(wù)。(3)數(shù)據(jù)庫(kù)應(yīng)用程序數(shù)據(jù)庫(kù)應(yīng)用程序是指用VisualBasic或Delphi等開發(fā)工具開發(fā)的程序,用來(lái)實(shí)現(xiàn)某種詳細(xì)的功能,例如旅游資源及線路管理系統(tǒng),多種信息管理系統(tǒng)等.數(shù)據(jù)庫(kù)應(yīng)用程序是在操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下開發(fā)和運(yùn)行的,它運(yùn)用數(shù)據(jù)庫(kù)管理系統(tǒng)提供的多種手段訪問(wèn)一種或多種數(shù)據(jù)庫(kù)及數(shù)據(jù).由于旅游業(yè)的興起和迅速發(fā)展,需要一種高效、迅速及以便地系統(tǒng)來(lái)管理整個(gè)旅游過(guò)程中的基本信息和資源,以減少人力、物力、時(shí)間等多方面資源的揮霍,給企業(yè)或企業(yè)帶來(lái)更多的利潤(rùn),這就使得信息管理和數(shù)據(jù)庫(kù)管理系統(tǒng)得到了充足的運(yùn)用。本旅游資源及線路管理系統(tǒng)就是計(jì)算機(jī)信息管理和數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)相結(jié)合的產(chǎn)物。2(需求分析2。1軟件的需求分析軟件需求分析是指顧客對(duì)目的系統(tǒng)在功能、性能、行為、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是確定系統(tǒng)必須完畢哪些工作,也就是對(duì)目的系統(tǒng)提出完整、精確、清晰、詳細(xì)的規(guī)定.需求分析的成果是系統(tǒng)開發(fā)的基礎(chǔ),關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量.2。2需求分析階段對(duì)系統(tǒng)的綜合規(guī)定有四個(gè)方面:(1)系統(tǒng)功能規(guī)定應(yīng)當(dāng)劃分出系統(tǒng)必須完畢的因此功能.(2)系統(tǒng)性能規(guī)定系統(tǒng)需要的存儲(chǔ)容量以及后援存儲(chǔ),重新啟動(dòng)和安全性等方面的考慮都屬于性能規(guī)定。(3)運(yùn)行規(guī)定此類規(guī)定集中體現(xiàn)為對(duì)運(yùn)行時(shí)所處環(huán)境的規(guī)定.(4)未來(lái)也許提出的規(guī)定應(yīng)當(dāng)明確地列出那些雖然不屬于目前系統(tǒng)開發(fā)范圍,不過(guò)據(jù)分析未來(lái)很也許會(huì)提出來(lái)的規(guī)定。這樣做的目的是在設(shè)計(jì)過(guò)程中對(duì)系統(tǒng)未來(lái)也許的擴(kuò)充和修改預(yù)做,以便一旦需要時(shí)能比較輕易地進(jìn)行這種擴(kuò)充和修改。通過(guò)這些需求分析來(lái)確定整個(gè)系統(tǒng)的功能模塊設(shè)計(jì)和界面的設(shè)置和安排。需求分析在整個(gè)軟件開發(fā)設(shè)計(jì)中起著十分重要的作用。因此,在實(shí)際的工程中,應(yīng)當(dāng)接觸產(chǎn)品的最終顧客或者最終顧客代表.缺乏這樣的接觸,對(duì)于許多需求問(wèn)題,就無(wú)法得到可靠的回答。假如缺乏可靠的需求信息,就無(wú)法生產(chǎn)出高質(zhì)量的產(chǎn)品。實(shí)際上,使用不可靠的需求信息,產(chǎn)品無(wú)疑是不能使用的,并且常常不是顧客所想要的。3(方案論證3。1技術(shù)可行性旅游資源及線路管理系統(tǒng)的實(shí)現(xiàn)技術(shù)有多種,可以采用老式的客戶機(jī)/服務(wù)器(C/S)型的MIS型架構(gòu).此外一種采用Web技術(shù)實(shí)現(xiàn)。Web技術(shù)超越了老式的“客戶機(jī)/服務(wù)器”兩層構(gòu)造,采用三層體系構(gòu)造:顧客界面層/事務(wù)層/數(shù)據(jù)庫(kù)層。因此Web構(gòu)造有著更好的安全性。在顧客機(jī)上不需要安裝任何應(yīng)用程序,應(yīng)用程序可以安裝在事務(wù)層所在的計(jì)算機(jī)上,數(shù)據(jù)內(nèi)容寄存在數(shù)據(jù)庫(kù)服務(wù)器上。C,S模式是一種分布式的處理模式,用Server進(jìn)行數(shù)據(jù)處理,用Client運(yùn)行前端應(yīng)用軟件,具有如下特點(diǎn):(1)、系統(tǒng)的可靠性好,可以在網(wǎng)上以便地增長(zhǎng)Client或Server,一般增長(zhǎng)一種Client,并不需要增長(zhǎng)多少Server的開銷。(2)、C,S模式支持開放的Client接口和開放的Server接口,往往不依賴于硬件及操作系統(tǒng)平臺(tái),便于應(yīng)用程序的移植。(3)、由于C,S模式采用數(shù)據(jù)集中,處理分散的模式,主機(jī)模式下的DBMS數(shù)據(jù)完整性得以保留.(4)、由于充當(dāng)Client的PC機(jī),具有良好的圖形界面和豐富的應(yīng)用軟件,使得它的體現(xiàn)能力強(qiáng),訪問(wèn)數(shù)據(jù)十分輕易。從而,使C,S模式成為信息平臺(tái)的發(fā)展趨勢(shì)。3.2開發(fā)工具及開發(fā)平臺(tái)的選擇本系統(tǒng)采用C/S模式(即客戶機(jī)-服務(wù)器模式),用VB作為應(yīng)用程序的前端開發(fā)工具,與后端的SQLServer數(shù)據(jù)庫(kù)相結(jié)合的方式來(lái)完畢。再加上VB作為一種面向?qū)ο蟮目梢暬幊坦ぞ?,具有?jiǎn)樸易學(xué),靈活以便和易于擴(kuò)充的特點(diǎn)。VB通過(guò)配置ODBC數(shù)據(jù)庫(kù)連接到SQLServer數(shù)據(jù)庫(kù),再通過(guò)ADO、RDO和DAO對(duì)這些數(shù)據(jù)進(jìn)行訪問(wèn)和操作,這更有便于數(shù)據(jù)的管理和安全。3.3采用SQLServer數(shù)據(jù)庫(kù)的長(zhǎng)處SQL可用于所有顧客的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、應(yīng)用程序員、決策支持系統(tǒng)人員及許多其他類型的終端顧客。基本的SQL命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握.SQL為許多任務(wù)提供了命令,其中包括:查詢數(shù)據(jù)??在表中插入、修改和刪除記錄?建立、修改和刪除數(shù)據(jù)對(duì)象?控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存???保證數(shù)據(jù)庫(kù)一致性和完整性此前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL將所有任務(wù)統(tǒng)一在一種語(yǔ)言中。4(服務(wù)器與客戶端配置要以SQLServer為后臺(tái)數(shù)據(jù)庫(kù)開發(fā)應(yīng)用程序,首先要對(duì)服務(wù)器與各戶端進(jìn)行配置。本節(jié)將簡(jiǎn)樸地簡(jiǎn)介怎樣配置SQLServer服務(wù)器和ODBC數(shù)據(jù)源.4。1啟動(dòng)、暫停和停止SQLServer在缺省狀況下,SQLServer安裝完畢后,“服務(wù)管理器”會(huì)自動(dòng)地添加到系統(tǒng)的“啟動(dòng)”文獻(xiàn)夾中,即在系統(tǒng)啟動(dòng)后,自動(dòng)運(yùn)行SQLServer服務(wù)管理器,可以在系統(tǒng)任務(wù)欄中看到它的圖標(biāo)。雙擊圖標(biāo),打開SQLServer服務(wù)管理器.在服務(wù)管理器,可以選擇服務(wù)器所在的計(jì)算機(jī)和SQLServer服務(wù),同步可以很輕松地控制SQLServer服務(wù)。選中“當(dāng)啟動(dòng)OS時(shí)自動(dòng)啟動(dòng)服務(wù)”復(fù)選框,即可關(guān)現(xiàn)自動(dòng)啟動(dòng)服務(wù)功能。也可以在“企業(yè)管理器"中設(shè)置自動(dòng)啟動(dòng)SQLServer服務(wù)。單擊“開始”按鈕,依次選擇“程序"/“SQLServer”/“企業(yè)管理器”,打開SQLServer企業(yè)管理器。企業(yè)管理器可以協(xié)助顧客完畢如下工作:?定義SQLServer實(shí)例組;?將個(gè)別服務(wù)器注冊(cè)到組中;?為每個(gè)已注冊(cè)的服務(wù)器配置所有SQLServer選項(xiàng);?在每個(gè)已注冊(cè)的服務(wù)器中創(chuàng)立并管理所有SQLServer數(shù)據(jù)庫(kù)、對(duì)象、登錄、顧客和權(quán)限;?在每人已注冊(cè)的服務(wù)器上定義并執(zhí)行所有SQLServer管理任務(wù);?通過(guò)喚醒調(diào)用SQL查詢分析器,交互地設(shè)計(jì)并測(cè)試SQL語(yǔ)句、批處理和腳本;喚醒調(diào)用SQLServer定義的多種向?qū)?。?.2配置ODBC數(shù)據(jù)源本書所簡(jiǎn)介的應(yīng)用程序?qū)嵗际峭ㄟ^(guò)配置ODBC數(shù)據(jù)源連接到SQLServer數(shù)據(jù)庫(kù)的.數(shù)據(jù)源是一種存儲(chǔ)定義,它可以記錄如下信息:?連接到數(shù)據(jù)源所使用的ODBC驅(qū)動(dòng)程序。?ODBC驅(qū)動(dòng)程序連接到數(shù)據(jù)源所使用用的信息;?連接所使用的驅(qū)動(dòng)程序特有的選項(xiàng)。例如,SQLServerODBC數(shù)據(jù)源可以記錄要使用的SQL_92選項(xiàng),或者驅(qū)動(dòng)程序與否應(yīng)記錄性能記錄.客戶端上的每個(gè)ODBC數(shù)據(jù)源均有一種唯一的數(shù)據(jù)源名稱(DSN)。SQLServerODBC驅(qū)動(dòng)程序的ODBC數(shù)據(jù)源包括用于連接到SQLServer實(shí)例的所有信息以及任何基本選項(xiàng)。SQLServer使用ODBC數(shù)據(jù)源ODBC數(shù)據(jù)源.在“控制面板"中,選擇“管理工具"下的“數(shù)據(jù)源(ODBC)”,啟動(dòng)ODBC數(shù)據(jù)源管理器。單擊“驅(qū)動(dòng)程序”選項(xiàng)卡,可以看到系統(tǒng)統(tǒng)安裝的所有ODBC驅(qū)動(dòng)程序,從中可以找到SQLServer的信息,并查看SQLServer的版信息。我們可以按照如下方式將SQLServer數(shù)據(jù)庫(kù)添加到ODBC數(shù)據(jù)源中。1(單擊“系統(tǒng)DSN”選項(xiàng)卡,進(jìn)入系統(tǒng)數(shù)據(jù)源頁(yè)面。2(單擊“添加”按鈕,打開“創(chuàng)立新數(shù)據(jù)源"對(duì)話框.3(在驅(qū)動(dòng)程序列表中,選擇SQLServer,然后單擊“完畢"按鈕,打開“創(chuàng)立數(shù)據(jù)源向?qū)А贝翱?輸入數(shù)據(jù)源名稱、闡明和SQLServer服務(wù)器。4(單擊“下一步”,打開設(shè)置身份驗(yàn)證窗口,根據(jù)數(shù)據(jù)庫(kù)的詳細(xì)設(shè)置選擇身份驗(yàn)證方式,一般需要選擇“使用顧客輸入登錄的SQLServer驗(yàn)證”,然后手動(dòng)地輸入登錄ID(例如sa)和密碼。5(單擊“下一步”按鈕,打開設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)對(duì)話框.在選擇的SQLServer數(shù)據(jù)庫(kù)上,存在多種數(shù)據(jù)庫(kù),默認(rèn)的數(shù)據(jù)庫(kù)是master,顧客可以選擇自懷創(chuàng)立的數(shù)據(jù)庫(kù),如newdb.顧客還可以在指定服務(wù)器中添加數(shù)據(jù)庫(kù),選中“附加數(shù)據(jù)庫(kù)文獻(xiàn)名稱”復(fù)選框,為可附加的數(shù)據(jù)庫(kù)指定主文獻(xiàn)名。這個(gè)數(shù)據(jù)庫(kù)被附加并用作數(shù)據(jù)源的默認(rèn)數(shù)據(jù)庫(kù)。請(qǐng)指定主文獻(xiàn)的完全途徑名和文獻(xiàn)名,并在“更改默認(rèn)的數(shù)據(jù)庫(kù)為"框中指定的數(shù)據(jù)庫(kù)名字,用作附加數(shù)據(jù)庫(kù)的名字.6(單擊“下一步”按鈕,進(jìn)入數(shù)據(jù)源向?qū)У南乱环N窗口。在這個(gè)窗口中,顧客可以批暄用于SQLServer消息的語(yǔ)言、字符設(shè)置轉(zhuǎn)換和SQLServer驅(qū)動(dòng)程序是應(yīng)當(dāng)使用區(qū)域設(shè)置.還可以控制運(yùn)和運(yùn)行時(shí)間較長(zhǎng)的查詢和驅(qū)動(dòng)程序記錄設(shè)置的記錄。7(單擊“完畢”按鈕,數(shù)據(jù)源向?qū)?huì)彈出一種總結(jié)匯報(bào),匯總此數(shù)據(jù)源的所有信息,包括SQLServerODBC驅(qū)動(dòng)程序版本、數(shù)據(jù)源名稱、數(shù)據(jù)源描述、服務(wù)器名稱、數(shù)據(jù)庫(kù)、語(yǔ)言、與否轉(zhuǎn)換字符數(shù)據(jù)、日志驅(qū)動(dòng)程序、使用集成安全機(jī)制、使用區(qū)域設(shè)置、預(yù)定義的語(yǔ)句選項(xiàng)、使用備用服務(wù)器、使用ANSI的空值,填充和警告以及數(shù)據(jù)加密等。8(單擊“測(cè)試數(shù)據(jù)源"按鈕,可以栓查數(shù)據(jù)源配置與否成功。5(系統(tǒng)總體設(shè)計(jì)規(guī)劃在通過(guò)以上的需求分析、方案論證、開發(fā)工具及開發(fā)平臺(tái)的選擇、服務(wù)器與客戶端配置,一切開發(fā)前的就緒工作做好后來(lái),我們就可以進(jìn)入系統(tǒng)的總體開發(fā)和設(shè)計(jì)了.下面重要簡(jiǎn)介系統(tǒng)的總體設(shè)計(jì)和規(guī)劃.5.1系統(tǒng)功能描述本系統(tǒng)所描述的旅游資源及線路管理的重要功能包括:(1)地區(qū)信息管理功能?地區(qū)信息的錄入,包括地區(qū)名稱和地區(qū)類型等信息;?地區(qū)信息的修改;?地區(qū)信息的刪除;?地區(qū)信息的查詢。(2)景點(diǎn)資源管理功能?景點(diǎn)資源的錄入,包括景點(diǎn)編號(hào)、景點(diǎn)名稱、聯(lián)絡(luò)人、票價(jià)等信息;?景點(diǎn)資源的修改;?景點(diǎn)資源的刪除;?景點(diǎn)資源的查詢。(3)賓館資源管理功能?賓館資源的錄入,包括賓館編號(hào)、賓館名稱、聯(lián)絡(luò)人、報(bào)價(jià)等信息;?賓館資源的修改;?賓館資源的刪除;?賓館資源的查詢。(4)餐廳資源管理功能?餐廳資源的錄入,包括餐廳編號(hào)、餐廳名稱、聯(lián)絡(luò)人、報(bào)價(jià)等信息;?餐廳資源信息的修改;?餐廳資源信息的刪除;?餐廳資源信息的查詢。(5)娛樂(lè)資源管理功能?娛樂(lè)資源信息的錄入,包括娛樂(lè)廳編號(hào)、娛樂(lè)廳名稱、聯(lián)絡(luò)人、報(bào)價(jià)等信息;?娛樂(lè)資源信息的修改;?娛樂(lè)資源信息的刪除;?娛樂(lè)資源信息的查詢。(6)交通資源管理功能?火車資源信息管理;?飛機(jī)資源信息公里。(7)旅游線路管理功能?旅游線路信息的錄入,包括線路編號(hào)、線路名稱、報(bào)價(jià)等信息;?旅游線路信息的修改;?旅游線路信息的刪除;?旅游線路信息的查詢.(8)系統(tǒng)顧客管理功能?系統(tǒng)顧客信息的錄入,包括顧客名、密碼等信息;?系統(tǒng)顧客信息的修改;?系統(tǒng)顧客信息的刪除;?系統(tǒng)顧客信息的查詢.5.2功能模塊劃分從功能描述的內(nèi)容可以看到,本系統(tǒng)可以實(shí)現(xiàn)其完整的功能.根據(jù)這些功能,設(shè)計(jì)出的系統(tǒng)功能模塊如下圖5.2所示。旅游資源及線路管理系統(tǒng)地景餐娛交旅系賓域點(diǎn)廳樂(lè)通游統(tǒng)館信資資資資線用資息源源源源路戶源管管管管管管管管理理理理理理理理火飛車機(jī)資資源源管管理理圖5.2旅游資源及線路管理系統(tǒng)功能模塊示意圖在功能模塊示意圖的樹狀構(gòu)造中,每一種葉結(jié)點(diǎn)都是一種最小的功能模塊。每一種功能模塊都需要針對(duì)不一樣的表完畢相似的數(shù)據(jù)庫(kù)操作,即添加記錄、修改記錄、以及查詢顯示記錄信息.旅游資源及線路管理系統(tǒng)的功能模塊之間的關(guān)系如圖5。2。1所示。旅游線路管理提供數(shù)據(jù)提供數(shù)據(jù)提供數(shù)據(jù)線路地區(qū)數(shù)據(jù)提供數(shù)據(jù)提供數(shù)據(jù)線路景點(diǎn)數(shù)據(jù)景點(diǎn)資源管理地線路域提供數(shù)據(jù)提供數(shù)據(jù)線路賓館數(shù)據(jù)賓館資源管理報(bào)價(jià)信提供數(shù)據(jù)提供數(shù)據(jù)及成息線路用餐數(shù)據(jù)餐廳資源管理本預(yù)管算理提供數(shù)據(jù)提供數(shù)據(jù)線路娛樂(lè)數(shù)據(jù)娛樂(lè)資源管理線路交通數(shù)據(jù)交通資源管理其他線路數(shù)據(jù)圖5.2.1旅游資源及線路管理系統(tǒng)的功能模塊關(guān)系圖從模塊關(guān)系圖中可以看出,旅游資源信息除了供顧客查閱外,不可認(rèn)為旅游線路管理提供數(shù)據(jù)。當(dāng)顧客需要生成一條旅游線路時(shí),可以從旅游資源里取到最新的數(shù)據(jù)。線路報(bào)價(jià)和成本預(yù)算也會(huì)伴隨資源的變化而變化。5。3系統(tǒng)流程分析理解了系統(tǒng)的功能模塊劃分,以及各模塊之間的關(guān)系。這是系統(tǒng)總體設(shè)計(jì)的重要構(gòu)成部分。假如對(duì)系統(tǒng)形成一種完整而全面的認(rèn)識(shí),還需要進(jìn)行系統(tǒng)流程分析。所謂系統(tǒng)流程就是顧客在使用系統(tǒng)時(shí)的工作過(guò)程。多顧客系統(tǒng)的工作流程都是從顧客登錄模塊開始,對(duì)顧客的身份進(jìn)行認(rèn)證.身份認(rèn)證可以分為如下兩個(gè)過(guò)程:(1)確認(rèn)顧客與否有效的系統(tǒng)顧客;(2)確定顧客的類型。第1個(gè)過(guò)程決定顧客能否進(jìn)入系統(tǒng).第2個(gè)過(guò)程根據(jù)顧客的類型決定顧客的操作權(quán)限,從而決定顧客的工作界面。本系統(tǒng)的流程分析如圖5.3所示。開始重試否失敗是顧客登錄失敗超過(guò)3次退出程序成功顧客管理模塊旅游資源及線路管理模塊讀取顧客類型1管理自己的顧客信息旅游資源管理2管理一般顧客的信息Admin顧客旅游線路管理管理自己的顧客信息5。3系統(tǒng)流程分析圖從系統(tǒng)流程分析圖中可以看到,每個(gè)顧客有3次機(jī)會(huì)進(jìn)行身份認(rèn)證.假如3次輸入的顧客名和密碼都無(wú)法與數(shù)據(jù)庫(kù)中的數(shù)據(jù)匹配,則強(qiáng)制退出系統(tǒng)。5.4數(shù)據(jù)庫(kù)設(shè)計(jì)5。4。1創(chuàng)立數(shù)據(jù)庫(kù)表:數(shù)據(jù)庫(kù)Travel中包括如下16個(gè)表:地區(qū)信息表Area、景點(diǎn)資源信息表Place、賓館資源信息表Hotel、餐廳資源信息表Restaurant、娛樂(lè)廳資源信息表Amusement、娛樂(lè)項(xiàng)目資源信息表AmuseItem、火車資源信息表Train、飛機(jī)資源信息表Plane、線路基本信息表tline、線路景點(diǎn)信息表lplace、線路賓館信息表lHotel、線路用餐信息表lRes、線路娛樂(lè)信息表lamuse、線路火車信息表ltrain、線路飛機(jī)信息表lplane、顧客信息表Users。在本系統(tǒng)中由于要用到標(biāo)識(shí)符自動(dòng)增長(zhǎng),在這里我們不使用企業(yè)管理器來(lái)創(chuàng)立表,而使用腳本文獻(xiàn)創(chuàng)立數(shù)據(jù)表,這對(duì)背面的設(shè)計(jì)有很大的協(xié)助和以便作用。(1)創(chuàng)立表Area創(chuàng)立表Area的腳本文獻(xiàn)為Area.sql,它的代碼如下:createtableArea(AreaIdintprimarykeyidentity,AreaNamevarchar(40)notnull,AreaTypesmallintnotnull)在使用createtalbe指令創(chuàng)立表時(shí),應(yīng)當(dāng)注意使用Primarykey關(guān)鍵字定義表的主鍵。表中每一行的主鍵均有唯一值,可以使用主鍵惟一地標(biāo)識(shí)一行數(shù)據(jù).(2)創(chuàng)立表Place創(chuàng)立表Place的腳本文獻(xiàn)為Place。sql,它的代碼如下:createtableplace(Pidintprimarykeyidentity,Pnamevarchar(200)notnull,Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(10),Adult_priceDecimal(10,2),Child_priceDecimal(10,2),AreaIdint,Input_timechar17)在使用createtable指令創(chuàng)立表時(shí),應(yīng)當(dāng)注意使用identity關(guān)鍵字定義表的標(biāo)識(shí)列。Identity屬性可以用于獲得自動(dòng)增長(zhǎng)的標(biāo)識(shí)號(hào)。例如,表place中的Pid字段是標(biāo)識(shí)列,對(duì)于新插入表中的記錄,它的Pid字段將獲得一種自動(dòng)分派的整型值。對(duì)于諸多表中都使用的惟一編號(hào)列,一般可以使用identity定義。(3)創(chuàng)立表Hotel創(chuàng)立表Hotel的腳本文獻(xiàn)為Hotel.sql,它的代碼如下:createtableHotel(Hidintprimarykeyidentity,Hnamevarchar(200)notnull,Hlevelvarchar(40),Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(100),Price1Decimal(10,2),Price2Decimal(10,2),Price3Decimal(10,2),Price4Decimal(10,2),AreaIdint,Input_timechar17)在使用createtable指令創(chuàng)立表時(shí),應(yīng)當(dāng)注意使用notnull關(guān)鍵字定義表的末空字段。使用notnull定義的字段將不容許為空,這樣就可以防止表中出現(xiàn)無(wú)效的數(shù)據(jù),影響系統(tǒng)運(yùn)行。例如,表Hotel中的Hname字段將不能為空,否則在系統(tǒng)的賓館名稱列表中將出現(xiàn)一種空.(4)創(chuàng)立表Restaurant創(chuàng)立表Restaurant的腳本文獻(xiàn)Restaurant。sql,它的代碼如下:createtableRestaurant(Ridintprimarykeyidentity,Rnamevarchar(200)notnull,Rlevelvarchar(40),Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(10),Breakfastdecimal(10,2),Dinnerdecimal(10,2),AreaIdint,Input_timechar(17))(5)創(chuàng)立表Amusement創(chuàng)立表Amusement的腳本文獻(xiàn)為Amusement.sql,它的代碼如下:createtableAmusement(Aidintprimarykeyidentity,Anamevarchar(200)notnull,Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(10),AreaIdint,Input_timechar(17))(6)創(chuàng)立表AmuseItem創(chuàng)立表AmuseItem的腳本文獻(xiàn)為AmuseItem。sql,它的代碼如下:createtableAmuseItem(Iidintprimarykeyidentity,Aidint,Itemvarchar(50)notnull,Pricedecimal(10,2),Input_timechar(17))(7)創(chuàng)立表Train創(chuàng)立表Train的腳本文獻(xiàn)為Train。sql,它的代碼如下:createtableTrain(Tidintprimarykeyidentity,Tnovarchar(20)notnull,Sstationvarchar(40),Estationvarchar(40),Stimevarchar(40),Etimevarchar(40),PriceYzdecimal(7,2),PriceRzdecimal(7,2),PriceYwdecimal(7,2),PriceRwdecimal(7,2),Input_timechar(17))(8)創(chuàng)立表Plane創(chuàng)立表Plane的腳本文獻(xiàn)為Plane.sql,它的代碼如下:createtablePlane(Pidintprimarykeyidentity,AirComvarchar(50)notnull,Pnovarchar(20)notnull,SairPortvarchar(40),EaiPortvarchar(40),Stimevarchar(40),Etimevarchar(40),Price1decimal(7,2),Price2decimal(7,2),Cyclechar(7),Input_timechar(17))(9)創(chuàng)立表tline創(chuàng)立表tline的腳本文獻(xiàn)為tline.sql,它的代碼如下:createtabletline(lidintprimarykey,lnamevarchar(50),ldaysmallint,ltypesmallint,insComvarchar(40),insFeedecimal(8,2),oterCostdecimal(8,2),tourPaydecimal(8,2),benefitdecimal(8,2),AreaIdint)(10)創(chuàng)立表lplace創(chuàng)立表lplacee的腳本文獻(xiàn)為lplace。sql,它的代碼如下:createtablelplace(lidintnotnull,Pidintnotnull)(11)創(chuàng)立表lhotel創(chuàng)立表lhotel的腳本文獻(xiàn)為lhotel.sql,它的代碼如下:createtablelhotel(lidintnotnull,hidintnotnull,rTypetinyint,rdaystinyint)(12)創(chuàng)立表lres創(chuàng)立表lres的腳本文獻(xiàn)為lres。sql,它的代碼如下:createtablelres(lidintnotnull,ridintnotnull,rTypetinyint,rTimestinyint)(13)創(chuàng)立表lamuse創(chuàng)立表lamuse的腳本文獻(xiàn)為lamuse。sql,它的代碼如下:createtablelamuse(lidintnotnull,Iidintnotnull,aTimestinyint)(14)創(chuàng)立表ltrain創(chuàng)立表ltrain的腳本文獻(xiàn)為ltrain.sql,它的代碼如下:createtableltrain(lidintnotnull,directintnotnull,tidtinyintnotnull,rTypetinyint)(15)創(chuàng)立表lplane創(chuàng)立表lplane的腳本文獻(xiàn)為lplane.sql,它的代碼如下:createtablelplane(lidintnotnull,directtinyintnotnull,pidintnotnull)(16)創(chuàng)立表Users創(chuàng)立表Users的腳本文獻(xiàn)為Users。sql,它的代碼如下:createtableUsers(UserNamevarchar(40)primarykey,Pwdvarchar(40)notnull,EmpNamevarchar(40))在查詢分析器中打開這些sql文獻(xiàn),然后單擊運(yùn)行圖標(biāo),就可以在數(shù)據(jù)庫(kù)中創(chuàng)立對(duì)應(yīng)的表。5.5數(shù)據(jù)庫(kù)訪問(wèn)5。5.1ODBC數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫(kù)互連)是Microsoft企業(yè)開放服務(wù)構(gòu)造中有關(guān)數(shù)據(jù)庫(kù)的一種構(gòu)成部分,它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的原則API(應(yīng)用程序編程接口).這些API運(yùn)用SQL來(lái)完畢其大部分任務(wù).ODBC自身也提供了對(duì)SQL語(yǔ)言的支持,顧客可以直接將SQL語(yǔ)句送給ODBC.一種基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫(kù)的操作不依賴任何DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)),不直接與DBMS打交道,所有的數(shù)據(jù)庫(kù)操作由對(duì)應(yīng)的DBMS的ODBC驅(qū)動(dòng)程序完畢.也就是說(shuō),不管是FoxPro、Access還是SQLServer數(shù)據(jù)庫(kù),均可用ODBCAPI進(jìn)行訪問(wèn)。由此可見,ODBC的最大長(zhǎng)處是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫(kù)。一種完整的ODBC由下列幾種部分構(gòu)成.?應(yīng)用程序(Application);?ODBC管理器(Administrator)。該程序位于Windows控制面板的32位ODBC內(nèi),其重要任務(wù)是管理ODBC驅(qū)動(dòng)程序和數(shù)據(jù)庫(kù);?驅(qū)動(dòng)程序管理器(DriverManager)。驅(qū)動(dòng)程序管理起包括在ODBC32。DLL中,對(duì)顧客是透明的。其任務(wù)是管理ODBC驅(qū)動(dòng)程序,是ODBC中最重要的部件;?ODBCAPI;ODBC驅(qū)動(dòng)程序。它是某些DLL,提供了ODBC和數(shù)據(jù)庫(kù)之間的接口;??數(shù)據(jù)源。數(shù)據(jù)源包括了數(shù)據(jù)庫(kù)位置和數(shù)據(jù)庫(kù)類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。各部件之間的關(guān)系如圖5.5所示。數(shù)據(jù)源名應(yīng)用程序(DNS)應(yīng)用層ODBCODBCAPI管理器SQL驅(qū)動(dòng)程序管理器ODBC驅(qū)動(dòng)程序ODBC層數(shù)據(jù)源DataSource數(shù)據(jù)層圖5.5ODBC各部件關(guān)系圖應(yīng)用程序要訪問(wèn)一種數(shù)據(jù)庫(kù),首先必須用ODBC管理器注冊(cè)一種數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫(kù)位置、數(shù)據(jù)庫(kù)類型及ODBC驅(qū)動(dòng)程序等信息,建立起ODBC與詳細(xì)數(shù)據(jù)庫(kù)的聯(lián)絡(luò).這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供應(yīng)ODBC就能建立起與對(duì)應(yīng)數(shù)據(jù)庫(kù)的連接。5。5.2數(shù)據(jù)庫(kù)訪問(wèn)控件在使用VisualBasic開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的時(shí)候,會(huì)常常使用數(shù)據(jù)庫(kù)訪問(wèn)控件.這些控件包括:?Data控件;?ADOData控件;?DataList控件/DataCombo控件;?DataGrid控件;?MSChart控件。5.6功能模塊規(guī)劃窗體、模塊和類模塊是VisualBasic的重要資源.它們?cè)诔绦蛟O(shè)計(jì)中具有不可替代的作用。設(shè)計(jì)好它們之間的功能,使用它們可以協(xié)調(diào)合作,對(duì)于開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序是非常重要的。窗體是VisualBasic程序中比不可少的資源。它可以實(shí)現(xiàn)工程的外觀顯示,添加程序代碼,實(shí)現(xiàn)需要的功能。窗體文獻(xiàn)一般直接寄存在應(yīng)用程序的目錄下。模塊可以用來(lái)管理全局常量、變量和顧客自定義函數(shù)等。顧客可以在類模塊中創(chuàng)立自定義類。本實(shí)例中約定,數(shù)據(jù)庫(kù)的每個(gè)表都對(duì)應(yīng)一種類模塊。類的組員變量對(duì)應(yīng)表中的每個(gè)列,類的組員函數(shù)則是對(duì)表的多種操作.5.6.1添加模塊根據(jù)VisualBasic功能模塊的劃分原則,我們將分別創(chuàng)立如下幾種模塊。?Const用來(lái)管理工程中的常量。?DbFunc用來(lái)管理工程中與數(shù)據(jù)庫(kù)操作有關(guān)的申明、變量和函數(shù)。?GeneralFunc用來(lái)管理工程中某些通用的自定義函數(shù)。?Variable用來(lái)管理工程中的全局變量。5.6.2添加類模塊根據(jù)VisualBasic功能模塊的劃分原則,為每一種表創(chuàng)立一種類模塊,將對(duì)此表的所有數(shù)據(jù)庫(kù)操作封裝在類中.在一般狀況下,類的組員變量與對(duì)應(yīng)的表中的字段名相似。由于絕大多數(shù)組員函數(shù)的編碼格式都是非常相似的,只是所使用的SQL語(yǔ)句不一樣,因此只闡明類中組員函數(shù)的功能,并不對(duì)所有的組員函數(shù)進(jìn)行詳細(xì)的代碼分析.下面就Area類來(lái)闡明類模塊組員函數(shù)。Area類的組員函數(shù)函數(shù)名詳細(xì)闡明Init初始化組員變量Delete刪除指定的地區(qū)記錄。參數(shù)TmpId表達(dá)要?jiǎng)h除的地區(qū)編號(hào)GetId根據(jù)指定的地區(qū)名讀取地區(qū)編號(hào)。參數(shù)TmnName表達(dá)要讀取的地區(qū)名稱GetInfo讀取指定的地區(qū)記錄。參數(shù)TmpId表達(dá)要讀取的地區(qū)編號(hào)In_DB判斷指定的地區(qū)名稱與否已經(jīng)在數(shù)據(jù)庫(kù)中。參數(shù)TmpName表達(dá)指定地區(qū)名Insert插入新的地區(qū)記錄將所有的地區(qū)數(shù)據(jù)讀取到數(shù)組中。為了便于使用,此過(guò)程按照地區(qū)的分類將Load_Area地區(qū)分別裝入到數(shù)組d1()、d2()、d3()中Update修改指定的地區(qū)記錄。參數(shù)TmpId表達(dá)要修改的地區(qū)編號(hào)詳細(xì)的模塊代碼和類模塊組員函數(shù)的代碼不一一闡明。5。7系統(tǒng)主界面設(shè)計(jì)5.7。1設(shè)計(jì)主界面圖5.7。2參照表5.7.1設(shè)置主界面窗體的屬性。表5。7。1設(shè)置主窗體的屬性窗體屬性設(shè)置值詳細(xì)闡明FrmMain名稱設(shè)置窗體名稱BorderStyle1—FixedSingle設(shè)置窗體的邊框?qū)傩訡aption旅游資源及線路管理系統(tǒng)窗體的標(biāo)題條文本MaxButtonFalse取消最大化按鈕MinButtonTrue激活最小化按鈕PictureImg\Main.jpg設(shè)置窗體背景StartUpPosition2-屏幕中心設(shè)置窗體位于屏幕中心本實(shí)例的主界面如圖5。7。1所示。圖5.7。2旅游資源及線路管理系統(tǒng)主界面5.7。2在主界面中添加代碼由于系統(tǒng)的其他功能還沒(méi)有實(shí)現(xiàn),因此只能添加退出系統(tǒng)的代碼。其他的代碼將在對(duì)應(yīng)的功能實(shí)現(xiàn)后再添加到窗體中.當(dāng)顧客單擊lblExit按鈕時(shí),將執(zhí)行l(wèi)blExit_Click()過(guò)程,退出系統(tǒng)。代碼如下:PrivateSublblexit_Click()DBapi_DisconnectEndEndSub5。8登錄模塊設(shè)計(jì)顧客要使用本系統(tǒng),首先要同過(guò)系統(tǒng)的身份認(rèn)證,這個(gè)過(guò)程叫做登錄.登錄過(guò)程需要完畢如下任務(wù):?根據(jù)顧客名和密碼來(lái)判斷與否也許進(jìn)入系統(tǒng);?根據(jù)顧客類型決定顧客擁有的權(quán)限。5。8.1設(shè)計(jì)登錄窗體創(chuàng)立一種新窗體,設(shè)置窗體名為FrmLogin。登錄窗體的布局如圖5。8所示。5.8。2在登錄窗體中添加代碼其中的Cmd_Ok按鈕的代碼如下:PrivateSubCmd_OK_Click()DimjAsSingle'數(shù)據(jù)有效性檢查IftxtUser=””ThenMsgBox"請(qǐng)輸入顧客名”txtUser.SetFocusExitSubEndIfIftxtPwd=”"ThenMsgBox”請(qǐng)輸入密碼"txtPwd.SetFocusExitSubEndIfNameKey=MakeStr(txtUser)PasswordKey=MakeStr(txtPwd)’判斷顧客與否存在IfMyUser。In_DB(NameKey)=FalseThenMsgBox”顧客名不存在”Try_times=Try_times+1IfTry_times>=3ThenMsgBox”您已經(jīng)三次嘗試進(jìn)入本系統(tǒng),均不成功,系統(tǒng)將關(guān)閉”DBapi_DisconnectEndElseExitSubEndIfEndIf’判斷密碼與否對(duì)的MyUser.GetInfo(NameKey)IfMyUser.Pwd<〉PasswordKeyThenMsgBox”密碼錯(cuò)誤”Try_times=Try_times+1IfTry_times〉=3ThenMsgBox”您已經(jīng)三次嘗試進(jìn)入本系統(tǒng),均不成功,系統(tǒng)將關(guān)閉”DBapi_DisconnectEndElseExitSubEndIfEndIf'登錄成功,將目前顧客的信息保留在CurUser中CurUser。GetInfo(MyUser。UserName)’關(guān)閉自己UnloadMeEndSub5.9旅游地區(qū)資源管理模塊設(shè)計(jì)地區(qū)管理模塊可以實(shí)現(xiàn)如下功能:?添加地區(qū)信息;?修改地區(qū)信息;?刪除地區(qū)信息;?查看地區(qū)信息。5.9。1設(shè)計(jì)旅游地區(qū)資源編輯窗體編輯地區(qū)信息的窗體可以用來(lái)添加和修改地區(qū)信息。創(chuàng)立一種新窗體,窗體設(shè)置為FrmAreaEdit。窗體FrmAreaEdit的布局如圖5.9所示。圖5。9窗體FrmAreaEdit的布局下面分析窗體FrmAreaEdit中部分過(guò)程的代碼。1(全局變量Modify變量Modify用來(lái)標(biāo)識(shí)目前的數(shù)據(jù)庫(kù)訪問(wèn)狀態(tài)。當(dāng)Modify=True時(shí),表達(dá)修改已經(jīng)有的數(shù)據(jù),當(dāng)Modify=False時(shí),表達(dá)插入新的數(shù)據(jù);變量OriId表達(dá)目前編輯地區(qū)數(shù)據(jù)的地區(qū)編號(hào);變量OriAreaName表達(dá)目前編輯地區(qū)數(shù)據(jù)的原有地區(qū)名稱;變量OriType表達(dá)目前編輯地區(qū)數(shù)據(jù)的原有地區(qū)類別.2(Cmd_OK_Click過(guò)程當(dāng)顧客單擊“確定”按鈕時(shí),將觸發(fā)Cmd_Ok_Click事件,對(duì)應(yīng)的程序代碼如下:PrivateSubCmd_OK_Click()’檢查顧客輸入的地區(qū)數(shù)據(jù)與否有效IfCheck=FalseThenExitSubEndIfWithMyArea’把顧客輸入的地區(qū)數(shù)據(jù)賦值到MyArea對(duì)象的組員變量中.AreaName=MakeStr(txtAreaName)。AreaType=CurType'判斷地區(qū)名稱與否存在IfModify=FalseOrOriAreaName<〉Trim(txtAreaName)ThenIf。In_DB(MakeStr(txtAreaName))=TrueThenMsgBox”地區(qū)名稱已經(jīng)存在,請(qǐng)重新輸入”txtAreaName.SetFocustxtAreaName。SelStart=0txtAreaName。SelLength=Len(txtAreaName)ExitSubEndIfEndIf’根據(jù)變量Modify的值,決定是插入新數(shù)據(jù),還是修改已經(jīng)有的數(shù)據(jù)IfModify=FalseThen。InsertElse.Update(OriId)EndIfEndWith’關(guān)閉窗體UnloadMeEndSub在上面的程序段中,分別對(duì)插入地區(qū)數(shù)據(jù)和修改地區(qū)數(shù)據(jù)兩種狀況進(jìn)行處理.插入數(shù)據(jù)時(shí)使用Area.Insert()過(guò)程,修改數(shù)據(jù)時(shí)調(diào)用Area。Update()過(guò)程.5。9.2設(shè)計(jì)旅游地區(qū)資源管理窗體創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmAreaMan.窗體FrmAreaMan的布局如圖5。9.2所示.下面分析窗體FrmAreaMan中部分過(guò)程的代碼。(Loadarea過(guò)程1Loadarea過(guò)程的功能是從數(shù)據(jù)庫(kù)中讀取不一樣類型的地區(qū)數(shù)據(jù),并根據(jù)顧客的選擇把指定類別的地區(qū)名稱添加到List1中.對(duì)應(yīng)的代碼如下:PrivateSubLoadarea()DimiAsIntegerList1。ClearMyArea.Load_Area'本市地區(qū)IfOption1.Value=TrueThenDoWhiled1(i)〈〉""List1。AddItemd1(i)'把本市地區(qū)添加到List1列表框中i=i+1LoopEndIf'外埠地區(qū)IfOption2.Value=TrueThenDoWhiled2(i)〈〉””List1.AddItemd2(i)'把外埠地區(qū)添加到List1列表框中i=i+1LoopEndIf’國(guó)外地區(qū)IfOption3。Value=TrueThenDoWhiled3(i)〈>””List1。AddItemd3(i)'把國(guó)外地區(qū)添加到List1列表框中i=i+1LoopEndIfEndSubMyArea.Loadarea過(guò)程的作用是將地區(qū)名稱按照類別讀取到全局?jǐn)?shù)組d1()、d2()和d3()中。2(DeleteCheck過(guò)程當(dāng)顧客要?jiǎng)h除地區(qū)數(shù)據(jù)時(shí),程序?qū)⒄{(diào)用DeleteCheck()函數(shù),判斷目前選擇的地區(qū)與否可以刪除,對(duì)應(yīng)的代碼如下:PrivateFunctionDeleteCheck(ByValTmpIdAsLong)AsIntegerDimTmpNameAsString'旅游娛樂(lè)廳資源地區(qū)數(shù)據(jù)檢查TmpName=MyPlace。AreaInPlace(CurAreaId)IfTmpName<〉"”ThenDeleteCheck=-1MsgBox"目前地區(qū)信息在娛樂(lè)廳—”+TmpName+"-中使用,為保證數(shù)據(jù)的完整性,不容許刪除此地區(qū).”ExitFunctionEndIf’旅游賓館資源地區(qū)數(shù)據(jù)檢查TmpName=MyHotel.AreaInHotel(CurAreaId)IfTmpName<>"”ThenDeleteCheck=—1MsgBox”目前地區(qū)信息在賓館-"+TmpName+”-中使用,為保證數(shù)據(jù)的完整性,不容許刪除此地區(qū)."ExitFunctionEndIf'旅游用餐資源地區(qū)數(shù)據(jù)檢查TmpName=MyRes.AreaInRes(CurAreaId)IfTmpName<〉"”ThenDeleteCheck=—1MsgBox”目前地區(qū)信息在餐廳—"+TmpName+”-中使用,為保證數(shù)據(jù)的完整性,不容許刪除此地區(qū).”ExitFunctionEndIf'旅游娛樂(lè)資源地區(qū)數(shù)據(jù)檢查TmpName=MyAmuse.AreaInAmuse(CurAreaId)IfTmpName<>””ThenDeleteCheck=—1MsgBox”目前地區(qū)信息在娛樂(lè)廳-"+TmpName+”—中使用,為保證數(shù)據(jù)的完整性,不容許刪除此地區(qū).”ExitFunctionEndIf'旅游線路地區(qū)數(shù)據(jù)檢查TmpName=MyLine.AreaInLine(CurAreaId)IfTmpName〈〉"”ThenDeleteCheck=—1MsgBox”目前地區(qū)信息-在線路—"+TmpName+”—中使用,為保證數(shù)據(jù)的完整性,不容許刪除此地區(qū)。"ExitFunctionEndIf'通過(guò)檢查,可以刪除目前地區(qū)DeleteCheck=0EndFunction為了維護(hù)數(shù)據(jù)庫(kù)構(gòu)造的完整性,在刪除數(shù)據(jù)時(shí),往往需要進(jìn)行數(shù)據(jù)庫(kù)完整性的判斷.地域數(shù)據(jù)是本系統(tǒng)中最基本的數(shù)據(jù),與諸多表存在聯(lián)絡(luò)。因此在刪除地區(qū)數(shù)據(jù)時(shí),需要在其他表中進(jìn)行判斷,假如要?jiǎng)h除的地區(qū)存在于其他表中,則不能刪除,由于刪除此地區(qū)會(huì)導(dǎo)致其他表的數(shù)據(jù)不完整。3(Form_Load過(guò)程當(dāng)裝入窗體FrmAreaMan時(shí),將觸發(fā)Form_Load事件,對(duì)應(yīng)的代碼如下:PrivateSubForm_Load()'將目前地區(qū)類型設(shè)置為“本市"Option1。Value=True'裝入數(shù)據(jù)LoadareaEndSub4(Cmd_Modi_Click過(guò)程當(dāng)顧客單擊“修改”按鈕時(shí),將觸發(fā)Cmd_Modi_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubCmd_Modi_Click()'判斷與否選擇了要修改的地區(qū)IfList1。ListIndex<0ThenMsgBox"請(qǐng)選擇要修改的地區(qū)”ExitSubEndIf’修改本市地區(qū)IfOption1。Value=TrueThenFrmAreaEdit.CurType=1FrmAreaEdit。lblAreaType=”本市"EndIf'修改外埠地區(qū)IfOption2.Value=TrueThenFrmAreaEdit.CurType=2FrmAreaEdit.lblAreaType="外埠”EndIf’修改國(guó)外地區(qū)IfOption3.Value=TrueThenFrmAreaEdit.CurType=3FrmAreaEdit.lblAreaType="國(guó)外"EndIf’將變量Modify設(shè)置設(shè)置為False,表達(dá)插入新數(shù)據(jù)FrmAreaEdit.Modify=True'設(shè)置全局變量FrmAreaEdit。OriAreaName=List1。TextFrmAreaEdit.txtAreaName=List1。TextFrmAreaEdit。OriId=CurAreaId’啟動(dòng)編輯地區(qū)信息的窗體FrmAreaEdit。Show1'修改后重新裝入地區(qū)數(shù)據(jù)LoadareaEndSub5(Cmd_Del_Click過(guò)程當(dāng)顧客單擊“刪除"按鈕時(shí),將觸發(fā)Cmd_Del_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubCmd_Del_Click()'判斷與否選擇了要?jiǎng)h除的地區(qū)IfList1。ListIndex<0ThenMsgBox"請(qǐng)選擇要?jiǎng)h除的地區(qū)”ExitSubEndIf'調(diào)用DeleteCheck()函數(shù),判斷選擇的地區(qū)與否可以刪除IfDeleteCheck(CurAreaId)=—1ThenExitSubEndIf'問(wèn)詢與否可以刪除地區(qū)IfMsgBox("與否刪除目前地區(qū)?",vbYesNo,"請(qǐng)確認(rèn)”)=vbYesThenMyArea.Delete(CurAreaId)LoadareaEndIfEndSub5。10景點(diǎn)資源管理模塊設(shè)計(jì)景點(diǎn)資源管理模塊可以實(shí)現(xiàn)如下功能:?添加景點(diǎn)資源信息;?修改景點(diǎn)資源信息;?刪除景點(diǎn)資源信息;?查看景點(diǎn)資源信息。5.10。1設(shè)計(jì)景點(diǎn)資源編輯窗體創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmPlaceEdit。窗體FrmPlaceEdit的布局如圖6。10所示。圖5。10窗體FrmPlaceEdit的布局下面分析窗體FrmPlaceEdit中各個(gè)過(guò)程的代碼.1(Form_Load過(guò)程當(dāng)FrmPlaceEdit窗體啟動(dòng)時(shí),將觸發(fā)Form_Loade事件,對(duì)應(yīng)的代碼如下:PrivateSubForm_Load()ComboType.AddItem("本市")ComboType。AddItem(”外埠")ComboType.AddItem("國(guó)外")ComboType.ListIndex=OriType—1CallLoadarea(OriType,ComboName)IfInCombo(OriAreaName,ComboName)=TrueThenComboName。Text=OriAreaNameEndIfEndSub2(Cmd_Ok_Click()過(guò)程當(dāng)顧客單擊“確定”按鈕時(shí),將觸發(fā)Cmd_OK_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubCmd_OK_Click()'檢查顧客輸入的地區(qū)數(shù)據(jù)與否有效IfCheck=FalseThenExitSubEndIfWithMyPlace'把顧客輸入的地區(qū)數(shù)據(jù)賦值到MyPlace對(duì)象的組員變量中。Pname=MakeStr(txtPlace)。Contact=MakeStr(txtContact).Phone=MakeStr(txtPhone).Address=MakeStr(txtAddress)。Postcode=MakeStr(txtCode)。Adult_price=Val(txtAdult)。Child_price=Val(txtChild).AreaId=MyArea.GetId(ComboName)’判斷景點(diǎn)名稱與否存在IfModify=FalseOrOriPlaceName〈〉Trim(txtPlace)ThenIf.In_DB(MakeStr(txtPlace))=TrueThenMsgBox”景點(diǎn)名稱已經(jīng)存在,請(qǐng)重新輸入"txtPlace.SetFocustxtPlace。SelStart=0txtPlace.SelLength=Len(txtPlace)ExitSubEndIfEndIf'根據(jù)變量Modify的值,決定是插入新數(shù)據(jù),還是修改已經(jīng)有的數(shù)據(jù)IfModify=FalseThen。InsertElse。Update(OriId)EndIfEndWith’關(guān)閉窗體UnloadMeEndSub5.10.2設(shè)計(jì)景點(diǎn)資源管理窗體創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmPlaceMan。參照表5.10。2添加并設(shè)置控件的屬性.表5。10.2窗體FrmPlaceMan包括的控件及屬性對(duì)象名屬性屬性值ConnectionStringDSN=TravelAdodc1PasswordSaUserNameSaRecordSourceSELECT*FROMPlaceVisibleFalseDataGrid1DataSourceAdodc1Cmd_AddCaption添加Cmd_ModiCaption修改Cmd_DelCaption刪除Cmd_CloseCaption關(guān)閉窗體FrmPlaceMan的布局如圖5。10所示。下面分析窗體FrmPlaceMan中幾種過(guò)程的代碼。1(Refresh_Place過(guò)程Refresh_Place()過(guò)程的功能是為Adodc1控件設(shè)置數(shù)據(jù)源,從而決定在DataGrid1控件顯示的數(shù)據(jù)內(nèi)容,對(duì)應(yīng)的代碼如下:PrivateSubRefresh_Place()’設(shè)置數(shù)據(jù)源Adodc1.RecordSource="SELECTa.AreaName所在地區(qū),p.PnameAs景點(diǎn)名稱,"_+”p。ContactAs聯(lián)絡(luò)人,p。PhoneAs聯(lián)絡(luò)電話,p.AddressAs通信地址,"_+”p.PostcodeAs郵政編碼,p.Adult_PriceAs成人票價(jià),"_+”p.Child_PriceAs小朋友票價(jià),p.Input_timeAs錄入時(shí)間”_+"FROMPlacep,AreaaWHEREp.AreaId=a.AreaId"_+"Anda。AreaName=’”+Trim(ComboName.Text)+”’”Adodc1。RefreshEndSub由于在DataGrid1控件中要顯示的數(shù)據(jù)內(nèi)容聯(lián)絡(luò)到了數(shù)據(jù)庫(kù)中的兩個(gè)表,這就是在數(shù)據(jù)庫(kù)中所說(shuō)地表的連接查詢.要選擇兩個(gè)不一樣的表,需要找到一種兩個(gè)表都相似的公共部分,這樣才能使兩個(gè)表建立起一定的關(guān)系。在本例中,Area表和Place表是通過(guò)AreaId字段來(lái)建立連接關(guān)系的.但我們?cè)诓僮鞯臅r(shí)候好象并沒(méi)有對(duì)AreaId進(jìn)行實(shí)際操作。這里用到了前面所說(shuō)地在創(chuàng)立表的腳本文獻(xiàn)時(shí),使用IDENTITY關(guān)鍵字定義表的標(biāo)識(shí)列,IDENTITY屬性可以用于獲得自動(dòng)增長(zhǎng)的標(biāo)識(shí)號(hào).然后通過(guò)place。AreaId=MyArea.GetId(ComboName)語(yǔ)句把自動(dòng)獲得的標(biāo)識(shí)號(hào)賦值到place表中的AreaId字段中.這樣就可以使我們?cè)趯?shí)際應(yīng)用中減少許多復(fù)雜地考慮過(guò)程,這種措施在背面的實(shí)例中也常常用到.2(Cmd_Modi_Click事件當(dāng)顧客單擊“修改"按鈕時(shí),將觸發(fā)Cmd_Modi_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubCmd_Del_Click()DimTmpIdAsLong’判斷與否選擇了要?jiǎng)h除的記錄IfAdodc1.Recordset.EOF=TrueThenMsgBox”請(qǐng)選擇記錄"ExitSubEndIf’確定目前選擇記錄的位置p=Adodc1。Recordset。AbsolutePosition’讀取目前行的景點(diǎn)編號(hào),由于要以此編號(hào)做為刪除景點(diǎn)的關(guān)鍵字TmpId=MyPlace.GetId(Trim(Adodc1。Recordset.Fields(1)))’判斷目前記錄與否出目前線路中IfMylplace.PlaceInLine(TmpId)>0ThenMsgBox"此景點(diǎn)在線路中使用,不能刪除”ExitSubEndIf’確認(rèn)刪除IfMsgBox("與否刪除目前行?",vbYesNo,”確認(rèn)")=vbYesThenMyPlace.Delete(TmpId)Refresh_PlaceIfp-1〉0ThenAdodc1。Recordset.Movep-1EndIfEndIfEndSubPrivateSubCmd_Modi_Click()'判斷與否選擇了記錄IfAdodc1。Recordset。EOF=TrueThenMsgBox"請(qǐng)選擇記錄”ExitSubEndIf’確定目前選擇記錄的位置p=Adodc1。Recordset。AbsolutePosition'地區(qū)信息FrmPlaceEdit.OriAreaName=ComboName.TextFrmPlaceEdit。OriType=ComboType。ListIndex+1'景點(diǎn)編號(hào)FrmPlaceEdit。OriId=MyPlace.GetId(Adodc1。Recordset.Fields(1))’景點(diǎn)名稱FrmPlaceEdit.OriPlaceName=Trim(Adodc1.Recordset.Fields(1))FrmPlaceEdit.txtPlace=Trim(Adodc1。Recordset。Fields(1))'聯(lián)絡(luò)人FrmPlaceEdit。txtContact=Trim(Adodc1.Recordset。Fields(2))’聯(lián)絡(luò)電話FrmPlaceEdit.txtPhone=Trim(Adodc1.Recordset.Fields(3))'通信地址FrmPlaceEdit.txtAddress=Trim(Adodc1。Recordset.Fields(4))'郵政編碼FrmPlaceEdit.txtCode=Trim(Adodc1。Recordset。Fields(5))'成人報(bào)價(jià)FrmPlaceEdit。txtAdult=Trim(Adodc1。Recordset。Fields(6))’小朋友報(bào)價(jià)FrmPlaceEdit。txtChild=Val(Adodc1。Recordset.Fields(7))'把變量Modify設(shè)置為True,表達(dá)目前狀態(tài)為修改已經(jīng)有記錄FrmPlaceEdit。Modify=TrueFrmPlaceEdit.Show1'修改完畢,刷新顯示內(nèi)容Refresh_PlaceAdodc1.Recordset.MovepEndSub使用DataGrid控件顯示數(shù)據(jù)的一種常用的措施,它的特點(diǎn)是簡(jiǎn)樸直觀,一目了然.DataGrid控件只能用來(lái)顯示數(shù)據(jù),數(shù)據(jù)源由ADOData控件提供。可以通過(guò)Adodc1.Recordeset。Fields(n)讀取成果集中的字段數(shù)據(jù),n是字段的序號(hào),第1個(gè)字段的序號(hào)。為05。11賓館、餐廳、娛樂(lè)資源管理模塊設(shè)計(jì)由于賓館資源管理模塊、餐廳資源管理模塊設(shè)計(jì)、娛樂(lè)資源管理模塊設(shè)計(jì)這三個(gè)模塊設(shè)計(jì)的界面和模塊功能基本相似。這里就以?shī)蕵?lè)資源管理模塊設(shè)計(jì)為例來(lái)闡明。娛樂(lè)資源管理模塊可以實(shí)現(xiàn)如下功能:?添加娛樂(lè)資源信息;?修改娛樂(lè)資源信息;?刪除娛樂(lè)資源信息;?查看娛樂(lè)資源信息。5.11。1設(shè)計(jì)娛樂(lè)資源編輯窗體創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmAmuseEdit.窗體FrmAmuseEdit的布局入圖5.11所示。圖5.11窗體FrmAmuseEdit的布局5。11.2設(shè)計(jì)娛樂(lè)項(xiàng)目管理窗體與景點(diǎn)、賓館、餐廳等旅游資源不一樣,娛樂(lè)資源包括諸多的娛樂(lè)項(xiàng)目。如保齡球、臺(tái)球、游泳等,因此需要有一種娛樂(lè)項(xiàng)目管理窗體。創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmAitemMan。窗體FrmAitemMan的布局如圖5。11.2所示。圖5。11。2窗體FrmAitemMan的布局下面分析窗體FrmAitemMan中幾種重要過(guò)程的代碼.1(公共變量在窗體FrmAitemMan中有一種公共變量OriAid,表達(dá)目前所編輯的娛樂(lè)項(xiàng)目所屬的娛樂(lè)廳編號(hào)。此變量必須在啟動(dòng)窗體FrmAitemMan之前進(jìn)行設(shè)置。2(Loaditem()Loaditem()過(guò)程的功能是根據(jù)變量OriAid指定的娛樂(lè)廳,讀取娛樂(lè)廳中包括的所有娛樂(lè)項(xiàng)目,并把這些娛樂(lè)項(xiàng)目顯示在列表中。對(duì)應(yīng)的代碼如下:PrivateSubLoaditem()DimiAsInteger’清空娛樂(lè)項(xiàng)目列表List1.Clear'根據(jù)目前的娛樂(lè)廳編號(hào),讀取所有的娛樂(lè)項(xiàng)目到數(shù)組ArrItem()中MyAitem.LoadItem_ByAmuse(OriAid)'依次把數(shù)組ArrItem()中的數(shù)據(jù)添加到娛樂(lè)項(xiàng)目列表List1中i=0DoWhileArrItem(i)<>""List1.AddItemArrItem(i)i=i+1LoopEndSub在程序設(shè)計(jì)中,常常需要把數(shù)據(jù)庫(kù)中滿足一定條件的數(shù)據(jù)讀取到組合框或列表框中,以便顧客選擇,可以使用兩種措施實(shí)現(xiàn)此功能.第一種措施使用DataCombo控件作為組合框,使用DataList控件作為列表框,把需要的數(shù)據(jù)讀取到ADOData控件中。將DataList控件的RowSource屬性設(shè)置為ADOData控件,ListField屬性設(shè)置為要讀取的字段,需要的數(shù)據(jù)就會(huì)自動(dòng)出目前列表框中(組合框的措施也是同樣的)。這種措施比較以便,不需要編寫任何代碼。第二種措施可以使用ComboBox控件作為組合框,使用ListBox控件作為列表框。編寫程序?qū)⑿枰臄?shù)據(jù)從表中讀取到一種(或一組)全局?jǐn)?shù)組中,然后再使用AddItem措施把數(shù)組中的元素依次添加到ComboBox或ListBBox控件中.這樣措施比較靈活,程序員可以控制程序的實(shí)現(xiàn)措施,增長(zhǎng)某些擴(kuò)展功能,同步全局?jǐn)?shù)組中的數(shù)據(jù)不可以提供應(yīng)其他部分的程序使用.1.List1_Click過(guò)程當(dāng)顧客單擊娛樂(lè)項(xiàng)目列表時(shí),將觸發(fā)List1_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubList1_click()’判斷與否選擇了娛樂(lè)項(xiàng)目IfList1.Text=”"ThenExitSubEndIf’把選擇的娛樂(lè)項(xiàng)目名稱顯示在右側(cè)的“娛樂(lè)項(xiàng)目"編輯框中txtItem=List1。Text'讀取娛樂(lè)項(xiàng)目編號(hào),并根據(jù)此編號(hào)讀取娛樂(lè)項(xiàng)目的所有信息TmpId=MyAitem。GetId(OriAid,txtItem)MyAitem。GetInfo(TmpId)'把娛樂(lè)項(xiàng)目的價(jià)格賦值到txtPrice文本框中txtPrice=MyAitem。Price’把娛樂(lè)項(xiàng)目的編輯時(shí)間賦值到lblinput_time標(biāo)簽中l(wèi)blInput_time=MyAitem。Input_timeEndSub5。11。3設(shè)計(jì)娛樂(lè)資源管理窗體創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmAmuseMan。窗體的布局如圖5。11。3所示圖5.11。3窗體FrmAmuseMan的布局當(dāng)顧客單擊“娛樂(lè)項(xiàng)目”按鈕時(shí),將觸發(fā)Cmd_Item_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubCmd_Item_Click()'要進(jìn)入娛樂(lè)項(xiàng)目管理界面,必須首先選擇一種娛樂(lè)廳IfAdodc1.Recordset.EOF=TrueThenMsgBox"請(qǐng)選擇記錄”ExitSubEndIf'讀取選擇好的娛樂(lè)廳娛樂(lè),并賦值到FrmAitemMan.OriAid中FrmAitemMan.OriAid=MyAmuse.GetId(Trim(Adodc1.Recordset.Fields(1)))’打開娛樂(lè)項(xiàng)目管理窗體FrmAitemMan.Show1EndSub5.12火車、飛機(jī)資源管理模塊設(shè)計(jì)火車資源管理模塊設(shè)計(jì)和飛機(jī)資源管理模塊設(shè)計(jì)的基本思想和構(gòu)造大體上相似,這里以飛機(jī)管理模塊設(shè)計(jì)為例來(lái)闡明.飛機(jī)資源管理模塊可以實(shí)現(xiàn)如下功能:?添加飛機(jī)資源信息;?修改飛機(jī)資源信息;?刪除飛機(jī)資源信息;?查看飛機(jī)資源信息.5.12.1設(shè)計(jì)飛機(jī)資源編輯窗體創(chuàng)立一種新窗體,窗體名稱設(shè)置為FrmPlaneEdit。窗體FrmPlaneEdit的布局如圖5。12所示。圖5。12窗體FrmPlaneEdit的布局窗體FrmPlaneEdit中增長(zhǎng)了“航班周期“的處理,下面簡(jiǎn)介一下FrmPlaneEdit中的主要代碼。1(Form_Load過(guò)程當(dāng)FrmPlaneEdit窗體啟動(dòng)時(shí),將觸發(fā)Form_Load事件,對(duì)應(yīng)的代碼如下:PrivateSubForm_Load()DimTmpCycleAsInteger’將航班周期字符串折分單個(gè)字符,并保留在變量TmpCycle中’然后根據(jù)變量TmpCycle的值,決定航班周期的顯示DoWhileOriCycle<〉""TmpCycle=Val(Left(OriCycle,1))OriCycle=Right(OriCycle,Len(OriCycle)—1)SelectCaseTmpCycleCase1Check1.Value=1Case2Check2。Value=1Case3Check3.Value=1Case4Check4。Value=1Case5Check5.Value=1Case6Check6。Value=1Case7Check7.Value=1EndSelectLoopEndSub2(Cmd_Ok_Click過(guò)程當(dāng)顧客單擊“確定“按鈕時(shí),將觸發(fā)Cmd_Ok_Click事件,對(duì)應(yīng)的代碼如下:PrivateSubCmd_OK_Click()DimTmpCycleAsString’檢查顧客輸入數(shù)據(jù)的有效性IfTrim(txtAirCom)=”"ThenMsgBox"請(qǐng)輸入航空企業(yè)"txtAirCom.SetFocusExitSubEndIfIfTrim(txtSairport)="”ThenMsgBox”請(qǐng)輸入起飛機(jī)場(chǎng)”txtSairport。SetFocusExitSubEndIfIfTrim(txtEairport)="”ThenMsgBox”請(qǐng)輸入抵達(dá)機(jī)場(chǎng)”txtEairport。SetFocusExitSubEndIf’把顧客輸入的數(shù)據(jù)賦值到MyPlane對(duì)象的組員變量中WithMyPlane.AirCom=MakeStr(txtAirCom).Pno=MakeStr(txtPno).Sairport=MakeStr(txtSairport)。Eairport=MakeStr(txtEairport).Stime=MakeStr(txtStime).Etime=MakeStr(txtEtime).Price1=Val(txtPrice1).Price2=Val(txtPrice2)’TmpCycle用來(lái)保留飛機(jī)的航班周期字符串TmpCycle=””IfCheck1。Value=1ThenTmpCycle=TmpCycle+”1”EndIfIfCheck2.Value=1ThenTmpCycle=TmpCycle+"2”EndIfIfCheck3.Value=1ThenTmpCycle=TmpC
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 阜陽(yáng)科技職業(yè)學(xué)院《材料力學(xué)(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 豫章師范學(xué)院《招投標(biāo)與合同管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海師范大學(xué)天華學(xué)院《健身教練技能培訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 萊蕪職業(yè)技術(shù)學(xué)院《生態(tài)學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西管理職業(yè)學(xué)院《圖像編輯技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工商職業(yè)技術(shù)學(xué)院《中學(xué)化學(xué)問(wèn)題設(shè)計(jì)與問(wèn)題解決》2023-2024學(xué)年第二學(xué)期期末試卷
- 周口師范學(xué)院《運(yùn)動(dòng)控制導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海柴達(dá)木職業(yè)技術(shù)學(xué)院《給排水工程儀表與控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北農(nóng)業(yè)大學(xué)現(xiàn)代科技學(xué)院《犯罪心理學(xué)專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶科技學(xué)院《世界平面設(shè)計(jì)史一》2023-2024學(xué)年第二學(xué)期期末試卷
- 銀行業(yè)金融機(jī)構(gòu)監(jiān)管數(shù)據(jù)標(biāo)準(zhǔn)化規(guī)范(2021版)數(shù)據(jù)結(jié)構(gòu)一覽表
- 電子商務(wù)基礎(chǔ)與實(shí)務(wù)(第四版)高職PPT完整全套教學(xué)課件
- 信息論與編碼(第4版)完整全套課件
- 施工吊籃工程監(jiān)理實(shí)施細(xì)則
- 自動(dòng)扶梯與自動(dòng)人行道調(diào)試作業(yè)指導(dǎo)書(通用版)
- 2023年全國(guó)卷英語(yǔ)甲卷講評(píng)課件-2024屆高考英語(yǔ)復(fù)習(xí)
- 現(xiàn)代通信原理與技術(shù)(第五版)PPT全套完整教學(xué)課件
- 《戰(zhàn)勝抑郁 走出抑郁癥的30天自我康復(fù)訓(xùn)練》讀書筆記思維導(dǎo)圖
- 辦公電腦領(lǐng)用、保管登記表
- 幼兒園課件:時(shí)鐘國(guó)王
- 最值問(wèn)題-阿氏圓
評(píng)論
0/150
提交評(píng)論