




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)课题基于asp.net技术旅行社管理系统设计与实现学 院电子信息工程学院专业(方向)软件技术班 级软件091学 号姓 名完成日期2011年12月15日指导教师南通职业大学电子信息工程学院论文基于asp.net技术旅行社管理系统设计与实现摘 要随着人们生活水平的提高,在节假日以及平时休闲时,很多人都会选择通过旅游的方式放松自己。为了方便人们提前了解旅游景点的相关详细信息,以及旅游路线的规划,我们开发了南通旅游管理系统,方便来南通旅游的旅客了解南通的景点以及旅游路线的安排,方便旅客做出假日计划。南通旅游管理系统包含了南通各个地区部分的所有旅游景点,存有南通的崇川、通州、启东、如东、海门、海安、如皋景点的详细信息,旅游用户可以根据这些信息了解南通的旅游景点。喜欢南通景点的旅游用户,还可以根据南通的旅行社提供的旅游路线来观光南通风景,这些旅游路线途径很多南通的风景线,如果您喜欢这里的风景,请提交旅游订单,我们将尽心尽力为广大爱好南通风景的旅游客户服务。关键字:旅游,旅游管理系统,南通,web开发,asp开发,c#语言based on asp.net technology travel agency management system design and implementationabstractas peoples living standards improve, usually on holidays and leisure time, many people will choose to travel the way to relax. in order to facilitate people to advance understanding of tourist attractions, relevant information, and travel route planning, we have developed a nantong tourism management system to help visitors to understand the nantong nantong tourist attractions and travel routes arrangement, convenient for tourists to make holiday plans .nantong tourism management system includes all parts of the various regions of nantong tourist attractions, there chongchuan nantong, tongzhou, qidong, rudong, haimen, haian, rugao attractions details, travel information about the user can nantong tourist attractions. nantong tourist attractions like the users, travel agents can also provide nantong tourist route to the scenic tourist nantong, nantong these tours a lot of ways the landscape, if you like the scenery here, please submit travel orders, we will dedicate to loving nantong scenic tourist customers.keywords:travel,travelmanagesystem,nantong,web,asp,c#目录摘 要2abstract3一、需求分析31.概述32.功能分析3二、 数据库设计31.数据库关系图32.数据库表描述(数据字典)3三、项目及功能模块31.项目介绍32.采用技术33.普通用户功能模块34.系统管理员功能模块35.其他功能模块3四、用户说明书31.普通用户操作说明32.管理员操作说明3致谢3参考文献3一、需求分析1. 概述1.1项目名称: 南通旅游社管理系统1.2开发背景:随着人们生活水平的提高,在节假日以及平时休闲时,很多人都会选择通过旅游的方式放松自己。为了方便人们提前了解旅游景点的相关详细信息,以及旅游路线的规划,我们开发了南通旅游社管理系统,方便来南通旅游的旅客了解南通的景点以及旅游路线的安排,方便旅客做出假日计划。2. 功能分析南通旅游社管理系统主要包括系统管理员对功能的需求、旅游可过户对功能的需求,这两种用户对系统的需求功能如下:2.1系统管理员对功能的需求1)旅游景点信息管理:对旅行社一些重要景点的信息进行维护。2)旅游线路信息管理:对旅行社的线路、日程安排信息的维护。3)旅游订单信息管理:对旅游客户的行程订单的维护。4)新闻信息管理:对旅行社的一些新闻信息进行维护。2.2旅游客户对功能的需求1)景点信息浏览:可浏览已经添加的景点信息。2)旅游线路、日程安排查询:可查询旅行社不同日程的旅行规划信息。3)查看旅行社新闻信息:可查看新闻信息。4)提交旅游订单:填写旅游订单信息,提交给旅行社。二、 数据库设计1. 数据库关系图图2-1 数据库关系图2. 数据库表描述(数据字典)表2.1indentinfo字段数据类型说明idint自增id(主键)identidnchar(50)订单ididentcreaternchar(20)订单创建者(userinfo表的外键)spotswayidint景点路线id(spotswayinfo表外键)indentcreatetimedatetime订单创建时间peoplecountint订单订购人数godatedate出发日期isdealint是否已处理状态(isdeal表外键)indentstateidint订单状态(indentstate表外键)表2-2isdeal字段数据类型说明isdealidint是否处理id(主键)isdealtypenchar(10)是否处理状态2-3indentstate字段数据类型说明indentstateidint订单处理状态id(主键)indentstatetypenchar(20)订单处理类型reasonnchar(100)订单处理原因2-4spotswayinfo字段数据类型说明spotswayidint路线id(主键)spotswaytitlenchar(50)旅游路线标题spotswaydescriptionnvarchar(max)旅游路线描述spotswaymaxpeoplecountint旅游路线人数spotswaystarttimenvarchar(50)旅游路线开始时间描述spotswayendtimenvarchar(50)旅游路线结束时间描述surpluscountint旅游路线可订购人数moneyint旅游路线价格outmoneyint旅游路线打折后价格spotswayimgnamenchar(50)旅游路线图片名称companyidint旅游社id(company外键)2-5company字段数据类型说明companyidint旅游社id(主键)companynamenchar(20)旅游社名称companyaddressnchar(50)旅行社地址companyphonenumberint旅行社电话2-6spotswayconspots字段数据类型说明idint自增id(主键)spotswayidint旅行路线id(spotswayinfo外键)containspotsnchar(100)旅行路线包含的景点id2-7newsinfo字段数据类型说明newsidint新闻id(主键)newstitlenchar(50)新闻标题newscontentnvarchar(max)新闻内容newsimgnamenchar(20)新闻图片名字newscreatetimedatetime新闻创建时间2-8scenicspots字段数据类型说明spotsidint景点id(主键)moneytypenchar(100)价格类型moneyint价格spotsnamenchar(50)景点名字spotsshortnamenchar(50)景点简称spotsdescriptionnvarchar(max)景点描述spotsimgnamenchar(50)景点图片名字spotsblongint景点归属地区(spotsblongadd外键)spotsjiaotnchar(100)景点交通情况spotswaytypeidint景点类型id(spotstypeinfo外键)addressnchar(50)景点地址phonenumbernchar(50)景点电话号码说明opentimenchar(50)景点开放时间2-9spotsbelongadd字段数据类型说明spotsblongint归属县id(主键)spotsaddressnchar(50)县名字2-10spotstypeinfo字段数据类型说明spotswaytypeidint景点类型id(主键)spotswaytypenamenchar(10)景点类型名称2-11userinfo字段数据类型说明useridint用户id 自增(主键)usernamenchar(20)用户名usersexint用户性别userageint用户年龄phonenumbernumeric(18, 0)电话号码emailnchar(30)电子邮件passwordnchar(30)密码roleint用户角色(roleinfo表外键)userstateidint用户状态(userstate表外键)2-12usersexinfo字段数据类型说明usersexidint用户性别id 自增(主键)usersexnamenchar(10)用户性别名称(男女)2-13userstate字段数据类型说明userstateidint用户状态id 自增(主键)userstatetypenchar(10)用户状态2-14roleinfo字段数据类型说明roleidint用户角色id 自增(主键)rolenamenchar(20)用户角色名称三、项目及功能模块1. 项目介绍设计南通旅游管理系统我们采用了多层架构来搭建系统构架,这样便于代码的分别管理和书写,分工明确,主要有表现层、业务逻辑层(bll)、数据访问层(dal)、以及封装对象的model层。图3-1项目架构2. 采用技术在对南通旅游管理系统的开发过程中,我们主要用到了以下几个功能:1) 表示层:主要采用css+div+javascript技术进行排版和效果实现,采用c#语言、web service .net开发此系统2) 业务逻辑层:只是处理了逻辑和对表示层、数据访问层的传递3) 数据访问层:采用了手写sql语句进行数据库访问3. 普通用户功能模块1) 旅游景点浏览根据旅游景点的实际情况,我们对旅游景点进行了两种分类,一种是按照地区分类,另一种是按照旅游景点类型进行分类:按照旅游地区划分,主要分为七个地区:崇川、如东、海门、海安、通州、启东、如皋。旅游客户可以按照地区分类查看各个地区内的旅游景点,点击景点名称或图片即可查看详细信息。按照旅游景点类型划分,主要分为七种:城市、海景、公园、山景、历史、博物馆、综合。旅游客户可以按照景点类型进行查看不同类型的景点,点击景点名称或图片即可查看详细信息。景点列表我们采用datalist空间绑定从后台获取来的数据,从而显示景点的图片和名称,并对景点图片和名称添加了链接,点击可以查看景点的详细信息:地址,门票,开放时间,咨询电话,交通概况,景点类型,景点描述。 页面加载时的代码判断:if (!ispostback) getspotswaytype(); getspotsblong();try /判断是否存在lvyouid(景点地区id),如果有则datalist获取相应数据 if (request.querystringlvyouid != null) label2.text = (page + 1).tostring(); getscenicspotsbyspotsid(request.querystringlvyouid.tostring(), page); /根据id绑定数据 getlistcount(where spotsblong= + request.querystringlvyouid.tostring() + );/获取景点条数并得到页数; else /判断是否存在jdtypeid(景点类型id),如果有则datalist获取相应数据 if (request.querystringjdtypeid != null) label2.text = (page + 1).tostring();getscenicspotsbyspotswaytypeid(request.querystringjdtypeid.tostring(), page); /根据id绑定数据getlistcount(where spotswaytypeid= + request.querystringjdtypeid.tostring() + )/获取景点条数并得到页数; else /没有id传来则获取前十条景点信息 label2.text = (page + 1).tostring();/显示当前页 getscenicspotstopten(page); /绑定数据,page为已定义的int静变量 getlistcount(); catch (exception ex) scriptmanager.registerclientscriptblock(this, typeof(button), tishi, alert( + ex + );, true); 游景点页面加载代码此段代码根据判断是否传来景点地区id或景点类型id来绑定datalist数据,并分页。同样,在选择页码跳页查看景点的时候也是如此判断,在此并不细说。下面是根据地区查询相应景点的数据库访问代码:/ / 根据归属地查询相应的景点 / / 归属地id / list public list getscenicspotsbyspotsid(string id, int page) list scenicspotslist = new list(); string sql = select top 10 spotsid,spotsname,spotsimgname,moneytype from scenicspots where spotsblong= + id + and spotsid not in (select top ( + page + *10) spotsid from scenicspots where spotsblong= + id + order by spotsid desc) order by spotsid desc; datatable dt = dataaccess.getdatatable(sql); foreach (datarow dr in dt.rows) scenicspots scenicspots = new scenicspots(); scenicspots.spotsid = convert.toint32(drspotsid.tostring().trim(); scenicspots.spotsname = drspotsname.tostring().trim(); if (drspotsimgname.tostring().trim() = string.empty) scenicspots.spotsimgname = wutupian.jpg; else scenicspots.spotsimgname = drspotsimgname.tostring().trim(); scenicspots.moneytype = drmoneytype.tostring().trim(); scenicspotslist.add(scenicspots); return scenicspotslist; 根据归属地查询相应的景点查看景点详细信息页面的load代码:if (!ispostback) try if (request.querystringspotsid != null) /判断是否有景点id传来 getscenicspotinfobyspotsid(request.querystringspotsid.tostring();/根据景点id联表查询景点信息 else /在此写提示信息,并跳转页面 response.write(alert(请选择景点再查看!);history.back(); catch (exception ex) response.write(alert( + ex + );history.back(); /根据景点id联表查询景点信息void getscenicspotinfobyspotsid(string id) datalistspotsinfo.datasource =scenicspotsmng.getscenicspotinfobyspotsid(id); datalistspotsinfo.databind(); 旅游景点详细信息页面加载代码2) 旅游路线浏览根据新的旅游路线,分页显示旅游路线,每页显示十条路线,每条路线显示路线的图片,路线标题,旅行社名称,旅行社号码,旅行社地址,旅游票价和旅游打折后票价。从数据库获取数据代码如下:/ / 获取前十个旅游路线的部分信息 / / list public list getspotswaytoptenlistmessage(int page) list spotswayinfolist = new list(); string sql = select top 10 spotswayid,spotswaytitle,money,companyname,spotswayimgname,companyaddress,companyphonenumber,outmoney from spotswayinfo inner join company on spotswayipanyid=cpanyid and spotswayid not in (select top ( + page + *10) spotswayid from spotswayinfo); sqldatareader sr = dataaccess.executequery(sql); while (sr.read() spotswayinfo swi = new spotswayinfo(); companyinfo companyinfo = new companyinfo(); swi.spotswayid = convert.toint32(srspotswayid.tostring(); if (srspotswaytitle.tostring().length 25) /控制旅游标题长度 swi.spotswaytitle = srspotswaytitle.tostring().substring(0, 25).trim(); else swi.spotswaytitle = srspotswaytitle.tostring().trim(); swi.money = convert.toint32(srmoney.tostring().trim(); swi.outmoney = convert.toint32(sroutmoney.tostring().trim(); if (srspotswayimgname.tostring() = string.empty) /判断是否有图片,无图片则显示“wutupian.jpg” swi.spotswayimgname = wutupian.jpg; else swi.spotswayimgname = srspotswayimgname.tostring(); companyinfo.companyname = srcompanyname.tostring().trim(); companyinfo.companyaddress = srcompanyaddress.tostring().trim(); companyinfo.companyphonenumber = convert.toint32(srcompanyphonenumber.tostring().trim(); swi.companyinfo = companyinfo; spotswayinfolist.add(swi); return spotswayinfolist; 获取前十个旅游路线的部分信息当点击路线标题或图片时,页面跳转到旅游路线详细信息,并显示旅游路线包含的景点信息,点击可以查看景点的详细信息,其获取代码为: spotswaymanage spotswaymng = new spotswaymanage(); protected void page_load(object sender, eventargs e) if (!ispostback) try if (request.querystringspotswayid != null) getspotswayallmessagebyspotswayid(request.querystringspotswayid.tostring(); else response.write(alert(请选择路线); catch (exception ex) response.write(alert( + ex + ); /根据旅游路线id查询旅游路线详细信息 void getspotswayallmessagebyspotswayid(string id) list spotswayinfo = spotswaymng.getspotswayallmessagebyspotswayid(id);/获取路线详细信息 if (spotswayinfo.count != 0)/判断详细信息条数是否为0 datalistspotswaymessage.datasource = spotswayinfo; datalistspotswaymessage.databind();/绑定datalistspotswaymessage数据 try foreach (spotswayinfo swi in spotswayinfo)/遍历spotswayinfo string info = swi.spotswayconspots.containspots;/获取路线包含景点的id,并赋给info if (info.trim() = string.empty) else string sum = regex.split(info, , regexoptions.ignorecase);/将info中逗号间隔去掉并放进sun集合里 list sd = new list(); foreach (string me in sum)/遍历sum集合 scenicspots scenicspots = scenicspotsmng.getspotsinfo(me);/根据遍历的景点id分条获取景点信息 sd.add(scenicspots);/将遍历并获取的景点信息放入sd list集合中 datalistcontainspots.datasource = sd; datalistcontainspots.databind();/绑定datalistcontainspots数据集 catch scriptmanager.registerclientscriptblock(this, typeof(button), tishi, alert(网站异常,请等待维护!);, true); else scriptmanager.registerclientscriptblock(this, typeof(button), tishi, alert(操作不合法!);, true); 旅游路线详情页面加载代码3) 旅游景点、路线搜索旅游景点和旅游路线的搜索是分为两部分:a. 旅游景点搜索旅游景点搜索分为景点名称搜索、景点归属地搜索、景点类型搜索。选择按景点名称搜索没有级联选项,选择按景点归属搜索和按景点类型搜索会级联显示相应的地区名称和景点类型名称,然后可以在搜索框中模糊搜索关键字。景点查询的代码如下:(点击搜索就调用下面的代码) void pagelistspots() int j = 0; if (dropdownlistspots.selectedvalue.trim() = 景点名称) spotspage = 0; getspotssearchbyblong(, spotspage);/getspotssearchbyblong为查询数据方法 j = scenicspotsmng.selectblongcount(, textboxspots.text.trim();/selectblongcount为获取景点条数 else if (dropdownlistspots.selectedvalue.trim() = 景点归属) spotspage = 0; getspotssearchbyblong(spotsaddress= + dropdownlisttype.selectedvalue.trim() + and, spotspage); j = scenicspotsmng.selectblongcount(spotsaddress= + dropdownlisttype.selectedvalue.trim() + and, textboxspots.text.trim(); else spotspage = 0; getspotssearchbytypeid(spotspage); j = scenicspotsmng.selectwaytypecount(dropdownlisttype.selectedvalue.trim(), textboxspots.text.trim(); /按照条数进行分页 if (j % 10 = 0) label1.text = (j / 10).tostring(); else label1.text = (j / 10 + 1).tostring(); /判断当前页 if (label1.text = 0) label2.text = 0; else label2.text = (spotspage + 1).tostring(); /点击搜索按钮 protected void buttonsearchspots_click(object sender, eventargs e) pagelistspots(); 景点查询代码b. 旅游路线搜索搜索可以按照路线名称、费用以内(即旅游路线价格小于你输入的价格)、包含景点。按照路线名称搜索可以按照输入的关键字模糊查询旅游路线标题,按照价格查询可以查询旅游路线用费小于你输入价格的路线,按照包含景点查询必须输入完整的景点名称,可以查询到包含这个景点的所有路线。旅游路线的搜索代码和景点搜索代码雷同,便不写出来。4) 旅游新闻浏览旅游新闻功能较为简单,用户点击旅游新闻可以浏览旅游新闻,每页十条,每条新闻显示新闻标题和新闻发布日期。点击新闻标题可以查看新闻内容。由于新闻功能模块较为简单,便不细说代码。5) 旅游订单查看并处理用户订单功能模块采用了购物模式的订单处理功能。当用户订购一个旅游路线的名额,便产生订单,订单编号是根据用户名和订购的日期来产生,代码如下: indentinfomanage indentinfomng = new indentinfomanage(); indentinfo indentinfo = new indentinfo(); indentinfo.indentid = sessionusername.tostring() + datetime.now.tostring(yyyymmddhhmmss);/随机产生订单编号 indentinfo.indentcreater = sessionusername.tostring(); indentinfo.indentcreatetime = datetime.now; indentinfo.godate = convert.todatetime(textboxgodate); indentinfo.peoplecount = convert.toint32(textboxpeoplecount); indentinfo.spotswayid = spotswayid; int i = indentinfomng.insertintentdinfo(indentinfo); if (i = 2) scriptmanager.registerclientscriptblock(this, typeof(button), tishi, alert(预订成功!我们会在24小时内帮您处理!)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物资储备仓库信息技术模拟题与答案详解
- 2025年护士执业资格考试模拟题集及考点解析
- 2025年电子商务行业招聘面试题解析
- 2025年玻璃熔化工中级面试题预测与解析
- 2025年特岗教师招聘面试初中数学备考攻略及模拟题解析
- 2025年英语翻译硕士考试模拟试题及解析
- 2025年政府机关公开招聘工作人员考试模拟试题及答题策略
- 2025年大数据分析师高级技能测评试题集
- 2025年物流管理专业面试技巧与常见问题解答
- 甲骨文文字演变
- 预防残疾知识讲座课件
- 浪漫七夕领证活动方案
- 大型活动策划组织与执行合同
- 培训机构教师如何做续费转介绍
- 基底节区出血护理查房
- EPP发泡聚丙烯项目可行性研究报告参考范文
- CVC的护理及常见并发症
- WMT8-2022二手乘用车出口质量要求
- 三人公司财务管理制度
- 2024年安徽师范大学辅导员考试真题
- 2025-2030中国采盐行业市场全景调研及投资价值评估咨询报告
评论
0/150
提交评论