您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 校园导航系统的两个代码
#1数据结构实验之校园导游咨询#includestdlib.h#includestdio.h#includeiostream.h#includestring.h#includemath.h#includestdio.h#definenull0#definenum20#definemaxdist10000typedefstruct{chardata[num];intedges[num][num];}graph;voiddijkstra(graphg,intn,inti,intd[num],intp[num]){ints[num];intmindist,dist;intj,k,u;for(j=0;jn;j++){d[j]=g.edges[i][j];s[j]=0;if((d[j]maxdist)&&(d[j]!=0))p[j]=i;elsep[j]=-1;}s[i]=1;for(j=0;jn-1;j++){mindist=maxdist;u=i;for(k=0;kn;k++)if((s[k]==0)&&(d[k]mindist)){u=k;mindist=d[k];}s[u]=1;for(k=0;kn;k++)if(s[k]==0){dist=d[u]+g.edges[u][k];if(distd[k]){d[k]=dist;p[k]=u;}}}}voidopdijk(intv0,intn,intd[],intp[]){inti,pre;for(i=0;in;i++)if(i!=v0){printf(\n%d,i);pre=p[i];while(pre!=-1){printf(--%d,pre);/****************************/pre=p[pre];}if(d[i]==maxdist)printf(--%d,v0);printf(\tshortestway:%d,d[i]);}}voidfloyd(graphg,intn,intd[][num],intp[][num]){inti,j,k;for(i=0;in;i++)for(j=0;jn;j++){d[i][j]=g.edges[i][j];if((d[i][j]maxdist)&&(d[i][j]!=0))p[i][j]=j;elsep[i][j]=-1;}for(i=0;in;i++)d[i][i]=0;for(k=0;kn;k++)for(i=0;in;i++)for(j=0;jn;j++)if(d[i][j]d[i][k]+d[k][j]){d[i][j]=d[i][k]+d[k][j];p[i][j]=p[i][k];}}voidopfloy(intn,intd[][num],intpath[][num]){inti,j,next;for(i=0;in;i++){printf(\n\nyuandianisv%d:,i);for(j=0;jn;j++)if(j!=1){printf(\ntheshortestwayfrom%dto%dis:\n,i,j);printf(%d,i);next=path[i][j];while(next!=-1){printf(-%d,next);next=path[next][j];}if(d[i][j]==maxdist)printf(-%d,j);/***************************/printf(\t%d,d[i][j]);}}}voidmain(){graphg;inti,j,k,n;intd[num],p[num],sd[num][num],sp[num][num];//clrscr();n=11;g.data[0]='a';g.data[1]='b';g.data[2]='c';g.data[3]='d';g.data[4]='e';g.data[5]='f';g.data[6]='g';g.data[7]='h';g.data[8]='i';g.data[9]='j';g.data[10]='k';for(i=0;in;i++)for(j=0;jn;j++)g.edges[i][j]=maxdist;for(j=0;jn;j++)g.edges[i][j]=0;g.edges[0][2]=30;g.edges[0][5]=40;g.edges[0][1]=20;g.edges[1][5]=60;g.edges[1][4]=40;g.edges[1][6]=30;g.edges[2][3]=35;g.edges[2][7]=40;g.edges[3][10]=20;g.edges[3][8]=15;g.edges[4][9]=30;g.edges[4][8]=35;g.edges[4][10]=10;g.edges[5][10]=10;g.edges[5][8]=45;g.edges[5][2]=20;g.edges[6][0]=70;g.edges[7][0]=50;g.edges[8][9]=20;g.edges[9][1]=55;g.edges[10][0]=125;//clrscr();printf(\t--WELCOMETOUUSEGUIDE!!--\n);printf(\t*****************************************\n);printf(\t**\n);printf(\t*\tINFOMATION-i\tVISIT-v\t\t*\n\t*\tABOUTME-a\tQUIT-q\t\t*\n);printf(\t*\t\t\t\t\t*\n\t*\t\t\t\t\t*\n\t*\t\t\t\t\t*\n\t*\t\t\t\t\t*\n\t*\t\t\t\t\t*\n);printf(\t*****************************************\n);printf(\t*PLEASEENTERANORDER:i?v?m?q?\t*\n);printf(\t*CLEARTHESCREEN:c\t\t3\t*\n);printf(\t*****************************************\n);do{/*gets(t);*/switch(getchar()){case'a':{printf(NAME:******CLASS:02computer(3)\n);printf(PRIVATEEMAIL:devo800@126.com\n);}break;/*case'g':{FILE*tp;*//*break;*/case'i':{FILE*tp;charch;if((tp=fopen(d:\\info.txt,rt))==null){printf(\ncan'topen!);getchar();exit(1);}ch=fgetc(tp);while(ch!=EOF){putchar(ch);ch=fgetc(tp);}fclose(tp);}break;case'c':break;case'v':{do{printf(\nINPUTJIEDIAN(0-10):\n);scanf(%d,&i);{dijkstra(g,n,i,d,p);printf(\n\nyuandianisv%d:,i);opdijk(i,n,d,p);}}while(1);}break;default:exit(1);}}while(getchar());getchar();}*--------------------校园导游系统------------------*/#includestdio.h#includeprocess.h#defineINT_MAX1000000#definen10intcost[n][n];//边的值intshortest[n][n];//两点间的最短距离intpath[n][n];//经过的景点的;voidfloyed();intdisplay(inti,intj);voidintroduce()//introduceofthepalce{inta;printf(Place1:凯旋门\n);printf(Place2:图书馆\n);printf(Place3:行政楼\n);printf(Place4:飞翔门\n);printf(Place5:大广场\n);printf(Place6:ABC教学楼\n);printf(Place7:体育场\n);printf(Place8:月亮湾\n);printf(Place9:EnglishConer\n);printf(Place10:树人广场\n);do{printf(您想查询哪个景点的详细信息?请输入景点编号:);scanf(%d,&a);getchar();switch(a){case1:printf(Place1introduce:凯旋门\n凯旋门--学校北大门,风景秀丽。\n学校重要的交通枢纽。\n\n);break;case2:printf(Place2introduce:图书馆\n图书馆--学校信息资源中心,建筑格式新异下沙最大的图书馆\n适合学生自习学习。\n\n);break;case3:printf(Place3introduce:行政楼\n行政楼--学校行政中心,是学校标志性的建筑。\n在楼顶上可以俯瞰学校全景。\n\n);break;case4:printf(Place4introduce:飞翔门\n飞翔门--学校另一个标志性建筑,象雄鹰展翅。\n\n);break;case5:printf(Place5introduce:大广场\n大广场--学校最大的广场,建筑风格意外鲜明,\n\n);break;case6:printf(Place6introduce:ABC教学楼\n--学校唯一三幢连者着的教学楼\n建筑风格独特很方便学生。\n\n);break;case7:printf(Place7introduce:体育场\n--学生运动的好去处,设施齐全。\n风景独特。\n\n);break;case8:printf(Place8introduce:月亮湾\n月亮湾--休息的好去处\n视野开广,风景意外啊!\n\n);break;case9:printf(Place9introduce:EnglishConer\n学习英语的好去处\n\n\n);break;case10:printf(Place10introduce:树人广场\n树人广场--休息学习的好去处也是观光的好地方\n\n);break;default:printf(ErrorInput\nNoPlace!\n\n);break;}}while(a0||a=11);}voidshortestdistance()//要查找的两景点的距离{inti,j;printf(请输入要查询的两个景点的编号(用','间隔):\n);scanf(%d,%d,&i,&j);while(in||i=0||jn||j0){printf(Error(错误)!ErrorCode:%d,%d\n\n\n,i,j);printf(请输入要查询的两个景点的编号(用','间隔):\n);scanf(%d,%d,&i,&j);}floyed();display(i,j);}voidfloyed()//用floyed算法求两个景点的最短路径{inti,j,k;for(i=1;i=n;i++)for(j=1;j=n;j++){shortest[i][j]=cost[i][j];path[i][j]=0;}for(k=1;k=n;k++)for(i=1;i=n;i++)for(j=1;j=n;j++)if(shortest[i][j](shortest[i][k]+shortest[k][j])){
本文标题:校园导航系统的两个代码
链接地址:https://www.777doc.com/doc-7330240 .html