旅游管理系统(包含旅游最短路径规划算法等,包含系统分析
的各种uml图和界⾯图)
1.1问题定义
本次课程的设计题⽬是设计⼀个⼤型景区的管理系统,此系统是为了便于景区的管理以及提升游客的旅游体验,更好的适应现如今⽇益发展的旅游业。
1.2问题分析
现有某景区需要开发⼀个景区信息管理系统,具体需求有:建⽴⼀个主程序应⽤菜单选项,⽅便⽤户操作和选择需要使⽤的功能。为了能够适应不同景区的需求,系统需要能够创建景点分布图和输出景点分布图,对于创建,可以逐条添加景点信息和路径信息;对于输出,需要输出景点分布图的邻接矩阵。⽽且,系统需要能够制订旅游景点导游线路策略,以便于游客游览所有景点,即给出⼀个⼊⼝景点,⽣成⼀个导游线路图;但是导游路线图中可能含有回路,所以为了使导游线路图能够优化,需要判断图中有⽆回路,若有回路,则打印输出回路中的景点。同时,在导游线路图中,还需要为⼀些不愿按线路⾛的游客提供信息服务,⽐如从⼀个景点到另⼀个特定的景点。所以两个景点之间的最短路径和最短距离就变得很重要了,系统需要提供输出两个景点间的最短路径和最短距离的功能。此外,在景区建设中,道
路建设是其中⼀个重要内容,道路建设⾸先要保证能连通所有景点,但⼜要花最⼩的代价,修建道路的代价与它的⾥程相关。系统同样需要提供景点搜索和景点排序的功能,游客通过输⼊关键字来了解相关景点以便计划好游览地点和顺序;⽽景点排序可以通过景点的欢迎度或景点的⼈流量来排序,让游客对各个景点有个直观的感受。最后,景区中还有固定容量的停车场,系统需要对到达车辆和离开车辆进⾏管理;当车辆到达时,如果停车场中还有剩余位置,则直接进⼊并开始计时,否则在候车道等待;当车辆离开时,在它之后进⼊的车辆必须先退出车场为它让路,待该辆车开出⼤门外,其它车辆再按原次序进⼊车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费⽤。本系统⾯向管理员和游客,所以可以分为管理员功能和游客功能。
1.3研究意义
随着科学技术的发展,⼈民⽣活⽔平的提⾼以及我国休假制度的完善,外出旅游成为了越来越多的⼈民度假的选择。在这般背景前提下,造成了旅游景区在⾼峰期部分景点⼈流过⼤导致拥堵,从⽽影响景区形象和游客旅游体验。从根本上说,这往往是因为景区服务不够细致,管理不够科学,效率不⾼所造成的。另⼀⽅⾯,游客⼈数的急剧增长所带来的安全问题也⽇益凸显起来。系统化、电⼦化、⽹络化、智能化的景区管理系统也成为了⽇益迫切的需求,本项⽬就是在这样的背景下提出的。针对此问题,所以研究和开发⾼质量、⾼性能的景区信息管理系统变得尤为重要,可以提⾼景区的管理⽔平,解放了繁重的体⼒劳动和脑⼒劳动,极⼤的改善了⽤户服务的质量,提⾼了景区的信誉。
第⼆章 系统设计
2.1总体设计
2.1.1设计思想
系统采⽤前后端结合的⽅式,后端采⽤servlet运⾏核⼼算法,前端使⽤⽹页进⾏结果动态展⽰,通信格式为JSON。整个系统的架构图如下
图所⽰:
转存失败
<1> 管理员功能:
(1)登录:管理员使⽤账户密码登录。
(2)公告发布:设计发布公告时将内容写⼊⼀个⽂本⽂件,在游客登录或管理员登录时读取这个⽂本⽂件并显⽰在界⾯上。
(3)管理景点:景点信息的增加,删除和修改的功能。
(4)管理道路:实现道路的插⼊和删除的功能。
(5)输出停车场信息:显⽰停车场信息,包括等待车辆,停车场空位。
<2> 游客功能:
(1)景点查询和排序:可以根据⾃⼰的需求对景区进⾏各种信息查询并对景点进⾏⼀定顺序上的排序。
(2)景点最短路径:系统还应能够根据游客输⼊的两个景点的名称来输出两地之间的最短路径和最短距离。
(3)输出导游路线图:系统还能为游客输出导游路线图。
2.1.2数据结构
图的存储结构
public class ALGraph {
private int arcNum; //景点数量
private int vetNum; //路的数量
private List<ArcNode> nodes; //存储景点的list
···
}
景点结点
public class ArcNode {
private String name; //景点名称
private String des; //景点描述
private int pop; //景点欢迎度
private boolean hasRest; //有⽆休息区
private boolean hasToilet; //有⽆公厕
private VNode first; //景点的第⼀条边
旅游网站的设计与制作html···
}
边结点
public class VNode {
private int index; //另⼀个景点在景点数组中的位置private int dist; //两个景点的距离
private int time; //所需时间
private VNode next; //与头结点相连的下⼀条边···
}
汽车
public class Car {
private String number; //汽车车号
private Date ar_time; //汽车到达时间
···
}
栈
public class Stack<T> {
private T[] mArray;
private int size;
public void push(T val){
···
}
public void pop(){
···
}
public T peek(){
···
}
}
队列
public class Queue {
private CarNode phead; //汽车结点的链表头private int size; //队列的元素个数
public void add(Car car){
···
}
public void pop(){
···
}
public CarNode front(){
···
}
}
2.1.3⽤户界⾯
转存失败
转存失败
转存失败
转存失败
转存失败
转存失败
2.2程序设计
2.2.1类图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论