• 大小: 881KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: C/C++
  • 标签: 导航  

资源简介

供大家看看啊 不错!同学的努力啊!学习计算机的人们就应该好好看看 能学到不少东西啊

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#define max 30
using namespace std;
struct ac{
int jl;//两个景点间的距离
};
struct fengjing{
int num;    //存放代号
string sight;  //存放风景名称
string descri; //存放风景简介
};
struct zhuyao{
fengjing F[max];//存放图中的顶点,即景点
ac H[max][max];//存放图中的边,即为景点间的距离
int  n e;   //顶点数和边数
};
struct doudian{// 附加题最后一道题用到的,变量名为Q
string name;//用于存放景点的名称
int flas;//每存入一条,就标志一下,用于判断
};
//用于多个景点的最短路径,两个代号的所有路径都存入这个全局变量
doudian Q[2000][max];
long mm[2000];
zhuyao M;

//用于多个景点的最佳路径,给每个符合代号的所有路径总条数计数
int jj=0;

//判断是多个景点的最短路径还是两个景点的所有路径调用函数
bool cc=0; 

//是allpath中用来存放路径的顶点
long D[max];
//int daihao[max];

//用于两点间的最短路径函数中。。。。。。
int p[max][max];

//用于两点间的最短路径函数中存放两个景点的最短路径
int shortest[max][max];

//int x[max]={0};
//是allpath中用来标记已通过的景点
bool visited[max];

//构造了图的基本信息函数
void creat();

//形成程序的界面函数
void jieshao();

//不管用户输入的是名字还是代号,返回代号
int search1(char c); 

//名字纠错函数
string search2(int &i);

//代号纠错函数
int search3();

//让用户选择要查询的是什么,如简介,两点的最短路径等
int mainmenu();

//让用户选择输入方式是用代号还是用名称
char menu();

//介绍图中景点的信息
void xinxi(int i);

//寻找两点的所有路径
int allpath(zhuyao cint mint n);

//找到两点间的所有路径,如果是寻找两间的所有景点就
//输出,如果是多个景点最佳路径函数调用就不输出
void path(zhuyao c int mint nint k);

//寻找两点间的最短路径函数
void floyed(int int) ;

//找到两点间的最短路径并输出
void   PrintPath ( int i int j) ;

//寻找多个景点最佳路径函数
void duo(int sk);

//主函数
void main(){
int v0v1xxij;
int ckskmn;
char c1c2c3;
system(“color fc“);
creat();
do
{  
ck=mainmenu();//用户选择查询选择
switch(ck){
case 1:
c2=menu();
if(c2==‘3‘) break;
cout<<“输入景点用你选择的方式:“;
xx=search1(c2);
xinxi(xx);

break;
case 2:
c1=menu();
if(c1==‘3‘) break;
cout<<“输入起点景点用你选择的方式:“;
v0=search1(c1);
cout<<“输入终点景点用你选择的方式:“;
v1=search1(c1);
floyed(v0v1);
cout<<“\n\n\t\t\t\t请按任意键继续...\n“;
getchar();
getchar();
break;
case 3:
c3=menu();
if(c3==‘3‘) break;
cout<<“输入起点景点用你选择的方式:“;
m=search1(c3);
cout<<“输入终点景点用你选择的方式:“;
n=search1(c3);
jj=0;
allpath(Mmn);
jj=0;
cout<<“\n\n\t\t\t\t请按任意键继续...\n“;
getchar();
getchar();
break;
case 4:
//给Qmm初始化
for(i=0;i<2000;i++)
for(j=0;j<=M.n+1;j++){
Q[i][j].name=“0“;
Q[i][j].flas=0;
}
for(i=0;i<2000;i++)
mm[i]=0;
cout<<“请输入你要几个景点:“;
sk=search1(‘1‘);
jj=0;
cc=1;
duo(sk);
jj=0;
cc=0;
break;
case 5:
return;
};
}while(1);

}

/*给每个景点设置代号。打开文本,读入数据,读入总结点数,边数,
景点名称,景点,介绍,矩阵(两个点间的距离,如果是不直接相邻
的两个点间的距离设为20000,自己和自己间的距离设为20000*/

void creat(){

int ij;

ifstream in(“input.txt“);
in>>M.n;
in>>M.e;
for(i=1;i<=M.n;i++)//从文件中读入信息
{
    in>>M.F[i].num;
in>>M.F[i].sight;
in>>M.F[i].descri;
}
for(i=1;i<=M.n;i++)
for(j=1;j<

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12463  2009-06-21 18:07  校园导航.cpp

     文件       1564  2009-06-21 18:44  input.txt

     文件     975872  2009-06-22 11:13  课程设计报告参考模板.doc

     文件     614472  2009-06-23 21:51  校园导航.exe

----------- ---------  ---------- -----  ----

              1604371                    4


评论

共有 条评论