畢業設計論文-基于多人決策的旅游景點路線推薦系統的設計與實現_第1頁
畢業設計論文-基于多人決策的旅游景點路線推薦系統的設計與實現_第2頁
畢業設計論文-基于多人決策的旅游景點路線推薦系統的設計與實現_第3頁
畢業設計論文-基于多人決策的旅游景點路線推薦系統的設計與實現_第4頁
畢業設計論文-基于多人決策的旅游景點路線推薦系統的設計與實現_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于多人決策的旅游景點路線推薦系統 的設計與實現摘要計算機網絡技術日新月異的進步和互聯網的日益普及,使人類生活發生了 巨大的變化。隨著我國經濟的迅速發展,人們的生活水平有了顯著提高,假日 經濟和旅游經濟已成為人們消費的熱點。各地也把旅游業當作本地經濟發展的 重要支柱之一,從而帶動別的經濟產業的快速發展。旅游網站也就成為了各旅 游勝地和旅行社對外宣傳中不可缺少的工具,隨著信息資源的逐步網絡化,信息消費者將被籠罩在巨大的信息網絡之 中,并由此而具備充分的獲取信息的能力。可是當我們以家庭和團體作為單位 出游時,龐大的景點信息和個人偏好不同,難以規劃行程的安排。此時,用戶 對信息的需求將更具針對性,更

2、為個性化。基于多人團的旅游景點路線推薦系 統就是一個平臺能將大量信息整合,根據用戶的個性化選擇進行分析并給出最 佳解決方案。因此,此平臺就具有互動性,不再像傳統旅游平臺僅僅提供旅游 景點信息并展示,用戶能夠更多地參與信息服務的過程。第1章緒論研究的目的和意義當前,經濟全球化與網絡化已成為一種不可逆轉的潮流,信息技術革命與 信息化建設正在使資本經濟變為信息經濟、知識經濟,并將迅速改變傳統的經 貿交易方式,旅游經濟在相應地受到了沖擊的同時卻也贏得了發展的機遇。旅 游經濟以其自身的特點和發展要求,完全可以適應并有必要走上信息化的道路, 這是我國旅游業發展的必然趨勢。但目前國內多數旅行社經營規模小,管

3、理松 散,經營方式落后及科技含量低,大部分工作都是通過手工完成,服務質量低 劣,服務意識不強,嚴重地制約著我國旅游業的發展,因此旅游系統的開發變 得越來越重要。據了解,已采用旅游管理信息系統的新型企業的年收益明顯高于那些沒有 采用的企業,新型旅游企業采用旅游管理信息系統后不僅提高了管理水平,而 且解放了繁重的體力勞動和腦力勞動,使企業信息暢通從而增加決策的正確性, 極大的改善了用戶服務的質量,提高了旅行社的信譽。通過以上分析比較可以 得出,開發旅游管理系統的綜合效益要遠遠大于成本,因此,在經濟上是可行 的。該系統采用瀏覽器/服務器結構,支持Mysql,具有查詢方便、安全保密性好、 用戶界面友好

4、、容易操作等優點,可以為游客提供方便快捷的信息服務,為旅行 社節省人力成本、提高工作效率、招攬更多的游客報名旅游,從而為旅行社帶 來更多的經濟效益。國內研究現狀目前我國旅游業主要由旅游代理商、旅游供應商、旅客三個因素組成。旅 游中的許多工作是由人的密集勞動來完成的,其特點是:(1)營銷手段以傳統的旅游營銷方式為主,即通過報紙、電視、雜志等 媒介廣告宣傳的手段認同企業根據技術人員自身設想或意愿研制產品,但效果 往往難盡人意,而且成本高。(2)商品交易,旅游業的商品交易都是通過現金交易完成,顧客隨身攜 帶現金,既不安全,也比較煩瑣。(3)聯系方式旅游接待方式主要通過電話、電報、傳真進行聯系,時間

5、長且費用高。落后的旅游管理手段及方式,嚴重制約著我國未來旅游業的發展。造成旅游業信息化落后的原因是多樣的。首先,旅游行業市場很不規范, 企業之間的競爭也很不規范,人為因素對市場的實際運作造成了較大影響。例 如,行業價格浮動性較強,不易通過計算機進行準確的計價、報價。其次,中 國旅游業目前仍被行政劃分所左右,形成縱向割據和分散經營的不良格局,從 而導致了信息渠道不暢,難以形成調控全局的管理信息體系,如旅游信息資源 廣泛分布于旅游企業、旅游院校、旅游協會、旅游管理機構中,信息封閉意識 極大地限制了信息共享。旅游業是一個開放性的大系統,信息是其得以生存和運轉的根本基礎,它 貫穿了旅游活動的全過程,因

6、而信息是旅游系統的靈魂,是命根子。信息既影 響人們了解和選擇目的地的決策,還影響他們對旅游體驗的滿意程度。隨著人 們生活水平的提高和旅游經歷的增多,旅游者開始由過去的求量型旅游方式轉 向求質型旅游方式,旅游者對信息提出了更高的要求。此外,無論是旅游景點 開發、規劃、設計,還是客源市場目標確定、市場競爭戰略制定和進行旅游統 計,都對迅速準確獲取、加工、利用信息提出了較高要求。總之,信息技術的 使用已滲透到現代旅游業的各個環節。任何企業和個人若想在充滿機遇和挑戰 的旅游業中贏得一席之地,必須充分利用現代信息技術帶來的巨大益處。1.3研究內容本項目采用JSP技術和Mysql數據庫技術設計建立旅游景點

7、路線推薦系統, 系統要求能夠滿足大量并發用戶的同時訪問,支持多服務器分布式體系結構, 可在需要時迅速對系統進行擴充。1、地方景點的信息展示(暫定青島)通過百度地圖API開源代碼實現將青島市的代表性景點展示出來。2、Java-Web的后臺系統編寫通過MVC結構,需要實現后臺的邏輯層servlet和javabean的代碼設 計。3、JSP的前臺設計通過Java script和CSS樣式來設計用戶界面效果。4、單元最短路徑算法-Floyd算法通過Floyd算法計算出景點間的單元最短路徑。5、多人團隊的偏好融合通過活躍度規則系統來計算個人的活躍值,再將團隊的活躍值求平均得 出團隊活躍值。6、最優方案的

8、規劃與展示通過團隊的偏好篩選出合適景點,再將其用算法求出最短路線,再通過 百度地圖功能將其顯示在地圖上。1.4開發環境與工具開發環境:Windows7 ProfessionalInternet Explorer 8.0腳本語言:JSP數據庫工具:MYSQL 5.0及以上開發工具:My Ellipse分辨率:最佳效果1024X768像素。第2章相關技術和工具綜述系統主要技術分析Java Server Page (JSP)技術JSP全名為Java Server Pages,中文名叫java服務器頁面,其根本是一個簡 化的Servlet設計,它1是由Sun Microsystems公司倡導、許多公司

9、參與一起 建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網 頁HTML (標準通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段 (Scriptlet)和JSP標記(tag),從而形成JSP文件,后綴名為(*.jsp)。用JSP開發 的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統上運行。它實現了 Html語法中的java擴張(以%, %形式)。JSP與Servlet 一樣, 是在服務器端執行的。通常返回給客戶端的就是一個HTML文本,因此客戶端 只要有瀏覽器就能瀏覽。JSP技術使用Java編程語言編寫類XML的tags和scri

10、ptlets,來封裝產生動 態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的 應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基于組件的 設計,使基于Web的應用程序的開發變得迅速和容易。JSP(JavaServer Pages) 是一種動態頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。Java Servlet是JSP的技術基礎,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成。JSP具備了 Java技術的簡單易用,完全的面向對 象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。JavaScri

11、pt 技術Javascript就是適應動態網頁制作的需要而誕生的一種新的編程語言,如今 越來越廣泛地使用于Internet網頁制作上。Javascript是由Netscape公司開發 的一種腳本語言(scripting language),或者稱為描述語言。在HTML基礎上, 使用Javascript可以開發交互式Web網頁。Javascript的出現使得網頁和用戶之 間實現了一種實時性的、動態的、交互性的關系,使網頁包含更多活躍的元素 和更加精彩的內容。運行用Javascript編寫的程序需要能支持Javascript語言的 瀏覽器。Netscape公司Navigator 3. 0以上版本的

12、瀏覽器都能支持Javascript 程序,微軟公司Internet Explorer 3. 0以上版本的瀏覽器基本上支持Javascript。 微軟公司還有自己開發的Javascript,稱為JScript。Javascript和Jscript基本上 是相同的,只是在一些細節上有出入。Javascript短小精悍,又是在客戶機上 執行的,大大提高了網頁的瀏覽速度和交互能力。同時它又是專門為制作Web 網頁而量身定做的一種簡單的編程語言。JavaScript使網頁增加互動性。JavaScript使有規律地重復的HTML文段簡 化,減少下載時間。JavaScript能及時響應用戶的操作,對提交表單

13、做即時的檢 查,無需浪費時間交由CGI驗證。JavaScript的特點是無窮無盡的。B/S結構簡介B/S是web興起后的一種網絡結構模式,web瀏覽器是客戶端最主要的應用 軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上, 簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器,如NETSCAPE Navigator 或 Internet Explorer, 服務器安裝 Oracle、Sybase、Informix 或 SQL server等數據庫。瀏覽器通過Web Server同數據庫進行數據交換。4系統主要工具MYSQL 介紹MySQL是一種開放源代碼的關系型數據庫管理

14、系統(RDBMS), MySQL 數據庫系統使用最常用的數據庫管理語言-結構化查詢語言(SQL)進行數據庫 管理。由于MySQL是開放源代碼的,因此任何人都可以在General Public License 的許可下下載并根據個性化的需要對其進行修改。MySQL因為其速度、可靠性 和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL 是管理內容最好的選擇。 MySQL關系型數據庫于1998年1月發行第一個版 本。它使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面 向 C、C+、Eiffel、Java、Perl、PHP、Python 以及 Tcl 等編程語言的編

15、程接口 (APIs),支持多種字段類型并且提供了完整的操作符支持查詢中的SELECT 和WHERE操作。MySQL開發組計劃于2001年中期公布MySQL4.0版本。在這個版本中將 有以下新的特性被提供:新的表定義文件格式、高性能的數據復制功能、更加 強大的全文搜索功能。在此之后,MySQL開發著希望提供安全的數據復制機制、 在BeOS操作系統上的MySQL實現以及對延時關鍵字的定期刷新選項。隨著時 間的推進,MySQL將對ANSI 92/ANSI 99標準完全兼容。在這里推薦使用MYSQL的主要原因有以下幾點:(1)便宜(通常是免費)。(2)網絡承載比較少。(3)經常高度最佳化(Highly

16、Optimized)。(4)應用程序通過它做起備份來比較簡單。(5)為各種不同的數據格式提供彈性的借口。(6)較好學且操作簡單。MYSQL的優點有以下幾點1:.避免網絡阻塞針對多個使用者共同的存取的支持,MYSQL內定最大鏈接數為100個使用 者。但是,即使網絡上有大量數據來往,并不會對查詢最佳化有多大的影響。.最佳化數據庫結構設計也會影響到MYSQL的執行效率,例如MYSQL并不支持 外來鍵,這個缺點會影響到數據庫設計以及網站的效率。對于使用MYSQL做數據庫支持的網站,應該將重點放在如何讓硬盤存取 減少到最低、如何讓一個或多個CPU隨時保持在告訴作業的狀態,以及支持適 當的網絡頻寬,而非實

17、際上的數據庫設計以及數據查詢的狀況。.多線程MYSQL是一個快速、多線程、多使用者且功能強大的關系型數據庫管理 系統。也就是說當客戶端與MYSQL 數據庫連接時,服務器會產生一個線程 或一個行程來處理這個數據庫鏈接的請求。.可延伸性以及數據處理能力MYSQL 同時具有高度多樣性,能夠提供給很多不同的使用接口,包括 命令列、客戶端操作、網頁瀏覽器、以及各式各樣的程序語言接口,例如C+、 Perl、java、PHP 以及 Python。.便于學習MYSQL支持結構化查詢語言,那么精通數據庫的人在一天之內,就可以學 會MYSQL,對于初學者來說也非常容易上手。.2.2 Tomcat 介紹Tomcat

18、是 Apache 軟件基金會(Apache Software Foundation)的 Jakarta 項 目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發而成。 由于有了 Sun的參與和支持,最新的Servlet和JSP規范總是能在Tomcat中 得到體現,Tomcat 5支持最新的Servlet 2.4和JSP 2.0規范。因為Tomcat技術 先進、性能穩定,而且免費,因而深受丫2愛好者的喜愛并得到了部分軟件開 發商的認可,成為目前比較流行的Web應用服務器。目前最新版本是8.0。Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級 應用服務器,在

19、中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是 開發和調試JSP程序的首選。對于一個初學者來說,可以這樣認為,當在一臺 機器上配置好Apache服務器,可利用它響應HTML (標準通用標記語言下的 一個應用)頁面的訪問請求。實際上Tomcat部分是Apache服務器的擴展,但 它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立 的進程單獨運行的。訣竅是,當配置正確時,Apache為HTML頁面服務,而Tomcat實際上運 行JSP頁面和Servlet。另外,Tomcat和IIS等Web服務器一樣,具有處理HTML 頁面的功能,另外它還是一個Servlet和J

20、SP容器,獨立的Servlet容器是Tomcat 的默認模式。.2.3百度地圖API百度地圖API是為開發者免費提供的一套基于百度地圖服務的應用接口, 包括 JavaScript API、Web 服務 API、Android SDK、iOS SDK、定位 SDK、車 聯網API、LBS云等多種開發工具與服務,提供基本地圖展現、搜索、定位、逆/地理編碼、路線規劃、LBS云存儲與檢索等功能,適用于PC端、移動端、 服務器等多種設備,多種操作系統下的地圖應用開發。百度地圖宣稱所有API均免費對外開放。百度地圖JavaScript API是一套由JavaScript語言編寫的應用程序接口,它 能夠幫助

21、您在網站中構建功能豐富、交互性強的地圖應用程序。百度地圖API 不僅包含構建地圖的基本功能接口,還提供了諸如本地搜索、路線規劃等數據 服務。適用于PC或移動設備端的基于瀏覽器的開發。JS版本還為用戶開放了 開源庫,簡化開發。百度地圖 Web 服務 API 包括 Place API、Geocoding API、Direction API,能 夠快速響應用戶的請求,返回xml&Json數據。就百度地圖API目前政策,若 用戶使用該套API,需要先申請key。其中Place API使用受限,其他均無限免 費使用。2.3系統算法原理弗洛伊德算法行13)Floyd算法又稱為插點法,是一種用于尋找給定的加

22、權圖中多源點之間最短 路徑的算法。該算法名稱以創始人之一、1978年圖靈獎獲得者、斯坦福大學計 算機科學系教授羅伯特弗洛伊德命名。1核心思路路徑矩陣:通過一個圖的權值矩陣求出它的每兩點間的最短路徑矩陣。從圖的帶權鄰接矩陣A=a(i,j) nXn開始,遞歸地進行n次更新,即由 矩陣口(0)=人,按一個公式,構造出矩陣D(1);又用同樣地公式由口(1)構造出 D(2);最后又用同樣的公式由口(口-1)構造出矩陣D(n)。矩陣D(n)的i 行j列元素便是i號頂點到j號頂點的最短路徑長度,稱D(n)為圖的距離矩陣, 同時還可引入一個后繼節點矩陣path來記錄兩點間的最短路徑。采用松弛技術(松弛操作),

23、對在i和j之間的所有其他點進行一次松弛。 所以時間復雜度為0(3);狀態轉移方程其狀態轉移方程如下:mapi,j:=minmapi,k+mapk,j,mapi,j;mapi,j表示i到j的最短距離,K是窮舉i,j的斷點,mapn,n初值應該 為0,或者按照題目意思來做。當然,如果這條路沒有通的話,還必須特殊處理,比如沒有mapi,k這條 路。2算法過程(1)從任意一條單邊路徑開始。所有兩點之間的距離是邊的權,如果兩點 之間沒有邊相連,則權為無窮大。(2)對于每一對頂點u和v,看看是否存在一個頂點w使得從u到w 再到v比已知的路徑更短。如果是更新它。把圖用鄰接矩陣G表示出來,如果從Vi到Vj有路

24、可達,則Gi,j=d,d 表示該路的長度;否則Gi,j=無窮大。定義一個矩陣D用來記錄所插入點的 信息,Di,j表示從Vi到Vj需要經過的點,初始化Di,j=j。把各個頂點插 入圖中,比較插點后的距離與原來的距離,Gi,j = min( Gi,j, Gi,k+Gk,j),如果Gi,j的值變小,則Di,j=k。在G中包含有兩點之 間最短道路的信息,而在D中則包含了最短通路徑的信息。比如,要尋找從V5到V1的路徑。根據D,假如D(5,1)=3則說明從V5到 V1經過V3,路徑為V5,V3,V1,如果D(5,3)=3,說明V5與V3直接相連,如 果D(3,1)=1,說明V3與V1直接相連。3時間復雜

25、度與空間復雜度時間復雜度:0(n3);空間復雜度:O(Z2)14優缺點分析Floyd算法適用于APSP(All Pairs Shortest Paths,多源最短路徑),是 一種動態規劃算法,稠密圖效果最佳,邊權可正可負。此算法簡單有效,由于 三重循環結構緊湊,對于稠密圖,效率要高于執行|V|次Dijkstra算法,也要 高于執行V次SPFA算法。優點:容易理解,可以算出任意兩個節點之間的最短距離,代碼編寫簡單。 缺點:時間復雜度比較高,不適合計算大量數據。第3章需求分析通過計算機對旅游信息進行管理,不僅為旅行社的管理注入了新的生機, 而且在運營過程中節省了大量的人力、物力、財力和時間,可以提

26、高旅行社的 管理效率,還為旅行社樹立里一個全新的形象,為旅游業日后更好的發展奠定 了一個良好的基礎。隨著計算機技術的發展以及計算機在各行各業的普及,計 算機強大的功能已為人們深刻認識。它在當今高速發展的信息時代占據著不可 或缺的地位,作為計算機應用軟件的一部分,使用計算機對旅行社進行綜合管 理和企業宣傳已遠遠超過了手工管理的效率。因此,開發這樣一個系統是很有 必要的。可行性分析系統的可行性是用來確定本系統是否值得去開發研究,以及怎么實現這個 系統的功能。當然不能靠主觀猜想而只能靠客觀分析。必須分析幾種主要可能 解決方法的利弊,從而判斷系統規模和功能是否能現實,系統完成后所能帶來 的效益是否超過

27、它的開發成本。因此,可行性研究實質上是要進行一次大大壓 縮簡化系統分析和設計的過程,也就是在較高層次上以抽象的方式進行的系統 分析和設計的過程。一般說來,至少應該從下述三方面研究每種解決方法的可行性:經濟可行性:使用現有的技術能否實現這個系統。技術可行性:這個系統的經濟效益能否超過它的開發成本。操作可行性:系統的操作方式在這個企業組織內是否行得通。(1)經濟可行性本系統是基于JSP的旅游景點路線推薦中小型系統,在開發工具和運行設 備等方面只需要一些基本的配置就可以了,在硬件要求上也不算太高,成本要 也相對比較低。在軟件方面,在目前常用的操作系統下均可以運行。在開發人員 方面,本系統是由個人獨立

28、開發的系統。由此可見,開發這樣一個旅游景點路 線推薦系統在經濟上是完全可行的。(2)技術可行性技術可行性研究就是弄清現有技術條件能否順利完成開發工作,軟硬件配 置能否滿足開發的需要等。由于本系統是基于MYSQL的數據庫應用程序開發 系統,當前JSP+MYSQL開發技術已經完全成熟,兩者的結合為開發一個綜合 的高效的系統提供物質基礎保障。再者,在當前的技術條件下,JSP的發展是 非常迅速的,模版和框架的應用也變得越來越普遍,構筑MVC模式應用。再 加上以前的很多人都開發過類似的系統,提供了許多寶貴的經驗,因而開發出 這樣的一個系統是完全可能的。(3)操作可行性本系統的界面是用傳統的框架集和單文檔

29、下拉菜單方式制作完成,即使在 操作人員完全不熟悉系統的情況下,也可以輕松的上手操作,進入系統后,點 擊相應的子菜單,就可以跳轉到相應的界面并實現相應的功能,因而在操作上 本系統不存在問題。業務分析業務范圍:用戶的組織結構、角色及業務分工(業務用例圖)本系統主要面向青島旅行社以及想來青島游玩的小團隊。主要是為導游(旅 行社導游或小團隊領袖)為團隊設計一條既有特色又符合團隊愛好的最短旅游 路線規劃的實現。圖3.1.1業務用例圖3.1.2業務領域模型(類圖)用戶添加團隊團隊名名齡好姓年愛+選擇團隊*團隊名編輯旅客分析團隊團隊名查看旅客值名 名齡好躍隊 舊姓年愛活團圖3.1.2業務領域模型3.1.3核

30、心業務流程(活動圖)圖3.1.3核心業務活動圖3.2系統功能分析系統用例圖圖3.2.1系統用例圖系統非功能分析(1)運行環境Q硬件環境要求。一般情況下,在設計網站運行的硬件環境的時候特別要 注重參考網站預計的訪問量、所要達到的安全級別、網站期望的運行速度、網 站規模大小以及投資費用等多種因素綜合考慮。由于本系統主要面向青島的旅行社或自由團隊,屬于中小型企業使用,此 時采用使用簡單、性價比較高的單路服務器比較合適。例如可以考慮選擇 支持最新的Intel P43.0GHz處理器等入門級服務器。Q軟件環境的要求。網站運行的軟件環境也有多種類型可供選擇。如常用的網絡操作系統有 Windows 2003

31、 Server、Windows 2008 Server、Linux 等,常用的 Web 服務器軟件有 Resin、Apache、Zeus、Tomcat、Application Server等;常用的數據庫系統有Oracle、MySQL、DB2、MS、SQL Server等。(2)數據要求Q網站流量指標是衡量網站基礎設置是否合理的重要依據,其中最為重要 的指標包含IP(獨立IP數)、UV(獨立訪客數)、PV(頁面瀏覽量)、以及PV/UV(訪 問深度)。對于網站流量數據,必須利用各項指標統計并且加以對比分析。通過 對流量指標的一一分析,能夠合理改善頁面質量,提高用戶瀏覽價值。再進行 綜合數據分析,

32、診斷其網站流量平衡的利與弊,深入利用SWOT分析法找準其 根源所在,規避不利因素,將有利因素擴大化。Q用戶行為指標,了解用戶行為是我們提高網站轉化率的重要途徑,因此 在數據分析中必須強調深入分析用戶行為指標。掌握用戶行為中最為重要2大 指標:停留時間和跳出率。掌握用戶行為對于網站流量提升有很大幫助,為此 數據分析時一定要做到細化并且精致。必須掌握用戶平均的停留時間、新老用 戶的停留時間以及頁面停留時間,通過對用戶停留時間以及頁面停留時間長短 的對比,能夠進行有效的數據對比,掌握利與弊的原因,能夠更加有效快捷的 完善頁面質量度,引導和提高用戶下一步行為。(3)主要性能通常在設計開發Web應用系統

33、的時候很難模擬出大量用戶同時訪問系統的實際 情況,因此,當Web網站遇到訪問高峰時,容易發生服務器響應速度變慢甚至 服務中斷。為了避免這種情況,需要一種能夠真實模擬大量用戶訪問Web應用 系統的性能測試工具進行壓力測試,來測試靜態HTML頁面的響應時間,甚至 測試動態網頁(包括ASP、PHP、JSP等)的響應時間,為服務器的性能優化和 調整提供數據依據。我推薦各位Web 2.0開發測試人員使用Microsoft的Web Application Stress Tool這個工具軟件,這個微軟提供的小工具僅9.58M,很小巧 且實用。(4)質量體系(可靠性、可用性、安全等)Q網站可靠性,要從幾個方面

34、進行檢測:首先,要將服務器安裝有防火墻等等一系列軟件,防止其他人的入侵.然后, 網站盡量使用動態語言編寫.申請網上安全中心的保護,等等好多的方法,都 可以防止網站攻擊,提高網站的可靠性.監測可以通過網上監測中心,讓其監 測到網站出現問題之后然后給你發手機短信或者郵件來及時通知你。Q網站可用性定義:網站可用性也叫用戶可用性,是指網站真正能夠提供客戶功能信息的實用性。如何才能提高網站的可用性:要以客戶為中心,這個是最基本的;多去體 驗用戶的需求;設計要合理。第4章系統總體設計游線路規劃管理系統所實現的功能模塊包括旅客團隊和景點路線2個大模 塊,旅客團隊下有新增旅客團隊模塊、增添旅客信息模塊、查詢旅

35、客信息 模塊,景點路線下有旅客團隊分析模塊、景點分步模塊。具體描述如下:1、旅客團隊新增旅客團隊模塊(1)新團隊的添加增添旅客信息模塊(1)團隊的選擇(2)團隊成員的添加查詢旅客信息模塊(1)團隊的選擇(2)團隊成員的查詢(3)團隊成員的刪除(4)團隊成員的更新2、景點路線旅客團隊分析模塊(1)團隊的選擇(2)團隊成員的分析(3)合適景點的篩選(4)規劃最佳游覽路線(5)生成路線圖景點分步模塊(1)生成景點一覽圖(2)查看景點簡介系統總體架構設計;系統功能模塊劃分從功能描述的內容可以看到,本系統可以實現5個完整的功能。我們根據 這些功能,設計出系統的功能模塊如圖4.1.1所示:旅游路線設計與規

36、劃系統新增旅客團隊模塊增添旅客信息模塊查詢旅客信息模塊旅客團隊分析模塊景點分步模塊圖4.1.1基于多人決策的旅游景點路線推薦系統功能模塊示意圖客戶登錄之后基于多人決策的旅游景點路線推薦系統的功能模塊之間的關系如圖3.1.2如示:旅客團隊分析薪增旅客團隊景點分布基于并決策的旅游J-犀占陛處.一,推薦系統增添旅客信息查詢旅客信息圖4.1.2基于多人決策的旅游景點路線推薦系統功能模塊模塊關系圖系統總體架構設計本系統是采用MVC框架模式開發的WEB系統,也是最典型的MVC框架JSP + servlet + javabean 的模式。MVC 全名是 Model View Controller,是模型(m

37、odel)視圖(view) 控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分 離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用 戶交互的同時,不需要重新編寫業務邏輯。MVC是一種使用MVC(Model View Controller模型-視圖-控制器)設計創建 Web應 用程序的模式:1Model (模型)表示應用程序核心(比如數據庫記錄列表)。View (視圖)顯示數據(數據庫記錄)。Controller (控制器)處理輸入(寫入數據庫記錄)。MVC模式同時提供了對HTML、CSS和JavaScript的完全控制。表 1: V

38、iewJSP界面名字功能login.jsp登陸界面顯示登陸界面user.jsp系統用戶界面顯示系統的用戶界面newteam.jsp增添新團隊界面顯示系統的的新建團隊界面savetourists.jsp增添新旅客界面顯示系統的新增旅客界面querytourists.jsp查詢旅客界面顯示系統的查詢旅客界面updatatourists.jsp編輯旅客信息界面顯示系統的旅客更新界面analysis.jsp分析團隊信息界面顯示系統的團隊分析界面Maps.jsp規劃路線地圖界面顯示系統的規劃路線地圖界面Map5.jsp景點一覽地圖界面顯示系統的景點分布地圖界面表 2: ControllerServlet

39、名稱功能AdminSer用戶控制層用戶的登陸,注冊,判斷控制TeamSer團隊控制層團隊的判斷,創建控制TouristsSer旅客控制層旅客的增刪查改,分析控制GenerateSer團隊協作分析層獲取旅客團隊分析信息再跳轉到MapSerMapSer地圖控制層地圖的生成信息控制表 3: ModelJavabean名稱功能Team團隊表實例方法從trs數據庫的newteam表提取或寫入團隊數據Tourists旅客表實例方法從trs數據庫的tourists表提取或寫入旅客數據User用戶表實例方法從trs數據庫的user表提取或寫入用戶數據View景點表實例方法從trs數據庫的view表提取或寫入景

40、點數據UserImpl用戶的調用方法集合用戶的登陸,注冊,修改密碼方法TeamImpl團隊的調用方法集合團隊的判斷,創建方法TouristsImpl旅客的調用方法集合旅客的增刪查改方法,旅客團的分析方法PathImplFloyd算法方法求出所選景點遍歷的最短路徑AdminsFilete登陸過濾器過濾系統所有頁面檢測登陸狀態EncodeFilete中文編碼過濾器過濾系統給所有頁面加載UT-8編碼瀏, W1IIF用戶表示層 業務層出公 數據層CDAO)圖4.1.2 MVC架構圖系統靜態結構設計(1) User 類實例化數據庫的“user”表,實現從trs數據庫的“user”表提取或寫入用 戶數據。

41、分別對應“user”表的用戶名和密碼,getAname()和getApass() 是取值的方法,setAname()和setApass()是賦值方法。由 User :di_L:dJTLe : String o apass : String 嫡 geljjjiajne () : String& seiAiTMe (anajrie : String) gelApass () : Stringg seiApass (apass : String)圖 4.1.3.1 User 類Team類實例化數據庫的“newteam”表,實現從trs數據庫的“newteam”表提取 或寫入團隊數據。分別對應“new

42、team”表的團隊名,團隊表名和ID編號。getSname (), getStablename()和 getSid()是取值的方法,setSname (),setStablename()和 setSid()是賦值方法。O Tanic 3id : intc snanie i S1 r itig。s-t ablBrians : String。getSid (J )iniG setSidBid : int)0 gctSnaiTic () : Stringa setSname (snaae : String)O get Si akilenaniB () : St ringG set Si ablena

43、iiD (stablenane : String)圖 4.1.3.2 Team 類View 類實例化數據庫的“view”表,實現從trs數據庫的“view”表提取或寫入 景點數據。分別對應“view”表的景點名,景點耗時,活躍度和景點ID。 getSname (), getStime (), getSactive()和 getSid()是取值的方 法,setSname (), setStime (), setSactive()和 setSid()是賦值 方法。k 口口口 Viewo sid : irrt口 stime : doublesname : Stringsactive : String

44、act Sid () : int絡 setSid (sid : int) get Snaiie I.) : St ring set Sn.ane IsriamB : St r ing) gat St ine () : double0 set St ine (stiniE : doub 1 e)詡 get Saci ive () ; St ring& setSaclive (sactive : String)圖 4.1.3.3 View 類(4) Tourists 類實例化數據庫的“tourists”表,實現從trs數據庫的“tourists”表提 取或寫入旅客數據。分別對應“view”表的旅客

45、姓名,年齡,愛好,團隊 名和 ID。getSname (), getSage (), getSlike (), getSactive () 和 getSid ()是取值的方法,setSname (), setSage (), setSlike (), setSactive ()和 setSid ()是賦值方法。t4t po ja Tourist sq sid : int* sage : irdo sactive : doubleo sn:diTLe : String c alike : String g st e:iiTL : St tins getSactive () ; double /

46、setSactive (sactive : double) 。 getSnsiiTLe (5 : St rmg 。setSnjime (sname : Siring) O getSid () : int 0 setSid (sid : int) O getSage () : int 穹 setSage(sage : int) O getSlike 。 : String & setSlike (slieks : String) 電 getStean 0 : String O setSteaji (steam : Si ring)圖 4.1.3.4 Tourists 類AdminsFilter 類

47、是全局過濾器,過濾系統所有頁面檢測登陸狀態。tbfi-lterG ALbilnsFilt ere deslroy 0 doFilter (request : ServletReqaestj response : 3ervletRespons6j chain : Fi 11 erChain)。 iriii (argO : Filt erConfig)圖 4.1.3.5 AdminsFilter 類FLOYD 類Floyd算法方法,求出所選景點遍歷的最短路徑,返回記錄的路徑點和最短 路徑大小。path FLOYDlen ; double = 0length s double F5* uulcjut

48、 曰 path : int * uniqiLe 。 mirLlensih ; doubleniunber ; iirt + unique 口 record : iirt + uriique !* outputFsrth. (spol : int *, i : irLl, j : int, onePath : iirt * 5 point : int *)4 iiynain ()電 path (point : int*;iirt出 len () : doubleO Length (f Loyd : FLOTDj num : ini ., ) : doubleA svqp (str ; int +

49、j i ; int j ; irrt)。aztrange (fluyd i FLOYD, str : int+, st : iirt, Ibh : int)看 MIN_LEn&7H(fluyd : FL皿 nun : irrt )圖 4.1.3.6 FLOYD 類Jugelmpl 類JugeSign ()方法是檢測用戶名是否已注冊,若在用戶表查詢到相同用戶 名則返回真,反之則假。JugeLogin()方法是先檢測判斷用戶名是否存在,若存在在判斷密碼的是 否匹配正確,當正確時返回真,反之則假。inpl JugtlflplR JuseLosin (user : User ) : boolem 電

50、JugeSign (user : Usetj ) s boc 1 ean.圖 4.1.3.7 JugeImpl 類TeamImpl 類JugeTeam()方法是判斷團隊名是否已存在,若存在則返回真,反之則假。CountTeam()方法是統計已存在的團隊數,并將這個總數N返回。 createTeam()方法是在trs數據庫上創建新旅客團隊表“touristsN”。saveTable ()方法是將新創建的團隊名,團隊表名記錄在“newteam”表 上。selectTeam()方法是將“newteam”表的所有團隊信息記錄在ArrayList 上。 Q Teanlmpl才 team. : Ibsjt

51、lJug eTeam (nane : St ringj ) : hool 日 anCount Team ) : intQ creatTe:ani (tean : Team, count : int JsaveTable Iteani : Team;, count : int JG selectTe: (srL:im.e : Stringy ) : ArrayList圖 4.1.3.8 TeamImpl 類(9) TouristsImpl 類queryClient()方法是將所選團隊的旅客所有信息記錄到List數組中。 saveTourists()方法是將旅客的信息(姓名,年齡,愛好)插入到指定

52、 團隊中。deleteTourists()方法是將所選團隊中的旅客記錄刪除。updateTourists()方法是將所選團隊中的旅客信息編輯后更新到團隊表 中。analysisTourists()方法是統計所選團隊的總人數N,并返回N。age1-age6()方法是統計不同年齡段的人數n,并返回n。activesum()方法是將所選團隊的所有成員活躍值的總和M,并返回M。 searchView()方法是通過團隊活躍值查找符合景點,并用ArrayList數 組記錄所有信息。selectView()方法是通過團隊活躍值查找符合景點,并用ArrayList數 組記錄所有景點ID。selectTeam(

53、)方法是根據所選團隊ID查找團隊表名。selectTablename()方法是根據所選團隊ID查找團隊名。selectTeam ()方法是根據所選團隊名查找團隊表名。pathView ()方法是根據最短路徑ID順序查詢最短路徑景點名順序。saveTname()存入團隊名方法。takeTname()取出團隊名方法。0 T fiurist simp 1口 size : int = 15* Inanvm : St ring埴 cuerTCLient (currentPage : inij najrie : St ringj ) : List母 cluPagc (sname s Stringy ) :

54、 ini CueryLike (sid : 3ttins. ) Rrra3rLi5t理 joinString (slike s String*) s StringQ EaveTourisl s (touiistE ; Tourisi 3j slike ; Si ring + j t e a.imane ; St ring J& delete Tourists (Listsid : St nns M., sname : Stririff)守 ijpdat e F our i st a .i aurists : rouriatSj slike : Si ring * 3 t Bajmajie :

55、String地 malysisrourists (snanie : St ililSj ) : intGsgel(snomsiSi ring5)sint TOC o 1-5 h z sge2(snaine;Si ringj);inisge3 (sname : Slrins-p ) : ini Egel(srtamesSi ringj);iniqsse5(sname:Silina):intsge6(snsn歸iSi ring);ini active sun (snane ; String, ; double色 searchViev (sid : String, ) : ArrayList墻 se

56、lect Vie v (sid : String ;, 3 : ArrayList磁 selectTeajL (sid : irrtj ) : SiringselectVabLanane (sid ! intu ) : String瓊 selectTcan (siablcname : St ringj ) : String蜀 匚athViE沖(wid : int, ) : St r insg ssveTnsjie (tnane : String)日 takeTnajie ( : Sliing圖 4.1.3.9 TouristsImpl 類4.2總系統主功能設計用戶的登陸和注冊由于加入過濾器過濾

57、整個系統,如果沒有處于登陸狀態,則無法進入系統 主界面。系統主頁admin.jsp只有已注冊用戶才能進入,用戶如果未注冊需 要先進行注冊,輸入注冊的用戶名和密碼,后臺“UserSer”調取數據庫的用戶表,若用戶名已存在,則傳回錯誤信息。當擁有用戶身份后,用戶登錄系統,輸入帳號及密碼,調取數據庫的用戶表,如果用戶名或密碼錯誤,則返回錯誤信息,并轉回登陸界面重新輸入;如果輸入的賬號和密碼全都 正確,則成功進入系統。活動圖如圖3.3.1所示:注冊新用戶圖4.2.1用戶登錄后臺活動圖登錄界面是本系統管理員的入口,只有成功登錄后才能對本系統進行管理。 本系統的主界面為,它的功能是通過此頁面可以為旅客提供

58、導航的作用,通 過點擊功能菜單的的選項進入不同的功能界面。主要包括旅客團隊和景點 路線2個大模塊,旅客團隊下有新增旅客團隊功能、增添旅客信息功能、 查詢旅客信息功能,景點路線下有旅客團隊分析功能、景點分步功能。旅客團隊的新增此功能模塊為用戶提供建立新的團隊功能。在此功能的基礎上才能進行旅 客的增添和旅客的查詢以及團隊的信息分析。輸入所建團隊名,調取數據 庫newteam表(團隊記錄表),后臺“TeamSer”調用方法判斷此團隊是否已存在,若存在返回錯誤信息重新輸入,若不存在則往數據庫建立新表, 并往newteam表插入新表信息。圖4.2.2用戶新建團隊流程圖增添旅客信息此功能模塊為用戶將旅客添

59、加到對應團隊。此功能主要是將旅客往團隊加 入使之成為有特點團隊,并在個人信息的提交后根據年齡和愛好進行個人 活躍度的計算。用戶將輸入的姓名,年齡,愛好等信息傳入后臺“TouristsSer” 中,先調用方法計算旅客的年齡活躍度和愛好活躍度得出旅客個人活躍度, 再調用方法將旅客信息記錄進前面選擇的團隊表(例tourists2”表)中。活躍度計算規則:(1)根據年齡段劃分得出年齡活躍度Aa,X表示旅客成員的年齡當(X15), a =9當(25 X 34),Aa =9當(45 X 54),Aa =7當(15 X 24), a=10 當(35 X55 ),Aa =6(2)根據旅客愛好的選擇得出愛好活躍

60、度Ha。勾選-冒險運動,Hg0勾選-游樂設施,Ha 2=9勾選-現代都市,Ha 3=8勾選-景觀古跡,Ha 4=7勾選-音樂棋牌,Ha 5=6勾選-歷史文化,Ha 6=5H an,所勾選愛好的活躍度相加。例:an an = Ha 1+ Ha 2 + Ha 3 + H 4 + H 5+ Ha 6=10+9+8+7+6+5=45Ha = Han /n,所勾選的愛好活躍度相加后除所勾選的愛好數量。例:Ha =( Ha 1+ Ha2+ Ha3+ H4+ H5+ H6)/6=45/6=7.5A =( Aa + Ha )/2,個人活躍度等于年齡活躍度Aa加上愛好活躍度Ha除2, 得到一個平均數。例:李燁今

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論