1、*/* 程序中用到的库函数所在头文件应用 #include 命令包含进来 */#include stdio.hmath.hgraphics.hconio.h /*gotoxy*/bios.h/*/* 定义符号常量 */#define NULL 0#define num 20#define maxdist 10000/* 定义数据结构*/typedef structchar datanum;double edgesnumnum;graph;/* 定义全局变量 */int xnum,ynum;char anum,abnumnum;/*自定义函数原型说明 */void showmsg(char ms
2、g); /*逐步显示文字*/void dijkstra(graph g,int n,int i,int dnum,int pnum);void opdijk(int v1,int v0,int n,int d,int p);void info_welcome();/*功能:逐步显示文字 */void showmsg(char msg) int i=0; while (msgi!=0) printf(%c,msgi); i+; delay(30000); 用迪杰思特拉算法求图的最短路径 */void dijkstra(graph g,int n,int i,int dnum,int pnum)i
3、nt snum;double mindist,dist;int j,k,u,w;for(j=0;jn;j+) dj=g.edgesij; sj=0; if(djmaxdist)&(dj!=0) pj=i; /*可到达的路径*/ else pj=-1; /*设空路径*/ si=1;n-1;mindist=maxdist; u=i; for(k=0;kk+) if(sk=0)&(dkmindist) u=k; mindist=dk; su=1; for(k=0; if(sk=0) dist=du+g.edgesuk; if(distdk) dk=dist; pk=u; 打印出图的最短路径 */vo
4、id opdijk(int v1,int v0,int n,int d,int p) int i,i_1,j,k,pre; int point_x,point_y; for(i=0;ii+) if(i!=v0&i=v1) gotoxy(5,24); printf(,ai); point_x=xi; point_y=yi; pre=pi; while(pre!=-1) setcolor(RED); /*/ /*闪烁终点的颜色 */ for (i_1=0;i_1,apre);/*/ pre=ppre; if(di=maxdist) /*line(point_x*30,point_y*30,xv0*
5、30,yv0*30);*/,av0); /*printf(tshortestway:%5f,di);/*/打印出程序的帮助和欢迎信息 */void info_welcome() int i,j; char *Msg= Welcome to CSFU!, ADDRESS:Central South Forestry University Changsha,Hunan,China TEL:+86-731-5623172 HELP Find OUT THE SHORTEST PATH:F or f EXIT:Q or q NULL, ;/*显示操作键说明 */ i=0; textcolor(WHIT
6、E); delay(90000); while(Msgi!=NULL) gotoxy(56,3+i); printf(Msgi);nnn); textcolor(GREEN); gotoxy(5,18); showmsg(Welcome to use school_wizard. gotoxy(5,20);You can choose F or Q:/*/ */main()graph g;int i,j,k,n,m,i_1,i_2,i_3;int driver,mode;int road_x,road_y;char nu,b,i_str,m_str;int dnum,pnum,sdnumnum,spnumnum;FILE *map_f,*road_f;clrscr();/*初始化变量 g.edges*/ for (i_1=0;num;i_1+) for (i_2=0;i_2i_2+) g.edgesi_1i_2=maxdist; /*/*读取文件 map.dat(园地图的景
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1