java校院导游程序课程设计.doc

上传人:b****2 文档编号:1648293 上传时间:2022-10-23 格式:DOC 页数:24 大小:2.64MB
下载 相关 举报
java校院导游程序课程设计.doc_第1页
第1页 / 共24页
java校院导游程序课程设计.doc_第2页
第2页 / 共24页
java校院导游程序课程设计.doc_第3页
第3页 / 共24页
java校院导游程序课程设计.doc_第4页
第4页 / 共24页
java校院导游程序课程设计.doc_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

java校院导游程序课程设计.doc

《java校院导游程序课程设计.doc》由会员分享,可在线阅读,更多相关《java校院导游程序课程设计.doc(24页珍藏版)》请在冰豆网上搜索。

java校院导游程序课程设计.doc

《数据结构与算法设计》

课程设计任务书

题目

校园导游程序

学生姓名

黄涛

学号

专业班级

数学1001

【问题描述】

如今的大学校园占地面积广,建筑物繁多,对陌生人在校园很容易迷失方向或不易找到自己的目的地。

为了解决这一问题,我为我校本部校区建立校园导游图,以此给新生和来访客人提供方便快捷的咨询引导服务。

【课程设计目的】

本程序涉及的类容广,涉及:

数据结构(图),java程序设计,UML设计等。

通过该程序能很好的复习以前学过的知识,也能促进对刚学过的图知识进一步加深理解,还能根据需要学习新知识。

提高用知识解决实际问题的综合能力,达到学以致用的目的。

【软件功能】

1.可以浏览我校本部整体的校园平面图。

图中显示所有景点及其道路连通情况。

采用人机交互方式实现图形化界面景点介绍。

2.为来访客人提供任意景点相关信息的查询。

3.为来访客人提供任意景点的问路查询。

【算法思想】

本程序中用到的数据结构:

图。

主要算法:

迪杰斯特拉算法。

ADTGraph{

数据对象V:

景点顶点集

数据关系R:

R={VR}VR={|v,w∈V且P(v,w),表示从v到w的弧,谓词P(v,w)定义了弧的意义或信息}

基本操作P:

CreateGraph(&G,V,VR);初始条件:

V是图的顶点集,VR是图中弧的集合。

操作结果:

按V和VR的定义构造图G。

DestroyGraph(&G);初始条件:

图G存在。

操作结果:

销毁图G。

ShortestPath(&G,v1,v2);初始条件:

图G存在,给定起点v1和终点v2。

操作结果:

返回起点v1和终点v2的最短距离和路径。

}

【提交成果】

1.“《数据结构与算法设计》课程设计任务书”一份,打印装袋;

2.“《数据结构与算法设计》课程设计报告”一份,打印装袋;

3.上面两项内容的word文档,通过电子邮件交到指导教师。

起止时间

2013年6月3日至2013年6月14日

指导教师签名

2013年6月3日

系(教研室)主任签名

2013年6月3日

学生签名

年月日

数据结构与算法设计课程设计

专业:

数学与应用数学班级:

数学1001学号:

姓名:

黄涛完成日期:

2013.06.16指导教师:

1、程序设计说明书

【设计题目】校园导游程序

【问题描述】

如今的大学校园占地面积广,建筑物繁多,对陌生人在校园很容易迷失方向或不易找到自己的目的地。

为了解决这一问题,我为我校本部校区建立校园导游图,以此给新生和来访客人提供方便快捷的咨询引导服务。

【软件功能】

1.能够对校园整体平面示意图进行浏览。

2.能够对全校的主要景点的拓扑图进行一个整体情况的预览查询。

3.能够实现对每个景点详细信息的查询。

4.能够实现景点与景点间最短路线的查询,采用Dijkstra最短路径算法。

【算法思想】

1.为各个功能模块用类封装。

2.采用数据结构有权图的知识来存储各个景点。

3.两个景点之间的最短路径采用Dijkstra算法求最短路径。

即由迪杰斯特拉(Dijkstra)提出的一个按路径长度递增的次序产生最短路径的算法。

该算法的基本思想是:

设置两个顶点的集合S和T=V-S,集合S中存放已找到最短路径的顶点,集合T存放当前还未找到最短路径的顶点。

初始状态时,集合S中只包含源点v0,然后不断从集合T中选取到顶点v0路径长度最短的顶点u加入到集合S中,集合S每加入一个新的顶点u,都要修改顶点v0到集合T中剩余顶点的最短路径长度值,集合T中各顶点新的最短路径长度值为原来的最短路径长度值与顶点u的最短路径长度值加上u到该顶点的路径长度值中的较小值。

此过程不断重复,直到集合T的顶点全部加入到S中为止。

4.本实验中用到的数据结构:

ADTGraph{

数据对象V:

景点顶点集

数据关系R:

R={VR}

VR={|v,w∈V且P(v,w),表示从v到w的弧,

谓词P(v,w)定义了弧的意义或信息}

基本操作P:

CreateGraph(&G,V,VR);

初始条件:

V是图的顶点集,VR是图中弧的集合。

操作结果:

按V和VR的定义构造图G。

DestroyGraph(&G);

初始条件:

图G存在。

操作结果:

销毁图G。

ShortestPath(&G,v1,v2);

初始条件:

图G存在,给定起点v1和终点v2。

操作结果:

返回起点v1和终点v2的最短距离和路径。

}

【类的设计】

1.Jiemian.java

classAll();景点拓扑图界面。

classPlan():

校园平面示意图。

classChaXun():

景点详细信息查询界面。

classLuJing():

单源最短路径查询界面。

publicclassjiemian();主界面。

2.GraphPath.java

classGraphPath()类。

最短路径算法类。

主要成员变量有:

staticintMaxEdges=50;最大边数。

staticintMaxVertices=10;最大顶点数。

staticdoubleMaxValue=9999.9;最大值无。

privatecharVerticesList[]=newchar[MaxVertices];存放顶点的数组。

privatedoubleEdge[][]=newdouble[MaxVertices][MaxVertices];邻接矩阵(存放两个顶点权值)。

privateintCurrentEdges;现有边数。

privateintCurrentVertices;现有顶点数。

publicintpath[]=newint[MaxVertices];存放最短路径上的最后一个经由点。

publicdoubledist[]=newdouble[MaxVertices];存放最短路径的权值。

主要成员方法:

publicGraphPath():

构造函数建立空的邻接矩阵。

publicintFindVertex(charvertex):

查找指定的顶点的序号。

publicbooleanIsGraphEmpty():

判断图是否为空。

publicbooleanIsGraphFull():

判断图是否为满。

publicintNumberOfVertices():

取得顶点数。

publicintNumberOfEdges():

取得边数。

publiccharGetValue(inti):

按序号取得顶点值。

参数为顶点序号。

publicdoubleGetWeight(intv1,intv2):

取得一条边的权值,参数为该边的顶点。

publicintGetFirstNeighbor(intv):

取得第一个邻接点的序号。

publicintInsertVertex(charvertex):

插入一个顶点,参数为顶点数据。

publicbooleanInsertEdge(intv1,intv2,doubleweight):

插入一条边,参数为连接该边的两个顶点及边上的权值。

publicbooleanRemoveVertex(intv):

删除一个顶点。

publicbooleanRemoveEdge(intv1,intv2):

删除一条边,参数为所删除边的两个顶点,既删除v1,v2顶点之间的连接边。

publicvoiddisplay():

打印邻接矩阵。

publicvoidDijkstra(intv0,intvj):

最短路径的ijkstra算法,参数为起点和目的点。

publicvoidPutpath(intv0):

输出Dijkstra算法的结果。

【存储结构设计】

图状结构是一种比树形结构更复杂的非线性结构。

在树状结构中,结点间具有分支层次关系,每一层上的结点只能和上一层中的至多一个结点相关,但可能和下一层的多个结点相关。

而在图状结构中,任意两个结点之间都可能相关,即结点之间的邻接关系可以是任意的。

因此,图状结构被用于描述各种复杂的数据对象,在自然科学、社会科学和人文科学等许多领域有着非常广泛的应用。

数据存储:

采用字符串数组,一维数组,二维数值来存储图中景点及其各边的信息。

1.景点查询图片数组存储:

Stringtu[]={"img/00.png","img/01.png","img/02.png","img/03.png",

"img/04.png","img/05.png","img/06.png","img/07.png",

"img/08.png","img/09.png","img/10.png","img/11.png",};

2.景点查询图片信息数组存储:

StringXX[]={"","西安石油大学校本部南大门,位于西安市电子二路18号!

",

"一号教学楼建于上个世纪,老的教学楼,"+"现在主要用着实验","校本部图书馆,

图书馆藏有大量图书","校本部室内体育馆","利学超市","校本部学生食堂",

"校本部室外体育场地,包括足球场,篮球场,游泳馆和旱冰场等室外运动场地!

","西安石油大学校本部北门,位于西安"+"市电子一路!

","石油大学校医院",

"东门主要机动车出入大门","二号教学楼,与西阶教学楼,西阶会议室,东街教学"+

"楼为一体建筑,建于本世纪初期!

"};

3.最短路径景点图片存储:

StringCXT[]={"","img/01.jpg","img/02.jpg","img/03.jpg","img/04.jpg",

"img/05.jpg","img/06.jpg","img/07.jpg","img/08.jpg",

"img/09.jpg","img/10.jpg","img/11.jpg",};

4.顶点储存:

Stringc[]={"01","02","03","04","05","06","07","08","09","10","11"};5.边的存储:

intv[][]={//弧

{0,1},{0,2},{1,0},{1,2},{1,8},{1,10},{2,0},{2,1},{2,3},

{2,4},{3,2},{3,5},{3,6},{4,2},{4,5},{5,3},{5,4},{5,6},

{5,8},{5,10},{6,3},{6,5},{6,7},{7,6},{8,1}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1