版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 旅游資源及線路管理系統(tǒng)</p><p> 一、系統(tǒng)目標(biāo)及其介紹</p><p> 由于如今的旅游景點(diǎn)繁多,旅游線路中包含的內(nèi)容也很多,讓人一下子很難清楚的了解到其中的所包含的信息,從而做出正確的旅游方案,讓自己能夠輕輕松松的享受到旅游中的樂趣。本系統(tǒng)旨在方便方便那些熱愛出玩的人,讓他們及時、準(zhǔn)確、詳細(xì)的了解到一些旅游方面的相關(guān)信息,為他們指引一條適合他們的旅游線路
2、。</p><p> 本系統(tǒng)采用的是開發(fā)工具是Visual Basic 6.0 以及SQL Server 2000(個人版)</p><p> Visual Basic 簡介:Microsoft的Visual Basic產(chǎn)品屬于編程系統(tǒng)。簡單的說這個編程系統(tǒng)的是用于編寫基于Windows的計算機(jī)程序的,它包括Visual Basic 語言以及有助于編寫這些程序的許多工具。不應(yīng)把Visu
3、al Basic 當(dāng)作一種工具,而應(yīng)將它作為創(chuàng)建工具的工具。使用Visual Basic 創(chuàng)建用戶自己的定制程序。用戶或公司便不會受到特殊的“脫離外殼”計算機(jī)程序的限制,進(jìn)而用戶還能設(shè)計出滿足自己特殊要求的應(yīng)用程序。一個良好的計算機(jī)程序應(yīng)該能夠足夠靈活,是適應(yīng)身邊的任何工作,而不是修改擁護(hù)的需要以適應(yīng)程序的要求。</p><p> SQL簡介:SQL(Structured Query Language)語言是關(guān)
4、系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,它是在1974年由Boyce和Chamberlin提出的。由于SQL語言功能豐富,語言簡潔,因而倍受用戶及計算機(jī)工業(yè)界歡迎。自SQL成文國際標(biāo)準(zhǔn)后,各自數(shù)據(jù)庫廠家紛紛推出各種機(jī)的支持SQL的軟件或與SQL的接口軟件。這就使得大多數(shù)數(shù)據(jù)庫均采用SQL作為共同的數(shù)據(jù)庫存取語言和標(biāo)準(zhǔn)接口,從而使未來的數(shù)據(jù)庫世界有可能連接為一個統(tǒng)一的整體。這個前景是十分誘人和意義重大的。因此,有人SQL被定制為關(guān)系數(shù)據(jù)庫語言的標(biāo)準(zhǔn)以及以后的
5、發(fā)展稱為是“一場革命”。</p><p> 本系統(tǒng)支持的操作平臺:Windows NT/XP/2000</p><p> 二、系統(tǒng)的需求分析以及流程分析</p><p> 需求分析:本系統(tǒng)因?yàn)闆]有涉及到查詢系統(tǒng),因此它的需求分析比較簡單。在本系統(tǒng)中一共有9個窗體,其中只有旅游線路管理窗體可以真正意義稱的上是一個查詢窗體,它包含了前面除了用戶管理窗體以外的所有信
6、息,可以讓人一目了然的了解到各個旅游線路的一些相關(guān)信息。旅游相關(guān)的一些吃、住、行、娛、費(fèi)用等等你都可以很直觀的按照個人需要進(jìn)行查閱,以滿足你旅游出行的需要。也就是說本系統(tǒng)的需求關(guān)系也就是在這個窗體中得以實(shí)現(xiàn)的。</p><p> 流程分析:本系統(tǒng)的基本步驟是:進(jìn)行用戶登陸后,登陸到主界面,然后在旅游資源以及線路管理模塊中管理好輸入的一些基本信息。本系統(tǒng)的流程分析圖如下圖所示:</p><p&
7、gt;<b> 三、系統(tǒng)設(shè)計</b></p><p><b> 系統(tǒng)功能描述</b></p><p> 本系統(tǒng)所描述的旅游資源及線路管理系統(tǒng)的重要功能包括:</p><p> 1. 地域信息管理功能</p><p> 地域信息的登入,包括地域名稱和地域類型等信息;</p>&
8、lt;p><b> 地域信息的修改;</b></p><p><b> 地域信息的刪除;</b></p><p><b> 地域信息的查詢。</b></p><p> 2. 景點(diǎn)資源管理功能</p><p> 景點(diǎn)資源的登入,包括景點(diǎn)編號、景點(diǎn)名稱、聯(lián)系人、票價
9、等信息;</p><p><b> 景點(diǎn)資源的修改;</b></p><p><b> 景點(diǎn)資源的刪除;</b></p><p><b> 景點(diǎn)資源的查詢。</b></p><p> 3. 賓館資源管理功能</p><p> 賓館資源的錄入,包
10、括賓館編號、賓館名稱、聯(lián)系人、報價等信息;</p><p><b> 賓館資源的修改;</b></p><p><b> 賓館資源的刪除;</b></p><p><b> 賓館資源的查詢。</b></p><p> 4. 餐廳資源管理功能</p><
11、;p> 餐廳資源的錄入,包括餐廳編號、餐廳名稱、聯(lián)系人、報價等信息;</p><p> 餐廳資源信息的修改;</p><p> 餐廳資源信息的刪除;</p><p> 餐廳資源信息的查詢。</p><p> 5. 娛樂資源管理功能</p><p> 娛樂資源信息的錄入,包括娛樂廳編號、娛樂廳名稱、聯(lián)系
12、人、報價等信息;</p><p> 娛樂資源信息的修改;</p><p> 娛樂資源信息的刪除;</p><p> 娛樂資源信息的查詢。</p><p> 6. 交通資源管理功能</p><p><b> 火車資源信息管理;</b></p><p><b&g
13、t; 飛機(jī)資源信息管理。</b></p><p><b> 旅游線路管理功能</b></p><p> 旅游線路信息的錄入,包括線路編號、線路名稱、報價等信息;</p><p> 旅游線路信息的修改;</p><p> 旅游線路信息的刪除;</p><p> 旅游線路信息的
14、查詢。</p><p><b> 系統(tǒng)用戶管理功能</b></p><p> 系統(tǒng)用戶信息的錄入,包括用戶名、密碼等信息;</p><p> 系統(tǒng)用戶信息的修改;</p><p> 系統(tǒng)用戶信息的刪除;</p><p> 系統(tǒng)用戶信息的查詢。</p><p>&l
15、t;b> ?。ǘ┕δ苣K劃分</b></p><p> 從功能描述的內(nèi)容可以看到,本系統(tǒng)可以實(shí)現(xiàn)8個完整的功能。根據(jù)這些功能,設(shè)計出的系統(tǒng)功能模塊如圖1.21所示。</p><p><b> 圖1.21</b></p><p> 在功能模塊示意圖的樹狀結(jié)構(gòu)中,每一個結(jié)點(diǎn)都是最小的功能模塊。每一個功能模塊都需要針對不同的
16、表完成相同的數(shù)據(jù)庫操作,即添加記錄、修改記錄、刪除記錄、以及查詢顯示記錄信息。</p><p> 旅游資源及線路管理系統(tǒng)的</p><p> 功能模塊之間的關(guān)系入圖1.22所示。</p><p><b> 圖1.22</b></p><p> 從模塊的關(guān)系圖中可以看出,旅游資源信息除了供用戶查詢外,還可以成為旅游
17、線路管理提供數(shù)據(jù)。當(dāng)用戶需要生成一條旅游線路時,可以從旅游資源里提取到最新的數(shù)據(jù)。線路報價和成本預(yù)算也會隨著資源的變化。</p><p> 在本系統(tǒng)中,用戶管理模塊的功能比較簡單。在系統(tǒng)初始化時,有一個默認(rèn)的“系統(tǒng)管理員用戶Admin,你可以手動地添加到數(shù)據(jù)庫中。Admin用戶可以使用系統(tǒng)的所有功能,可以創(chuàng)建用戶、修改用戶信息,以及刪除用戶;普通用戶分為資源管理員和線路管理員。</p><p
18、> 用戶管理功能模塊的關(guān)系如圖1.23所示。</p><p><b> 圖1.23</b></p><p><b> 四、數(shù)據(jù)庫設(shè)計</b></p><p> ?。ㄒ唬?創(chuàng)建數(shù)據(jù)庫 </p><p> 本系統(tǒng)使用的數(shù)據(jù)庫為TravelSys。此數(shù)據(jù)庫按默認(rèn)的路徑保存??紤]到文件初始大小
19、SIZE不宜過大,以免浪費(fèi)存儲空間,而文件的最大尺寸MAXSIZE應(yīng)設(shè)置充分大,以保證有足夠的的存儲空間。文件初始大小是10M,最大的尺寸大小是200M,文件滿了后按2M/每次的步長增長。</p><p> ?。ǘ?shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p> 數(shù)據(jù)庫TravelSys包含以下16個表:地域信息表Area、景點(diǎn)資源信息表Place、賓館資源信息表Hotel、餐廳資源信息表Rest
20、aurant、娛樂廳資源信息表Amusement、娛樂項目資源信息表AmuseItem、火車資源信息表Train、飛機(jī)資源信息表Plane、線路基本信息表tline、線路景點(diǎn)信息表Iplace、線路賓館信息表Ihotel、線路用餐信息表Ires、線路娛樂信息表Iamuse、線路火車信息表Itrain、線路飛機(jī)信息表Iplane、用戶信息表Users。</p><p> 下面分別介紹這些表的結(jié)構(gòu)。</p&g
21、t;<p> 1. 地域信息表Area</p><p> 地域信息表Area用來保存地域信息。表Area的結(jié)構(gòu)如表2.1所示。</p><p><b> 表Area的結(jié)構(gòu)</b></p><p> 表2.1 </p><p> 2.景點(diǎn)資源信息表Pla
22、ce</p><p> 景點(diǎn)資源信息表Place用來保存旅游信息。表Place的結(jié)構(gòu)如表2.2</p><p><b> 表Place結(jié)構(gòu)</b></p><p> 表2.2 </p><p> 3.賓館資源信息表Hotel</p><p>
23、 賓館資源信息表Hotel用來保存旅游賓館資源信息。表Hotel的結(jié)構(gòu)如表2.3所示。</p><p><b> 表Hotel的結(jié)構(gòu)</b></p><p> 表2.3 </p><p> 4.餐廳資源信息表Restaurant</p><p> 餐廳資源信
24、息表Restaurant用來保存旅游餐廳資源信息。表Restaurant的結(jié)構(gòu)如表2.4所示。 </p><p> 表Restaurant的結(jié)構(gòu)</p><p> 表2.4 </p><p> 5.娛樂廳資源信息表Amusement </p><p> 娛樂
25、廳資源信息表Amusement 用來保存娛樂廳資源信息。表Amusement的結(jié)構(gòu)如表2.5所示。</p><p> 表Amusement的結(jié)構(gòu)</p><p><b> 表2.5</b></p><p> 6.娛樂項目資源信息表AmuseItem</p><p> 娛樂資源信息表AmuseItem用來保存娛樂廳
26、提供的娛樂項目及報價信息。表AmuseItem</p><p> 的結(jié)構(gòu)如表2.6所示。</p><p> 表AmuseItem的結(jié)構(gòu)</p><p><b> 表2.6</b></p><p> 7.火車資源信息表Train</p><p> 火車資源表Train用來保存火車資源信息。
27、表Train的結(jié)構(gòu)如表2.7所示。</p><p><b> 表Train的結(jié)構(gòu)</b></p><p><b> 表2.7 </b></p><p> 8.飛機(jī)資源信息表Plane</p><p> 飛機(jī)資源信息表Plane用來保存飛機(jī)資源信息。表Plane的結(jié)構(gòu)如表2.8所示。<
28、;/p><p><b> 表Plane的結(jié)構(gòu)</b></p><p><b> 表2.8</b></p><p> 9.線路基本信息表tline</p><p> 線路基本信息表tline用來保存旅游線路的基本信息。表tline的結(jié)構(gòu)如表2.9所示。</p><p>&l
29、t;b> 表tline的結(jié)構(gòu)</b></p><p><b> 表2.9</b></p><p> 10.線路景點(diǎn)信息表Iplace</p><p> 線路景點(diǎn)信息表Iplace 用來保存旅游線路中包含的景點(diǎn)信息。表Iplace 的結(jié)構(gòu)如表2.10</p><p> 表Iplace的結(jié)構(gòu)<
30、;/p><p><b> 表2.10</b></p><p> 11.線路賓館信息表 lhotel</p><p> 線路賓館信息表lhotel用來保存旅游線路中包含的賓館信息。表ihotel的結(jié)構(gòu)如表2.11</p><p> 表lhotel的結(jié)構(gòu)</p><p><b> 表2
31、.11</b></p><p> 12.線路用餐信息表lres</p><p> 線路用餐信息表lres用來保存旅游線路中包含的用餐信息。表lres的結(jié)構(gòu)如表2.12</p><p><b> 表lres的結(jié)構(gòu)</b></p><p><b> 表2.12</b></p&g
32、t;<p> 13.線路娛樂信息表lamuse</p><p> 線路娛樂信息表lamuse用來保存旅游線路中包含的娛樂信息。表lamuse的結(jié)構(gòu)如表2.13所示。</p><p> 表lamuse的結(jié)構(gòu)</p><p><b> 表2.13</b></p><p> 14.線路火車信息表Itra
33、in</p><p> 線路火車信息表Itrain用來保存旅游線路中包含的火車信息。表Itrain的結(jié)構(gòu)如表2.14</p><p> 表Itrain的結(jié)構(gòu)</p><p><b> 表2.14</b></p><p> 15.線路飛機(jī)信息表Iplane</p><p> 線路飛機(jī)信息表
34、Iplane用來保存旅游線路中包含的飛機(jī)信息。表Iplane的結(jié)構(gòu)如表2.15</p><p> 表Iplane的結(jié)構(gòu)</p><p><b> 表2.15</b></p><p> 16.用戶信息表Usres</p><p> 用戶信息表Usres用來保存系統(tǒng)用戶信息。表Usres的結(jié)構(gòu)如表2.16所示。<
35、;/p><p><b> 表Usres的結(jié)構(gòu)</b></p><p><b> 表2.16</b></p><p><b> 五、設(shè)計工程框架</b></p><p><b> (一) 創(chuàng)建工程</b></p><p> 運(yùn)
36、行Visual Basic 6.0主程序,選擇新建“標(biāo)準(zhǔn)EXE”工程。新建工程后,在Visual Basic窗口中有一個缺省的窗體Form1,我就在此基礎(chǔ)上設(shè)計系統(tǒng)的主界面。</p><p> 選擇“工程”菜單中的“工程1屬性”命令,在“工程屬性”對話框中,將工程名設(shè)置為Travel。單擊“保存”按鈕,將工程存儲為Travel.vbp,將Form1窗體保存為FrmMain.frx。</p><
37、;p><b> (二) 添加模塊</b></p><p> 根據(jù)Visual Basic 功能模塊的劃分原則,我創(chuàng)建了以下四個模塊。</p><p> Const 用來管理工程中的常量。</p><p> DbFunc 用來管理工程中與數(shù)據(jù)庫操作相關(guān)的聲明、變量和函數(shù)。</p><p> Genera
38、lFunc 用來管理工程中一些通用的自定義函數(shù)。</p><p> Variable 用來管理工程中的全局變量 </p><p> ?。ㄈ?添加類模塊</p><p> 根據(jù)Visual Basic 功能模塊的劃分原則,為每一個表創(chuàng)建一個類模塊,將對此表的所有數(shù)據(jù)庫操作封存在類中。</p><p><b> Area類
39、</b></p><p> Area類用來管理表Area的數(shù)據(jù)庫操作,它保存為Area.cls。Area類的成員函數(shù)如表3.11</p><p> 表3.11 Area類的成員函數(shù)</p><p> 下面對初始化的函數(shù)Init進(jìn)行下說明 因?yàn)槊總€類模塊都需要一個初始化的過程。對類模塊中的成員變量賦
40、初始值。因?yàn)槊恳粋€類模塊的對象在程序中會多次使用。在每次使用之前都應(yīng)該對其進(jìn)行初始化,從而保證不把上一次使用的值帶到這一次使用中。</p><p> ● Init函數(shù)的代碼如下:</p><p> Public Sub Init()</p><p> AreaId = 0</p><p> AreaName = "&quo
41、t;</p><p> AreaType = 0</p><p><b> End Sub</b></p><p> 再對另一個函數(shù)Load-Area進(jìn)行下說明。因?yàn)榇撕瘮?shù)是一個批量讀取表Area中數(shù)據(jù)的過程。程序?qū)⒌赜蛎Q讀取到3個數(shù)組中:d1()、d2()和d3()中,他們在Variable模塊中定義,分別掉表不同的地域類別。<
42、/p><p><b> Place 類</b></p><p> Place類是用來管理表Place的數(shù)據(jù)庫操作,它保存在Place.cls。Place類的成員函數(shù)如表3.12</p><p> 表3.12 Place類的成員函數(shù)</p><p> 下面對其中的De
43、lete過程進(jìn)行說明。因?yàn)樗且粋€典型刪除表中數(shù)據(jù)的過程,幾乎每一個模塊都有一個類似的過程。此過程體現(xiàn)了執(zhí)行SQL語句的基本方法,即首先使用DB_Connect連接到數(shù)據(jù)庫,再將要執(zhí)行SQL語句賦值到SqlStmt變量中,調(diào)用OdbeExt()過程,執(zhí)行SQL語句。最后釋放句柄,并調(diào)用DB_Connect斷開與數(shù)據(jù)庫的連接。</p><p> 3. Hotel類</p><p>
44、Hotel類用來管理Hotel的數(shù)據(jù)庫操作,它保存為Hotel.cls。Hotel類的成員函數(shù)如表3.13</p><p> 表3.13 Hotel類的成員函數(shù)</p><p> 下面對其中的AreaInHotel 函數(shù)進(jìn)行說明。為了維護(hù)數(shù)據(jù)庫結(jié)構(gòu)的完整性,在刪除數(shù)據(jù)時,往往需要進(jìn)行完整性的判斷。例如,地域數(shù)據(jù)是本系統(tǒng)中最基本的數(shù)據(jù),與很
45、多表存在聯(lián)系。所以在刪除地域數(shù)據(jù)時,需要在其他表中進(jìn)行判斷,如果要刪除的地域存在于其他表中,則不能刪除,因?yàn)閯h除地域會造成其他表的數(shù)據(jù)不完整。AreaInHotel()函數(shù)就是這種判斷函數(shù)的一個代表,如果指定的地域中包含賓館信息,則返回賓館名稱,否則返回空。</p><p> AreaInHotel過程 AreaInHotel過程的代碼如下:</p><p> Public Func
46、tion AreaInHotel(ByVal TmpAreaId As Long) As String</p><p> DB_Connect</p><p> SqlStmt = "SELECT Hname FROM Hotel WHERE AreaId=" _</p><p> + Trim(TmpAreaId)</p>
47、<p> OdbcExt (SqlStmt)</p><p> If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then</p><p> ColVal = String(400, 0)</p><p> Rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal),
48、pcblen)</p><p> AreaInHotel = TrimStr(ColVal)</p><p><b> Else</b></p><p> AreaInHotel = ""</p><p><b> End If</b></p><p&
49、gt; Rc = SQLFreeStmt(Hstmt, SQL_DROP)</p><p> DB_Disconnect</p><p> End Function</p><p> 4. Restaurant類</p><p> Restaurant類用來管理表Restaurant的數(shù)據(jù)庫操作,它保存為Restaurant.
50、cls。Restaurant類的成員函數(shù)如表3.14所示。</p><p> 表3.14 Restaurant類的成員函數(shù)</p><p> 下面對其中的GetInfo 函數(shù)進(jìn)行說明。幾乎每個類模塊都需要一個GetInfo()過程,它的作用是讀取指定表中的某一行數(shù)據(jù)。在GetInfo()過程中,要執(zhí)行SQL語句為SELECT語句。執(zhí)行SQL
51、語句后,調(diào)用SQL_FETCHO函數(shù)將滿足條件的數(shù)據(jù)讀取到內(nèi)存中,然后使用SQL_ GetData()函數(shù)從結(jié)果集中讀取每一列的數(shù)據(jù),并賦值到對應(yīng)的類變量中。</p><p> 5. Amusement 類</p><p> Amusement類來管理表Amusement的數(shù)據(jù)庫操作,它保存為Amusement.cls。Amusement類的成員函數(shù)如表3.15。</p&g
52、t;<p> 表3.15 Amusement類的成員函數(shù)</p><p> 6. AmuseItem 類</p><p> AmuseItem類喲后果來管理表AmuseItem的數(shù)據(jù)庫操作,它保存在為AmuseItem.cls。AmuseItem類的成員函數(shù)如表3.16所示。</p><p> 表3
53、.16 AmuseItem類的成員函數(shù)</p><p> 7. Train類</p><p> Train用來管理表Train的數(shù)據(jù)庫操作,它保存為Train.cls。Train類的成員函數(shù)如表3.17</p><p> 表3.17 Train類的成員函數(shù)</p&g
54、t;<p><b> Plane 類</b></p><p> Plane類用來管理表Plane的數(shù)據(jù)庫操作,它保存為Plane.cls。Plane類的成員函數(shù)如表3.18</p><p> 表3.18 Plane類的成員函數(shù)</p><p> 9. tline 類 <
55、;/p><p> tline類用來管理表tline的數(shù)據(jù)庫操作,它保存為tline.cls。tline類的成員函數(shù)如表3.19</p><p> 表3.19 tline的成員函數(shù)</p><p> 下面對其中的GetNewId函數(shù)進(jìn)行說明。`SQL Server可以使用IDENTITY關(guān)鍵字創(chuàng)建標(biāo)識字段,每次增加新
56、記錄時,標(biāo)識字段自動遞增。但是本系統(tǒng)中,有時需要插入記錄后馬上得到新記錄的部門編號,所以采用程序控制的方法生成部門編號。</p><p> GetNewId 過程 GetNewId()過程的代碼如下:</p><p> Public Function GetNewId() As Long</p><p> DB_Connect</p><
57、;p> SqlStmt = "SELECT Max(lid) FROM tline"</p><p> OdbcExt (SqlStmt)</p><p> If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then</p><p> ColVal = String(40, 0)</p
58、><p> Rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)</p><p> GetNewId = Val(ColVal) + 1</p><p><b> End If</b></p><p> Rc = SQLFreeStmt(Hstmt, SQ
59、L_DROP)</p><p> DB_Disconnect</p><p> End Function</p><p> 10. Iplace 類 </p><p> Iplace類用來管理Iplace的數(shù)據(jù)庫操作,它保存為Iplace.cls。Iplace類的成員函數(shù)如表3.20</p><p> 表
60、3.20 Iplace類的成員函數(shù)</p><p> 下面對其中的SumPrice函數(shù)進(jìn)行說明。SumPrice()函數(shù)中需要同時訪問2個表中的數(shù)據(jù),此時要使用SELECT語句進(jìn)行連接查詢。本實(shí)例中采用的等值連接,連接的條件為l.pid=p.pid。使用這種方法計算門票價格,可以保證資源中采集到的最新報價直接反映到線路報價中。</p><
61、p> ● SumPrice過程 SumPrice()過程的代碼如下:</p><p> Public Function SumPrice(ByVal Tmplid As Long, _</p><p> ByVal Tmpltype As Integer) As Single</p><p> DB_Connect</p><
62、p> If Tmpltype = 1 Then '學(xué)生</p><p> SqlStmt = "SELECT Sum(p.Child_Price) FROM lplace l, Place p" _</p><p> + " WHERE l.lid=" + Trim(Tmplid) + " And l.pid=p.pid
63、"</p><p> Else '成人</p><p> SqlStmt = "SELECT Sum(p.Adult_Price) FROM lplace l, Place p" _</p><p> + " WHERE l.lid=" + Trim(Tmplid) +
64、" And l.pid=p.pid"</p><p><b> End If</b></p><p> OdbcExt (SqlStmt)</p><p> If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then</p><p> SumPrice = 0<
65、;/p><p><b> Else</b></p><p> ColVal = String(40, 0)</p><p> Rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)</p><p> SumPrice = Val(ColVal)</p&
66、gt;<p><b> End If</b></p><p> Rc = SQLFreeStmt(Hstmt, SQL_DROP)</p><p> DB_Disconnect</p><p> End Function</p><p> 11. lhotel類</p><p
67、> lhotel類用來管理表lhotel的數(shù)據(jù)庫操作,它保存為lhotel.cls。lhotel類的成員函數(shù)3.21</p><p> 表3.21 lhotel類的成員函數(shù)</p><p> 在計算賓館價格的時候,因?yàn)椴煌姆块g類型有不同的價格,所以很難使用一條SELECT語句得到總價格。因此我寫了4個計算報價的函數(shù),分別計算不同
68、的房間類型的賓館報價,然后再把它們依次相加。也可以分別創(chuàng)建4個相應(yīng)的視圖,達(dá)到同樣的效果。</p><p> 12. Ires 類</p><p> Ires類用來管理表Ires的數(shù)據(jù)庫操作,它保存為Ires.cls。Ires類的成員函數(shù)如表3.22所示。</p><p> 表3.22 Ires類的成員函數(shù)&l
69、t;/p><p> 13. Iamuse 類</p><p> Iamuse類用來管理表Iamuse的數(shù)據(jù)庫操作,它保存為Iamuse.cls。Iamuse類的成員函數(shù)如表3.23</p><p><b> 所示。</b></p><p> 表3.23 Iamuse類的成
70、員函數(shù)</p><p> 14.Itrain 類</p><p> Itrain類用來管理表Itrain的數(shù)據(jù)庫操作,它保存為Itrain.cls。Itrain類的成員函數(shù)如表3.24</p><p><b> 所示。</b></p><p> 表3.24 Itrai
71、n類的成員函數(shù)</p><p> 15. Iplane 類</p><p> Iplane類用來管理Iplane的數(shù)據(jù)庫操作,它保存為Iplane.cls。Iplane類的成員函數(shù)如表3.25</p><p><b> 所示。</b></p><p> 表3.25
72、 Iplane類的成員函數(shù)</p><p> 16. Users類</p><p> Users類用來管理表Users的數(shù)據(jù)庫操作,它保存問Users.cls。Users類的成員函數(shù)如表3.26</p><p><b> 所示。</b></p><p> 表3.26
73、 Users類的成員函數(shù)</p><p><b> 六、系統(tǒng)主界面設(shè)計</b></p><p><b> ?。ㄒ唬┰O(shè)計主界面</b></p><p> 主界面窗體的屬性如表3.31</p><p> 表3.31 主窗體的屬性<
74、/p><p> 主界面窗體中控件及其屬性如表3.32</p><p> 表3.32 主界面包含的按鈕及其屬性</p><p> 本系統(tǒng)的主界面如圖3.33所示。它包括9個資源管理窗體,它包括地域資源管理、景點(diǎn)資源管理、賓館資源管理、餐廳資源管理、娛樂資源管理、火車資源管理、飛機(jī)資源管理、旅游線路管理(它也是本系統(tǒng)中最
75、為重要的一個)、系統(tǒng)資源管理,你可以在打開任意一個窗體添加你想要輸入的相關(guān)的信息。本系統(tǒng)的背景圖案采用的是黃山風(fēng)景的圖案,給人一種身臨其境的觸動感。</p><p><b> 圖3.33</b></p><p> ?。ǘ?在主界面中添加代碼</p><p> 因?yàn)橄到y(tǒng)的其他功能還沒有實(shí)現(xiàn),所以只能添加退出系統(tǒng)的代碼。其他的代碼將在相應(yīng)的
76、功能實(shí)現(xiàn)后再添加到窗體中。</p><p> 先單擊IblExit按鈕時,將執(zhí)行IblExit_Click()過程,退出系統(tǒng),代碼如下:</p><p> Private Sub lblexit_Click()</p><p> DBapi_Disconnect</p><p><b> End</b></
77、p><p><b> End Sub</b></p><p><b> 七、登陸模塊設(shè)計</b></p><p><b> 設(shè)計登陸窗體</b></p><p> 創(chuàng)建一個新窗體,設(shè)置窗體名為FrmLogin。登陸窗體的布局如圖3.41所示。用戶可以通過這個窗體進(jìn)入該系統(tǒng)。
78、其中用戶包括Admin這個管理用戶和在管理用戶下生成的一般用戶。密碼不能低于6個字符,如果你輸入的密碼或者用戶失敗3次以上,那么你將自動退出登陸窗體。</p><p> 圖3.41登陸窗體的布局</p><p><b> 圖3.41</b></p><p> 八、旅游地域資源管理模塊設(shè)計</p><p> 地域模
79、塊可以實(shí)現(xiàn)以下功能:</p><p><b> ● 添加地域信息</b></p><p><b> ● 修改地域信息</b></p><p><b> ● 刪除地域信息</b></p><p> ● 查看地域信息 </p><p> ?。?/p>
80、一) 設(shè)計旅游地域資源編輯窗體</p><p> 編輯地域信息的窗體可以用來添加和修改地域信息。窗體名稱設(shè)置為FrmAreaEdit。在此模塊中輸入的是旅游地域的名稱。窗體FrmAreaEdit的布局如圖3.51所示。</p><p><b> 圖3.51</b></p><p> 窗體FrmAreaEdit中部分過程的代碼。</p
81、><p> 全局變量Modify</p><p> '判斷地域名稱是否存在</p><p> If Modify = False Or OriAreaName <> Trim(txtAreaName) Then</p><p> If .In_DB(MakeStr(txtAreaName)) = True Then&l
82、t;/p><p> MsgBox "地域名稱已經(jīng)存在,請重新輸入"</p><p> txtAreaName.SetFocus</p><p> txtAreaName.SelStart = 0</p><p> txtAreaName.SelLength = Len(txtAreaName)</p>&
83、lt;p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> End If</b></p><p> '根據(jù)變量Modify的值,決定是插入新數(shù)據(jù),還是修改已有的數(shù)據(jù)</p><p> If Mo
84、dify = False Then</p><p><b> .Insert</b></p><p><b> Else</b></p><p> .Update (OriId)</p><p><b> End If</b></p><p>&
85、lt;b> End With</b></p><p><b> '關(guān)閉窗體</b></p><p><b> Unload Me</b></p><p><b> End Sub</b></p><p> 小結(jié):變量Modify用來標(biāo)識當(dāng)前的
86、數(shù)據(jù)庫訪問狀態(tài)。當(dāng)Modify=Ture時,表示修改已有的數(shù)據(jù),當(dāng)Modify=False時,表示插入新的數(shù)據(jù);變量OriId表示當(dāng)前編輯地域數(shù)據(jù)的地域編號;變量OriAreaName表示當(dāng)前編輯地域數(shù)據(jù)的原有地域名稱;變量OriType表示當(dāng)前編輯地域數(shù)據(jù)的原有地域類別。</p><p> ?。ǘ?設(shè)計旅游地域資源管理窗體</p><p> 窗體名稱設(shè)置為FrmAreaMan。窗體
87、FrmAreaMan的布局如圖3.52所示。在此窗體中將地域類型分為三類:本市、外埠、國外??梢詫λ麄冞M(jìn)行刪除、修改、刪除。</p><p><b> 圖3.52</b></p><p> 九、景點(diǎn)資源管理模塊設(shè)計</p><p> 景點(diǎn)模塊可以實(shí)現(xiàn)以下功能:</p><p><b> ● 添加景點(diǎn)信
88、息</b></p><p><b> ● 修改景點(diǎn)信息</b></p><p><b> ● 刪除景點(diǎn)信息</b></p><p><b> ● 查看景點(diǎn)信息</b></p><p> ?。ㄒ唬?設(shè)計景點(diǎn)資源編輯窗體</p><p&
89、gt; 創(chuàng)建一個新窗體,名稱設(shè)置為FrmPlaceEdit。此窗體將景點(diǎn)的報價分為了成人和學(xué)生兩種類型,并且注明了聯(lián)系人、聯(lián)系電話、以及一些聯(lián)系方式。</p><p> ?。ǘ?設(shè)計景點(diǎn)資源管理窗體</p><p> 創(chuàng)建一個新窗體,名稱設(shè)置為FrmPlaceMan。窗體FrmPlaceMan的布局如圖3.61所示。</p><p><b> 圖3
90、.61</b></p><p> 表3.62 FrmPlaceMan包含的控件及其屬性如下圖3.62</p><p> 小結(jié):使用DataGrid控件是一種常用的方法。它的特點(diǎn)是簡單直觀,一目了然。DataGrid控件只能用來顯示數(shù)據(jù),數(shù)據(jù)源用ADO Data控件提供。</p><p> 十.、賓館資源管理模塊設(shè)計<
91、;/p><p> 管理模塊功能以及窗體布局與上面FrmPlaceEdit以及FrmPlaceMan很相近,只要在添加選項中添加信息即可。唯一不同的是在此資源管理模塊中在賓館標(biāo)準(zhǔn)里將賓館分為了幾個不同的星級水準(zhǔn)。并且還將賓館的房間各種不同類型的房間。具體的圖如下:</p><p> 十一、餐廳資源管理設(shè)計模塊設(shè)計</p><p> 管理模塊功能以及窗體布局與上面Fr
92、mPlaceEdit以及FrmPlaceMan很相近,和上面的賓館模塊一樣,餐廳模塊在餐廳標(biāo)準(zhǔn)中也同樣把餐廳分為了幾個不同的星級水準(zhǔn)。并且賦予早餐和正餐的報價。</p><p> 十二、娛樂資源管理模塊設(shè)計</p><p> 娛樂模塊可以實(shí)現(xiàn)以下功能:</p><p><b> ● 添加娛樂信息</b></p><p
93、><b> ● 修改娛樂信息</b></p><p><b> ● 刪除娛樂信息</b></p><p><b> ● 查看娛樂信息</b></p><p> ?。ㄒ唬?設(shè)計娛樂資源編輯窗體</p><p> 布局和各個過程的代碼與上面FrmPlaceEd
94、it很相近,它是用來添加娛樂廳的一些信息的包括娛樂廳的名字以及一些聯(lián)系方式。</p><p> ?。ǘ┰O(shè)計娛樂項目管理窗體</p><p> 與景點(diǎn)、賓館、餐廳等旅游資源不同,娛樂資源包含很多的娛樂項目,如保齡、臺球、游泳等等,所以需要一個娛樂項目管理窗體。創(chuàng)建一個新窗體,名字設(shè)置為FrmAitemMan。窗體的布局如圖3.71所示。</p><p> 圖3.
95、71窗體FrmAitemMan的布局</p><p> 圖3.71窗體FrmAitemMan的布局</p><p> 下面分析窗體FrmAitemMan中主要的過程代碼。</p><p><b> 公共變量</b></p><p> 在窗體FrmAitemMan中有一個公共變量OriAid,表示當(dāng)前所編輯的娛樂項
96、目所屬的娛樂廳編號。此變量在啟動窗體FrmAitemMan之前設(shè)置。</p><p> 十三.、火車資源管理模塊設(shè)計</p><p> 管理模塊功能以及窗體布局與上面FrmPlaceEdit以及FrmPlaceMan很相近,故不多說。在次模塊中,將火車分為了4個級別,包括軟座、硬座、軟臥、硬臥。</p><p> 十四.、飛機(jī)資源管理模塊設(shè)計</p>
97、;<p> 飛機(jī)模塊可以實(shí)現(xiàn)以下功能:</p><p><b> ● 添加飛機(jī)信息</b></p><p><b> ● 修改飛機(jī)信息</b></p><p><b> ● 刪除飛機(jī)信息</b></p><p><b> ● 查看飛機(jī)信
98、息</b></p><p> 設(shè)計飛機(jī)資源編輯窗體</p><p> 創(chuàng)建一個窗體,名稱設(shè)置為FrmPlaneEdit。窗體的布局如圖3.81所示。</p><p> 圖3.81 窗體FrmPlaneEdit的布局</p><p> 窗體FrmPlaneEdit中增加了“航班周期”的處理,下面介紹一下窗體FrmPlane
99、Edit的主要代碼。</p><p> Cmd_OK_Click過程 對應(yīng)的部分代碼如下:</p><p> 'TmpCycle用來保存飛機(jī)的航班周期字符串</p><p> TmpCycle = ""</p><p> If Check1.Value = 1 Then</p><p&g
100、t; TmpCycle = TmpCycle + "1"</p><p><b> End If</b></p><p> If Check2.Value = 1 Then</p><p> TmpCycle = TmpCycle + "2"</p><p><b&g
101、t; End If</b></p><p> If Check3.Value = 1 Then</p><p> TmpCycle = TmpCycle + "3"</p><p><b> End If</b></p><p> If Check4.Value = 1 Then
102、</p><p> TmpCycle = TmpCycle + "4"</p><p><b> End If</b></p><p> If Check5.Value = 1 Then</p><p> TmpCycle = TmpCycle + "5"</p>
103、;<p><b> End If</b></p><p> If Check6.Value = 1 Then</p><p> TmpCycle = TmpCycle + "6"</p><p><b> End If</b></p><p> If Ch
104、eck7.Value = 1 Then</p><p> TmpCycle = TmpCycle + "7"</p><p><b> End If</b></p><p> 小結(jié):程序中使用航班字符來描述航班周期的信息。規(guī)定航班周期字符串由一組數(shù)字組成,如果星期一有航班,則航班周期字符串中包含字符“1”; 如果星期二
105、有航班,則航班周期字符串中包含字符“2”;以次類推,星期六對應(yīng)的字符“6”,星期日對應(yīng)的字符“7”。</p><p> 十五.、旅游線路管理設(shè)計</p><p> 旅游線路模塊可以實(shí)現(xiàn)以下功能:</p><p> ● 添加旅游線路信息</p><p> ● 修改旅游線路信息</p><p> ● 刪除旅
106、游線路信息</p><p> ● 查看旅游線路信息</p><p> ?。ㄒ唬?設(shè)計旅游線路管理窗體</p><p> 創(chuàng)建一個新窗體,名稱設(shè)置為FrmLineMan。窗體FrmLineMan布局如圖3.91所示。</p><p> 圖3.91 窗體FrmLineMan的布局</p><p> 下面分析
107、窗體的FrmLineMan中主要過程的代碼。</p><p> X1_refresh 過程</p><p> X1_refresh()的作用是根據(jù)用戶選擇的地域,把所在地域的所有旅游線路都讀取到全局?jǐn)?shù)組ArrLind(),然后再依次添加到List1列表里,對應(yīng)的代碼如下:</p><p> Private Sub Xl_refresh()</p>
108、<p> Dim i As Integer</p><p> Dim TmpId As Long</p><p> '根據(jù)用戶的選擇,讀取地域編號</p><p> TmpId = MyArea.GetId(ComboName.Text)</p><p> '根據(jù)地域編號TmpId,讀取指定地域的所有線路
109、</p><p> MyLine.Loadline_ByArea (TmpId)</p><p> List1.Clear</p><p><b> i = 0</b></p><p> '把讀取的所有線路添加到列表中</p><p> Do While ArrLine(i) &
110、lt;> ""</p><p> List1.AddItem ArrLine(i)</p><p><b> i = i + 1</b></p><p><b> Loop</b></p><p><b> End Sub</b></p&
111、gt;<p> ?。ǘ?旅游線路線路編輯窗體</p><p> 創(chuàng)建一個新窗體,名字設(shè)置為FrmLineEdit。窗體FrmLineEdit的布局如圖3.92。</p><p> 此窗體是本系統(tǒng)中一個比較重要的窗體,功能也是最為強(qiáng)大的,故我會在下面的內(nèi)容中重點(diǎn)詮釋此窗體的實(shí)現(xiàn)過程和里面的一些代碼。其中的一些信息添加都是前面的7個窗體中輸入的信息,當(dāng)你把前面的信息輸入到
112、一個線路中并且保存后,你將不能在前面的7個窗體中刪除包括在此路線的任何信息。在此窗體中你能很詳細(xì)的了解到一些你旅游出行的一些最基本信息,包括你將要去的地方的景點(diǎn)、賓館、用餐、娛樂、交通等各種情況。并且可以很直觀的了解到你此次出行將要花費(fèi)的大概費(fèi)用情況。</p><p> 圖3.92 窗體FrmLineEdit的布局</p><p> 下面分析窗體FrmLineEdit中幾個過程的代碼
113、。</p><p><b> SetAmt 過程</b></p><p> SetAmt()過程的功能是根據(jù)用戶錄入的線路數(shù)據(jù)計算并顯示線路的成本、線路報價和利潤率。對應(yīng)的代碼如下:</p><p> Public Sub SetAmt()</p><p> '成本=景點(diǎn)費(fèi)用共計+賓館費(fèi)用共計+娛樂費(fèi)用共
114、計+用餐費(fèi)用共計+交通費(fèi)用共計+其他費(fèi)用+導(dǎo)游費(fèi)</p><p> lblCostAmt = Val(lblPlaceAmt) + Val(lblHotelAmt) + Val(lblamuseAmt) _</p><p> + Val(lblResAmt) + Val(lblTrafAmt) + Val(txtOthers) _</p><p> + Val
115、(txtTour)</p><p> '線路報價=成本+利潤</p><p> lblPrice = Val(lblCostAmt) + Val(txtBenefit)</p><p><b> '計算利潤率</b></p><p> If Val(lblPrice) = 0 Then</p
116、><p> lblBrate = 0</p><p><b> Else</b></p><p> lblBrate = Trim(Round(Val(txtBenefit) * 100 / Val(lblPrice), 2)) + "%"</p><p><b> End If<
117、/b></p><p><b> End Sub</b></p><p> Refresh_lplace 過程</p><p> Refresh_lplace()過程的功能是為Adodc1控制設(shè)置數(shù)據(jù)源,從而決定在DataGrid1控件中顯示的線路景點(diǎn)數(shù)據(jù)內(nèi)容,對應(yīng)的代碼如下:</p><p> Priva
118、te Sub Refresh_lplace()</p><p> If ComboType.ListIndex = 0 Then '學(xué)生線路</p><p> Adodc1.RecordSource = "SELECT a.AreaName As 所在地域, p.Pname As 景點(diǎn)名稱," _</p><p> + "
119、 p.Child_Price As 票價 FROM Place p, lplace l, Area a WHERE l.lid=" _</p><p> + Trim(MyLine.lid) + " And l.pid=p.pid And a.AreaId=p.AreaId"</p><p> Else
120、 '成人線路</p><p> Adodc1.RecordSource = "SELECT a.AreaName As 所在地域, p.pName As 景點(diǎn)名稱," _</p><p> + " p.Adult_Price As 票價 FROM Place p, lplace l, Area a WHERE l.lid=" _</
121、p><p> + Trim(MyLine.lid) + " And l.pid=p.pid And a.AreaId=p.AreaId"</p><p><b> End If</b></p><p> Adodc1.Refresh</p><p> SetPlaceAmt</p>
122、<p><b> End Sub</b></p><p> 小結(jié):在顯示線路景點(diǎn)數(shù)據(jù)時,需要根據(jù)數(shù)據(jù)庫中記錄的線路景點(diǎn)信息從景點(diǎn)資源表Place中提取景點(diǎn)價格。例如:如果當(dāng)前線路是學(xué)生線路,則提取學(xué)生;如果當(dāng)前線路是成人路線,則提取成人價格。</p><p> Load_traffic過程</p><p> Load_traf
123、fic()過程的功能是叢數(shù)據(jù)庫中讀取線路交通信息,并顯示在窗體的指定的位置,對應(yīng)的部分代碼如下:</p><p> Private Sub Load_traffic(ByVal TmpFlag As Integer)</p><p> If TmpFlag = 1 Then '往程交通信息</p><p><b> '讀取線路火車信
124、息</b></p><p> Call Myltrain.GetInfo(MyLine.lid, 1)</p><p> '如果Myltrain.Tid<>0,則存在表示往程火車信息</p><p> If Myltrain.Tid <> 0 Then</p><p> ComboTraf1
125、.ListIndex = 0</p><p><b> '讀取火車信息</b></p><p> MyTrain.GetInfo (Myltrain.Tid)</p><p><b> '顯示起止車站</b></p><p> lblstation1 = MyTrain.Ss
126、tation + " - " + MyTrain.Estation</p><p> '顯示車票類型和票價</p><p> Select Case Myltrain.tType</p><p><b> Case 1</b></p><p> lbltype1 = "硬座&
127、quot;</p><p> lblprice1 = MyTrain.PriceYz</p><p><b> Case 2</b></p><p> lbltype1 = "軟座"</p><p> lblprice1 = MyTrain.PriceRz</p><p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開題報告---旅游資源及線路管理系統(tǒng)設(shè)計與實(shí)現(xiàn)
- 旅游資源與線路管理系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 旅游資源及線路管理系統(tǒng)設(shè)計與實(shí)現(xiàn)畢業(yè)論文
- 旅游資源及線路管理系統(tǒng).doc
- 旅游資源及線路管理系統(tǒng).doc
- 旅游資源及線路管理系統(tǒng).doc
- 旅游資源及線路管理系統(tǒng).doc
- 旅游資源及線路管理系統(tǒng).doc
- 旅游資源及線路管理系統(tǒng).doc
- 旅游資源與線路管理信息系統(tǒng)設(shè)計與實(shí)現(xiàn).pdf
- 畢業(yè)論文——旅游資源及線路管理系統(tǒng)
- vb旅游資源及線路管理系統(tǒng)(源代碼+系統(tǒng))
- 旅游資源與線路管理畢業(yè)論文
- [vb畢設(shè)]旅游資源及線路管理系統(tǒng)(無源碼)
- 湖南省旅游資源WebGIS系統(tǒng)設(shè)計與實(shí)現(xiàn).pdf
- 面向服務(wù)的旅游資源管理系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- vb旅游資源及線路管理系統(tǒng)(論文+源代碼+開題報告)
- 旅游資源開發(fā)與管理
- 旅游管理旅游資源講稿
- 基于gis的360176;全景旅游資源展示系統(tǒng)設(shè)計與實(shí)現(xiàn)
評論
0/150
提交評論