数据结构课程设计之项目二——校园导游咨询

目录

一、问题描述

二、基本要求

三、问题分析

四、逻辑设计

数据结构

数据抽象

五、物理设计

存储结构


一、问题描述

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

二、基本要求

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

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

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

三、问题分析

题目要求用户能查询到相关的景点信息及任意一点的最短路径,前一个要求很好实现,对于第二个要求,我们选用floyd算法。

四、逻辑设计

数据结构

定义结构体来存储景点的名称、代号、简介等等。使用floyd算法解决求最短路径问题。

使用邻接矩阵的方式来存放各条边的权值。

数据抽象

下图为抽象化的部分景点平面图,数据和边为随意设置,不具权威性。

五、物理设计

存储结构

 使用结构体来存储代号、名称、信息。代码如下:

struct ScenicSpot {
	string name;//景点名称
	int ID;//代号
	string Inf;//信息
};

使用邻接矩阵来构建无向图,存放各条边的信息,部分代码如下:

for (int i = 1; i <= 11; i++)
		for (int j = 1; j <= 11; j++){
			if (i == j)
				adj[i][j] = 0;
			adj[i][j] = 10000;
		}			
	adj[1][2] = adj[2][1] = 3;
	adj[1][3] = adj[3][1] = 4;
	adj[1][4] = adj[4][1] = 15;
	adj[2][3] = adj[3][2] = 2;
	adj[3][4] = adj[4][3] = 6;
	adj[4][5] = adj[5][4] = 8;
	adj[4][6] = adj[6][4] = 22;
	adj[5][6] = adj[6][5] = 18;
	adj[5][8] = adj[8][5] = 15;
	adj[6][7] = adj[7][6] = 5;
	adj[8][9] = adj[9][8] = 12;
	adj[8][11] = adj[11][8] = 5;
	adj[9][10] = adj[10][9] = 8;
	adj[10][11] = adj[10][11] = 18;

最短路径主要代码:

void leastroad()
{
	memcpy(dist, adj, sizeof(adj));
	for (int k = 1; k <= 11; k++)
		for (int v = 1; v <= 11; v++)
			for (int w = 1; w <= 11; w++)
				dist[v][w] = min(dist[v][w], dist[v][k] + dist[k][w]);
}

完成以上步骤,差不多就可以满足游客的需求了。。后续还可能会更新。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值