资源简介
供大家看看啊 不错!同学的努力啊!学习计算机的人们就应该好好看看 能学到不少东西啊
代码片段和文件信息
#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
评论
共有 条评论