首页 > 代码库 > 各城市地形图的分幅与编号查询系统

各城市地形图的分幅与编号查询系统


图片图片

 #include<iostream>
#include<cmath>
#include<iomanip>
#include<string>
using namespace std;
struct city
{
 char name[50];
 int jd;
 int jf;
 int jm;
 int wd;
 int wf;
 int wm;
 string jdf;
 float a;
 float b;
 int lie;
 char hang;
}ci[50];
int main()
{
 int i,n,m,x[100],X[100],l,s[100],S[100],j,g,G;
 float a;
 string str1,str2;
 str1=‘w‘;
 str2=‘e‘;
 cout<<"输入将要查询城市的个数:";
 cin>>n;
 for(i=1;i<=n;i++)
 {
  cout<<"输入第"<<i<<"个将要查询的城市名称:";
  cin>>ci[i].name;
 }
 cout<<endl;
 for(i=1;i<=n;i++)
 {
  cout<<"输入"<<ci[i].name<<"的经度(注明w和e)"<<endl;
  cin>>ci[i].jd>>ci[i].jf>>ci[i].jm>>ci[i].jdf;
  cout<<"输入"<<ci[i].name<<"的纬度"<<endl;
  cin>>ci[i].wd>>ci[i].wf>>ci[i].wm;
  ci[i].a=ci[i].jd+float(ci[i].jf/60)+float(ci[i].jm/3600);
  ci[i].b=ci[i].wd+float(ci[i].wf/60)+float(ci[i].wm/3600);
 }
 for(i=1;i<=n;i++)
 {
  if(ci[i].jdf==str1)
  {
   ci[i].lie=int(((180-ci[i].a)/6+1)/1.0);
   X[i]=180-(ci[i].lie-1)*6;
  }
  if(ci[i].jdf==str2)
  {
   ci[i].lie=int((ci[i].a/6+1)/1.0)+30;
   X[i]=(ci[i].lie-31)*6;
  }
  ci[i].hang=char(int(ci[i].b/4+1)/1.0+64);
  x[i]=int(ci[i].b/4+1)/1.0*4;
  cout<<ci[i].name<<"所在1:100万地形图的图幅编号为:"<<ci[i].hang<<ci[i].lie<<endl;
 }
 cout<<"请选择分幅编号的类型:"<<endl;
 a=50;
 for(i=1;i<=7;i++)
 {
  cout<<i<<":1:"<<a<<"万"<<"  ";
  a=a/2;
  if(i==2)
  {
   a=10;
  }
  if(i==5)
  {
   a=1;
  }
 }
 cout<<"  "<<"8:结束查询"<<endl;
 do
 {
  cin>>m;
  if(m==1)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;
    G=0;
    for(i=1;i<=2;i++)               //行
    {
     if(ci[l].b>=x[l]-2*i)
     {
      s[l]=i;
      for(j=1;j<=2;j++)           //列
      {
       if(ci[l].a<=X[l]+3*j)
       {
        g++;
        G++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    cout<<ci[l].name<<"所在1:50万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"B"<<"00"<<s[l]<<"00"<<S[l]<<endl;
   }
  }
  if(m==2)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;G=0;
    for(i=1;i<=4;i++)               //行
    {
     if(ci[l].b>=x[l]-i)
     {
      s[l]=i;
      for(j=1;j<=4;j++)           //列
      {
       if(ci[l].a<=X[l]+1.5*j)
       {
        G++;
        g++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    cout<<ci[l].name<<"所在1:25万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"00"<<S[l]<<endl;
   }
  }
  if(m==3)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;G=0;
    for(i=1;i<=12;i++)               //行
    {
     if(ci[l].b>=x[l]-0.33*i)
     {
      s[l]=i;
      for(j=1;j<=12;j++)           //列
      {
       if(ci[l].a<=X[l]+0.5*j)
       {
        G++;
        g++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    if(s[l]<10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:10万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]<10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:10万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:10万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:10万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"0"<<S[l]<<endl;
    }
   }
  }
  if(m==4)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;G=0;
    for(i=1;i<=24;i++)               //行
    {
     if(ci[l].b>=x[l]-0.167*i)
     {
      s[l]=i;
      for(j=1;j<=24;j++)           //列
      {
       if(ci[l].a<=X[l]+0.25*j)
       {
        G++;
        g++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    if(s[l]<10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]<10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"0"<<S[l]<<endl;
    }
   }
  }
  if(m==5)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;G=0;
    for(i=1;i<=48;i++)               //行
    {
     if(ci[l].b>=x[l]-0.083*i)
     {
      s[l]=i;
      for(j=1;j<=48;j++)           //列
      {
       if(ci[l].a<=X[l]+0.125*j)
       {
        G++;
        g++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    if(s[l]<10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:2.5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]<10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:2.5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:2.5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:2.5万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"0"<<S[l]<<endl;
    }
   }
  }
  if(m==6)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;G=0;
    for(i=1;i<=96;i++)               //行
    {
     if(ci[l].b>=x[l]-0.0417*i)
     {
      s[l]=i;
      for(j=1;j<=96;j++)           //列
      {
       if(ci[l].a<=X[l]+0.0625*j)
       {
        G++;
        g++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    if(s[l]<10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:1万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]<10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:1万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:1万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]>=10&&S[l]>=10)
    {
     cout<<ci[l].name<<"所在1:1万地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"0"<<S[l]<<endl;
    }
   }
  }
  if(m==7)
  {
   for(l=1;l<=n;l++)                   //城市
   {
    g=0;G=0;
    for(i=1;i<=192;i++)               //行
    {
     if(ci[l].b>=x[l]-0.0208*i)
     {
      s[l]=i;
      for(j=1;j<=192;j++)           //列
      {
       if(ci[l].a<=X[l]+0.03125*j)
       {
        G++;
        g++;
        S[l]=j;
       }
       if(g==1)
        break;
      }
     }
     if(G==1)
      break;
    }
   }
   for(l=1;l<=n;l++)
   {
    if(s[l]<10&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]<10&&S[l]>=10&&S[l]<100)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]<10&&S[l]>=100)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"00"<<s[l]<<S[l]<<endl;
    }
    if(s[l]>=10&&s[l]<100&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]>=10&&s[l]<100&&S[l]>=10&&S[l]<100)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]>=10&&s[l]<100&&S[l]>=100)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<"0"<<s[l]<<S[l]<<endl;
    }
    if(s[l]>=100&&S[l]<10)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<s[l]<<"00"<<S[l]<<endl;
    }
    if(s[l]>=100&&S[l]>=10&&S[l]<100)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<s[l]<<"0"<<S[l]<<endl;
    }
    if(s[l]>=100&&S[l]>=100)
    {
     cout<<ci[l].name<<"所在1:5000地形图的图幅编号为:"<<ci[l].hang<<ci[l].lie<<"C"<<s[l]<<S[l]<<endl;
    }
   }
  }
 }
 while(m!=8);
 return 0;
}