• 大小: 0.16M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: 其他  

资源简介

校园导航系统.rar

资源截图

代码片段和文件信息

#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 show1();
void list();
void Menu(void); 
void ShortestPath_DIJ(MGraph * G); 
void Search(MGraph *G); 
int LocateVex(MGraph *Gchar* v);  
/**********主函数************************/ 
int main() 

system(“color 0f“); /*修改控制台的颜色信息改为白字蓝底的模式*/
system(“mode con: cols=140 lines=130“); /*设置批处理运行时窗口大小的*/
cmd(); 
return 0; 

/********自定义函数***************/ 
   /* cmd函数(根据目录选择要进行的项目)*/
void cmd(void) 

char k; 
b=InitGraph(); 
show1();
Menu(); 
while(1) 

scanf(“\n%c“&k); 
switch(k) 

case ‘1‘:
system(“cls“);
show1(); 
Menu();
    list();
    ShortestPath_DIJ(&b);
    printf(“---------------------------------欢迎您的使用--------------------------------\n“);
    printf(“\n请您继续选择服务:“);
break; 
case‘2‘:
system(“cls“);
Menu(); 
list();
Search(&b);
printf(“---------------------------------欢迎您的使用--------------------------------\n“);
    printf(“\n请您继续选择服务:“);
break; 
case ‘3‘:
 system(“cls“);
printf(“               ┏━━━━━━━━━━━━━━━━━━━━┓\n“);  
printf(“               ┃               感谢使用                 ┃\n“); 
printf(“               ┃           南京信息工程大学             ┃\n“); 
printf(“               ┃               导航系统                 ┃\n“); 
printf(“               ┗━━━━━━━━━━━━━━━━━━━━┛\n“); 
 exit(0); 
 default:
 printf(“输入信息错误!\n请输入1或2或3.\n“);
 break;} }
 } 




/* 迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径v0为起点 */
void ShortestPath_DIJ(MGraph * G) 

int vwimint=0xflag=1v0v1have[100]k; 
int final[20] D[20] p[23][23]; 
while(flag) 

   printf(“请输入起始景点编号:\n“); 
   scanf(“%d“&v0);
   if(v0<0||v0>G->vexnum) 
     printf(“景点编号不存在!“);
     
   printf(“请输入终止景点编号:\n“); 
   scanf(“%d“&v1);
   if(v1<0||v1>G->vexnum) 
     printf(“景点编号不存在!“);
     
   if(v0>=0&&v0vexnum&&v1>=0&&v1vexnum)
   flag=0;
}
for(v=0;vvexnum;++v)
{
final[v]=0;
D[v]=G->arcs[v0][v].adj;
for(w=0;wvexnum;++w)
p[v][w]=INFINITY;
if(D[v] {
p[v][v0]=1;
p[v][v]=1;
}
}
D[v0]=0;
final[v0]=1;
have[0]=v0;
for(i=1;ivexnum;++i)
{
min=INFINITY;
for(w=0;wvexnum;++w)
if(!final[w])
if(D[w] {
v=w;
min=D[w];
}
final[v]=1;
have[k]=v;
k++;
for(w=0;wvexnum;++w)
if(!final[w]&&((min+(G->arcs[v][w].adj)) {
D[w]=min+G->arcs[v][w].adj;
for(x=0;xvexnum;x++)
p[w][x]=p[v][x];
p[w][w]=1;
}
}
for(i=0;ivexnum;i++)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     175248  2018-06-24 11:16  校园导航.docx

     文件       8276  2018-01-07 00:07  1.cpp

----------- ---------  ---------- -----  ----

               183524                    2


评论

共有 条评论