本篇论文目录导航:
【题目】沈阳旅游信息管理系统开发探究
【第一章】旅游信息管理平台构建绪论
【第二章】国内外旅游信息管理现状对比
【第三章】系统需求分析与概要设计
【4.1 4.2】数据库整体设计与系统代码编制
【4.3 4.4】系统性能与开发工具介绍
【第五章】旅游系统测试及维护
【总结/参考文献】旅游管理信息系统建设研究总结与参考文献
第 4 章 系统的设计与实现
4.1 数据库整体设计与 E-R 图
数据库设计是结合收集到的实际情况和数据,在编制数据库系统时,根据设计数据库的原则和编写、计数据库的原则,在符合系统平台的功能性需求和数据算法符合当前所设定的数据库编写、传输的过程。数据库的编写不是单一存在的,它是与所设计的应用系统紧密结合并实现功能性组合和指令集相互关联的过程,是为使系统达到方便快捷、最优化设计、便于实现的数据模型。在确定数据库的核心模型以后,一般进行核心代码的编制。本旅游信息信息系统的核心代码编写思路是:实现用户的浏览功能;实现管理员对后台进行管理和增删改查功能;主页面内容及导航区各子项目的浏览功能;主页面操作区方便快捷的操作功能等,并且应该满足真实、简单、便于实现的要求。
首先 E-R 逻辑图是一种包含具有逻辑关系的概念模型 ,即“实体-联系方法”,基本思想是在数据库设计过程中增加一个中间联系步骤,并设计出一个概念设计模型。
1、概念模型的表示方法: E-R 图主要是由实体、属性和联系三个要素构成的。在E-R 图中,使用了下面四种基本的图形符号。具体表现形式为:
⑴、用矩形框来表示实体 ⑵、用椭圆形来表示属性 ⑶、用菱形框表示实体间的联系⑷、它们之间用无向的线段连接表示联系。
2、确定系统实体、属性及联系? 利用系统分析阶段建立的数据字典,并对照数据流程图对系统中的各个数据项进行分类、组织,确定系统中的实体、实体的属性、标识实体的码以及实体之间联系的类型。 在数据字典中“数据项”是基本数据单位,一般可以作为实体的属性。“数据结构”、“数据存储”和“数据流”条目都可以作为实体,因为它们总是包含了若干的数据项。作为属性必须是不可再分的数据项,也就是说在属性中不能包含其他的属性。所以根据上面的分析,可以得出 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%>
<TR height=“20”>
<TD><IMG src=“image_files/d_blue.gif”><A
title=<%=rsinfo(“name”)%>
href=“ 沈 阳 旅 游 -- 旅 游 快
讯。asp?id=<%=rsinfo(”id“)%>”><%=rsinfo(“name”)%> </A></TD></TR>
<%
rsinfo.movenext
Loop
rsinfo.close
Set rsinfo=Nothing
%>
2、沈阳旅游快讯
沈阳旅游快讯如图所示:
点击蓝色边框中的 ASP 按钮,显示
<TR>
<TD class=menu_White bgColor=#006699 height=25
align=middle><%=name%></TD></TR>
显示的就是旅游快讯表里的 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%>
<TR>
<TD height=20><IMG src=“image_files/d_blue.gif”><A
class=f12 title=<%=rsgrogshop(“name”)%>
href=“ 沈 阳 旅 游 -- 酒 店 信
息。asp?id=<%=rsgrogshop(”id“)%>”><%=rsgrogshop(“name”)%> </A></TD></TR>
<%
rsgrogshop.movenext
Loop
rsgrogshop.close
Set rsgrogshop=Nothing
%>
<TR>
<TD align=right><A class=f12
href=“#”></A></TD></TR></TBODY>
调用“沈阳旅游-酒店信息。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
%>