本篇論文目錄導航:
【題目】沈陽旅游信息管理系統開發探究
【第一章】旅游信息管理平臺構建緒論
【第二章】國內外旅游信息管理現狀對比
【第三章】系統需求分析與概要設計
【4.1 4.2】數據庫整體設計與系統代碼編制
【4.3 4.4】系統性能與開發工具介紹
【第五章】旅游系統測試及維護
【總結/參考文獻】旅游管理信息系統建設研究總結與參考文獻
第 4 章 系統的設計與實現
4.1 數據庫整體設計與 E-R 圖
數據庫設計是結合收集到的實際情況和數據,在編制數據庫系統時,根據設計數據庫的原則和編寫、計數據庫的原則,在符合系統平臺的功能性需求和數據算法符合當前所設定的數據庫編寫、傳輸的過程。數據庫的編寫不是單一存在的,它是與所設計的應用系統緊密結合并實現功能性組合和指令集相互關聯的過程,是為使系統達到方便快捷、最優化設計、便于實現的數據模型。在確定數據庫的核心模型以后,一般進行核心代碼的編制。本旅游信息信息系統的核心代碼編寫思路是:實現用戶的瀏覽功能;實現管理員對后臺進行管理和增刪改查功能;主頁面內容及導航區各子項目的瀏覽功能;主頁面操作區方便快捷的操作功能等,并且應該滿足真實、簡單、便于實現的要求。
首先 E-R 邏輯圖是一種包含具有邏輯關系的概念模型 ,即“實體-聯系方法”,基本思想是在數據庫設計過程中增加一個中間聯系步驟,并設計出一個概念設計模型。
1、概念模型的表示方法: E-R 圖主要是由實體、屬性和聯系三個要素構成的。在E-R 圖中,使用了下面四種基本的圖形符號。具體表現形式為:
⑴、用矩形框來表示實體 ⑵、用橢圓形來表示屬性 ⑶、用菱形框表示實體間的聯系⑷、它們之間用無向的線段連接表示聯系。
2、確定系統實體、屬性及聯系? 利用系統分析階段建立的數據字典,并對照數據流程圖對系統中的各個數據項進行分類、組織,確定系統中的實體、實體的屬性、標識實體的碼以及實體之間聯系的類型。 在數據字典中“數據項”是基本數據單位,一般可以作為實體的屬性?!皵祿Y構”、“數據存儲”和“數據流”條目都可以作為實體,因為它們總是包含了若干的數據項。作為屬性必須是不可再分的數據項,也就是說在屬性中不能包含其他的屬性。所以根據上面的分析,可以得出 E‐R 邏輯圖的系統設置流程。
系統 E-R 邏輯圖如圖所示;
4.1.1 用戶界面設計原則
沈陽市旅 游資 源管理系統是以一個網站的模式呈現的,本系統是基于Browser/Server 結構下形成的數據驅動 Web 應用程序,管理員通過“網站管理”這個按鈕,進入后臺,進行對旅游資源信息的維護。系統軟件在設計時基本延續了軟件工程學方便快捷、總體設計、詳細分析和軟件測試步驟。大多數時候,使用者是通過網頁來了解這個系統的,實現了游客的景區景點、酒店信息、美食文化、旅游路線等一系列的瀏覽過程,同時也方便管理員對景點信息、登錄注冊信息等功能進行操作。因此無論是從游客角度還是管理員角度,都要求這個旅游管理系統的網頁要具備一定的美觀感和易于操作性、規范化。因此,設計這個系統的時候,就著重體現了前臺美觀,后臺簡潔實用和方便快捷。
4.1.2 畫面一致性
畫面設計應該保持各個畫面的一致性。一致性既包括使用的組件,統一風格,統一的樣式,和同樣的表現方法。
1) 顯示內容樣式統一性標準
(1)提示內容:文字不加重,Arial,棕色,暗綠色或無框,左對齊,不加冒號,一般是五(10)
(2)對齊方法:
左對齊:一般文字;
(3)底色缺省采用白色。
2) 布局合理化原則:
布局力求方便、簡單、有序。
3) 圖片顯示原則:
為了使網頁看起來更豐富,也更規整,圖片一律顯示在文字介紹的下方。
4.2 系統代碼編制
1、旅游資源管理系統首頁
旅游資源管理系統首頁如圖所示:
點擊首頁上的旅游快訊模塊的 ASP 按鈕,就通過下面這段代碼調用“沈陽旅游-旅游快訊。asp”
<%
‘定義 SQL 語句'
exeinfo=“select top 8 * from info order by id desc”
set rsinfo =server.createobject(“adodb.recordset”)
rsinfo.open exeinfo,conn,1,1
%>
<%do while not rsinfo.eof%>

title=<%=rsinfo(“name”)%>
href=“ 沈 陽 旅 游 -- 旅 游 快
訊。asp?id=<%=rsinfo(”id“)%>”><%=rsinfo(“name”)%>
<%
rsinfo.movenext
Loop
rsinfo.close
Set rsinfo=Nothing
%>
2、沈陽旅游快訊
沈陽旅游快訊如圖所示:
點擊藍色邊框中的 ASP 按鈕,顯示
align=middle><%=name%>
顯示的就是旅游快訊表里的 name,旅游快訊名的信息。
同上,點擊淺藍底色框中的 ASP 按鈕,顯示的就是旅游快訊表中 intro,旅游快訊的文字信息。
點擊沈陽酒店賓館框中的 ASP,則顯示以下代碼:
<%
‘定義 SQL 語句'
exec=“select top 10 * from grogshop order by id desc”
“set rsgrogshop=server.createobject(”adodb.recordset“)
rsgrogshop.open exec,conn,1,1”
[B]
%>
<%do while not rsgrogshop.eof%>

class=f12 title=<%=rsgrogshop(“name”)%>
href=“ 沈 陽 旅 游 -- 酒 店 信
息。asp?id=<%=rsgrogshop(”id“)%>”><%=rsgrogshop(“name”)%>
<%
rsgrogshop.movenext
Loop
rsgrogshop.close
Set rsgrogshop=Nothing
%>
href=“#”>
調用“沈陽旅游-酒店信息。asp”
3、沈陽旅游酒店信息
沈陽旅游酒店信息如圖所示:
4、系統登錄頁面
這個部分,相對于其他各個部分來說,是相對繁瑣的。它包含了登陸檢查。asp, 管理員登陸。asp,兩個部分的內容。
系統登錄頁面如圖所示:
管理員登陸畫面,這個部分是我們登陸時看到的界面?!氨仨気斎牒捅?user 里數據相一致的用戶名和密碼才能進入管理界面。通過登陸檢查來核對管理員登陸里的信息是否與 user 表相符,在判斷是否登陸成功,這是協作完成的一個安全設置”.
5、當輸入正確的用戶名和密碼時進入網站信息管理界面。
功能模塊展示頁面如圖所示:
這個頁面的各個信息,其實是在登錄信息里設置好了的,每個對應的選項,在登陸信息。asp 里編了相應的號碼,代碼段如下6、修改篇
當我們在管理界面做出了增添,刪除,修改后,我們每次都要調用更新信息。asp來幫助我們完成每次更新活動。這里面涉及到:網站信息維護。asp,修改信息。asp,顯示圖片。asp 和更新信息。asp 四個部分。雖然在界面上,我們看到任何一個信息的添加修改都是在一個畫面上,實際這卻涉及兩個 ASP 文件。網站信息維護單是維護了文字信息。
因為使用 dreamweaver8 比較少,對文字進行修改也是我遇到的最大的問題。開始我在同一個頁面進行修改,但是怎么也改動不了。
最后我想到,把兩部分分開以后再和在一起。
這個系統別的模塊,大致上就和以上提到的幾個典型相差無幾了。
通過圖片顯示。asp 再將圖片顯示出來,這段代碼如下:
<%
dbpath=server.mappath(“demo.mdb”)
set conn=server.createobject(“adodb.connection”)
conn.open “provider=microsoft.jet.oledb.4.0;data source=” & dbpath
name=request.form(“name”)
intro=request.form(“intro”)
classid=request.form(“classid”)
set rs=server.createobject(“adodb.recordset”)‘創建 recordset 對象'
if classid = 1 then
sqlstr=“select * from grogshop”'guestbook 為數據庫中的一個表'
elseif classid= 2 then
sqlstr=“select * from beautyspot”'beautyspot 為數據庫中的一個表'
elseif classid= 3 then
sqlstr=“select * from info”'info 為數據庫中的一個表'
elseif classid= 4 then
sqlstr=“select * from line”'line 為數據庫中的一個表'
elseif classid= 5 then
sqlstr=“select * from guide”'guide 為數據庫中的一個表'
elseif classid= 6 then
sqlstr=“select * from speciality”'speciality 為數據庫中的一個表'
elseif classid= 7 then
sqlstr=“select * from food”'food 為數據庫中的一個表'
elseif classid= 8 then
sqlstr=“select * from custom”'custom 為數據庫中的一個表'
elseif classid= 9 then
sqlstr=“select * from policy”'policy 為數據庫中的一個表'
end if
rs.open sqlstr,conn,1,3’表示打開數據庫的方式‘
rs.addnew’新增一條記錄‘
rs(“name”)=name ’將 name 的值傳入 name 字段‘
rs(“intro”)=intro
'rs(“img”)。appendchunk mydata
rs.update ’刷新數據庫‘
rs.close ’這幾句話是用來關閉數據庫,順序不能顛倒‘
conn.close
set conn=nothing
set rs=nothing
response.write “記錄添加成功!”
Response.Redirect(“網站信息維護。asp?classid=” & classid)
%>
6、修改篇
當我們在管理界面做出了增添,刪除,修改后,我們每次都要調用更新信息。asp來幫助我們完成每次更新活動。這里面涉及到:網站信息維護。asp,修改信息。asp,顯示圖片。asp 和更新信息。asp 四個部分。雖然在界面上,我們看到任何一個信息的添加修改都是在一個畫面上,實際這卻涉及兩個 ASP 文件。網站信息維護單是維護了文字信息。
因為使用 dreamweaver8 比較少,對文字進行修改也是我遇到的最大的問題。開始我在同一個頁面進行修改,但是怎么也改動不了。
最后我想到,把兩部分分開以后再和在一起。
這個系統別的模塊,大致上就和以上提到的幾個典型相差無幾了。
通過圖片顯示。asp 再將圖片顯示出來,這段代碼如下:
<%
dbpath=server.mappath(“demo.mdb”)
set conn=server.createobject(“adodb.connection”)
conn.open “provider=microsoft.jet.oledb.4.0;data source=” & dbpath
set rs=server.createobject(“ADODB.recordset”)
classid=request.QueryString(“classid”)
if classid = 1 then
sql=“select * from grogshop where id=”&trim(request(“id”))
elseif classid=2 then
sql=“select * from beautyspot where id=”&trim(request(“id”))
elseif classid=3 then
sql=“select * from info where id=”&trim(request(“id”))
elseif classid=4 then
sql=“select * from line where id=”&trim(request(“id”))
elseif classid=5 then
sql=“select * from guide where id=”&trim(request(“id”))
elseif classid=6 then
sql=“select * from speciality where id=”&trim(request(“id”))
elseif classid=7 then
sql=“select * from food where id=”&trim(request(“id”))
elseif classid=8 then
sql=“select * from custom where id=”&trim(request(“id”))
elseif classid=9 then
sql=“select * from policy where id=”&trim(request(“id”))
end if
rs.open sql,conn,1,1
Response.ContentType=“image/*”
Response.BinaryWrite rs(“img”)。getChunk(8000000)
rs.close
set rs=nothing
set conn=nothing
%>
這樣就完成了查找,添加和修改的功能。
接下來就是刪除部分了。
點擊刪除的 ASP 按鈕,在網站信息維護。asp 里代碼如下:
<%
rs.movenext
Loop
rs.close
conn.close
Set rs=Nothing
Set conn=Nothing
%>
具體刪除方法在刪除信息。asp 文件中:
<%
dbpath=server.mappath(“demo.mdb”)
set conn=server.createobject(“adodb.connection”)
conn.open “provider=microsoft.jet.oledb.4.0;data source=” & dbpath
dim id,classid
id = Trim(Request.QueryString(“id”))
classid = Trim(Request.QueryString(“classid”))
if isnumeric(id)then
'sqlstr=“delete from guestbook where 編號=”+id+“”
'conn.execute sqlstr
‘刪除時候也有兩種方發 1.conn 執行 sql 語句 2.用 rs.delete 和 rs.update 進行刪除 同
插入相同前者執行速度要快
set rs=server.createobject(“adodb.recordset”)
if classid = 1 then
sqlstr=“select * from grogshop where id=”&id
elseif classid=2 then
sqlstr=“select * from beautyspot where id=”&id
elseif classid=3 then
sqlstr=“select * from info where id=”&id
elseif classid=4 then
sqlstr=“select * from line where id=”&id
elseif classid=5 then
sqlstr=“select * from guide where id=”&id
elseif classid=6 then
sqlstr=“select * from speciality where id=”&id
elseif classid=7 then
sqlstr=“select * from food where id=”&id
elseif classid=8 then
sqlstr=“select * from custom where id=”&id
elseif classid=9 then
sqlstr=“select * from policy where id=”&id
end if
rs.open sqlstr,conn,1,3
if not rs.eof then
rs.delete’刪除
rs.update‘刷新操作
’關閉 recordset 連接
rs.close
set rs=nothing
‘從以上 20 行到此處為第二種方法
conn.close
set conn=nothing
response.write “記錄添加成功!”
end if ’當使用 rs.delete 和 rs.update 進行刪除時候需要因為上面 if not rs.eof then
response.Redirect(“網站信息維護。asp?classid=” & classid)
else
response.write“參數不正確!”
end if
%>