资源简介
C实现校园导航系统,至少包括10个以上的场所.
每俩个场所间可以有不同的路,选择最短的路径.
实现校园导航
代码片段和文件信息
#define INFINITY 10000
#define MAX_VERTEX_NUM 40
#define MAX 40
#include
#include
#include
#include
typedef struct ArCell
{
int adj; /*路径长度 */
}ArCellAdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct /*图中顶点表示主要景点,存放景点的编号、名称、简介等信息, */
{
char name[30];
int num;
char introduction[100];/*简介*/
}infotype;
typedef struct
{
infotype vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnumarcnum;
}MGraph;
MGraph b;
void cmd(void);
MGraph InitGraph(void);
void Menu(void);
void Browser(MGraph *G);
void ShortestPath_DIJ(MGraph * G);
void Floyd(MGraph *G);
void Search(MGraph *G);
int LocateVex(MGraph *Gchar* v);
MGraph * CreatUDN(MGraph *G);
void print(MGraph *G);
/******************************************************/
void main(void)
{
system(“color 1f“);
system(“mode con: cols=140 lines=130“);
cmd();
}
/******************************************************/
void cmd(void)
{
int i;
b=InitGraph();
Menu();
scanf(“%d“&i);
while(i!=5)
{
switch(i)
{
case 1:system(“cls“);Browser(&b);Menu();break;
case 2:system(“cls“);ShortestPath_DIJ(&b);Menu();break;
case 3:system(“cls“);Floyd(&b);Menu();break;
case 4:system(“cls“);Search(&b);Menu();break;
case 5:exit(1);break;
default:break;
}
scanf(“%d“&i);
}
}
MGraph InitGraph(void)
{
MGraph G;
int ij;
G.vexnum=10;
G.arcnum=14;
for(i=0;i G.vexs[i].num=i;
strcpy(G.vexs[0].name“北园食堂“);
strcpy(G.vexs[0].introduction“南园食堂“);
strcpy(G.vexs[1].name“物理楼“);
strcpy(G.vexs[1].introduction“数计楼,楼高4层“);
strcpy(G.vexs[2].name“5号学生宿舍楼“);
strcpy(G.vexs[2].introduction“计算机系男生宿舍楼,苏式建筑“);
strcpy(G.vexs[3].name“医务室“);
strcpy(G.vexs[3].introduction“校医院设施一般“);
strcpy(G.vexs[4].name“图书馆“);
strcpy(G.vexs[4].introduction“藏书百万册设施良好,环境幽雅“);
strcpy(G.vexs[5].name“足球场“);
strcpy(G.vexs[5].introduction“现代化塑胶跑道人造草坪适宜锻炼身体的场所“);
strcpy(G.vexs[6].name“陶园“);
strcpy(G.vexs[6].introduction“绿树成荫适宜休息和读书“);
strcpy(G.vexs[7].name“主教学楼“);
strcpy(G.vexs[7].introduction“学院最大的教学楼共20层,环形建筑适宜学习“);
strcpy(G.vexs[8].name“化学楼“);
strcpy(G.vexs[8].introduction“设施良好“);
strcpy(G.vexs[9].name“体育楼“);
strcpy(G.vexs[9].introduction“运动设施先进环境良好“);
for(i=0;i for(j=0;j G.arcs[i][j].adj=INFINITY;
G.arcs[0][1].adj=100;
G.arcs[0][2].adj=200;
G.arcs[0][6].adj=400;
G.arcs[1][7].adj=300;
G.arcs[2][3].adj=120;
G.arcs[3][6].adj=220;
G.arcs[3][4].adj=100;
G.arcs[4][5].adj=300;
G.arcs[4][9].adj=250;
G.arcs[5][9].adj=350;
G.arcs[6][7].adj=60;
G.arcs[6][9].adj=200;
G.arcs[7][8].adj=50;
G.arcs[8][9].adj=20;
for(i=0;i for(j=0;j G.arcs[j][i].adj=G.arcs[i][j].adj;
return G;
}//InitGraph end
void Menu()
{
printf(“\n 盐城师范学院导游图\n“);
printf(“ ┏━━━━━━━━━━━━━━━━━━━━┓\n“);
printf(“ ┃ 1.浏览校园全景 ┃\n“);
printf(“ ┃ 2.查看所有游览路线 ┃\n“);
print
- 上一篇:数据链路层设计与实现
- 下一篇:解析S57海图数据代码
评论
共有 条评论