1、一、 课程设计的目的 本实习突出了数据结构加操作的程序设计观点,希望达到熟悉各种存储机构结构的特性,以及如何应用树和图机构解决具体问题的目的。 二、 课程设计内容 设 计 目 的 :了解数据结构,熟悉图的应用,并利用迪杰斯特拉算法求得2点之间的最短路径。设计技术参数: (1)设计你的学校的校园平面图,所含景点不小于10个。以图中的顶点表示学校的各个景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径,存放路径的长度等相关信息。(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短的简单路径。(3)为来访客人提供图中任意景点的相关信息的查询。 /*设计题目:校园导游咨询
2、系统*设计人: 中南林业科技大学 杨海波 *制导老师:杨卫民,陈超云*时间: 2005年7月20日*/* 程序中用到的库函数所在头文件应用 #include 命令包含进来 */#include stdio.h#include math.h#include graphics.h#include conio.h /*gotoxy*/#include bios.h/*/* 定义符号常量 */#define NULL 0#define num 20#define maxdist 10000/*/* 定义数据结构*/typedef structchar datanum;double edgesnumnu
3、m;graph;/*/* 定义全局变量 */int xnum,ynum;char anum,abnumnum;/*/*自定义函数原型说明 */void showmsg(char msg); /*逐步显示文字*/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,msg
4、i); i+; delay(30000); /*/*功能:用迪杰思特拉算法求图的最短路径 */void dijkstra(graph g,int n,int i,int dnum,int pnum)int 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;for(j=0;jn-1;j+)mindist=maxdist; u=i; for(k=0;kn;k+) if(sk=0
5、)&(dkmindist) u=k; mindist=dk; su=1; for(k=0;kn;k+) if(sk=0) dist=du+g.edgesuk; if(distdk) dk=dist; pk=u; /*/*功能:打印出图的最短路径 */void 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;in;i+) if(i!=v0&i=v1) gotoxy(5,24); printf(%c,ai); point_x=xi; point_y=yi; pre=pi;
6、 while(pre!=-1) setcolor(RED); /*/ /*闪烁终点的颜色 */ for (i_1=0;i_1%c,apre);/*/ pre=ppre; if(di=maxdist) /*line(point_x*30,point_y*30,xv0*30,yv0*30);*/ printf(-%c,av0); /*printf(tshortestway:%5f,di);*/ /*/*功能:打印出程序的帮助和欢迎信息 */void info_welcome() int i,j; char *Msg= Welcome to CSFU! , , ADDRESS:Central Sou
7、th , 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(WHITE); delay(90000); while(Msgi!=NULL) gotoxy(56,3+i); printf(Msgi); i+; printf(nnn); textcolor(GREEN); gotoxy(5,18); i=0; sh
8、owmsg(Welcome to use school_wizard.); gotoxy(5,20); showmsg(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;i_1num;i_1+) for (i_2=0;i_2num;i_2+) g.edgesi_1i_2=maxdist; /*/*读取文件 map.dat(园地图的景
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1