版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-2"\u目录 1第一章 11.1系统开发目的 21.2技术可行性研究 3第二章开发平台介绍 42.1开发语言介绍 42.2什么是ASP 42.3ASP的产生 62.4ASP与IIS 62.5ASP的内部特点 72.6利用ADO访问数据库 9第三章数据库设计 133.1利用ASP进行动态数据查询 133.2ASP访问数据库 13第四章总体设计 164.1系统详细调查 164.2数据流图 164.3软件模块结构设计 174.4数据库设计 18第五章系统的实现 225.1动态网站的优点 235.2主窗口界面 24总结与展望 46致谢 47参考文献 48第一章概述1.1系统开发目的这次我做的这个网站是一个武义旅游系统,运用asp编程。实现后台管理。如今商业发展,金融与市场更加的具备开拓性。我觉得做这个网站很有它现实的价值和意义;(再则,可以通过这次设计,提高我本身的水平,对进一步和社会接洽并成为祖国可靠的栋梁具有促进推动的作用。实际上在这设计里面,我们可以获得许多宝贵的实践经验,在一生中都会受益。我们在今天做的每件事都会对我们的未来产生影响。道理浅显,但未必每个人都能理解。许多同学以为自己大学毕业了,已经很行了,但是到了实际工作中就会发现这种想法是多么的幼稚可笑。作为一名计算机专业的应届毕业生,原以为找工作是很容易的,但现实还是超想象,当今是知识经济时代,经济高速发展的同时也带动教育行业的发展,每年的大学毕业生都在不断增多,再加上计算机相关行业都需本科以上并要求要有工作经验,这对一名应届毕生来讲找份工作实在是难上加难。网站的外框设计以及浏览基本在800×600以上分辨率IE4.0以上版本浏览器的模式下均能正常浏览,而ASP的编程功能基本上得到了实现,其运行环境在IIS6.0版本的WEB服务。研究设计工作从1月初到3月1号,从资料的收集整理到程序的编写,制作过程当中一边编写程序一边巩固学习ASP的编程。整个网站的制作之中,感觉出来很多程序的运行效率考虑的还不是很全部,这个跟平时在学校学习其他语言的时候犯了同样的毛病——算法考虑的不全面;程序的安全性也有所欠缺,这主要是本人对语言知识的不全面型造成。这两个方面有待以后走出学校参加工作以后继续要学习注意的地方。本人对平面处理的能力优势在这次设计过程当中得到充分的发挥。网站首页的制作,以及色调的配合,考虑的比较周到的一个问题了。1.2技术可行性研究目前,网络应用软件运行的模式主要有二类:Client/server模式,Browser/Web模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似,客户端是一个标准的浏览器,服务器端是WebServer,而WebServer与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。第二章开发平台介绍2.1开发语言介绍作为Microsoft的office套件产品之一,access已经卖出了近700万份,成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,MicrosoftFoxPro)和服务器、小型积极大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。Access功能强大,使用方便,是开发桌面数据库的最优秀的工具之一。Access本身具有强大的向导机制,能提供大量的数据库常用操作。但如果你能适当的加上少量的代码,那么你的程序将是专业级的。这一切都靠VBA。2.2什么是ASPASP的含义从字面上说,ASP包含三方面含义:Active:ASP使用了Microsoft的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。由此我们可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。以下罗列了ActiveServerPages所独具的一些特点:使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。无须compile编译,容易编写,可在服务器端直接执行。使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML码的浏览器,即可浏览ActiveServerPages所设计的网站内容。ActiveServerPages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。ActiveServerPages能与任何ActiveXscripting语言相容。除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。ActiveServerPages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。可使用服务器端的脚本来产生客户端的脚本。物件导向(Object-oriented)。ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。可以使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写你所需要的ActiveXServerComponent。基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端我们采用Access数据库系统和ASP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理。2.3ASP的产生近年来随着Internet技术的飞速发展及用户需求的不断升级,Web页面技术也不断的推陈出新,使得Web站点的功能越来越强大,能够提供的服务种类越来越繁多。从HTML、ClientScript到CGI,从JAVA的诞生到ActiveX,Web页面设计人员不断受到冲击,微软公司在总结了以往技术,重新思考Web页面设计的真正需要后,推出了ActiveServerPages(ASP),一种用以取代CGI(CommonGatewayInterface,通用网关接口)的技术。简单讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网站,包括使用HTML表单收集和处理信息,上传与下载等等。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网站几乎具有无限的扩充能力,这是传统的Web编写工具所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(ActiveDataObject,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本文选择ASP作为开发工具最重要的原因之一。2.4ASP与IISIIS简介Wsb服务器是Web应用程序的心脏。IIS(InternetInformationServer)是微软推出的WindowsNTOptionPack的主要成员,作为Win2000server的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一。新推出的IIS4.0版本增强了系统安全性,具有服务器端脚本开发调试,内容管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。IIS与ASP的结合在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构(如图2.1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:1.减少构建和维护成本2.加快联机过程3.应用软件集中在服务器端开发管理4.前端可使用任何浏览器(IE、Netscape…..)5.后端可存取任何数据库(SQL、Access…..)6.可使用任何脚本语言开发(VBScript、JavaScript、PERL…..)程序和计算逻辑程序和计算逻辑前端浏览器ActiveXServer元件ActiveXServer元件后端数据库数据库服务器MicrosoftIIS+ASP浏览器图2.12.5ASP的内部特点ASP内部6大对象ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表2.1所示。对象名象功能描述Request从客户端取得信息Response将信息送给客户端Server提供一些Web服务器工具Session储存在一个Session内的用户信息,该信息仅可被该用户访问Application在一个ASP-Application中让不同的客户端共享信息ObjectContext配合MicrosoftTransaction服务器进行分布式事务处理表2.1ASP内部6大对象及其功能合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合Global文件每一个以ActiveServerPages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是ActiveServerApplication的缩写),它位于每一个应用程序的基点目录之下。当ActiveServerPages做下面两个动作时,Server便会去读Global.asa文件:1.WebServer启动之后,一个应用程序目录中任一个ASP文件被提出第一个HTTP请求(Request)时。2.不具有任何Session的客户端向Server请求一个ASP文件时。前面已经提到Application和Session这两个ASP的内部对象。Application对象内的信息供所有正在执行该应用程序的用户分享,它创建于WebServer启动后一个应用程序中任一ASP文件被提出第一个HTTP请求时,结束于Server端停止运行。而Session对象仅属于一位用户,维持一个用户端的信息,其他用户无法访问,它创建于一个不具有Session的用户向Server请求一个ASP文件时,结束于该Session到期(即用户端超过某时间段没有向Server提出要求或刷新Web页面)或Abandon语句的调用。可见,Global.asa文件的调用与Application与Session这两个对象密切相关。事实上我们通常在Global。asa文件中写入以下内容:Application或Session的开始事件(Start-event)。Application或Session的结束事件(End-event)。这样,在一个Application或Session对象被创建或结束时,系统会自动完成Global.asa文件中写入的相应事件。值得注意的是,如果一个Application与一个Session同时开始,ActiveServerPages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,ActiveServerPages则会先处理Session的结束事件。2.6利用ADO访问数据库ADO(ActiveXDataObjects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(ServerComponent),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:1.创建数据库源名(DSN)2.创建数据库链接(Connection)3.创建数据对象4.操作数据库5.关闭数据对象和链接每一步的作法如下:一、创建数据源名DSN(DateSourceName)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQLServer的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。下面以MicrosoftAccess为例,建立数据源:在C:\myfile\文件夹里创建了一个名为myexample.mdb的数据库文件,其注册步骤如下:1.在控制面板里找到“ODBC数据源”图标,打开数据源管理器的交互界面;我们在这选择“用户DSN”;2.然后按下“添加”按钮,在弹出的数据源管理器对话框里,为自己所要创建的数据源选择一个驱动程序,本文的数据库文件是用MicrosoftAccess创建的,所以要选择“MicrosoftAccessDriver(*.mdb)”;3.按“完成”按钮后,进入一个标题为“ODBCMicrosoftAccess安装”的界面,在其中设置“数据源名”为“mydatanews”,选取数据库文件“C:\myfile\myexample.mdb”,然后确定即可。二、创建数据库链接(Connection)链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:setConn=Server.createObject(“ADOBD.CONNECTION”)这条语句创建了链接对象Conn,接下来:connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")conn.Openconnstr这条语句打开链接,用到了DSN,本例为“connstr”。以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。三、创建数据对象(RecordSet)ADO中的数据对象通常保存的是查询结果。RecordSet是ADO中最复杂的对象,有许多属性和方法。RecordSet保存的是一行行的记录,并标有一个当前记录。以下是创建方法:SetRecordSet=Conn.Execute(sqtStr)这条语句创建并打开了对象RecordSet,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:rs=“SELECT*FROMshop_books”SetRecordSet=mConn.Execute(rs)这条语句执行后,对象RecordSet中就保存了表tab1中的所有记录。四、操作数据库我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:rs=“INSERTINTOtab1VALUES(1,2)”mConn.Execute(rs)/执行插入操作五、关闭数据对象和链接对象在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。RecordSet.closeSetRecordSet=Nothing/关闭创建的数据对象mConn.closeSetmConn=Nothing/关闭创建的链接对象2.7ASP与CGI的比较CGI(CommonGatewayInterface,通用网关接口)也是Internet上一种功能强大的Web页面技术,其工作方式有别于ASP。我们现对二者进行比较。ActiveServerPages开发Web应用程序的特点:完全嵌入HTML,与HTML、Script语言完美结合。无须手动编译和链接程序。面向对象,并可扩展ActiveXServer组件功能。使用脚本语言(JavaScript、VBScript或PERL)编写。存取数据库轻松容易(使用ADO组件)。可使用任何语言编写自己的ActiveXServer组件。无浏览器兼容问题。程序代码隐藏,客户端仅能看到ASP输出的HTML文件。缩短Web开发时间。相比之下,使用CGI开发Web应用程序具有以下缺点:不易与HTML文件集成。须使用其他较复杂的语言来开发CGI程序。程序开发时间较长。存取数据库不容易。每个CGI程序被不同用户执行时都得重新执行一次,并占去Server的一个端口(Port),降低Server效率。ASP在数据库访问、与HTML的集成、提高服务器的效率等诸多方面都优于CGI,更适应Web应用程序开发的需要,因此本文选择了ASP作为个性化页面生成器的开发工具。第三章数据库设计3.1利用ASP进行动态数据查询为了将从数据库中获得的数据显示在客户端浏览器中,需要在ASP文件中加入Table对象。Table对象可以用来显示从Server端数据库中通过SQL查询得到的记录。使用Dreamweaver等可视化工具可以方便地对*.ASP文件进行用户界面的设计。包括添加Table对象、动态GIF文件等。以下是本网站中的一段查询代码:<% sql1="select*fromlinewherelinenamelike'%"&request.form("txtline")&"%'orderbylineiddesc" setrst1=server.createobject("adodb.recordset") rst1.opensql1,conn,1,1%>当WebServer处理完用户的HTTP请求后,将结果发送至浏览器上,用户就可以看到结果。3.2ASP访问数据库3.2.1ASP内置对象和组件ASP提供了功能强大的六个内置对象和五个内置组件内置对象:(1)Request(请求):从前端用户取得信息(2)Response(响应):将信息送给前端用户(3)Server(服务器):提供Web服务器工具(4)Session(会话):储存在一次会话内的用户信息,仅被该用户访问(5)Application(应用):管理所有的会话信息,供所有用户共享(6)ObjectContext(对象上下文):配合Transaction服务器进行分布式事务处理前三个很常用,Request和Response是用来实现webServer与浏览器交互。Request的一个重要方法是ForM(),其作用是提取浏览器的用户输入信息。如下面的语句可以取得用户填在文本框里面的内容:Request.Form(“nane”)显然,这比CCI等方法所需要的复杂编程简单多了。而输出要用到Response的一个重要方法Write,如:“Response.writeourmessage”该语句向浏览器输出了一条消息。内置组件:(1)数据库存取组件:ASP提供ADO来存取具有ODBC标准的数据库(2)广告轮显组件:用来维护、构建Internet广告(3)浏览器兼容组件:将浏览器的功能数据提供给服务器,以便送出适合于各种浏览器的Web页面(4)文件存取组件:提供文件读写的工具(5)文件超链接组件:提供对Web页面的管理3.2.2ASP访问数据库工作原理访问Web数据库的技术有以下几种方式:公共网关接口CGI(CommonGatewayInterface)、InternetServer应用程序编程接口ISAPI(InternetServerApplicationProgrammingInterface)、Java、Plug-in(插件)和ASP技术。这些技术都是为了克服HTML静态页面发展起来的。ASP是一个基于Web服务器的脚本开发环境,在ASP平台上可开发和运行动态的、交互的、高性能的Web服务器应用程序。图4.5ASP访问数据库原理图图4.5说明了ASP访问数据库工作原理。ASP程序在Web服务器端工作,当前端用户请求一个ASP主页时,Web服务器响应HTTP请求并调用ASP引擎执行该文件并解释执行其中的脚本,若脚本中有访问数据库请求,立刻通过ODBC或ILEDB与相应的后台数据库相连,同数据库访问组件ADO完成操作,最后,ASP根据访问数据库的结果生成HTML语言的主页返回给前端用户,用户看到的只是HTML网站,而看不到ASP程序代码,增强了保密性。3.2.3ASP连接数据库的方法ASP提供两种访问数据库的方法:在第一种方法中每次访问数据库都要与数据库连接一次,一旦与数据库建立连接语句就可以对数据进行操作;当对数据的操作完成,所有相关的对象都被关闭。与数据库相连的另一种方法是当用户的任务完成后连接才被关闭,这是由Global.asp文件所控制。每个基于ASP的internet应用可以有一个存放在应用根目录中的Global.asp文件,该文件有四个事件:Applicattion-start,Senssion-start,Applicattion-End和Session-end用户与数据库的连接是在Session-start事件中,用Session-end事件关闭连接[1]。在本网站中用如下代码来实现ASP与数据库的连接:<%ifsession("admin")=""then response.Redirect("login.asp")endif%>第四章总体设计4.1系统详细调查传统的软件工程方法学使用结构化分析技术,完成分析用户需求工作。需求分析要了解用户的情况,接下来通过与用户交流,对用户的基本要求反复细化,以得出对目标系统的完整、准确和具体的需求。需求分析是为了发现用户的真正需求,首先应从宏观角度调查、分析用户所面临的问题,也就是说,需求分析的第一步是尽可能准确地了解用户当前的情况和需要解决的问题。在网站中,用户所需要的无非就是获取信息,并查询到满足自身查询条件的详细资料。因此在做查询系统时,充分考虑到了一样标本的自身属性和用户有可能用到的查询条件,两都有机结合,这样才能更好的为用户服务。运行环境大多数用户,对计算机的要求并不高,一般只需能实现信息、添加修改、在线查询功能即可,所以计算机的配置约为普通配置,DDR256M内存,17英寸纯平显示器,80G硬盘,标准键盘和鼠标,打印机,Windows98/xp/me/2000操作系统等。而本系统开发工具选取MacromediaDreamweaverMX2004,所以编制的程序在以上环境的机器中均可顺利运行,并且本系统占用空间较小,主要依靠鼠标和键盘进行录入。详细调查的重点是对管理业务的流程进行描述,通过采用系统流程图中部分图工具来描述管理活动,进行规范化说明。系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。按照信息系统中应有的数据流和数据结构来勾画系统的概貌。4.2数据流图数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。首先,分析管理系统的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图。然后划分出几个主要的信息管理功能,并明确各功能之间的联系,绘制出数据流程图。数据流程图的符号说明如图3.1所示。外部实体处理数据流数据存储图3.1数据流程图的符号4.3软件模块结构设计与传统媒体不同,网站除了文字和图像以外,还包含声音、视频和动画等新兴多媒体元素,更借助由代码语言编程所实现的各种交互式效果,增加了网站界面的生动性和复杂性,也使得网站设计者需要考虑更多页面元素的排布、优化。一般来说,网站的界面主要由下面几个因素构成:(1)文字:文字元素是信息传达的主体部分。网站中的文字主要包括标题、信息、文字链接、几种主要形式。标题和传统媒体中信息传达的基本作用相同,是内容的简概说明一般比较醒目、优先编排。文字作为占据页面重要比率的元素,同时又是信息重要载体,它的字体、大小、颜色和排布对页面整体设计影响极大。(2)图形:图形在网站界面中具有重要作用。合理的运用图形。可以生动直观、形象地表现设计主题。网站中常用的图形格式包括jpg和gif,这两种格式压缩比高,得到了规范浏览器的支持,下载速度快,具有跨平台的特性,不需要浏览器安装插件即可直接阅览。图形元素包括标题、背景、主图、链接图标四种。(3)页面版式:版式是网站界面设计的重要组成部分,它将文字、图形等视觉元素进行组合配置,使页面整体视觉效果美观和谐,便于阅读,实现信息传达的最佳效果。(4)色彩:彩色网站比单色网站更具吸引力;色彩本身具有象征作用。(5)多媒体:网站构成中的多媒体元素主要包括音频、视频和动画。这些是界面构成中最吸引人的元素。(6)技术:网站的技术要素并非任何情况下在网站中都能直观体现,但是却代表了设计的整体水平,也是衡量设计成功的重要标准。网站界面设计最基本的技术要求包括:浏览器、传输速度、屏幕分辨率、颜色显示。(1).系统方案确定。通过对系统调研与分析,系统主要应完成的功能如下:信息管理、错误管理、帐户管理、栏目管理等。(2).软件结构设计。系统执行时,先输入数据,然后根据输入的数据选择执行路径。系统功能图如下。武义县旅游网武义县旅游网系统管理县内旅游县外旅游武义美食度假酒店网站介绍武义路线图4.2系统功能模块图4.4数据库设计数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段,使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强。数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。本网站的主要数据库表如下:管理员表admin,这个表存储的主要是管理员的用户名和密码
旅游景点表attractions,这个表存储的主要是县内和县外的景点名和景点类型,stype这个字段是用来区分县内和县外的景点的,当stype为0时表示为县内景点,当stype为1时表示为县外景点旅游景点图片表attrimg这个表存储的主要是县内和县外的景点图片,stype这个字段是用来区分县内和县外的景点图片的,当stype为0时表示为县内景点图片,当stype为1时表示为县外景点图片旅游路线预定表books这个表存储的主要是预定的景点路线武义美食表mfood这个表存储的主要是武义的美食武义介绍表fpage这个表主要存储的是武义这个地方的介绍武义介绍表fpage这个表主要存储的是武义这个地方的介绍武义酒店表jdian这个表主要存储的是武义这个地方酒店信息武义旅游路线表line这个表主要存储的是武义这个地方的路线、价格等信息第五章系统的实现网站的整体造型在整个制作中至关重要,一个杂乱无章的网站,给人第一印象极差的网站,用户访问过之后是不会再访问的。在制作本网站时,主要以学校主页界面形式作为参考,因为它看上去比较柔和、简洁、和谐,给用户清新的感觉。造型就是创造出来的物体形象。这里是指页面的整体形象,这种形象应该是一个整体,图形与文本的接合应该是层叠有序。虽然,显示器和浏览器都是矩形,但对于页面的造型,你可以充分运用自然界中的其它形状以及它们的组合:矩形,圆形,三角形,菱形等。对于不同的形状,它们所代表的意义是不同的。比如矩形代表正式,规则,注意到很多ICP和政府网站都是以矩形为整体造型;圆形代表着柔和,团结,温暖,安全等,许多时尚站点喜欢以圆形为页面整体造型;三角形代表着力量,权威,牢固,侵略等,许多大型的商业站点为显示它的权威性常以三角形为页面整体造型;菱形代表着平衡,协调,公平,一些交友站点常运用菱形作为页面整体造型。虽然不同形状代表着不同意义,但目前的网站制作多数是接合多个图形加以设计,在这其中某种图形的构图比例可能占的多一些。制作中主要采用Dreamweaver作为主要制作工具,其中插入了Flash元素,还用了Photoshop处理其中图片,这样能使网站更加生动。色彩搭配打开一个网站,给用户留下第一印象的既不是网站丰富的内容,也不是网站合理的版面布局,而是网站的色彩。色彩对人的视觉效果非常明显,一个网站设计成功与否,在某种程度上取决于设计者对色彩的运用和搭配。因为网站设计属于一种平面效果设计,在排除立体图形、动画效果之外,在平面图上,色彩的冲击力是最强的,它很容易给用户留下深刻的印象。因此,在设计网站时,必须要高度重视色彩的搭配。色彩五颜六色、千变万化。其中,红、黄、蓝是三原色,三原色通过不同比例的混合可以得到各种颜色。色彩有冷暖色之分,冷色(如蓝色)给人的感觉是安静、冰冷;而暖色(如红色)给人的感觉是热烈、火热。冷暖色的巧妙运用可以让网站产生意想不到的效果。色彩与人的心理感觉和情绪也有一定的关系,利用这一点可以在设计网站时形成自己独特的色彩效果,给浏览者留下深刻的印象。一般情况下,各种色彩给人的感觉是:红色代表热情、活泼、热闹、温暖、幸福、吉祥橙色代表光明、华丽、兴奋、甜蜜、快乐黄色代表明朗、愉快、高贵、希望绿色代表新鲜、平静、和平、柔和、安逸、青春蓝色代表深远、永恒、沉静、理智、诚实、寒冷紫色代表优雅、高贵、魅力、自傲白色代表纯洁、纯真、朴素、神圣、明快灰色代表忧郁、消极、谦虚、平凡、沉默、中庸、寂寞黑色代表崇高、坚实、严肃、刚健、粗莽在色彩搭配中一般遵循下述一些原则:(1)特色鲜明:一个网站的用色必须要有自己独特的风格,这样才能显得个性鲜明,给浏览者留下深刻的印象。(2)搭配合理:网站设计虽然属于平面设计的范畴,但它又与其它平面设计不同,它在遵从艺术规律的同时,还考虑人的生理特点,色彩搭配一定要合理,给人一种和谐、愉快的感觉,避免采用纯度很高的单一色彩,这样容易造成视觉疲劳。(3)讲究艺术性:网站设计也是一种艺术活动,因此它必须遵循艺术规律,在考虑到网站本身特点的同时,按照内容决定形式的原则,大胆进行艺术创新,设计出既符合网站要求,又有一定艺术特色的网站[2]。在设计标本室时主要考虑的因素是要能让用户浏览过之后,以后还会再登陆标本室网站,因此用了朴素、大方、简洁、和谐的设计原则。5.1动态网站的优点在InterNet迅猛发展的今天,用户不再只满足于通过浏览器看到静态页面,而是希望能根据要求生成更加灵活、生动的动态页面。数据库对于信息的动态检索无疑具有极大的优越性,因此根据数据库信息的不断变化生成动态web页面将成为网站设计的重要方法。动态网站的技术就有多个厂商的支持,他们都有各自的优点。利用JSP、ASP、PHP和其它有关技术,一个用户可以将一个Http请求送到一个可执行应用程序而不是一个静态的HTML文件。服务器将会立即运行这个限定的程序,对用户的输入做出反应,将处理结果返回客户端,或者对数据的记录进行更新。通过这个模型,就可以在服务器端和客户端之间有效的进行交互。静态网站浏览者可以直接从服务器端调用浏览,占用服务器的资源较少但缺点是其不包含交互功能,对于使用者来说,只能看但不能参与活动,这是一个很大的缺陷。动态网站包含交互功能,浏览者可以和服务页面间产生会话作用,完成一系列的动作。动态网站有如下一些优点:(1)读者可与Web服务器进行交互(2)可实现数据库的查询(3)可以与HTML以外的文件进行交互(4)可缩短查询时间,提高浏览效率它的最大的优势体现在用户可以进行直接参与活动[9]。5.2主窗口界面本系统是为市场上众多的小型用户所设计,是大众型的,它主要包含以下几个模块:旅游景点查询,包含有景点信息,线路查询,餐饮,住宿等信息。主窗体如下图所示:武义路线板块如下图,其中点击预定之后该用户必须先登录才能预定。其实预定代码为:<%ifsession("guestid")=""thenresponse.Redirect("guestlogin.asp")endif%><!--#includefile="top.asp"--><%ifrequest.servervariables("content_length")<>0thenlineid=request.querystring("id")outtime=request.form("byear")&"-"&request.form("bmonth")&"-"&request.form("bday")&"00:00:00"renshu=request.Form("renshu")randomizedd=right("00"&rnd()*100,2)'两们随机数bookid=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&dd'预定时间精确到秒ifnotisnumeric(request.Form("renshu"))then response.Write("<scriptlanguage=javascript>alert('预定人数必须为数字!');history.go(-1);</script>") else application.lock'预定对两个表进行操作表books和表line sql2="insertintobooks(bookid,lineid,booker,renshu,booktime,outtime)values('"&bookid&"','"&lineid&"','"&session("guestid")&"',1,'"&now()&"','"&outtime&"')" conn.executesql2 sql3="updatelinesetbooked=booked+1wherelineid='"&lineid&"'" conn.executesql3 application.unlock response.write("<scriptlanguage=javascript>alert('预订成功!');location.replace('mybook.asp');</script>")endifendif%><p></p><tablewidth="760"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><formname="form1"method="post"action="<%=request.servervariables("script_name")%>?id=<%=request.querystring("id")%>"><trbgcolor="#CCCCFF"><tdcolspan="2"class="title"><divalign="center">请完成您的预订信息</div></td></tr> <% sql1="select*fromlinewherelineid='"&request.querystring("id")&"'" setrst1=server.createobject("adodb.recordset") rst1.opensql1,conn,1,1 %><tr><td>线路名称:<%=rst1("linename")%></td><tdwidth="250">线路类型:<%=rst1("linetype")%></td></tr><tr><td>出发时间:<selectname="byear"><optionselected><%=year(now)%></option></select> 年<selectname="bmonth"> <% fori=month(now)to12 response.write("<option>"&i&"</option>") next %> </select> 月<selectname="bday"> <% fori=1to31 response.write("<option>"&i&"</option>") next %></select> 日</td><td><inputname="renshu"type=textclass="vod"value=1size=5/></td></tr><tralign="right"><tdcolspan="2"><inputtype="button"onClick="chk()"value="完成预订"></td></tr> </form></table><p></p><!--#includefile="inc/foot.asp"--></center></body></html>武义介绍的后台界面如下图:代码如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>武义介绍</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ if(form1.content.value.length=="") { alert("介绍内容不能为空!"); form1.content.focus(); } else { form1.submit(); }}</script><body><divalign="center"><%'提交内容ifrequest.servervariables("content_length")<>0thencontent=ECHTML(request.form("content"))application.locksql="updatefpagesetcontent='"&content&"'wheretitle='武义介绍'"conn.executesqlapplication.unlockresponse.write("<scriptlanguage=javascript>alert('修改成功!');</script>")endif%></div><divalign="right"></div><tablewidth=600height="500"border=1cellpadding="5"cellspacing="0"bordercolor="#000000"style="border-style:solid;border-collapse:collapse;"> <formname="form1"method="post"action="<%=request.servervariables("script_name")%>"> <trbgcolor="#CCCCFF"><tdclass="title"align="center"colspan=2>编辑武义介绍</td> </tr> <tr> <tdwidth="48"><divalign="center">内容:</div></td> <tdwidth="520"> <divalign="center"> <textareacols=60rows=25name=content></textarea></div></td></tr> <tr><tdcolspan=2align="right"><inputtype=buttonvalue="提交"onClick="chk()"> <inputtype=resetvalue="重写"></td></tr> </form></table><divalign="center"></div><divalign="right"></div></body></html>武义添加线路如下图所示:代码如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>添加线路</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ if(form1.linename.value.length=="") { alert("线路名称不能为空!"); form1.linename.focus(); } elseif(form1.linetype.value.length=="") { alert("线路类型不能为空!"); form1.linetype.focus(); } elseif(form1.price.value.length=="") { alert("线路价格不能为空!"); form1.price.focus(); } elseif(form1.lineintro.value.length=="") { alert("线路简介不能为空!"); form1.lineintro.focus(); } else { form1.submit(); }}</script><body><center><%'将线路写入数据库ifrequest.servervariables("content_length")<>0thenlinename=ECHTML(request.form("linename"))linetype=ECHTML(request.form("linetype"))price=ECHTML(request.form("price"))lineintro=ECHTML(request.form("lineintro"))ifnotisnumeric(price)thenresponse.write("<scriptlanguage=javascript>alert('线路价格必须是数字!');history.go(-1);</script>")elselineid=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)application.locksql="insertintoline(lineid,linename,linetype,lineintro,price)values('"&lineid&"','"&linename&"','"&linetype&"','"&lineintro&"',"&price&")"conn.executesqlapplication.unlockresponse.write("<scriptlanguage=javascript>alert('添加成功!');location.replace('addline.asp');</script>")endifendif%><tablewidth="600"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><formname="form1"method="post"action="<%=request.servervariables("script_name")%>"><trbgcolor="#CCCCFF"><tdcolspan="2"align="center"class="title">添加线路</td></tr><tr><tdalign="right">名称:</td><td><inputname="linename"type="text"id="linename"size="30"></td></tr><tr><tdalign="right">类型:</td><td><selectname="linetype"><optionvalue="大众"selected>大众<optionvalue="探险"selected>探险<optionvalue="休闲"selected>休闲<select></td> </tr><tr><tdalign="right">价格:</td><td><inputname="price"type="text"id="price"size="30"maxlength="10"></td></tr><tr><td>简介:</td><td><textareaname="lineintro"cols="58"rows="15"id="lineintro"></textarea></td></tr><tralign="right"><tdcolspan="2"><inputname="Submit"type="button"value="添加"onclick="chk()"> <inputname="Submit2"type="reset"value="重置"></td></tr></form></table></center></body></html>武义线路预定管理页面如下图所示:代码如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>预订情况</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><body><center><tablewidth="600"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><tralign="center"class="title"bgcolor="#ffcc33"><tdbgcolor="#CCCCFF">线路ID</td><tdbgcolor="#CCCCFF">名称</td><tdbgcolor="#CCCCFF">类型</td><tdbgcolor="#CCCCFF">价格</td><tdbgcolor="#CCCCFF">预订人数</td><tdbgcolor="#CCCCFF">查看</td></tr> <%'从表line读出线路信息并显示出来 sql1="select*fromlineorderbylineiddesc" setrst1=server.CreateObject("adodb.recordset") rst1.opensql1,conn,1,1 dowhilenotrst1.eof %><tralign="center"><td><%=rst1("lineid")%></td><td><%=rst1("linename")%></td><td><%=rst1("linetype")%></td><td>¥<%=rst1("price")%></td><td><%=rst1("booked")%></td><td><ahref="linedetail.asp?id=<%=rst1("lineid")%>"class="red">详情</a></td></tr> <% rst1.movenext loop rst1.close setrst1=nothing %></table></center></body></html>添加景点如下图所示:代码如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>添加景点</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ varmyobject=form1.lineid; varmynum=myobject.length; varcount=0; if(form1.attrname.value.length=="") { alert("景点名称不能为空!"); form1.attrname.focus(); } elseif(form1.attrintro.value.length=="") { alert("景点简介不能为空!"); form1.attrintro.focus(); } <!--选中景点所属线路--> elseif(mynum) { varflag=false; for(i=0;i<=mynum-1;i++) { if(myobject[i].checked) { count=count+1; } else { count=count+0; } } if(count==0) {alert("请选择景点所属路线!");} else {form1.submit();} } else { form1.submit(); }}</script><body><center><%ifrequest.servervariables("content_length")<>0thenattrname=ECHTML(request.form("attrname"))attrintro=ECHTML(request.form("attrintro"))randomizeattrid=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&right("00"&rnd()*100,2)application.lock'向表lineattr和表attractions插入数据setlineid=request.form("lineid")foreachvalinlineid sql2="insertintolineattr(lineid,attrid)values('"&val&"','"&attrid&"')" conn.executesql2nextsql3="insertintoattractions(attrid,attrname,stype,attrintro)values('"&attrid&"','"&attrname&"',"&request.form("stype")&",'"&attrintro&"')"conn.executesql3application.unlockresponse.write("<scriptlangage=javascript>alert('添加景点成功!');</script>")endif%><tablewidth="600"border="1"cellspacing="0"cellpadding="5"bordercolor="#ccccff"style="border-style:solid;border-collapse:collapse;"><formname="form1"method="post"action="<%=request.servervariables("script_name")%>"><tralign="center"bgcolor="#CCCCFF"><tdcolspan="2"class="title">添加景点</td></tr><tr><tdwidth="106">景点名称:</td><tdwidth="462"> <inputname="attrname"type="text"id="attrname"></td></tr><tr><td><divalign="left">景点简介:</div></td><td> <textareaname="attrintro"cols="50"rows="20"></textarea></td></tr><tr><td> </td><td><selectname="stype"id="stype"><optionvalue=0>县内</option><optionvalue=1>县外</option></select></td></tr><tr><td>所属路线:</td><td> <!--从表line读出每条线路并在每条线路后面显示checkbox--> <% sql1="select*fromline" setrst1=server.createobject("adodb.recordset") rst1.opensql1,conn,1,1 dowhilenotrst1.eof %> <inputtype="checkbox"name="lineid"id="lineid"value="<%=rst1("lineid")%>"><%=rst1("linename")%> <% rst1.movenext loop rst1.close setrst1=nothing %> </td></tr><tralign="right"><tdcolspan="2"><inputtype="button"value="添加"onClick="chk()"><inputtype="reset"value="重填"></td></tr> </form></table></center></body></html>添加美食如图所示:代码如下:<%ifsession("admin")=""then response.Redirect("login.asp")endif%><!--#includefile="../connections/ly1.asp"--><!--#includefile="char.asp"--><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>添加美食</title><linkhref="../css.css"type="text/css"rel="stylesheet"></head><scriptlanguage=javascript>functionchk(){ if(form1.attrname.value.length=="") { alert("美食名称不能为空!"); form1.attrname.focus(); } elseif(form1.attrintro.value.length=="") { alert("美食简介不能为空!"); form1.attrintro.focus(); } <!--选中景点所属线路-->/* elseif(mynum) { varflag=false; for(i=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 24年法学本科合同法第二章测试
- 2+2校校合作协议书
- 《语音增强电子信息》课件
- 2024年版婚内不忠离婚合同样本版
- 2025年山西货运从业资格证年考试题目
- 2025年兰州货车上岗证理论模拟考试题库
- 《综合表现影像》课程教学大纲
- 《艺用解剖学》课程教学大纲
- 2025年昌都货运上岗证考试题库答案
- 2025年鸡西货运资格证考试题答案
- 三级包装设计师理论考试复习题库(含答案)
- 2023-2024学年九年级上学期期末试卷及答案
- 《网络营销》试题及答案2
- 2024年上海租房合同参考模板(五篇)
- 2024秋期国家开放大学《政治学原理》一平台在线形考(形考任务四)试题及答案
- 第二单元 我们的学校 整体教学设计-2024-2025学年道德与法治三年级上册统编版
- TSG 03-2015《特种设备事故报告和调查处理导则》
- 村级民兵连长述职报告
- 2024秋七年级英语上册 Unit 7 How much are these socks教案(新版)人教新目标版
- 2024年新北师大版七年级数学上册全册课件
- 《工程经济与管理》教学大纲
评论
0/150
提交评论