求大神帮忙解决!

时间:2021-10-30 14:12:28
/***********************主函数*******************************/
void main(void)
{
 int i;
 b=InitGraph();
 Menu();
 cin>>i;
 while(i!=4)
 {
 switch(i)
  {
  case 1:system("cls");Browser(&b);Menu();break;
  case 2:system("cls");Floyd(&b);Menu();break;
  case 3:system("cls");Search(&b);Menu();break;
  case 4:exit(1);break;
  default:break;
  }

 cin>>i;
 }
}
/*************************************************************/
/*************************定义景点编号,名称及简介************/
MGraph InitGraph(void)
{
 MGraph G;
 int i,j;
 G.vexnum=10;      //十个景点
 G.arcnum=14;        //邻接矩阵
 for(i=0;i<G.vexnum;i++)
  G.vexs[i].num=i;
 //各景点的代码,名称及简介
 strcpy(G.vexs[0].name,"东门    ");
 strcpy(G.vexs[0].introduction,"这是我们学校的象征          ");
 strcpy(G.vexs[1].name,"科学会堂");
 strcpy(G.vexs[1].introduction,"记得刚来山师大时,我还是那么稚嫩,在数计学院一年半了,我也长大了           ");
strcpy(G.vexs[2].name,"数计学院");
 strcpy(G.vexs[2].introduction,"数计学院很强大啊               ");
 strcpy(G.vexs[3].name,"莳英湖");
 strcpy(G.vexs[3].introduction,"情侣约会圣地 。                ");
 strcpy(G.vexs[4].name,"餐厅  ");
 strcpy(G.vexs[4].introduction,"这个我经常吃饭的地方,挺不错的  ");
 strcpy(G.vexs[5].name,"西平房");
 strcpy(G.vexs[5].introduction,"我校学生会办公场所            ");
 strcpy(G.vexs[6].name,"灯光篮球场");
 strcpy(G.vexs[6].introduction,"师大三大活动 啦啦操 篮球赛  选秀之地  ");
 strcpy(G.vexs[7].name,"澡堂  ");
 strcpy(G.vexs[7].introduction,"蛋碎的地方,但是确实方便了我们              ");
 strcpy(G.vexs[8].name,"文化艺术活动中心    ");
 strcpy(G.vexs[8].introduction,"大型的文艺活动这些都在这里举办 ");
 strcpy(G.vexs[9].name,"学生宿舍");
 strcpy(G.vexs[9].introduction,"我们的第二家乡,舒服 和兄弟们在一起             ");
 for(i=0;i<G.vexnum;i++)
     for(j=0;j<G.vexnum;j++)
      G.arcs[i][j].adj=INFINITY;
// 各景点之间的距离,没有的均为无穷大
 G.arcs[0][1].adj=50;
 G.arcs[0][2].adj=100;
 G.arcs[1][5].adj=20;
 G.arcs[1][6].adj=75;
 G.arcs[2][3].adj=10;
 G.arcs[2][5].adj=60;
 G.arcs[3][4].adj=20;
 G.arcs[4][11].adj=30;
 G.arcs[5][6].adj=30;
 G.arcs[6][7].adj=10;
 G.arcs[7][8].adj=20;
 G.arcs[8][9].adj=10;
for(i=0;i<G.vexnum;i++)
  for(j=0;j<G.vexnum;j++)
   G.arcs[j][i].adj=G.arcs[i][j].adj;
     return G;
}/*************************************************************/
/**********************主菜单(显示输入提示)***********************/
void Menu()
{
cout<<"                       山西师范大学校园导航图                    "<<endl;
cout<<"                                                                  "<<endl;
cout<<"                        1.浏览各景点及简介                      "<<endl;
cout<<"                        2.选择出发点和目的地                    "<<endl;
cout<<"                        3.查看景点信息                          "<<endl;
cout<<"                        4.退出系统                              "<<endl;
cout<<"                                                                  "<<endl;
cout<<"请输入您需要的服务序号:";
}
/**************************************************************/
/*********************显示景点编号、名称、简介*********************/
void Browser(MGraph *G)
{
 int v;
cout<<"                                                                                              "<<endl;
cout<<" 编号  景点名称              简介                                                             "<<endl;
 for(v=0;v<G->vexnum;v++)
cout<<"  "<<" "<<G->vexs[v].num<<setw(4)<<"  "<<G->vexs[v].name<<setw(4)<<""<<G->vexs[v].introduction<<endl;
cout<<"                                                                                               "<<endl;
}

/*******************************************************************/
/************************Floyd函数********************************/
void Floyd(MGraph *G)
{
 int v,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];
cout<<"v"<<endl;
cout<<" 编号  景点名称              简介                             "<<endl;
 for(v=0;v<G->vexnum;v++)
cout<<"  "<<" "<<G->vexs[v].num<<setw(4)<<"   "<<G->vexs[v].name<<setw(4)<<" "<<G->vexs[v].introduction<<endl;
cout<<"                                                  "<<endl;
 for(v=0;v<G->vexnum;v++)
  for(w=0;w<G->vexnum;w++)
{
   D[v][w]=G->arcs[v][w].adj;
   for(u=0;u<G->vexnum;u++)
    p[v][w][u]=0;
   if(D[v][w]<INFINITY)
   {
    p[v][w][v]=1;p[v][w][w]=1;
   }
  }
 for(u=0;u<G->vexnum;u++)
  for(v=0;v<G->vexnum;v++)
   for(w=0;w<G->vexnum;w++)
    if(D[v][u]+D[u][w]<D[v][w])
    {
     D[v][w]=D[v][u]+D[u][w];
     for(i=0;i<G->vexnum;i++)
      p[v][w][i]=p[v][u][i]||p[u][w][i];
    }

 while(flag)
 {
 cout<<"请输入出发点和目的地的序号(用空格隔开):";
  cin>>k>>j;
  if(k<0||k>G->vexnum||j<0||j>G->vexnum)
  {
 cout<<"景点编号不存在!请重新输入出发点和目的地的序号:";
     cin>>k>>j;
  }
  if(k>=0&&k<G->vexnum&&j>=0&&j<G->vexnum)
   flag=0;
 }
cout<<G->vexs[k].name;
 for(u=0;u<G->vexnum;u++)
  if(p[k][j][u]&&k!=u&&j!=u)
  cout<<"-->"<<G->vexs[u].name;
cout<<"-->"<<G->vexs[j].name;
cout<<" 总路线长"<<D[k][j]<<endl;
}//Floyd end

/**************************************************************/
/********************查找景点************************/
void Search(MGraph *G)
{
 int k,v,flag=1;
cout<<""<<endl;
cout<<" 序号    景点名称        "<<endl;
 for(v=0;v<G->vexnum;v++)
cout<<"   "<<G->vexs[v].num<<setw(5)<<"   "<<G->vexs[v].name<<setw(10)<<"    "<<endl;
cout<<"                            "<<endl;
 while(flag)
 {
 cout<<"请输入要查询的景点序号:";
  cin>>k;
if(k<0||k>G->vexnum)
  {
    cout<<"景点序号不存在,请重新输入景点序号:";
     cin>>k;
  }
  if(k>=0&&k<G->vexnum)
   flag=0;
 }
cout<<"                                                                                                           "<<endl;
cout<<" 序号 景点名称   简介                                                                                       "<<endl;
cout<<" "<<G->vexs[k].num<<setw(5)<<" "<<G->vexs[k].name<<setw(4)<<"  "<<G->vexs[k].introduction<<setw(2)<<"   "<<endl;
cout<<"                                                                                                          "<<endl;
}//Search  end
  /*************************************************************/

帮忙修改下 让他能够运行 
出错--------------------Configuration: wodw - Win32 Debug--------------------
Compiling...
wodw.cpp
D:\晓明\wuhui\wodw.cpp(5) : error C2065: 'b' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(5) : error C2065: 'InitGraph' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(6) : error C2065: 'Menu' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(7) : error C2065: 'cin' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(7) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
D:\晓明\wuhui\wodw.cpp(12) : error C2065: 'system' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(12) : error C2065: 'Browser' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(13) : error C2065: 'Floyd' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(14) : error C2065: 'Search' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(15) : error C2065: 'exit' : undeclared identifier
D:\晓明\wuhui\wodw.cpp(19) : warning C4552: '>>' : operator has no effect; expected operator with side-effect
D:\晓明\wuhui\wodw.cpp(24) : error C2146: syntax error : missing ';' before identifier 'InitGraph'
D:\晓明\wuhui\wodw.cpp(24) : error C2501: 'MGraph' : missing storage-class or type specifiers
D:\晓明\wuhui\wodw.cpp(24) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

wodw.obj - 1 error(s), 0 warning(s)

3 个解决方案

#1



//MGraph  这个类型不清楚..缺少 

#2


第1个error C2065: 'b' : undeclared identifier很明显是第五行的b没有定义

#3


自己动动手!
调试程序是基本技能的!

#1



//MGraph  这个类型不清楚..缺少 

#2


第1个error C2065: 'b' : undeclared identifier很明显是第五行的b没有定义

#3


自己动动手!
调试程序是基本技能的!