#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;}