硕士学位论文
(专业学位)
基于ASP.NET的旅游资讯网站的
设计与实现
姓名:罗凯
学号:1231204
所在院系:软件学院
职业类型:工程硕士
专业领域:软件工程
指导教师:王介之,张惠娟
校外指导教师:李麒
二○一四年三月
Adissertationsubmittedto
TongjiUniversityinconformitywiththerequirementor
thedegreeofMasterofEngineering
DesignandimplementationofatouriinformationwebsitebasedonASP.NET
Name:LuoKai
StudentNumber:1231204
School/Department:SchoolofSoftEngineering
CareerStyle:MasterofEngineering
Major:SoftwareEngineering
Supervisor:WangJiezhiZhangHuijuan
Co-Supervisor:LiQi
Mar,2016
基于ASP.NET的旅游资讯网站的设计与实现
罗凯
同济大学
学位论文版权使用授权书
本人完全了解同济大学关于收集,保存,使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本,学校有权保存学位论文的印刷本和电子版,并采用影印,缩印,扫描,数字化或其它手段保存论文,学校有权提供目录检索以及提供本学位论文全文或者部分的阅览怎么写作,学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动.
学位论文作者签名:
年月日
同济大学学位论文原创性声明
本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果.除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的,已公开发表或者没有公开发表的作品的内容.对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明.本学位论文原创性声明的法律责任由本人承担.
学位论文作者签名:
年月日
摘 要
近年来,随着生活水平的不断提升,人们对精神层次的追求越来越高,其中出游已成为很多人检测期的主要活动之一.而随着互联网应用的丰富和发展,很多关于旅游资讯的网站也适时出现.但很多旅游相关网站往往只是将各个景点的介绍用文字形式累赘,繁琐地堆砌出来,无法满足用户想要得到更多,更全面,更直观的景点信息.为了很好地解决上述问题,我们开发了该旅游资讯网站系统.
本项目的开发采用基于三层框架的B/S模式,使用Microsoft公司以C#为核心语言的ASP.NET开发工具,利用微软提供的IIS建立运行环境,再结合SQLServer2005建立数据连接关系.系统主要包括一下三大功能模块:
第一,旅游景点信息查询,能够对全国各省,市的较大型旅游景点进行介绍,
第二,驴友交流信息平台,能够实现用户之间的交流互动和旅行游记攻略发布,
第三,注册会员组织活动,能够完成用户发起活动,留下旅行轨迹的功能,
本文要研究的正是要提供给用户一个具有直观性,实时性,全面性三大特点的旅游资讯平台,让用户能够在该平台上获取到有价值的信息,提高旅游前的准备效率.从该网站的需求,技术可行性,经济可行性,法律可行性到各大模块的功能设计,用户角色设计,数据库设计,直至编译代码的最终实现和对未来的展望,都是本文要研究和阐述的内容.
本文首先对该网站的开发背景,意义,现状等作了简要分析,然后介绍了与本网站开发相关的MVC,ASP.NET,AJAX等技术,接着采用UML建模语言对系统进行了分析与建模,并对部分功能的实现进行了介绍.最后对开发工作进行了简要的总结与展望.
关 键 词:旅游资讯,MVC模式,ASP.NET
ABSTRACT
Inrecentyears,withtherisingstandardofliving,people'spursuitofspirituallevelishigherandhigher.Trelinghasbeeoneofthemainactivitiesduringholiday.WiththedevelopingofInter,alotoftrelinformationwebsiteshecameup.However,manyofthemjustperfunctorilyanizethepicturesorintroductionsoflandscapes,whichcannotsatiytheusers'requestofprehensiveanddirectinformation.Inordertosolvetheproblems,wehedevelopedthetrelinformationwebsitesystem.
ThedevelopmentofthisprojectisbasedonB/Smodelofthreelayers,ItusestheASP.NETdevelopingtoolsofMicrosoft,whichhasC#asitscorelanguage.ItusesIISrunningenvironmentofferedbyMicrosoftandestablishsthedataconnectingwithSQLServer2005.Thesystemmainlyincludesthefollowingthreefunctionmodules:
First,touriinformationqueryofthelargeattractionsalloverthecountry,
Second,tourpalsinformationexchangingplatform,whichcanrealizetheusers'municationandinformationexchanging,
Third,registeredmembersanizedactivities,whichcanservedafunctionthatuserscanfoundactivitiesandrecordtheirfootprints,
Thispaperistoprovideusersadirect,real-timed,prehensivetouriinformationplatform,sothatuserscanaccesstovaluableinformationontheplatform,improvetheefficiencyoftouripreparation.Thispapermainlyfocusontherequest,feasibilityandthedesignofthewebsiteandweightontheoutlookandrealizationofthewholeproject.
Thepaperfirstlyanalyzesthebackground,meaningandstatusofthewebsite,thenintroducestherelatedtechniquessuchasMVC,ASP.NET,AJAXandsoon.ItusesUMLlanguagetoanalyzethesystemandintroducestherealizationofsomefunctions.Atlastitmakeabriefconclusionandoutlookofthewholedevelopment.
KeyWords:touriinformation,MVCpattern,ASP,NET目录
第1章引言1
1.1论文研究的背景和意义1
1.2国内外研究及应用现状1
1.2.1国外研究状况1
1.2.2.国内研究状况1
1.3论文研究的内容2
1.4论文研究目的2
1.5论文组织结构3
1.6本章小结3
第2章系统开发技术研究4
2.1ASP.NET技术概述4
2.2MVC模式结构5
2.3MVC设计模式在ASP.NET平台中的应用模型6
2.4ADO.NET技术7
2.5SQLServer简介8
2.6Ajax和Jquery简介10
2.7本章小结11
第3章系统需求分析与设计12
3.1可行性分析12
3.1.1经济社会可行性12
3.1.2技术可行性12
3.2开发目标13
3.3运行环境与易用性需求13
3.4系统功能需求分析14
3.5系统功能设计14
3.5.1系统用例图14
3.5.2数据流图23
3.5.3系统状态图24
3.6E-R图26
3.7数据库设计27
3.7.1数据库概念结构设计27
3.7.2数据库详细结构设计28
3.8系统功能结构模块图31
3.9本章小结32
第4章系统实现33
4.1系统开发平台及工具33
4.2系统部分功能设计的具体实现33
4.2.1旅游景点地图展示33
4.2.2用户发起活动35
4.2.3用户撰写游记功能37
4.2.4景点住宿推荐及天气预报功能简介39
4.5本章小结40
第5章总结与展望41
致谢42
;热门时期,人们在出游之前的选择以及计划是十分重要的!因此,人们若需要对旅游景点的相关资讯进行咨询和了解,必须借助某些旅游咨询平台.然而互联网时代来了!大数据时代来了!信息时代来了!互联网的便捷和直观性让我们感受到数字生活所带来的好处,传统的旅行社咨询平台缺乏自主性,直观性,已经不能满足人们的众多需求,一个新型的,直观的,便利的互联网旅游资讯网站应运而生.
在信息技术快速发展的时代,人们所追求的是在最短的时间能够获得更多更全面更直观的信息.因此一个优秀的旅游资讯怎么写作网站,必须有友好的操作界面,良好的人机交互,全面的旅游讯息,这也就是我们建这个网站的方向和目标.致力为用户提供更多的出行,玩乐选择,提供更为详尽的旅游信息,为解决目前用户在规划旅游时经常面临的一些问题,如:在多个景点中难以抉择,对当地的住宿,交通不了解,导致耽误旅途行程.在出游前,用户可在该网站上查找其他用户分享的旅游总攻略和吃,住,行,玩等各类景点详细信息,可以为每个用户量身写作一套完美的出游计划.用户还可以发起活动结伴同行,寻找驴友一齐同行.出游归来,可以分享游记,点评,管理自己的旅游踪迹,这也是一份珍贵美好的回忆空间.希望该平台能为每一个正在准备出行,正在出行,出行归来的用户提供便利.
1.2国内外研究及应用现状
1.2.1国外研究状况
在欧美着名的旅游资讯网站有trelchinaguide.,lonelypla.等等,这些国外网站都提供了旅游相关资讯,但是不足之处有以下几点:
(1)页面不友好,界面不美观,太多太多繁杂的信息堆积在一起,很多关键信息没有凸显出来,只是纯粹把各个旅游地点的介绍和办公联系展示出来,让用户很难提取到有价值的内容,
(2)论坛形式表现,该形式虽然便于用户发表言论和交流,但是形式过于呆板,用户很难进行信息的搜索和提取,
(3)过多的文字描述,让用户很难多方面,直观的提前去感受景点的魅力,
(4)缺乏相关景点的详细攻略游记等信息,用户浏览完后还是很难去做具体的出行计划.
1.2.2.国内研究状况
在国内的旅游资讯网站这些年也层出不穷,主要有一下三大网站类型:
(1)政府旅游部门网站:介绍文字过于形式化,的语言很难让用户提炼出有价值的信息,而且该类网站对于信息维护力度不大,很多过时的信息会误导用户.着重于发布旅游景点历史文化,会展消息,行业管理的政策和法规信息,单一的静态页面内容展示,用户很难获得主动性,不是一个专职于旅游资讯的网站类型.
(2)企业自建网站:一些旅行社或者当地酒店自建的网站,此类网站的特色是重点介绍该旅行社当地的景点特色,虽内容详细,但无法全面给用户提供各地旅游资讯,用户得从多个网站里了解到各方面信息,便利性以及体验值不高.
(3)门户网站旅游频道:比如新浪,网易,搜狐等门户网站,旅游资讯较为全面,但广而不精,大多内容点到为止,无法让用户深入去了解某个具体景点的详细信息,如天气情况,吃,住,行等各种关键信息,因此门户网站也不是一个好的旅游资讯平台.
为了能够满足不同用户的需求,一个优质的旅游网站不能再是传统的静态页面展示,需要所有的用户都参与进来,每一个人都是网站的建设者,维护人员.这就需要提高网站的交互式设计,数据库设计,页面简洁和操作简便,能让用户只需在一个网站上就能做好各种旅游计划.
1.3论文研究的内容
本文着重研究如何实现一个具有直观性,实时性,全面性三大特点的旅游资讯平台,为客户提供便利的怎么写作.首先研究旅游资讯网的背景和意义,在目前互联网的大环境下,一个全面优质的旅游资讯网一定会被大众所需要的.其次研究网站的各类需求,包括用户希望得到的信息内容,网站的表现形式,目标人群等等.然后开始研究该系统的技术可行性,经济可行性,法律可行性等多方面因素,看现有的条件能否满足网站的各类需求.接下来研究网站各大模块的功能设计分析,用户角色设计,数据库设计,这些为接下来的编写代码搭好框架.然后几大模块的关键代码也是我们研究的一大部分,最后对于我们开发过程的不足之处和对于未来的展望,都是本文要研究和阐述的内容.
1.4论文研究目的
在传统的旅游活动中,旅游消费者获取信息的渠道是广播,电视,报刊,或听有经验的驴友介绍等.这种传统的途径往往缺乏便利性和准确性,极有可能出现到了真实景点与之前的心理准备大相径庭.人们已经不希望再花费大把的空闲时间跑各家旅行社去问,查路线,组团报名了,然而在大数据风行的互联网时代,这些信息都可以从互联网上得到,我们大可以舒舒服服地坐在家里,动动鼠标就能获取各种相关的旅游资讯,因此越来越多的公众通过旅游网站的怎么写作获取旅游方面的相关信息.
本文要研究的正是要提供给用户一个具有直观性,实时性,全面性三大特点的旅游资讯平台,让用户能够在该平台上获取到有价值的信息,提高旅游前的准备效率.我们所制作的网站,能够给用户提供一个界面简洁美观,内容丰富直观,旅游资讯评论客观的旅游必备工具.从旅游一开始的景点选择,互动咨询,路线规划,酒店预订到旅游回来后的展示总结,为客户提供一条龙的信息获取和展示功能.不仅如此,为了提高用户的主动性,该网站的特点之一是让用户成为网站的建设者,维护人员,网站的大部分旅游信息都是由已注册用户提供,每个人都能去整理和传授出游经验,对景点信息不断进行更新,这大大提高了网站内容的实时性和直观性.另外网站还为注册用户提供发起旅游活动功能,让用户能够成群结伴地出行,结交各地驴友,让单身的你在全国都有朋友.
1.5论文组织结构
本文主要介绍了"ASP.NETMVC三层架构下旅游资讯网站系统"开发的分析过程,设计思想和功能实现,并详细阐述了系统中关键技术及主要模块的实现.论文的系统组织结构如下:
第一章简要介绍了论文研究背景,分析目前国内外相关系统的现状,开发目的和意义,研究的内容及论文组织结构.
第二章简述了系统开发过程中所用到的相关技术以及系统的运行,开发平台和体系结构.
第三章详细描述了系统的需求分析和设计,其中系统设计内容包括系统用例图,数据流图,系统状态图,E-R图,数据库设计,系统功能模块图等设计.
第四章描述了系统部分功能实现介绍,其中包括系统开发工具和平台介绍,主要功能关键代码展示等.
第五章作为全文的总结,说明了在撰写论文过程中的心得和体会,并总结系统开发过程中的经验以及教训,展望系统的应用前景.
1.6本章小结
本章首先介绍了论文研究的背景与意义,接着分析了目前国内外旅游网站的现状及存在的一些问题,以及本系统的开发目标和意义,最后说明了主要工作以及全文的组织结构安排和每部分所进行的工作是怎样展开的.第2章系统开发技术研究
2.1ASP.NET技术概述
微软曾经的怎么写作器端脚本技术ASP(ActiveServerPages)如今常被称为经典ASP.ASP.NET是下一代ASP,不是ASP的更新版本.ASP.NET是怎么写作器端脚本编程的全新技术.微软在底层彻底重写了ASP.NET,可以使(嵌入网页中的)脚本由Inter怎么写作器执行.
(1)优势
1,世界级的工具支持
ASP.NET构架是可以用Microsoft公司最新的产品VisualStudio.开发环境进行开发,WYSIWYG(WhatYouSeeIsWhatYouGet所见即为所得)的编辑.这些仅是ASP.NET强大化软件支持的一小部分.
2,强大性和适应性
因为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上.通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.的Web应用中.ASP.NET同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Ja的结合体),VB.NET,Jscript.将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.NET.
ASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言.
3,简单性和易学性
ASP.NET是运行一些很平常的任务如表单的提交客户端的身份验证,分布系统和网站配置变得非常简单.例如ASP.NET页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面.
4,高效可管理型
ASP.NET使用一种字符基础的,分级的配置系统,使你怎么写作器环境和应用程序的设置更加简单.因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现.这种被称为"ZeroLocalAdministration"的哲学观念使ASP.NET的基于应用的开发更加具体和快捷.多处理器环境的可靠性ASP.NET已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度.安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的.ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护.
(2)如何工作
1,当浏览器请求HTML文件时,怎么写作器会返回该文件
2,当浏览器请求ASP.NET文件时,IIS会把该请求传递给怎么写作器上的ASP.NET引擎
3,ASP.NET引擎会逐行地读取该文件,并执行文件中的脚本
4,最后,ASP.NET文件会以纯HTML的形式返回浏览器
2.2MVC模式结构
MVC(Model-View-Controller)即模型—视图—控制器,是一种将输入,处理,输出流程按照模型(Model),视图(View),控制器(Controller)的方式进行分离的体系结构模式.模型,视图,控制器三者之间的关系,如图2.1所示.
图2.1MVC模式
1.视图(View)
视图(View)表示用户交互的界面,就Web应用而言,既可以是HTML界面,也可能是XML,XHTML或Applet界面.伴随着应用需求的复杂化与规模化发展,界面处理也越来越具有挑战性.一个应用可能具有多种不同的视图,MVC模式处理视图只能在用户的请求和视图数据的采集与处理上进行,不能对视图上的业务流程进行处理.业务流程的处理是由模型完成的.如一个人力资源管理基本信息的视图只能接收来自模型的数据,并将其显示给用户,再将用户操作界面的输入数据与请求传送给模型和控制.
2.模型(Model)
业务流程与状态的处理以及业务规则的制定.业务流程的处理过程对其它层来讲是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果.业务模型的设计可以说是MVC最主要的核心.
在业务模型中有一个非常重要的模型,即数据模型.数据模型主要是指实体对象的数据保存(持续化).如将一组员工基本信息保存至数据库,再从数据库中获取员工基本信息.设计时,可将该模型单独表示,那么所有对数据库的操作就只限在此模型中进行.
3.控制器(Controller)
控制(Controller)即从用户接受请求,将视图与模型进行匹配,共同完成用户的请求.控制层并不执行任何的数据处理.控制层的划分其作用相当于一个分发器,选择相应的视图与模型,才能完成相对应的用户请求.
系统执行过程中,若用户单击一个连接,控制层在收到请求之后,并不对业务信息进行任何处理,只负责将用户信息传送给模型,通知模型选取对应的的视图返回给用户.因而,视图与模型可能存在一对多和多对一两种.
2.3MVC设计模式在ASP.NET平台中的应用模型
ASP.NETMVC是微软提供的MVC模式编写ASP.NETWeb应用程序的一个框架,其向Microsoft网络开发观众提供的前景和潜力是巨大的.
1,这个框架拥有以下特色:
(1)分离任务(输入逻辑,业务逻辑和显示逻辑),易测性和默认的测试驱动组件.所有mvc用到的组件都是基于接口并且可以被mock对象测试到,你可以不必在asp.进程中运行controller就可以使用测试.使得测试更加快速和简捷.
(2)可扩展的简便的框架.mvc框架被设计用来更轻松的移植和写作功能.你可以加入自己的视图引擎,url重写策略.重载action方法等.mvc也支持DependencyInjection(DI)andInversionofControl(IOC).
(3)强大的url重写机制让你更方便的建立容易理解和可搜索的url.url可以不包含任何文件扩展名,并且可以重写url使其对搜索引擎更加友好.
(4)可以使用asp.现有的页面标记,用户控件,模板页.你可以使用嵌套模板页,嵌入表达式"@",声明怎么写作器控件,模板,数据绑定,定位等等.
(5)对现有的asp.程序的支持,mvc让你可以使用如窗体认证和windows认证,url认证,组管理和规则,输出,数据缓存,session,profile,healthmonitoring,配置管理系统,providerarchitecture特性.
2,相对于WebForms,ASP.NETMVC有以下特征:
(1)为方法怎么写作,而不是文件.MVC在网络环境中的工作方式是MVC为方法调用的结果怎么写作,而不是为动态生成的(即脚本的)网页怎么写作的.曾有人将ASP.NETMVC称作是"Web的RPC(皇家轻工兵)",这一说法特别贴切.
(2)ASP.NETMVC不是WebForms4.0.ASP.NETMVC并不是WebForms4.0,它是WebForms的替代方法,也是架构完全支持的部分.在WebForms继续进行新的改革和发展的同时,ASP.NETMVC也将作为Microsoft完全支持的并行替代方法而继续发展.
(3)ASP.NETMVC是完全不同的.ASP.NETMVC是完全不同的产品.它在价值和体系结构原则的系统顶部构建的,这与WebForms中的价值和原则不同.ASP.NETMVC注重可扩充性,可测试性以及弹性.它使用起来很轻便,不需要对如何使用它而做很多检测设.
2.4ADO.NET技术
ADO.NET是一组用于和数据源进行交互的面向对象类库.通常情况下,数据源是数据库,但它同样也能够是文本文件,Excel表格或者是XML文件.ADO.NET相对于ADO的最大优势在于对于数据的更新修改可以在与数据源完全断开联系的情况下进行,然后再把数据更新情况传回到数据源.
ADO.NET允许和不同类型的数据源及其数据库进行交互.然而并没有与此相关的一系列类来完成这样的工作.因为不同的数据源采取不同的协议,所以对于不同的数据源必须采用相应的协议.一些老实的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进行连接.
ADO.NET包含的对象:
SqlConnection对象
连接帮助指明数据库怎么写作器,数据库名字,用户名和,和连接数据库所需要的其他参数.Connection对象会被Command对象使用,这样就会知道是在哪个数据库上面执行命令.
SqlDataReader对象
许多数据操作要求只是读取一串数据.DataReader对象允许获得从Command对象的Select语句得到的结果.考虑性能的因素,从DataReader返回的数据都是快速的而且只是"向前"的数据流.这意味着只能按照一定的顺序从数据流中取出数据.这对于速度来说是有好处的.
DataSet对象
DataSet对象书数据在内存中的表现形式.它包括多个DataTable对象,而DataTable包含列和行,就像一个普通的数据库中的表.它是在特定场景下使用——帮助管理内存中的数据并支持对数据的断开操作的.
SqlDataAdapter对象
某些时候你使用的数据主要是只读的,并且很少需要将其改变至底层的数据源.同样一些情况要求在内存中缓存数据,以此来减少并不改变的数据被数据库调用的次数.DataAdapter通过断开模型来帮助你方便的完成对以上情况的处理.当在一单批次的对数据库的读写操作的持续的改变返回至数据库的时候,DataAdapter填充DataSet对象.DataAdapter包含对连接对象以及对数据库进行读取或者写入的时候自动打开或关闭连接的引用.
2.5SQLServer简介
系统中用到了SqlServer2005数据库,其中数据库设计是核心,在设计数据库时应该满足三范式要求来提高数据库灵活性及减少数据冗余等.
系统中主要利用ADO.NET技术对数据库进行操作,其中利用了存储过程,因为存储过程在数据库中是已经编译好的sql语句从而可以提高访问数据库性能而且便于管理和控制.
存储过程
简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用.它的参数可以被传递和返回.与应用程序中的函数过程类似,存储过程可以通过名字来调用,而且它们同样有输入参数和输出参数.根据返回值类型的不同,我们可以将存储过程分为三类:返回记录集的存储过程,返回数值的存储过程(也可以称为标量存储过程),以及行为存储过程.顾名思义,返回记录集的存储过程的执行结果是一个记录集,典型的例子是从数据库中检索出符合某一个或几个条件的记录,返回数值的存储过程执行完以后返回一个值,例如在数据库中执行一个有返回值的函数或命令,最后,行为存储过程仅仅是用来实现数据库的某个功能,而没有返回值,例如在数据库中的更新和删除操作.
存储过程在数据库操作中的应用,如图2.2所示
图2.2存储过程在数据库操作中的应用
使用存储过程的好处
1,减少网络通信量.调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多.
2,执行速度更快.有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化.其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用.
3,更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响.
4,布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制.由以上的分析可以看到,在应用程序中使用存储过程是很有必要的.
2.6Ajax和Jquery简介
AJAX即"AsynchronousJaScriptandXML"(异步JaScript和XML),AJAX并非缩写词,而是由JesseJamesGaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术.
AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术.通过AJAX,JaScript可使用JaScript的XMLHttpRequest对象来直接与怎么写作器进行通信.通过这个对象,您的JaScript可在不重载页面的情况与Web怎么写作器交换数据.AJAX在浏览器与Web怎么写作器之间使用异步数据传输(HTTP请求),这样就可使网页从怎么写作器请求少量的信息,而不是整个页面.AJAX可使因特网应用程序更小,更快,更友好.这也是AJAX最大的应用优势,即能在不更新整个页面的前提下维护数据.这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息.
AJAX是一种独立于Web怎么写作器软件的浏览器技术.JaScriptXMLHTMLCSS在AJAX中使用的Web标准已被良好定义,并被所有的主流浏览器支持.AJAX应用程序独立于浏览器和平台.Web应用程序较桌面应用程序有诸多优势,它们能够涉及广大的用户,它们更易安装及维护,也更易开发.不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好.通过AJAX,因特网应用程序可以变得更完善,更友好.
Ajax不需要任何浏览器插件,但需要用户允许JaScript在浏览器上执行.就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试.随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世.同样,也出现了另一种辅助程序设计的技术,为那些不支持JaScript的用户提供替代功能.
Ajax是Web2.0的一个典型应用,也是互联网对于Desktopapplication的臃肿的逃避,对于简单浏览器显示的不满意催生的结果.Web2.0的核心为RIA(Richinterfaceapplications)富界面应用.客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算,传送和检索数据,显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的怎么写作器或后端的情况下进行.
jQuery是一个快速,简单的JaScriptlibrary,它简化了HTML文件的trersing,事件处理,动画,Ajax互动,从而方便了网页制作的快速发展.jQuery有如下特点:
提供了强大的功能函数
使用这些功能函数,能够帮助我们快速完成各种功能,而且会让我们的代码异常简洁.
解决浏览器兼容性问题
jascript脚本在不同浏览器的兼容性一直是Web开发人员的噩梦,常常一个页面在IE7,Firefox下运行正常,在IE6下就出现莫名其妙的问题.针对不同的浏览器编写不同的脚本是一件痛苦的事情.有了jQuery将从这个噩梦中醒来,比如在jQuery中的Event事件对象已经被格式化成所有浏览器通用的,从前要根据event获取事件触发者,在ie下是event.srcElements而ff等标准浏览器下下是event.target.jQuery则通过统一event对象,让我们可以在所有浏览器中使用event.target获取事件对象.
(3)实现丰富的UI
jQuery可以实现比如渐变弹出,图层移动等动画效果,让我们获得更好的用户体验.
(4)纠正错误的脚本知识
大部分开发人员对于jascript存在错误的认识.比如在页面中编写加载时即执行的操作DOM的语句,在HTML元素或者document对象上直接添加"onclick"属性,不知道onclick其实是一个匿名函数等等.拥有这些错误脚本知识的技术人员也能完成所有的开发工作,但是这样的程序是不健壮的.比如"在页面中编写加载时即执行的操作DOM的语句",当页面代码很小用户加载很快时没有问题,当页面加载稍慢时就会出现浏览器"终止操作"的错误.jQuery提供了很多简便的方法帮助我们解决这些问题.
2.7本章小结
本章主要分析了基于ASP.NET平台的MVC模式,阐述了MVC架构工作原理及其流程,介绍了SQLSever的特性及优点以及AJax和jquery技术给网页UI带来的好处,为本系统的开发奠定了理论基础.第3章系统需求分析与设计
3.1可行性分析
系统的可行性,是指在现有环境和条件下,设计开发这个系统是否有其存在的需要和是否具备开发它的条件.可行性分析应具有预见性,公正性,可靠性,科学性的特点.我们将一个系统进行可行性分析,是针对其设计时的内外部的一些必要条件,研究其在经济,技术,资源和环境等方面是否有可以满足实行的条件,同时还要分析系统设计完成后是否有价值和市场.在市场经济高速发展的今天,旅游业作为第三产业在如今有了长足的发展.人们了满足日常需求的同时也常常走进世界各地来满足自我的精神文化需求.因此,建立一个咨询全面,使用便捷的旅游资讯网站是在改革开放新浪潮中不可或缺的需要.在经过国内外市场的分析和调研后,我们认为开放一个针对旅游市场的旅游资讯类网站是可行的.以下将从经济社会和技术两方面对系统的可行性进行详细评估.
3.1.1经济社会可行性
随着我国经济水平的提升,居民收入和消费水平相对提高,旅游出行成为了他们必不可少的活动之一.而在互联网经济的驱动下,一个完善的旅游资讯网站是人们出行参阅的首选.同时,一个完备的旅游资讯网站在某种程度上,还能够促使人们的出行活动,从而达到拉动内需推动经济发展的目的.
在整个系统开发过程中将要用到的工具有:VisualStudio2016,DreamweerCS4,SQLSERVER2005等.这些都是开发网站常用的软件稳定版本,从互联网上均可免费下载得到.因此除了一部分人工和机器费用外,开发成本相对较低.系统在开发完成后预期将获得稳定的点击量和广告收入.从另一方面来看,由于系统预计可以在未来较长的一段时期内稳定地发挥其旅游资讯的作用,方便用户浏览更多的信息,节省了大量的时间和资源.由以上几点可见在,开发此系统在经济上是完全可行的.
3.1.2技术可行性
技术可行性包括硬件,系统软件,应用软件,技术人员.针对这四个方面.
从硬件和系统软件上来看,Web怎么写作器硬件要求:PentiumCPU1GMHz以上,4GMBRAM,20G以上硬盘.Web怎么写作器软件要求:MicrosoftWindowsServer2003Standard,Enterprise,Datacenter或WebEdition,配置为IIS6.0怎么写作器并运行ASP.NET2.0版本以上,后台数据库为SQLServer2016.这是可以满足的,从应用软件上来看,VisualStudio2016功能强大,扩展性强,并能够很好地结合ASP.NETMVC,Jascript,jQuery以及SQL等脚本语言进行工作,这些技术足以完成本系统的开发和设计,从技术人员来看,本系统的开发人员是项目经验丰富的专业人员,可以很好地完成系统开发任务.
3.2开发目标
基于ASP.NETMVC的旅游资讯网站搭建的总体目标在于,通过现代的科学技术手段——互联网,使我国居民对出行旅游信息有全方面的了解和分享,鼓励大家外出旅行,为用户的旅行创造优质的准备怎么写作.因此,本系统所预计实现的功能如下:
第一,能够对全国各省,市的较大型旅游景点进行介绍,
第二,能够实现用户之间的交流互动和旅行游记攻略发布,
第三,能够完成用户发起活动,留下旅行轨迹的功能,
第四,系统应在实现以上基本功能的基础上,保证用户能够在短时间内熟练使用,并在使用过程中的流程清晰,操作方便.
第五,应保证系统数据的真实性,可靠性,丰富性和完整性,使系统具有良好的可移植性,可维护性.
3.3运行环境与易用性需求
本系统主要可以运行在Windows98以上版本的Windows系列操作系统和ios操作系统上,主要以浏览器为开启工具.用户输入操作以键盘鼠标为主,输出方式以屏幕显示为主.
本系统是一个网页式的旅游资讯网站,图文结合,游记问答等功能丰富,操作简单,具有实用性和易用性.在设计时应保证网页布局结构的合理性,给用户一个完美的资讯体验,也应保证网站开启的流畅性和动态性使之更为用户所接受.
3.4系统功能需求分析
通过对系统的需求进行详细的分析与研究,并对比现有旅游资讯类网站,最终得出了系统的功能需求.我们认为本系统的功能需求从参与角色角度来看应包括以下几个方面:
(1)游客:注册,地图检索,信息搜索查询,游记,活动,留言等板块的查看.
(2)会员:在游客功能的基础上还包含——登录,景点查询,发起活动,发表游记,参与问答,留下旅行踪迹等.
(3)管理员:登录,会员管理,游记管理,攻略管理,问答管理,添加,删除,修改景点信息,以及会员包含的各种功能.
3.5系统功能设计
3.5.1系统用例图
用例建模是UML中最基础的部分,用例建模的最主要功能就是用来表达系统各参与者在参与系统活动的过程中所有的功能性需求或行为.用例建模可分为用例图和用例描述.用例图由参与者(Actor),用例(UseCase),系统边界,箭头组成,用画图的方法来完成.用例描述用来详细描述用例图中每个用例,用文本文档来完成.根据上述系统功能需求分析可以得到系统的主要角色用例有游客,会员和管理员三类.
游客可以在登录网站后进行景点的查询检索和一些信息的阅读,当其注册并登录后就成为了会员,会员在上述功能的基础上还能够进行活动的发起,游记的撰写,以及和其它会员间的互动等功能.系统游客和会员用例图如图3.1所示.
图3.1会员和游客用例图
以下将从会员和游客两类用户的角度介绍与其有关联的系统各模块的需求分析,如表3.1-表3.11所示:
1,游客
(1)注册
表3.1游客注册用例描述
角色未注册用户(游客)前提条件无主事件流1.游客访问网站的首页,
2.点击登陆入口的注册按钮,进入系统注册页面,
3.输入,,等注册信息后点击注册按钮(E1),
4.通过验证完成注册,跳转到登陆成功提示页面.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(2)信息搜索查询
表3.2游客信息查询用例描述
角色游客前提条件未注册登录主事件流1.进入网站首页或直接进入某一子页面,
2.在搜索框内输入目的地城市或景点名等信息,
3.点击查询按钮,跳转至查询结果列表页面.(E1)异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(3)文章信息查看
表3.3游客文章信息查看用例描述
角色游客前提条件未注册登录主事件流1.用户进入网站首页,
2.进入目的地城市,游记,攻略等信息页面,
3.查看景点指南,游记和攻略等文字信息.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
2,会员
(1)登录
表3.4会员登录用例描述
角色注册用户前提条件用户已经完成注册主事件流1.用户进入网站主页,点击登录按钮,
2.输入用户名,,验证码等登录信息后点击登录按钮,(E1)
4.完成登录,跳转回首页,(E2)
5.加载用户所拥有的权限信息,并显示在页面.异常事件流E1:键入非法的标识符,指明错误.
E2:用户被管理员限制,无法登陆.
(2)信息查询
表3.5会员信息查询用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.会员完成登录返回系统,
2.在搜索框搜索目的地或景点名,(E1)
3.点击查询按钮,页面跳转到信息查询结果页面.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(3)会员发表文章
表3.6会员发表文章用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.用户完成登录返回系统,
2.进入个人旅游空间页面,
3.选择发表游记,攻略并进入编辑页面,
4.完成文章后点击按钮进行发布.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(4)会员交流互动
表3.7会员交流互动用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.用户完成登录返回系统,
2.进入相应的景点页面,
3.在该页面的用户留言模块中进行发帖或回复,
4.完成留言后点击按钮进行发布.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(5)修改个人资料
表3.8会员修改个人资料用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.用户完成登录返回系统,
2.点击进入个人旅游空间子页面,
3.点击修改个人资料选项,进入显示页面,
4.修改或添加个人相关信息,如生日,大小头像,个人签名等,
5.点击保存,完成更新.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(6)会员发起活动
表3.9会员发起活动用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.注册用户完成登录返回系统,
2.点击开始发起活动,
3.进入发起同行活动相关信息页面并填写相关的活动信息,
4.点击确认,保存编辑并发布该条信息.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
(7)会员参加活动
表3.10会员参加活动用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.注册用户登录后返回系统,
2.点击活动页面,
3.进入结伴同行活动相关信息列表页面,
4.查看活动相关详细信息,
5.点击"我要参加"选项成功加入某项活动.异常事件流E1:键入非法的标识符或者格式不对,指明错误.(8)会员留下旅行踪迹
表3.11会员旅行踪迹用例描述
角色注册用户前提条件用户必须完成登录的用例主事件流1.注册用户登录进入系统,
2.点击进入某一景点详细页面,
3.选择"我去过"按钮完成标注.异常事件流E1:键入非法的标识符或者格式不对,指明错误.
管理员的职责是进行后台的管理工作,主要包括在成功登录后进行会员,景点,文章,活动和互动交流的管理.管理员的用例图如图3.2所示.
图3.2管理员用例图
以下将从管理员的角度介绍与其有关联的系统各模块的需求分析,如表3.12-表3.11所示:
(1)管理员登录
表3.12管理员登录用例描述
角色管理员前提条件无主事件流1.管理员进入后台登录页面,
2.在文本框输入和后点击登录按钮(E2),
3.成功登录后加载后台管理页面.异常事件流E1:键入非法的标识符,指明错误.
E2:用户被管理员屏蔽,无法登陆.
(2)管理员用户管理
表3.13管理员用户管理用例描述
角色管理员前提条件用户必须完成管理员登录的用例主事件流1.管理员登录网站后台,点击"用户管理",
2.进入用户列表页面,
3.限定用户功能或者删除用户.异常事件流E1:用户被管理员屏蔽或删除,无法设置,提示重新激活
(3)管理员景点管理
表3.14管理员景点管理用例描述
角色管理员前提条件用户必须完成后台管理员登录的用例主事件流1.管理员登录网站后台点击"景点管理",
2.进入景点管理界面,
3.添加,修改或者删除各类景点信息,
4.添加,删除或者修改各类景点图片.异常事件流E1:键入非法的标识符,指明错误
(4)管理员活动管理
表3.15管理员活动管理用例描述
角色管理员前提条件用户必须完成后台管理员登录的用例主事件流1.管理员登录网站后台,点击"活动管理",
2.进入活动同行管理界面,
3.审阅或删除该类别的相关信息.异常事件流E1:键入非法的标识符,指明错误
(5)管理员互动交流管理
表3.16管理员互动交流管理用例描述
角色管理员前提条件用户必须完成管理员登录的用例主事件流1.管理员登录网页后台,点击"互动交流管理"
2.进入交流区管理界面,
3.审阅或删除会员间的互动交流信息.异常事件流E1:键入非法的标识符,指明错误
(6)管理员文章管理
表3.17管理员文章管理用例描述
角色管理员前提条件用户必须完成管理员登录的用例主事件流1.管理员登录网页后台,点击"文章管理"
2.进入文章管理界面,
3.审阅或删除会员发布的攻略,游记等文字信息.异常事件流E1:键入非法的标识符,指明错误3.5.2数据流图
数据流图(DataFlowDiagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能,数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法.
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型.在结构化开发方法中,数据流图是需求分析阶段产生的结果.
总之,数据流图是描绘信息流和数据从输入移动到输出的过程中所经受的变换.它从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程.
根据调研和以上基本的一些系统需求分析,我们可以得出本系统的顶层数据流图如图3.3所示.
图3.3顶层数据流图
3.5.3系统状态图
1.普通用户状态图
通过分析用户登录和未登录的两种状态,我们可以得出普通用户的状态图如图3.4所示.普通用户未登录状态可能是未注册和登录失败两种可能,在这种未登录状态下的用户还是可以查阅一下网站中的基本资讯,如搜索查看景点信息,阅读游记和攻略等.用户一旦注册并登录成功后在此基础上还可以进行文章(包括攻略,游记等)的编写,发起或参与结伴活动,和其它会员进行互动交流,也可以对自己的进行管理.
图3.4普通用户状态图
2.管理员状态图
通过对管理员功能的分析,我们整理出管理员操作流程的状态图,如图3.5所示.管理员在登录后台系统后可以对用户进行权限限制,可以对景点进行增加,删除,修改的工作,可以对系统内用户发布的文章(包括游记和攻略等)进行审核,可以对用户发起的活动,参与的互动交流中的垃圾信息进行删除.
图3.5管理员状态图
3.6E-R图
E-R图也称实体-联系图(EntityRelationshipDiagram),它是提供了表示实体类型,属性和联系的方法,用来描述现实世界的概念模型.E-R方法是"实体-联系方法"(Entity-RelationshipApproach)的简称.它是描述现实世界概念结构模型的有效方法.是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名,用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来,用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n).
通过以上分析可以得出系统的实体,实体的属性和它们之间的联系,因此可以画出系统的E-R图.系统E-R图如图3.6所示.
图3.6系统E-R图
3.7数据库设计
3.7.1数据库概念结构设计
在数据库设计时,我们将需求分析得到的用户需求抽象为信息结构进行概念结构设计,经过分析确定在本系统中涉及到的实体如下所示:
(1)注册用户(用户ID,参加的活动,撰写的文章,用户名,,,所在地),
(2)景点(景点ID,景点名,景点所在省市,景点图片,景点简介,门票),
(3)攻略(攻略ID,撰写者,攻略对应的景点,攻略标题,攻略内容),
(4)游记(游记ID,撰写者,游记对应的景点,游记标题,游记内容),
(5)省份(省份ID,省份名称,包含城市,省份描述),
(6)用户交流(交流ID,交流内容,对应景点),
(7)活动(活动ID,参加人,发起人,活动标题,活动内容,截止时间,,计划人数,预算),
(8)收益(收益ID,订单ID,时间,总额).
3.7.2数据库详细结构设计
根据对系统的分析和对数据库的概念结构设计,我们得出了数据库的详细结构设计方案并予以实现.系统数据库各表,字段及其描述如表3.18-3.24所示.
(1)注册用户表(users):本数据表用来存放注册用户的一些基本信息,如注册的用户名和等.该表字段及其类型定义如表3.18所示.
表3.18用户注册表users
字段名字段类型长度默认值可以为空字段说明UsersIDint4种子否用户IDActivitiesIDint4是用户参加的活动NotesIDint4是用户撰写的游记StrategyIDint4是用户撰写的攻略UsersNamevarchar50否用户名UsersPwdvarchar20否用户UsersBirthdayvarchar50是用户出生日期UsersMailvarchar200否用户UsersPhotovarchar50是用户头像UsersAddrvarchar100是用户所在地UsersOthersvarchar200是用户个人签名UsersFootprintvarchar200是用户曾经去过的景点标注(2)景点信息表(Scenery):该表内用来存放系统内景点的一些详细信息,如名称,所属地和描述等.该表字段及其类型定义如表3.19所示.
表3.19景点信息表Scenery
字段名字段类型长度默认值为空字段说明SceneryIDint4种子否景点IDSceneryNamevarchar50否景点名称SceneryProvvarchar50否所属省SceneryCityvarchar50否所属城市SceneryPricevarchar20是门票SceneryPhotovarchar50是景点图片SceneryDescrivarcharmax是景点描述
(3)景点攻略表(Strategy):该表用来存放用户在某一景点旅途回程后撰写的该景点攻略,它关联着每个景点存在.该表字段及其类型定义如表3.20所示.
表3.20景点攻略表Strategy
字段名字段类型长度默认值为空字段说明StrategyIDint4种子否攻略IDUsersIDint4否用户IDSceneryIDint4否景点IDStrategyTitlevarchar200否攻略标题StrategyTimeDatetime8否发表时间StrategyDetailvarcharmax否攻略内容
(4)景点游记表(Notes):该表用来存放用户在旅途后所写的旅行游记信息,它关联着每个景点存在.该表字段及其类型定义如表3.21所示.
表3.21景点游记表Notes
字段名字段类型长度默认值为空字段说明NotesIDint4种子否游记IDUsersIDint4否用户IDSceneryIDint4否景点IDNotesTitlevarchar200否游记标题NotesTimeDatetime8否发表时间NotesDetailvarcharmax否游记内容
(5)省份表(Prov):省份表用来存放中国所有的省份信息,每个景点信息关联至每个省份中的每个城市.该表字段及其类型定义如表3.22所示.
表3.22省份表Prov
字段名字段类型长度默认值为空字段说明ProvIDint4种子否省份IDProvNamevarchar50否省份名称ProvCityvarchar50否包含城市ProvDetailvarcharMax是省份描述
(7)用户交流表(Conversation):用户交流表用来存放会员在每个景点中的互动交流信息.该表字段及其类型定义如表3.23所示.
表3.23用户交流表Conversation
字段名字段类型长度默认值为空字段说明ConversationIDint4种子否问答IDUsersIDint4否用户IDConversationTitlevarchar200否问答标题ConversationTimeDatetime8否发表时间ConversationDetailVarcharMax否交流详情(8)活动表(Activities):用户活动表用来存放会员发起同行活动的信息和发起成功后参与者的信息.该表字段及其类型定义如表3.24所示.
表3.24活动表Activities
字段名字段类型长度默认值为空字段说明ActivitiesIDint4种子否活动IDUsersIDInt4是参加人ActivitiesTitlevarchar100否活动标题ActivitiesPlacevarchar100否活动地区ActivitiesStartdatetime8是出发时间ActivitiesDayfloat8是活动天数ActivitiesLastdatetime8否报名截止时间ActivitiesNamevarchar50否发起人ActivitiesTelvarchar50是发起人ActivitiesPricefloat8是活动预算ActivitiesNumint4是计划人数ActivitiesDetailvarcharmax否活动详情3.8系统功能结构模块图
功能结构图就是按照功能的从属关系画成的图表,图中的每一个框都称为一个功能模块.根据上述可行性分析,需求分析和结合数据库构建,我们可以确定系统的总体功能结构模块,系统主要有四大模块:景点信息模块,个人旅游空间模块,活动模块和后台管理模块,由此画出系统的总体功能结构模块图.如图3.7所示.
图3.7系统功能结构模块图
3.9本章小结
本章主要讨论了系统的可行性分析,需求分析和软硬件各类功能需求,同时对系统进行了详细设计,建立了系统模型,设计了数据库,确定了各模块间的关联,架构好了系统整体结构.这些工作为下一步系统的实现做好了铺垫和准备.
第4章系统实现
4.1系统开发平台及工具
1,怎么写作器端:
操作系统:WindowsXP
Web怎么写作器:IIS6.0
数据库:MSSQLServer2005
2,客户端
操作系统:WindowsXP
浏览器:InterExplorer8.0
3,主要开发工具:
VisualStudio2016+Dreamweercs4
4,主要开发语言:
Asp.2.0+Ajax+jQuery
4.2系统部分功能设计的具体实现
4.2.1旅游景点地图展示
每点击一个景点,就会弹出一个动画效果来显示地图,这样方面用户了解景点具体位置已经周边情况,如图4.1所示.
图4.1地图显示功能
这里用到的是google地图的API接口以及jQuery的动画效果,具体代码如下:
functionstart(){
setTimeout("init()",50),
}
functioninit(){
//检查浏览器的兼容性.
if(GBrowserIsCompatible()){
map等于newGMap2(document.getElementById("map_canvas")),
//设置地图的中心坐标.
varloc等于newGLatLng(cenx,ceny),
map.setCenter(loc,stzoom),
//创建带有可在四个方向平移,放大,缩小的按钮,以及缩放滑块的控件.
map.addControl(newGLargeMapControl()),
map.enableScrollWheelZoom(),
//创建带有切换地图类型的按钮的控件.
map.addControl(newGMapTypeControl()),
varpoint等于newGLatLng(cenx,ceny),
varmarker等于newGMarker(point),
map.addOverlay(marker),
varpic等于document.getElementById("googlemap"),
pic.src等于"ditu.google./staticmapcenter等于"+cenx+","+ceny+"&,zoom等于13&,size等于220x190&,maptype等于mobile&,markers等于"+cenx+","+ceny+"&,key等于ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA",
}
}
4.2.2用户发起活动
当用户想要组织旅游活动时,可创建活动召集各地的驴友来参加,如图4.2所示.
图4.2用户发起活动
其中PartnerBLL文件为业务逻辑层,以下为Models层调用业务逻辑层的关键代码:
privatevoidBind()
{
inti等于Convert.ToInt32(Request.QueryString["id"]),
Session["ID"]等于i,
DataList1.DataSource等于PartnerBLL.Bind(i),
DataList1.DataBind(),
DataList2.DataSource等于wordBLL.wordBind(i),
DataList2.DataBind(),
hot.DataSource等于PartnerBLL.HOTBind(),
hot.DataBind(),
if(Request.Cookies["login"]!等于null)
{
this.logout.Style.Add("display","none"),
This.login.Style.Add("display","block"),
stringso等于Request.Cookies["login"].Value.ToString(),
stringst等于usersBLL.GetName(so),
inttt等于usersBLL.GetIDByName(st),
Session["users_Name"]等于st,
Session["users_ID"]等于tt,
name.Text等于Session["users_Name"].ToString(),
}
else
{
this.logout.Style.Add("display","block"),
this.login.Style.Add("display","none"),
}
}
4.2.3用户撰写游记功能
用户在出游归来后可以写游记给其他计划去该景点的旅游参考,同时也给自己一个装载回忆的平台,如图4.3所示:
图4.3用户撰写游记功能
游记功能实现了用户展示,评论互动等需求,关键代码实现如下:
privatevoidBind()
{
inti等于int.Parse(Request.QueryString["id"]),
Session["i"]等于i,
DataList1.DataSource等于GuideBLL.Bind(i),
DataList1.DataBind(),
DataList2.DataSource等于infoBLL.wordBind(i),
DataList2.DataBind(),
stringstr等于GuideBLL.GetUser(i),
Label1.Text等于str,
Label2.Text等于str,
Session["yk"]等于GuideBLL.GetSID(i),
Session["me"]等于GuideBLL.GetUserID(i),
intj等于usersBLL.GetIDByName(str),
Image1.ImageUrl等于usersBLL.GetPhoto(j),
Session["ii"]等于j,
if(Request.Cookies["login"]!等于null)
{
this.logout.Style.Add("display","none"),
this.login.Style.Add("display","block"),
stringso等于Request.Cookies["login"].Value.ToString(),
stringst等于usersBLL.GetName(so),
inttt等于usersBLL.GetIDByName(st),
Session["users_Name"]等于st,
Session["users_ID"]等于tt,
Label3.Text等于Session["users_Name"].ToString(),
}
else
{
this.logout.Style.Add("display","block"),
this.login.Style.Add("display","none"),
}
}
4.2.4景点住宿推荐及天气预报功能简介
出行前的准备,最重要的不外乎是房间的预定和天气预报了,如图4..2.4所示:
图4.2.4景点住宿推荐页面
住宿页面图片展示实现代码如下:
<,divclass等于"photo">,
<,divid等于"wrap"class等于"wrap">,
<,divid等于"page3">,
<,divid等于"photo_content">,
<,divclass等于"container">,
<,divclass等于"switch">,
<,divclass等于"icon1">,
<,aonFocus等于"this.blur(),"title等于"上一个"href等于"jascript:void(0),">,上一个<,/a>,
<,/div>,
<,divid等于"pics"class等于"switch_center">,
<,ul>,
<,asp:DataListID等于"photo"runat等于"server"RepeatDirection等于"Horizontal">,
<,ItemTemplate>,
<,li>,
<,atitle等于""href等于"jascript:void(0),">,
<,asp: