您好,欢迎来到六九路网。
搜索
您的当前位置:首页校园导游咨询2

校园导游咨询2

来源:六九路网
校园导游设计

'graph.h'这个库文件是要自己写的,不是系统给的。2楼的都把代码给出来了 \\\\graph.h---类的声明,包含在这个文件中 class Graph {public:

Graph(int point); ~Graph();

Graph& addpath(int point1,int point2); Graph& addview(int point);

void addinformation(int point); bool searchview(int point); void shortdistance(); void showgraph(); private:

int **graph; -------二维数组

char **information ----景点的信息说明 int number;};

\\\\graph.cpp---类的实现 #include #include\"graph.h\"

Graph::Graph(int point) {number=point;

graph=new int*[point+1]; fot(int i=0;i<=point;i++) graph[i]=new int[point]; for(int i=0;i<=number;i++) for(int j=0;j<=number;j++) graph[i][j]=0;

information=new char*[number+1]; for(int i=0;i<=number;i++)

information[i]=new char[100];}

void Graph::addinformation(int point)

{cout<<\"请输入第\"<>information[point];}

Graph::~Graph()

{for(int i=0;ibool Graph::addpath(int point1,int point2) {if(graph[point1][point2]==0)

{cout<<\"这条边已经存在,已经不能在插入!\"<graph[point1][[point2]=1; return 1; }

Graph& Graph::addview(int point) {int **p=new int*[point+1]; for(int i=0;i<=point;i++) p[i]=new int[point];

for(int i=0;i<=point;i++) for(int j=0;j<=point;j++) p[i][j]=0;

for(int j=1;j<=number;j++) for(int i=1;i<=number;i++) p[i][j]=graph[i][j];

char**pp=new char*[point+1]; for(int i=0;i<=point;i++) pp[i]=new char[100];

for(int i=1;i<=number;i++) strcpy(pp[i],information[i]) number=point; information=pp; graph=p;

return *this;}

Graph& Graph::addpath(int point1,int point2)

{if(graph[point1][point2]==1||graph[point2][point1]==1) throw error; ----这个还没有开始定义了

graph[point1][point2]=graph[point2][point1]=1; return *this; }

bool Graph::searchview(int point) {if(point<0||point>number)

{cout<<\"你所查询的景点不存在\"<cout<void Graph::shortdistance(int point1,int point2)

{int **t=new int*[number+1]; for(int i=0;i<=number;i++) t[i]=new int[number+1]; for(int i=0;i<=number;i++) for(int j=0;j<=number;j++) t[i][j]=graph[i][j];

int **path=new int*[number+1]; for(int i=0;i<=number;i++) t[i]=new int[number+1]; for(int i=0;i<=number;i++) for(int j=0;j<=number;j++) t[i][j]=0;

for(int k=1;k<=number;k++) for(int i=1;i<=number;i++) for(int j=1;j<=number;j++) {int t1=t[i][j]; int t2=t[i][k]; int t3=t[j][k];

if(t1==0&&t2!=0&&t3!=0||t2+t3int end=point2;

cout<<\"你所要的最短路径经过\"<{cout<cout<<\"到\"<void Graph::showgraph() {cout<<\"该图形是:\"<cout<\"; }

//main函数的实现 #include #include #include

using namespace std; void main()

{char judgement='Y'; int flags;

while(judgement=='Y') {

cout<cout<<\"4.增加一个景点的有关信息!\"<>flags; switch(flags) {

case 1:{int max;cout<<\"请输入景点的个数\"<>max;Graph photo(max);break;}

case 2:{int p1,p2;cout<<\"请是输入你要增加路径的两个景点\"<>p1>>p2;photo(p1,p2);break;} case 3:{int p;cout<<\"请输入你要增加的景点\"<>p;photo.addview(p);break;}

case 4:{int p;cout<<\" 请输入你要加入有关信息的景点名字\"<>p;photo.addinformation(p);break;} case 5:{int p;cout<<\"请输入要查询的景点

\"<>p;photo.searchview(p);break;} case 6:{int p1,p2;cout<<\"请输入两个景点的名字

\"<>p1>>p2;photo.shortdistance(p1,p2);break;} case 7:photo.showview();break; }

cout<<\"是否要继续操作,如果是,请按“Y”,否则请按任意键\"<>judgement; } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务