校园导游系统(界面超级棒)Word格式文档下载.doc
《校园导游系统(界面超级棒)Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《校园导游系统(界面超级棒)Word格式文档下载.doc(12页珍藏版)》请在冰豆网上搜索。
*********************************************************/
/*程序中用到的库函数所在头文件应用#include命令包含进来*/
#include"
stdio.h"
math.h"
graphics.h"
conio.h"
/*gotoxy*/
bios.h"
/**********************************************************/
/*定义符号常量*/
#defineNULL0
#definenum20
#definemaxdist10000
/*定义数据结构*/
typedefstruct{
chardata[num];
doubleedges[num][num];
}graph;
/*定义全局变量*/
intx[num],y[num];
chara[num],ab[num][num];
/*自定义函数原型说明*/
voidshowmsg(charmsg[]);
/*逐步显示文字*/
voiddijkstra(graphg,intn,inti,intd[num],intp[num]);
voidopdijk(intv1,intv0,intn,intd[],intp[]);
voidinfo_welcome();
/*功能:
逐步显示文字*/
voidshowmsg(charmsg[]){
inti=0;
while(msg[i]!
=’\0’){
printf("
%c"
msg[i]);
i++;
delay(30000);
}
}
用迪杰思特拉算法求图的最短路径*/
voiddijkstra(graphg,intn,inti,intd[num],intp[num]){
ints[num];
doublemindist,dist;
intj,k,u,w;
for(j=0;
j<
n;
j++)
{d[j]=g.edges[i][j];
s[j]=0;
if((d[j]<
maxdist)&
&
(d[j]!
=0))
p[j]=i;
/*可到达的路径*/
else
p[j]=-1;
/*设空路径*/
}
s[i]=1;
n-1;
{mindist=maxdist;
u=i;
for(k=0;
k<
k++)
if((s[k]==0)&
(d[k]<
mindist))
{u=k;
mindist=d[k];
s[u]=1;
for(k=0;
{if(s[k]==0)
{dist=d[u]+g.edges[u][k];
if(dist<
d[k])
{d[k]=dist;
p[k]=u;
}
打印出图的最短路径*/
voidopdijk(intv1,intv0,intn,intd[],intp[]){
inti,i_1,j,k,pre;
intpoint_x,point_y;
for(i=0;
i<
i++)
if(i!
=v0&
i==v1){
gotoxy(5,24);
printf("
a[i]);
point_x=x[i];
point_y=y[i];
pre=p[i];
while(pre!
=-1){
setcolor(RED);
/**********************************/
/**闪烁终点的颜色*/
for(i_1=0;
i_1<
10;
i_1++)
{
setcolor(GREEN);
circle(x[pre]*30,y[pre]*30,3);
delay(90000);
line(point_x*30,point_y*30,x[pre]*30,y[pre]*30);
}
point_x=x[pre];
point_y=y[pre];
printf("
-->
a[pre]);
/****************************/
pre=p[pre];
if(d[i]==maxdist)
/*line(point_x*30,point_y*30,x[v0]*30,y[v0]*30);
*/
a[v0]);
/*printf("
\tshortestway:
%5f"
d[i]);
/******************************************************/
打印出程序的帮助和欢迎信息*/
voidinfo_welcome(){
inti,j;
char*Msg[]=
"
WelcometoCSFU!
"
"
ADDRESS:
CentralSouth"
ForestryUniversity"
Changsha,Hunan,China"
TEL:
+86-731-5623172"
"
[HELP]"
FindOUTTHESHORTEST"
PATH:
Forf"
EXIT:
Qorq"
NULL,
};
/*显示操作键说明*/
i=0;
textcolor(WHITE);
delay(90000);
while(Msg[i]!
=NULL)
{
gotoxy(56,3+i);
printf(Msg[i]);
\n\n\n"
);
textcolor(GREEN);
gotoxy(5,18);
showmsg("
Welcometouseschool_wizard."
gotoxy(5,20);
Youcanchoose’F’or’Q’:
/***************************************************/
*/
main(){
graphg;
inti,j,k,n,m,i_1,i_2,i_3;
intdriver,mode;
introad_x,road_y;
charnu,b,i_str,m_str;
intd[num],p[num],sd[num][num],sp[num][num];
FILE*map_f,*road_f;
clrscr();
/*初始化变量g.edges[][]*/
for(i_1=0;
num;
i_1++){
for(i_2=0;
i_2<
i_2++){
g.edges[i_1][i_2]=maxdist;
}
/*********************************************************/
/*读取文件map.dat(园地图的景