数据结构课程设计报告

发布 2022-10-05 03:00:28 阅读 8604

扬州大学信息工程学院。

数据结构》--课程设计报告。

题目: 校园导游咨询

班级:学号:

姓名。指导教师:

一、 设计题目。

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

二、 需求分析。

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

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

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

实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。

三、 概要设计。

1.创建校园图:

(1)先定义节点个数n,边的最大值(maxedg),节点(景点名称、景点信息),邻接点,边,顶点向量,当前顶点数和边数。

(2)先给一个节点赋上其相关信息,然后再用p = node)malloc(sizeof(edgenode))语句申请下一结点,再给所申请的节点赋上相关信息,直到节点数为n=10为止。

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

(4)节点和边的相关信息都弄好了后,校园图也就创建好了。

2.利用函数name给10个节点赋上相应的名称,利用函数information给各节点添加相应的介绍信息。

3.利用函数tr**graph来查找景点信息,要查找景点名称时调用name函数,要查找景点介绍信息时调用information函数。

4.手动创建一个校园图creat(matrix_graph *g),然后为相应的边赋上真正的值。

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

6.用main函数来输出结果:用switch语句分别输出,要创建校园图时调用creatgraph函数;查找景点相关信息时调用tr**graph函数;要查找任意两景点之间的最短路径时,先输入你目前所在的位置,再输入你的目的地,最后调用path函数。

四、 详细设计。

typedef int adjmatrix[max][max];

typedef struct

int vexs[max];

adjmatrix arcs;

matrix_graph;//图的矩阵表示法。

typedef struct edgenode

int adjvex; /临接点序号。

int length; /道路长度。

char info[10]; 景点名称。

char info2[100]; 景点详细信息。

struct edgenode *next;

edgenode, *node ;

typedef struct

char name[10]; 存储景点的名称。

char information[100]; 具体的介绍此景点。

struct edgenode *link; /指向下一个景点。

vexnode景点及其信息。

typedef struct edge

int lengh; /边的权值,表示路径长度。

int ivex, jvex; /边的两端顶点号。

struct edge *next; /指向下一条边。

edgetype;

/边及其信息。

typedef struct

int num; /顶点编号。

char name[10]; 顶点名称。

vertex;

typedef struct

vertex vexs[max顶点集合。

int edges[max][max]; 临街矩阵。

adjmax; /adj

1)首先创建一个校园图并用邻接矩阵存储,程序会自动调用creatgraph(g,&n,e,&adj),函数进入到创建校园图界面,用循环语句来完成:

for(i = 1; i <=b; i++)

2)调用name(i)和information(i)完成对校园景点的名称和信息的介绍。

3)当游客选择了要查找景点的信息的介绍这一项功能的时候,程序就会调用tr**graph(g,n,adj);函数进入到查找景点的介绍的界面,当游客输入了需要查找的景点的名称的时候,程序利用循环语句:

doelse

flag = 0; /不继续。

break;

}while(1);

4)手动给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度。得到一个模拟的校园图:

5)当游客选择了要查找两个景点之间的最短距离这一项功能的时候,程序就会调用path(&g,i,j);函数进入到查找两个景点之间的最短距离的操作界面当中,当游客输入了两个景点的名称过后,程序会调用creat(&g);函数给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度,然后调用path(&g,i,j);函数进入到查找最短路径问题的程序当中。

for(i=0;i<=n;i++)

for(j=0;j<=n;j++)r[i][j]=0;//初始值为0。

for(i=1;i<=n;i++)

flag[s]=0;//修改标识。

while(c<=n)

for(i=1;i<=c;i++)

for(j=1;j<=n;j++)

if(flag[j]&&d[i]+g->arcs[t[i]][j]

t=d[i]+g->arcs[t[i]][j];v=j;

if(r[v][0]!=1)

u=1;while(r[t[i]][u]!=0)

r[v][u]=r[t[i]][u];u++;

r[v][u]=v;

r[v][0]=-1;

t[c]=v;

flag[v]=0;

d[c]=t;c++;

printf("the path is:(%d)",s);

j=1;while(r[e][j]!=0)

//显示路径。

6)主函数是一个程序的主体,。

五、测试数据及运行结果。

1.运行结果界面:

2.由于我编写创建校园图的程序时,不会编写打开一个文本的程序,所以创建校园图的运行结果显示的是“打开文本错误”。

3.查找景点相关信息的结果:

4.查找最短路径的结果:

六、源程序。

#define n 10

#define max 20 //图中顶点数的最大值。

#define maxedg 30 //图中边数的最大值

#include <>

#include <>

#include <>

#include <>

typedef int adjmatrix[max][max];

typedef struct

int vexs[max];

adjmatrix arcs;

matrix_graph;//图的矩阵表示法。

typedef struct edgenode

int adjvex; /临接点序号。

int length; /道路长度。

char info[10]; 景点名称。

char info2[100]; 景点详细信息。

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...