資源簡(jiǎn)介
校園導(dǎo)航系統(tǒng).rar

代碼片段和文件信息
#define?INFINITY?10000?
#define?MAX_VERTEX_NUM?40
#define?MAX?40
#include?
#include?
#include?
#include?
typedef?struct?ArCell?
{?
int?adj;?/*路徑長(zhǎng)度?*/
}ArCellAdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];?
typedef?struct?/*圖中頂點(diǎn)表示主要景點(diǎn)存放景點(diǎn)的編號(hào)、名稱、簡(jiǎn)介等信息?*/
{?
char?name[30];?
int?num;?
char?introduction[100];/*簡(jiǎn)介*/?
}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);??
/**********主函數(shù)************************/?
int?main()?
{?
system(“color?0f“);?/*修改控制臺(tái)的顏色信息改為白字藍(lán)底的模式*/
system(“mode?con:?cols=140?lines=130“);?/*設(shè)置批處理運(yùn)行時(shí)窗口大小的*/
cmd();?
return?0;?
}?
/********自定義函數(shù)***************/?
???/*?cmd函數(shù)(根據(jù)目錄選擇要進(jìn)行的項(xiàng)目)*/
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請(qǐng)您繼續(xù)選擇服務(wù):“);
break;?
case‘2‘:
system(“cls“);
Menu();?
list();
Search(&b);
printf(“---------------------------------歡迎您的使用--------------------------------\n“);
????printf(“\n請(qǐng)您繼續(xù)選擇服務(wù):“);
break;?
case?‘3‘:
?system(“cls“);
printf(“???????????????┏━━━━━━━━━━━━━━━━━━━━┓\n“);??
printf(“???????????????┃???????????????感謝使用?????????????????┃\n“);?
printf(“???????????????┃???????????南京信息工程大學(xué)?????????????┃\n“);?
printf(“???????????????┃???????????????導(dǎo)航系統(tǒng)?????????????????┃\n“);?
printf(“???????????????┗━━━━━━━━━━━━━━━━━━━━┛\n“);?
?exit(0);?
?default:
?printf(“輸入信息錯(cuò)誤!\n請(qǐng)輸入1或2或3.\n“);
?break;}?}
?}?
/*?迪杰斯特拉算法來計(jì)算出起點(diǎn)到各個(gè)頂點(diǎn)之間的最短路徑v0為起點(diǎn)?*/
void?ShortestPath_DIJ(MGraph?*?G)?
{?
int?vwimint=0xflag=1v0v1have[100]k;?
int?final[20]?D[20]?p[23][23];?
while(flag)?
{?
???printf(“請(qǐng)輸入起始景點(diǎn)編號(hào):\n“);?
???scanf(“%d“&v0);
???if(v0<0||v0>G->vexnum)?
?????printf(“景點(diǎn)編號(hào)不存在!“);
?????
???printf(“請(qǐng)輸入終止景點(diǎn)編號(hào):\n“);?
???scanf(“%d“&v1);
???if(v1<0||v1>G->vexnum)?
?????printf(“景點(diǎn)編號(hào)不存在!“);
?????
???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++)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????175248??2018-06-24?11:16??校園導(dǎo)航.docx
?????文件???????8276??2018-01-07?00:07??1.cpp
-----------?---------??----------?-----??----
???????????????183524????????????????????2
- 上一篇:fn_check_creditCode.rar
- 下一篇:霍夫變換找圓.zip
評(píng)論
共有 條評(píng)論