当前位置:文档之家› 数据结构课程设计报告校园导游系统附有源代码

数据结构课程设计报告校园导游系统附有源代码

数据结构课程设计报告校园导游系统附有源代码
数据结构课程设计报告校园导游系统附有源代码

数据结构课程设计报告校园导游系统附有源代码

课程论文(设计) - 年第2学期

课程名称:数据结构课程设计课程性质:实践课

专业班级:

考核方式:考查

学生姓名:

学号:

学时:1周

教师姓名:

文档仅供参考,不当之处,请联系改正。

目录

1. 作业内容 (1)

2. 基本思路 (1)

2.1 本校10个景点 (1)

2.2 图的初始化 (2)

2.3 图的遍历 (2)

2.4 求最短路径 (3)

3.系统流程 (4)

3.1 系统的简单说明 (4)

3.2 系统流程图 (5)

4. 系统运行效果图 (5)

4.1 校园导游界面 (5)

4.2 华农校园地图 (6)

4.3 景点的相关信息查询 (6)

4.4 任意两个景点间的最短路径···························

(7)

4.5 退出校园导游系

统 (8)

5.总结·······················································

···9

6.参考文献 (10)

1. 作业内容

设计一个校园导游程序,为来访客人提供各种信息查询任务。基本要求:

(1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介信息,以边表示路权,存放路径长度等相关信息。

(2)为来访客人提供图中任意景点相关信息的查询

(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

2. 基本思路

要完成对整个导游图系统的功能实现,需要正确每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确而且高效的算法把问题逐个解决,最终实现程序的正确调试运行。有以下设计思路:

(1).结合本校的实际情况,选出10个景点;

(2).人为手工为选出的10个景点赋上相关信息(名称、代号、简介信息、以及路权等等);

(3).根据选出来的10个景点用邻接矩阵存储校园图。

(4).依照景点的相关信息创立校园图。

(5).把纸质上的内容,利用C++编程语言编写查找景点相关信息的程序。

(6).根据人为赋值的路权,迪杰斯特拉算法计算任意两点之

间的最短路径。

(7).综上所诉,用一个主函数把这些板块合成,生产一个

菜单界面呈现在用户面前。

为此,可把系统分为以下几个核心:图的初始化、图的遍历、求最佳路线。

2.1 选出本校10个景点

结合华南农业大学实际情况,我选出以下10个景点,从1到10

编号:

编号名称编号名称编号名称编号名称1 校史馆 2 红满堂 3 行政楼 4 西园5 东区运动场 6 树木园7 竹园8 新校门9 老校门10 黑山运动场

2.2 图的初始化

由于邻接矩阵特殊的存储方式,它非常便于快速的查找两个

顶点之间的边上的权值。因此,图采用带权的邻接矩阵存储。

决定了图的存储方式后,以华南农业大学10个景点的游览地

图作为蓝本,把校园地图抽象化成顶点与边构成的图形式,如图2.2所示,途中数字代表线的权值。

2.3 图的遍历

图的遍历是图中最基本的操作。图的遍历是指从图中某一顶点出发,对图中所有顶点访问一次且仅访问一次。导游图需要把每条路径的信息都向游客展示,就需要读取每两个顶点间的路径信息。由于采用了带权的邻接矩阵存储结构进行存储,因此需要针对这一存储结构对路线进行遍历操作。其遍历算法如图 2.3所示。

图2.3 遍历算法示意图

2.4 求最短路径

基于本程序中图的存储是邻接矩阵结构存储的图结构,因而采用适合该存储结构的迪杰斯特拉算法用于解决求最短路径的问题。

迪杰斯特拉提出了一个按路径长度递增的持续产生最短路径的算法,其基本思想是:设置一个集合S存放已经找到最短路径的顶点,S的初始状态只包含源点v,对于v i∈V-S,假设从源点v到v i的有向边为最短路径。以后每求得一条最短路径v,…,v k,就

将v k加入集合S中,并将路径v,…,v k,v i,与原来的假设相比较,取路径长度较小者为最短路径。重复上述过程,直到集合V 中全部顶点加入到集合S中。如图2.4所示。

图2.4 图的遍历算法执行效果示意图

辅助数组dist[n]:元素dist[i]表示当前找到的从源点到终点v i 的最短路径的长度。初态为:若从v到v i有弧,则dist[i]为弧上的权值;否则置dist[i]为∞。若当前求得的终点为v k,则根据下式进行迭代:

dist[i]=min{dist[i],dist[k]+arc[k][i]} 1≦i≦n

辅助数组path[n]:元素path[i]是一个串,表示当前所找到的从源点到终点v i的最短路径。初态为:若从v到v i有弧,则path[i]为“vv k”,否则置path[i]为空串。

数组s[n]:存放源点和已经生成的终点(即集合S),初态为只有一个源点v。

算法的伪代码描述是:

1.初始化数组dist、path和s;

2.while(s中的元素个数

2.1 在dist[n]中求最小值,其下标为k(则v k为正在生成的终点);

2.2 输出dist[j]和path[j];

2.3 修改数组dist和path;

2.4 将顶点v k添加到数组s中;

3.系统流程

3.1 系统的简单说明

1.创立校园图:

(1)先手工画好华农的10个景点的草图,再用C++语言输出抽象化的校园地图。

(2)再用C++语言定义节点个数N,编写函数name( )为景点赋值各类信息项,函数information( ),输入各个景点的简介。

(3)读入道路的起始点,为邻接矩阵的边赋相应的值。

2.利用函数travgraph来查找景点信息。

3.创立一个校园图creat(Matrix_Graph *G),然后为相应的边赋上现实意义上的权值。

4.用path( )函数来求任意两景点之间的最短路径。

5.如果不查询则调用exit( )函数退出。

5.用main函数来输出导游界面。

3.2 系统流程图

开始输入1

4.系统运行效果图 4.1 校园导游界面

程序运行,后台对图结构进行初始化,运行结果如图4.1。

图4.1 校园导游节目图

Main 函数

界面菜单

输出华农地

调用查询景点函

是否再次查询?

调用查询最短距YES

NO

是否再次查

YES NO

输入2

输入3 调用函数输入4

结束

返 回 界 面 菜

4.2 华农校园地图

校园地图的查看是经过抽象化10个景点来用printf( )函数输出地图,在输入选择1之后弹出的界面,运行结果如图4.2。

图4.2 抽象化的华南农业大学校园导游地图

4.3 景点的相关信息查询

景点的相关信息查询是经过information( )函数来调用输出的,在主菜单那输入2之后,拿第2个景点红满堂和第7个景点竹园来当例子,第运行结果如图4.3.1和图4.3.2。

图4.3.1 景点2红满堂信息查询

图4.3.2 景点7竹园信息查询

4.4 任意两个景点间的最短路径

根据用户的需求,在用户输入了起点和终点后计算出最短路径是哪一条路径。以下举两个例子。第一个例子的起点是5东区运动场,终点是1校史馆。第二个例子的起点是2红满堂,终点是10黑山运动场。运行结果如图4.4.1和图4.4.2所示。

图4.4.1 从东区运动场到校史馆的最短路径

图4.4.2 从红满堂到黑山运动场的最短路径根据截图可知,在现实生活中的最短路径也是如此。证明了程序的正确性。

4.5 退出校园导游系统

用户满足了需求之后,只要在界面菜单处输入4便可退出此次校园导游系统。运行结果如图4.5。

图4.5 退出校园导游系统

5.总结

由于设计者水平有限,本导游图系统的功能还比较简单,还有一些好的设想没有实现:比如添加管理模式,使得公园管理人员能够同样方便的更改导游图,因此更改这一导游图还必须在程序员的帮助下进行。另外,本导游图系统还有一定的局限性,如果存在只有一条通路的景点,导游图将无法求得最佳旅游路径。公园的导游图系统的这些不足请老师多多谅解。经过这次的课程设计左右,让我对数据结构中定义无向图和创立无向图的理解更加深刻,不断提升认识,提高编程技巧,借以不断地提高程序设计水平,了解数据结构在编写比较复杂的程序的重要作用;理解了迪杰斯特拉算法的原理,但对于其算法的程序编写还是不太明白;学会了在编写几百行程序时如何查找错误,如何改错误等等。

总而言之,这次的课程设计很好地锻炼自己实际操作能力!

参考文献

[1]严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社.1997.

[2]李春葆,尹为民,李蓉蓉.数据结构教程(第3版)上机实验指导.清华大学出版社. .

[3]滕国文.数据结构课程设计.清华大学出版社. .218-223.

[4]蒋盛益.数据结构学习指导与训练.中国水利水电出版社. .

//程序名称:校园导游系统//程序员:

//编写时间: 6月

#define N 10

#define MAX 25

#define MAXedg 30

#include

#include

#include

#include

void clrscr()

{

system("cls");

}

typedef int AdjMatrix[MAX][MAX];

typedef struct

{

int vexs[MAX];

AdjMatrix arcs;

}Matrix_Graph;

typedef struct

{

char name[10];

char information[100];

struct edgenode *link; }vexnode;

校园导游系统程序课程设计报告

1、需求分析 设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。 (1).设计工商学院校园无向图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2).为来访客人提供图中任意景点相关信息的查询。 (3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2、设计思路 校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。

3 算法设计 3.1 概要设计 3.1.1程序中包含的模块 (1)主程序模块 主函数:void main(void) void cmd(void) cmd修改显示框大小,字体背景颜色,初始化景点,景点信息打印菜单, MGraph InitGraph(void); //初始化图。 MGraph * CreatUDN(MGraph *G);//初始化图形接受用户输入 void Menu(void);//菜单函数 void Browser(MGraph *G);//浏览函数 void ShortestPath_DIJ(MGraph *G); void Floyd(MGraph *G);//查询图中任意两个景点间的所有路径 void Search(MGraph *G);//查找函数 int LocateVex(MGraph *G,char*v); // 迪杰斯特拉算法计算起点各顶点间短路径, void print(MGraph *G);//输出函数 (2)查询模块 景点信息查询:void introduce() 最短路径查询:要查找的两景点的最短距离:用floyd算法求两

数据结构课程设计报告(校园导游系统)附有源代码

课程论文(设计)2011-2012学年第2学期 课程名称:数据结构课程设计 课程性质:实践课 专业班级: 考核方式:考查 学生姓名: 学号: 学时:1周 教师姓名:

目录 1. 作业内容 (1) 2. 基本思路 (1) 2.1 本校10个景点 (1) 2.2 图的初始化 (2) 2.3 图的遍历 (2) 2.4 求最短路径 (3) 3.系统流程 (4) 3.1 系统的简单说明 (4) 3.2 系统流程图 (5) 4. 系统运行效果图 (5) 4.1 校园导游界面 (5) 4.2 华农校园地图 (6) 4.3 景点的相关信息查询 (6) 4.4 任意两个景点间的最短路径 (7) 4.5 退出校园导游系统 (8) 5.总结 (9) 6.参考文献 (10)

1. 作业内容 设计一个校园导游程序,为来访客人提供各种信息查询任务。基本要求: (1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介信息,以边表示路权,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2. 基本思路 要完成对整个导游图系统的功能实现,需要对的每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行。有以下设计思路: (1).结合本校的实际情况,选出10个景点; (2).人为手工为选出的10个景点赋上相关信息(名称、代号、简介信息、以及路权等等); (3).根据选出来的10个景点用邻接矩阵存储校园图。 (4).依照景点的相关信息创建校园图。 (5).把纸质上的内容,利用C++编程语言编写查找景点相关信息的程序。 (6).根据人为赋值的路权,迪杰斯特拉算法计算任意两点之间的最短路径。 (7).综上所诉,用一个主函数把这些板块合成,生产一个菜单界面呈现在用户面前。 为此,可把系统分为以下几个核心:图的初始化、图的遍历、求最佳路线。 2.1 选出本校10个景点 结合华南农业大学实际情况,我选出以下10个景点,从1到10编号:

校园导游咨询程序设计报告

数据结构课程设计 设计题目:校园导游咨询 学院:信息学院 班级:计算机1008班 姓名: 学号: 20101221180 日期: 2012 年 3 月

校园导航问题 [问题描述] 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 [基本要求] (1)设计所在学校的校园平面图,所含景点不少于十个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个顶点之间的一条最短的简单路径。 (4)校园导游图的景点和道路的修改扩充功能。 (5)扩充道路信息,如道路类别(车道、人行道),以致可按客人所需分别查询人行路径或车行路径。 (6)扩充每个景点的林洁景点的方向等信息,使得路径查询结果能提供详尽的导向信息。 (7)实现校园导游的仿真界面。

一、概要设计 (4) 二、详细设计 (6) 三、调试分析 (12) 四、调用关系 (12) 五、用户操作指南 (13)

[测试数据] 一、概要设计 1. 数据类型 #define V_MAX 20 #define E_MAX 200 typedef struct { char name[10];//名字 //char code[10];//代码 char info[20];//信息,简介 int x,y;//坐标 }VType;//顶点类型 typedef struct { int live;//标记是否存在,如果被删除则为0,存在为1 char name[10];// 路名 int length;//路的长度

校园导游系统设计与实现

校园导游系统设计与实现

目录 1.设计要求 2.1需求分析 2.2概要设计 2.3各个模块名称和功能 2.4 系统导游主界面 2.4.1前台系统 2.4.2后台系统 2.4.3退出系统 3实验总结 参考文献 附件

1.设计要求 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 2.1需求分析 ⑴设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于30 个。以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 ⑵存放景点代号、名称、简介等信息供用户查询。 ⑶为来访客人提供图中任意景点相关信息的查询。 ⑷为来访客人提供图中任意景点之间的问路查询。 ⑸可以为校园平面图增加或删除景点或边,修改边上的权值等。 景点距离图 2.2概要设计

校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用迪杰斯特拉(Dijkastra)算法实现。最后用switch 选择语句选择执行浏览景点信息或查询最短路径。 1、主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。 2、存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中,各景点间的邻接关系用图邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的条数由分量vexnum、arcnum 表示,它们是整型数据。 3、系统功能设计 本系统除了要完成图的初始化功能外还设置了9个子功能。图的初始化由initgraph()函数实现。依据读入的图的顶点个数和边的条数,分别初始化图结构中图的顶点数组和图的邻接矩阵。9个子功能的设计描述如下。 ⑴景点信息查询 景点信息查询由函数seeabout()实现。该功能根据用户输入的景点编号输出该景点的相关信息。如景点编号、名称等。 ⑵学校景点介绍 学校景点介绍由函数browsecampus()实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点介绍。 ⑶相邻的景点及其距离 为使游客能够知道其周围的景点和路径,方便他们迅速知道其所在位置和周围信息 ⑷查看浏览线路 查看浏览线路由函数shortestpath_dij()实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其他景点的最短路径线路及距离。当用户选择该功能,系统能根据用户输入的起始景点及目的景点编号,查询任意两个景点之间的最短路径线路及距离。 ⑸更改图信息 修改一个已有景点的相关信息、删除一个景点及其相关信息、删除一条路径、加一条路径、修改路径长度、添加一个景点 ⑹数据安全防范 设置密码,能保证数据不会被随便更改,由pass()判定密码是否正确,可由changepw()函数修改密码,初始密码为gdufsx ⑺写入文件并保存修改 打开该软件,若没有graph.txt,则会由系统初始化生成一个graph.txt,若已存在该文档会由该文档中的内容初始化系统。 ⑻恢复初始状态 若数据已经显得很杂乱并很难修理,就可以启用这个功能

校园导航系统---算法与分析课程设计

算法设计与分析课程设计 题目:校园导航问题 文档: 物联网工程学院物联网工程专业 学号 学生姓名 班级物联网1101 二〇一三年十二月

设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路(最短路径)。 本系统为用户提供以下功能: (一)、查询了解学校概况,为导游参观者提供关于学校的相关信息。 (二)、查询校园各个场所和景点信息; (三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校。完成需要操作时,退出系统 校园导航查询系统的开发方法总结如下: (1) 需求分析,了解学校各个场所与场所或者是各个景点与景点之间的信息,路径和距离,考虑该如何设计才能满足用户需求。 (2) 概要设计,对调查得到的数据进行分析,根据其要求实现的功能分析系统结构和界面将实现的基本功能。 (3) 详细设计,设计系统界面并编辑实现其各个功能的代码。 (4) 调试分析,在设计完成后,调试系统运行的状况,修改完善系统,然后进行测试。 一、需求分析 1学校以及各景点介绍模块 采用一维数组将学校景点依次排放好编号G.vex[i].number=i 在选择校园介绍的时候,弹出G.vex[0]校园简介。在选择各景点信息的时候,可按编号查询2查询最短路径(主要) 查出出发地到想要到达的景点的最短路径,初步构想采用最经典的迪杰斯特拉算法最短路径函数 3查询各点距离 将所有景点的距离显示出来。 4主菜单页面显示 提供使用者选择功能界面,按照提示进行操作。 5退出 完成需要操作时,退出系统

校园导航系统模式图 二、概要设计 2.1算法设计说明 校园导航模型是由各个景点和景点以及场所和场所之间的路径组成的,所 以这完全可以用数据结构中的图来模拟。用图的结点代表景点或场所,用图的边 代表景点或场所之间的路径。所以首先应创建图的存储结构。结点值代表景点信 息,边的权值代表景点间的距离。结点值及边的权值采用图存储。本系统需要查 询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所 以给每个景点一个代码,用结构体类型实现。计算路径长度,最短路线和最佳路 径时可分别用迪杰斯特拉(Dijkastra )算法和哈密而顿回路算法实现。最后switch 选择语句选择执行浏览景点信息或查询最短路径和距离。 2.1.1学校以及各景点介绍模块 采用了图的邻接矩阵存储结构,首先初始化每一个景点名称(一维数组) fo r(i=1;i

校园导游系统

课程设计说明书 课程名称:数据结构与算法 设计题目:校园导游系统 院系:计算机科学与信息工程学院 学生姓名: 学号: 专业班级:计算机科学与技术信息技术方向11-1 指导教师: 2013年6月21日

课程设计任务书 校园导游系统

摘要: 随着社会经济的发展,人们接近自然的机会就越多,因此外出旅游现在被越来越多的都市人所看中,所以如何快速方便的找到我们想要的旅游景点的信息和最短路径,如何简单的修改相关的信息,就成了很重要的问题。 本设计基于图的结构,用数组表示法创建一个无向图,针对游客的实际需求,将安阳工学院的景点编号、名称、介绍等信息放入到图的顶点当中,将路径长度的信息存放在弧当中。利用弗洛伊德算法求出两个景点之间的最短路径,利用迪杰斯特拉算法来求从一个景点到其他剩余的所有景点的最短距离;用相应的函数来查找景点,并显示出它的编号,信息,简介。并进行一定的界面美化,更贴近用户,相应的提示使用户操作起来更容易。 关键词:最短路径、查找景点信息、无向图 目录

1. 设计背景 (3) 1.1程序设计内容 (4) 1.2程序设计要求 (4) 2.设计方案 (4) 2.1 校园景点图 (5) 2.2 程序模块图 (5) 2.3 主函数设计简要 (6) 2.4 各函数模块的功能 (6) 3. 方案实施 (7) 3.1 程序执行流程图 (7) 3.2 主函数设计思想 (7) 4. 结果测试 (9) 4.1 主函数功能模块测试 (9) 4.2 主函数功能测试 (9) 4.3 各功能所执行的操作 (12) 5. 结论 (12) 6. 收获与致谢 (13) 7. 参考文献 (14) 8. 附件 (14) 1. 设计背景

校园导游程序

洛阳理工学院 课程设计报告 课程名称数据结构课程设计 题目校园导游程序

课程设计任务书 1、设计题目:校园导游程序 2、设计内容与要求: [问题描述] 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。[基本要求] (1)查询各景点的相关信息; (2)查询图中任意两个景点间的最短路径。 (3)查询图中任意两个景点间的所有路径。 (4)增加、删除、更新有关景点和道路的信息。 课程设计评语 成绩: 指导教师:_______________ 年月日

3、流程图 4、模块划分 (1)主函数:void main( ) (2)void CreateUDN(int v,int a); /* 造图函数*/ (3)void narrate(); /*说明函数*/ (4)void ShortestPath(int num); /*最短路径函数*/ (5)void output(int sight1,int sight2); /*输出函数*/ (6)char Menu(); /* 主菜单*/ (7)void search(); /* 查询景点信息*/ (8)char SearchMenu(); /* 查询子菜单*/ (9)void HaMiTonian(int); /*图的遍历*/ (10)void Searchpath1(MGraph g);/*查询两个景点间的所有路径*/ (11)void disppath(MGraph g,int i,int j); (12)void path(MGraph g,int i,int j,int k);/*确定路径上第k+1个顶点的序号*/(13)void NextValue(int); (14)void display(); /* 显示遍历结果*/ (15)int Addnewsight(int n); /*添加新的景点和路径*/

数据结构课程设计-校园导航

数据结构课程设计-校 园导航 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

课程设计报告 课程名称数据结构课程设计题目校园导航 指导教师 设计起始日期 5.9~5.16 学院计算机学院 系别计算机科学与工程 学生姓名 班级/学号 成绩

一、需求分析 本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求: 设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 本课题实现校园多个场所(至少10个)的最短路径求解。 (1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。 (2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。 (3) 程序所能达到的功能:本程序可供任何人使用,主要功能1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。 (4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。 a.首先看到的是校园导航系统的菜单: b.查看浏览路线等待输入起始景点: C.选择出发点与目的地等待输入起始景点与目的地编号: d.参看景点信息等待输入景点编号:

二、概要设计 本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。 系统首先通过主程序调用void main( );进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。 选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。 选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示起始景点到其余九个景点的最短路线的方案。 选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景 点与目的景点,并有空格隔开就得到两景点之间的最佳路径。 选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。 选择“退出系统”项,就会退出程序。 三、详细设计 (1)十三个单位的图

数据结构课程设计-校园导航

课程设计报告 课程名称数据结构课程设计题目校园导航 指导教师 设计起始日期 5.9~5.16 学院计算机学院 系别计算机科学与工程 学生姓名 班级/学号 成绩

一、需求分析 本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求: 设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路, 且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 本课题实现校园多个场所(至少10个)的最短路径求解。 (1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char 型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。 (2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。 (3) 程序所能达到的功能:本程序可供任何人使用,主要功能1.浏览各单位及简介; 2.查看所有游览路线; 3.选择出发点和目的地求出最佳路径; 4.查看某一单位信息。 (4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。 a.首先看到的是校园导航系统的菜单: b.查看浏览路线等待输入起始景点: C.选择出发点与目的地等待输入起始景点与目的地编号: d.参看景点信息等待输入景点编号: 二、概要设计 本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。

数据结构校园导游咨询系统课程设计报告及课程总结

姓名: 班级: 学号: 指导教师: 2012年12月

目录 1、需求分析 (1) 1.1 系统简介 (1) 1.2 系统功能模块介绍 (1) 2、概要设计 (2) 2.1 系统功能结构图 (2) 2.2 系统流程图 (2) 2.3 主要函数概要设计 (3) 2.3.1 主函数概要设计 (3) 2.3.2 初始化图函数InitGraph() (4) 2.3.4 查询景点信息函数设计SearchGraph() (4) 2.3.5 显示图中信息函数设计ShowGraph() (4) 2.3.6 弗洛伊德算法函数设计Floyd() (5) 3、详细设计 (5) 3.1 主函数详细设计 (5) 3.2初始化图函数详细设计InitGraph() (6) 3.3查询景点信息函数详细设计SearchGraph() (7) 3.4 弗洛伊德算法函数详细设计Floyd() (8) 4、调试分析 (9) 4.1 显示主界面函数测试 (9) 4.2 查找两景点间最短路径测试 (10) 4.3 查看景点信息测试 (11) 5.课程设计总结 (12) 6、附录 (13)

1、需求分析 1.1 系统简介 随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言,基于《数据结构》中图的相关算法开发了“江西农业大学校园咨询系统”。 开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。 本系统界面友好,提示信息充分,在实际使用过程中运行良好。 1.2 系统功能模块介绍 本系统主要分为以下三大功能模块: 1、查询两景点最短路径:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的景点编号,系统将提示错误并要求用户再次输入。若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方; 2、查询景点信息:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入想要查询的景点的编

校园导航课程设计

数据结构课程设计

蚌埠学院计算机科学与技术系课程设计任务书

目录 1 引言 (4) 1.1 问题的提出 (4) 1.2任务与功能简介 (4) 1.2.1任务 (4) 1.2.2功能简介 (4) 2 程序运行平台 (5) 3 总体设计与模块分析 (6) 3.1抽象数据类型定义 (6) 3.2主程序模块的整体流程 (6) 3.3各模块调用和函数关系如下 (6) 4 程序的主要功能实现 (8) 4.1 main()——主函数 (8) 4.2赋值init函数 (8) 4.3输出蚌埠学院校园导航平面图的map函数 (10) 4.4菜单menu函数 (11) 4.5输出地点信息的information函数 (12) 4.7输出路径way函数 (13) 4.8调用floyd和way的最短路径shortestpath算法 (14) 5系统测试 (15) 5.1系统运行后主界面 (15) 5.2查询最短路径 (16) 5.3查询地点信息 (17) 致谢 (19) 参考文献 (20) 附录 (21)

1 引言 为了加深对《数据结构》这一课程所学内容的进一步理解与巩固,我们这一组按课程设计要求完成了校园导航系统的设计。 1.1 问题的提出 我们这次基于对导航这个热门问题的研究设计了简易校园导航系统,我们的导航平面图中至少包括8个以上校园的场所,每两个场所间可以有不同的路,且路长也可能不同,给出校园各主要建筑的名称信息及有线路联通的建筑之间的距离,利用校园导航系统计算出给定的起点到终点之间的最近距离及线路。本导航系统能够很好的向同学们提供距离与地点的详细信息。 1.2任务与功能简介 1.2.1任务 (1)本次作业的核心是利用弗洛伊德算法计算给定有向网中两点最短距离;给出有向网中所要求点的信息。在调试过程中,除了简单语法错误外,就是对弗洛伊德算法的理解和实现,以及菜单的设置,这是我以前没有实现过的。出于简单化,并没有对有向图中各个点进行输入,而是在程序中直接赋值。 (2)在对各个功能操作的实现上,由于有弗洛伊德算法时间复杂度大多数是O(n3),空间上增加了二维数组,空间复杂度为O(n+s)。 1.2.2功能简介 程序所能达到的功能: (1) map——输出蚌埠学院导航平面图。 (2) init()——按相应编号输入各个节点内容,对相应路径赋值的函数。 (3) menu()——菜单函数 (4) information()——输出简介的函数 (5) way()——最短路径的输出函数 (6) shortestpath()——调用弗洛伊德和最短路径输出的函数 (7) main()——主函数

校园导游系统程序

课题五:校园导游程序 1)问题描述 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 2)基本要求 (1)查询各景点的相关信息; (2)查询图中任意两个景点间的最短路径。 (3)能够将图的信息保存到文件中,并指定文件打开。 (4)增加、删除、更新有关景点和道路的信息。 附加难度:有余力的同学可以考虑用图形界面实现寻址的过程 3) 设计思想 核心数据结构定义一个图,将图保存后,对图进行面向指定节点到各个节点的最短路径的操作。可以再文件中保存多个导游图,例如保存学校图、芜湖市图等文件。开始时选择文件,将指定文件中的信息导入到内存的图中。 #define Infinity 1000 #define MaxVertexNum 35 #define MAX 40 #include #include #include #include #include #include typedef struct arcell //边的权值信息 { int adj; //权值 }arcell,adjmatrix[MaxVertexNum][MaxVertexNum]; //图的邻接矩阵类型 typedef struct vexsinfo //顶点信息 { int position; //景点的编号 char name[32]; //景点的名称 char introduction[256]; //景点的介绍 }vexsinfo; typedef struct mgraph //图结构信息

《校园导航系统》课程设计报告

《校园导航系统》课程设计报告 姓名: 学号: 班级:网络 专业:网络工程 指导教师: 时间:2

目录 摘要 (1) 1.题目 (1) 2.概要设计 (1) 3.调试分析 (15) 4.参考文献 (15)

1.题目 校园导航系统 设计一个校园导游程序,后台操作: 1、操作员信息管理如修改密码等 2、能根据学校的规模进行添加景点信息、修改景点信息等功能, 3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等) 前台为来访的客人提供各种信息查询服务: 1、设计学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名 称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 2、为来访客人提供图中任意景点相关信息的查询。 3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。 1.1 需求分析 设计一个校园导航系统,导航系统又分为游客和管理员。要进行管理操作还是游客操作由用户自己选择 管理员的操作:修改景点信息、增加景点信息、交通管制等。 游客的操作:查看景点信息和查最短路径。 2.概要设计 景点的信息由一维数组存放,景点关系由二维数据来存放 景点的信息和关系从文件读取,进而初始化 typedef struct //保存单个景点信息的结构体 { char code[10]; //存放景点代码 char name[20]; //存放景点名称 char instruction[100]; //存放景点简介 }ViewPoint; typedef struct //存放景点关系的二维数组 { int edges[MAXV][MAXV]; //两景点间的距离 int number; //景点的数量 ViewPoint V[MAXV]; //保存景点信息的结构体数组 }MGraph;

校园导游程序设计知识讲解

《数据结构课程设计》报告 课题名称:校园导游程序 专业: 班级: 学号: 姓名: 2012 年12 月31 日

目录 目录 (1) 1 前言 (2) 2需求分析 (3) 3概要设计 (3) 4详细设计 (3) 5源代码及调试 (3) 6特殊问题解决方法 (8) 7使用说明及测试结果 (9) 8结论 (11) 9总结与体会 (11) 10参考文献 (11)

1 前言 1.1 课题简介 课程设计题目名称: 校园导游程序 课程设计目的: 通过《数据结构》课程的学习,将数据结构应用在具体的编程方面,更加了解课程所学习的内容及思维逻辑。 课程设计意义: 利用数据结构课程设计,了解学生对《数据结构》的理解和加强学生对数据结构方面的应用知识。希望今后学生好好利用数据结构的知识和思想,解决各方面的编程难题。课程设计内容: 实现存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。为来访客人提供图中任意景点相关信息的查询。为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。 课程设计预期实现效果: (1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。 1.2 方案及其论证 语言:C++ 运行环境:Microsoft Visual C++ 6.0 可行性分析:模拟一个小型的计算器界面,能够输入数学表达式并计算出表达式的结果。

基于无向图的校园导游系统数据结构课程设计报告

重庆科技学院 课程设计报告 院(系):_电气与信息工程学院专业班级:计科普0902 设计地点(单位)____计算机基础自主学习中心I306___设计题目:_________校园导游咨询____________________

重庆科技学院 课程设计任务书设计题目:校园导游咨询

教研室主任:指导教师:向毅、陈刘奎、熊茜 2010年 12 月 20日

摘要 现代快节奏的生活使得都市人越来越渴望亲近自然,因此外出旅游现在被越来越多的都市人所看中,所以如何快速方便的找到我们想要的旅游景点的信息和最短路径就成了一个很重要的问题。 本设计基于图的结构,创建一个无向图,针对游客的实际需求,将重庆科技学院的景点编号、名称、介绍等信息放入到图的顶点当中并保存在景点文本文件当中,将两个景点的编号和它们之间的距离当作权值也保存到权值文本文件当中,利用迪杰斯特拉算法来求从一个景点到另一个景点的最短距离,利用strcmp();函数来查找景点,并显示出它的信息,从而解决了要查找景点信息和景点之间的最短路径的问题,最后按照显示屏上的提示进行相关的操作。 关键词:无向图、查找信息、最短距离、校园导游咨询

目录 摘要.................................................................................................................................................. II 1 设计内容和要求 (1) 1.1设计内容 (1) 1.1设计要求 (1) 2 概要设计 (2) 2.1 程序的模块图 (2) 2.2 主函数的概要设计 (3) 2.3 查找介绍函数的概要设计 (3) 2.4 查找最短路径函数的概要设计 (3) 2.5 退出函数的概要设计 (3) 3 详细设计 (4) 3.1 程序的流程图 (4) 3.2 主函数的详细设计 (5) 3.3 查找介绍函数的详细设计 (5) 3.4 查找最短路径函数的详细设计 (6) 3.5 退出函数的详细设计 (8) 3.6 数据结构的详细设计 (8) 4 软件测试 (10) 4.1 菜单的测试 (10) 4.2 查找景点简介的测试 (10) 4.3 查找两个景点之间的最短距离的测试 (11) 4.4 退出的测试 (11) 5 软件使用说明 (12) 6 致谢 (13) 7 参考文献 (14) 8 附录 (15)

校园导游服务咨询系统C++(含源代码)说明书---2015

计算机科学与技术教研室 课程设计说明书(2014-2015学年第1学期) 注:成绩均用百分制。总成绩=平时成绩*20%+报告成绩*40%+演示与答辩成绩*40%

设计题目:校园附近门店服务查询系统 1、课程设计目的 (1)数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C++语言),自行实现一个较为完整的应用系统。 (2)通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 (3)学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 1)熟练掌握链表存储结构及其建立过程和常用操作; 2)学会自己调试程序的方法并掌握一定的技巧; 3)通过温习旧的知识,学习新知识,并提高分析和解决问题的能力。 2、课程设计正文 2.1概要设计 2.1.1 系统分析 该系统主要功能包括:增添服务信息、查询服务信息、修改服务信息、删除服务信息以及推荐路径等。 1.主程序模块:连接各种功能子模块,使用循环等待用户操作,完成程序的基本操作实现功能。 2.菜单显示模块:生成每个菜单的显示界面,使程序更简单清晰。 3.查询服务信息:用户在选择此功能模块后,按照屏幕上方提示的服务信息名称及其对应的编号,要求用户输入想要查询的服务信息的编号,回车后系统将在已存储的服务信息中进行匹配,若该景点信息尚未存储则将提示错误;若找到对应信息则系统将输出服务信息,显示于幕上方。 4.查询两服务信息最短路径:运用弗洛伊德算法,用户在选择此功能模块后,按照屏幕上方提示的服务信息名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的服务信息编号,系统将提示错误并要求用户再次输入。若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方。 5.删除服务信息:用户操作功能模块,由主程序直接调用的函数模块,将功能具象化,系统工具函数模块,先查找到所存在的服务信息,然后对用户希望删除的服务信息进行删除操作,若所要删除的服务信息不存在,则输出不存在此服务信息。

校园导航系统课程设计报告

题目石铁大校园导航系统 学院信息科学与技术学院 专业计算机科学与技术 学号 20112840 学生姓名刘铸辉 指导教师姓名陈娜 日期:2013-8-31

一.题目与要求 实习一 校园导游程序 [ 问题描述] 用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景 点介绍、游览路径等问题。游客通过终端可询问: (1 )从某一景点到另一景点的最短路径。 (2 )游客从公园进入,选取一条最佳路线。 (3 )使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。 [ 基本要求] (1 )将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离.为此图选择适当的数据结构。 (2 )把各种路径都显示给游客,由游客自己选择浏览路线。 (3 )画出景点分布图于屏幕上。 [ 实现提示] (1 )构造一个无向图G 并用邻接矩阵来存储。 (2 )利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][] 来记录,最短路径长度就用一维数组d[i] 存放;i 的范围:0 ~20 。 (3 )一维数组have[] 是用来记录最短路径出现顶点的顺序。 (4 )根据起点和终点输出最短路径和路径长度。 二.需求分析 本校园导航系统由C语言编写,主要掌握最短路径的实现方法,以及构造无向图G并用邻接矩阵来存储,掌握迪杰斯特拉算法来算最短路径。 1.输入的形式和输出的范围: 2.输出的形式: 3.程序所能到达的功能: A.图中任意景点的相关信息查询 B.任意两个景点间的最短路径 C.任意两个景点间的所有路径 D.增加有关景点和道路的信息 E.删除更新有关景点和道路的信息 F.更新有关景点和道路的信息 G.显示全景 H.退出该系统

校园导游咨询系统源代码

#include//standard library标准库头文件 #include//标注输入输出函数头文件 #include//字符函数头文件 #define MAX 10000 //定义路程最远距离符号常量无穷大 #define MAX_VERTEX_NUM 10//定义的景点/顶点数量符号常量最大顶点数10个 typedef struct //定义一个结构体用于表示路径 { int adj; //路径长度权值 }Ar,Ad[10][10];//起点和终点变量名 typedef struct //定义一个结构体用于存放景点信息 { char name[30];//景点名 int num;//景点编号 char introduction[100];//景点介绍 }infotype;//景点信息变量名 typedef struct//用来定义一个图 { infotype vexs[10]; Ad arcs; int vexnum,arcnum; }MGraph; MGraph b; MGraph InitGraph()//初始化图形 { MGraph G; int i; int j;

G.vexnum=10; G.arcnum=10; for(i=0;i

C语言校园导航系统

课程设计报告 课程设计题目:校园导航 专业:计算机科学与技术 班级:1230701 学号:2 学生姓名:胡玖龙 指导教师:刘志锋 2014年6月19日 1 / 17

实验题目: 校园导航系统 实验时间: 2014/6/16-2014/6/19 实验地点: 软件楼402 实验目的: 综合运用所学的数据结构知识解决一个关于学校导航系统的问题,侧重对图的相关内容特别是求最短路径的应用,使得能进一步熟悉掌握数据结构的基础知识,进一步提升自己的解决问题和编程调试能力,为后续专业课程的学习打下基础。 实验要求: 设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从某个场所到达另一场所的最佳路径。 求最短路径用Dijkstra或Floryd算法实现。 2 / 17

实现思路: 先分析需求,本程序的主要目的是提供本学校地点的路径查询,并提供其他各种信息查询服务。 需求: 1、提供校园平面图,使得能直观的了解学校。 2、提供地点信息查询,为各地点提供简短的介绍。 3、提供任意两地点间最短路径查询,并计算总路程。 根据要求,先将校园平面图信息抽象为无向网,用邻接矩阵存储。 需求1: 定义map()函数,功能是输出校园的平面图。可简单的通过printf()函数实现。 需求2: 定义Query()函数,功能是查询输出地点信息。可直接输出无向网中的顶点信息。 需求3: 根据输入的起点和终点,运用Floryd算法,求出最短路径,计算路径长度并输出。 考虑到使用者并不一定需要使用所有的功能,所以开始时需要一个选择菜单。定义Menu()函数,功能是提供功能选择。 输入1,选择查看学校平面图 输入2,选择查看各地点信息 输入3,选择查找两地点间最短路径 输入4,退出程序 3 / 17

相关主题
文本预览
相关文档 最新文档