C++数据结构课程设计-校园导游咨询系统 - 图文(6)

2019-01-07 11:36

《校园导游咨询*》设计报告

#include \ #include \ #include \ #include

//********带参构造函数**********

BGraph::BGraph(Site a[], Road b[],int n, int e)//传入顶点类数组a,边类数组b,顶点数、边数 { int i,k; ArcNode *E;

int adv1=-1,adv2=-1,scLv=0; string n1,n2;

vertexNum=n; arcNum=e;

for(i=0;i

}

for(k=0;k

//先插入边

E=new ArcNode;

E->distance=b[k].distance; E->adjvex=b[k].s2.code;

E->nextarc=adjlist[b[k].s1.code].firstarc; E->sceneLevel=b[k].scnLv;

adjlist[b[k].s1.code].firstarc=E; //再插入边 E=new ArcNode;

E->distance=b[k].distance; E->adjvex=b[k].s1.code;

E->nextarc=adjlist[b[k].s2.code].firstarc; E->sceneLevel=b[k].scnLv;

adjlist[b[k].s2.code].firstarc=E; //******初始化距离邻接矩阵**********

int a[MaxSize][MaxSize]={};

for(int i=0;i

—25—

《校园导游咨询*》设计报告

for(int j=0;j

a[i][j]=0;

}

for(int i=0;i

{ ArcNode *E; int b;

E=adjlist[i].firstarc; while (E) { b=E->adjvex;

a[i][b]=E->distance; E=E->nextarc;

}

}

for(int i=0;i

dis[i][j]=a[i][j];

}

}

//******初始化风景邻接矩阵********** int sc[MaxSize][MaxSize]={}; for(int i=0;i

sc[i][j]=0;

}

for(int i=0;i

{ ArcNode *E; int b;

E=adjlist[i].firstarc; while (E)

{

—26—

《校园导游咨询*》设计报告

b=E->adjvex;

sc[i][b]=10-E->sceneLevel; E=E->nextarc;

}

}

for(int i=0;i

scn[i][j]=sc[i][j];

}

}

//***********添加节点************ void BGraph::addSite() { bool flag=false;

int adv1=-1,adv2=-1,scLv=0; string temp; Site n;

if(vertexNum==MaxSize) cout<<\顶点数已满!\<

{ do { flag=false;

cout<<\请输入要添加的景点名称:\; cin>>temp;

for(int i=0;i

}

}

}

while(flag); n.siteName=temp;

n.code=vertexNum+1;

—27—

《校园导游咨询*》设计报告

cout<<\请输入景点信息:\; cin>>n.introduction; flag=true; while(flag) { cout<<\请输入景点X坐标:\; cin>>temp;

if(!IsDigit(temp)&&stringToNum(temp)<0) cout<

{ flag=false;

n.px=stringToNum(temp);

}

}

flag=true; while(flag) { cout<<\请输入景点Y坐标:\; cin>>temp;

if(!IsDigit(temp)&&stringToNum(temp)<0) cout<

{ flag=false;

n.py=stringToNum(temp);

}

}

vertexNum++;

adjlist[vertexNum-1].vex=n;

adjlist[vertexNum-1].firstarc=NULL; //修改距离邻接矩阵、风景邻接矩阵

for(int i=0;i

for(int i=0;i

dis[i][vertexNum-1]=UR; —28—

《校园导游咨询*》设计报告

}

scn[i][vertexNum-1]=0;

dis[vertexNum-1][vertexNum-1]=0;

}

}

//**************添加边********* void BGraph::addRoad() { int scne; Site a,b; ArcNode *E;

int adv1=-1,adv2=-1,scLv=0; string n1,n2; cout<<\请输入节点1:\; cin>>n1;

a=searchByName(n1); cout<<\请输入节点2:\; cin>>n2;

b=searchByName(n2); cout<<\风景等级(1~10):\; cin>>scne; adv1=a.code; adv2=b.code;

E=new ArcNode;

E->distance=caculateDistance(a,b); E->adjvex=adv2;

E->nextarc=adjlist[adv2].firstarc; E->sceneLevel=scne; adjlist[adv1].firstarc=E; dis[adv1][adv2]=E->distance; scn[adv1][adv2]=E->sceneLevel; //再插入边 E=new ArcNode;

E->distance=caculateDistance(a,b); E->adjvex=adv1;

E->nextarc=adjlist[adv1].firstarc; E->sceneLevel=scne; adjlist[adv2].firstarc=E;

dis[adv2][adv1]=E->distance; —29—


C++数据结构课程设计-校园导游咨询系统 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机网络(作业)附参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: