📄 menu.h
字号:
#include <process.h>
#include <fstream.h>
#include <conio.h>
#include <stdlib.h>
# include <math.h>
# include "DefineFunction.h"
void menu()
{
double M1,M2,N1,N2,d,a,b,N0,M0,n,m;
int i,j;
int n0,m0;
char input;
int input1=8;
double R;
double l;
fstream iofile("E://地图投影//mapnew//myfile.xls",ios::in|ios::out|ios::ate);
if(! iofile)
{
cout<<"不能打开文件:"<<"myfile.txt"<<endl;
exit(1);
}
iofile.precision(10);
cout.precision(4);
fstream iofile1("E://地图投影//mapnew//myfile.txt",ios::in|ios::out|ios::ate);
if(! iofile1)
{
cout<<"不能打开文件:"<<"myfile.txt"<<endl;
exit(1);
}
iofile1.precision(10);
system("cls"); //执行系统命令:cls-清屏
cout << "==================MENU===============\n";
cout << "1: 计算子午圈半径M\n";
cout << "2: 计算卯酉圈半径N\n";
cout << "3: 计算玮圈半径r\n";
cout << "4: 计算经线弧长Sm\n";
cout << "5: 计算纬线弧长Sn\n";
cout << "6: 计算球面梯形面积\n";
cout << "7: 计算最大角度变形\n";
cout << "8: 计算球面极坐标\n";
cout << "9: 退出\n";
cout << "请输入符号: ";
cin >> input;
cout << "=====================================\n";
switch (input)
{
case '1':
cout<<"请输入纬度\n";
N1=choice();
d=M(N1);
cout<<d<<endl;
break;
case '2':
cout<<"请输入纬度\n";
N1=choice();
d=N(N1);
cout<<d<<endl;
break;
case '3':
cout<<"请输入纬度\n";
N1=choice();
cout<<r(N1)<<endl;
break;
case '4':
cout<<"请输入纬度N1\n";
N1=choice();
if(N1==0)
{
cout<<"请输入纬度N2\n";
N2=choice();
cout<<Sm(N2)<<endl;
break;
}
else
{
cout<<"请输入纬度N2\n";
N2=choice();
cout<<Sm(N1,N2)<<endl;
break;
}
case '5':
cout<<"请输入经度M1\n";
M1=choice();
cout<<"请输入经度M2\n";
M2=choice();
cout<<"请输入纬度N1\n";
N1=choice();
R=r(N1);
l=M2-M1;
cout<<Sn(R,l)<<endl;
break;
case '6':
cout<<"请输入纬度N1\n";
N1=choice();
cout<<"请输入纬度N2\n";
N2=choice();
cout<<"请输入经度M1\n";
M1=choice();
cout<<"请输入经度M2\n";
M2=choice();
cout<<s(N1,N2,M1,M2)<<endl;
break;
case '7':
cout<<"请输入主方向长度比a,b:\n";
cout<<"a:";
cin>>a;
cout<<"b:";
cin>>b;
cout<<rad1(w(a,b))<<endl;
break;
case '8':
iofile.precision(6);
iofile1.precision(6);
cout<<"请输入新极点Q0的地理坐标:纬度N0,经度M0\n";
iofile<<"请输入新极点Q0的地理坐标:纬度N0,经度M0\n"<<endl;
iofile1<<"请输入新极点Q0的地理坐标:纬度N0,经度M0\n"<<endl;
cout<<"N0:";
iofile<<"N0:";
iofile1<<"N0:";
cin>>N0;
iofile<<N0<<endl;
iofile1<<N0<<endl;
cout<<"M0:";
iofile<<"M0:";
iofile1<<"M0:";
cin>>M0;
iofile<<M0<<endl;
iofile1<<M0<<endl;
cout<<"请输入纬度范围:\n";
iofile<<"请输入纬度范围:\n"<<endl;
iofile1<<"请输入纬度范围:\n"<<endl;
cout<<"from: ";
iofile<<"from: ";
iofile1<<"from: ";
cin>>N1;
iofile<<N1<<" ";
iofile1<<N1<<" ";
cout<<"to: ";
iofile<<"to: ";
iofile1<<"to: ";
cin>>N2;
iofile<<N2<<endl;
iofile1<<N2<<endl;
cout<<"请输入经度范围: \n";
iofile<<"请输入经度范围: \n"<<endl;
iofile1<<"请输入经度范围: \n"<<endl;
cout<<"from: ";
iofile<<"from: ";
iofile1<<"from: ";
cin>>M1;
iofile<<M1<<" ";
iofile1<<M1<<" ";
cout<<"to: ";
iofile<<"to: ";
iofile1<<"to: ";
cin>>M2;
iofile<<M2<<endl;
iofile1<<M2<<endl;
cout<<"请输入纬度和经度差值:\n";
iofile<<"请输入纬度和经度差值:\n"<<endl;
iofile1<<"请输入纬度和经度差值:\n"<<endl;
cout<<"经度差值m:";
iofile<<"经度差值m:";
iofile1<<"经度差值m:";
cin>>m;
iofile<<m<<endl;
iofile1<<m<<endl;
cout<<"纬度差值n:";
iofile<<"纬度差值n:";
iofile1<<"纬度差值n:";
cin>>n;
iofile<<n<<endl;
iofile1<<n<<endl;
n0=fabs(N2-N1)/n;
m0=fabs(M2-M1)/m;
position gp[20][20];
position0 gp0[20][20];
position1 gp1[20][20];
double w1[20][20];
double f2[20][20];
double P[20][20];
double max1;
double min1;
max1=max(M1,M2);
min1=min(M1,M2);
M1=min1;
M2=max1;
max1=max(N1,N2);
min1=min(N1,N2);
N1=min1;
N2=max1;
for( i=0;i<=n0;i++)
{
for(j=0;j<=m0;j++)
{
gp[i][j]=getp(M0,N0,M1+m*j,N1+n*i); //经度m,j纬度 n,i;
gp0[i][j]=getp(gp[i][j].a,gp[i][j].Z);
gp1[i][j]=getp(gp0[i][j].a,gp0[i][j].p,1);
w1[i][j]=w(gp[i][j].Z);
P[i][j]=gp[i][j].Z/sin(gp[i][j].Z);
f2[i][j]=gp[i][j].Z/sin(gp[i][j].Z);
if(gp[i][j].Z==0)
{
w1[i][j]=0;
P[i][j]=1;
f2[i][j]=1;
}
}
}
for(i=0;i<=n0;i++)
for(j=0;j<=m0;j++)
{
cout<<"经度"<<M1+m*j<<"纬度"<<N1+n*i<<" ";
cout<<"a "<<gp[i][j].a<<" "<<"Z "<<gp[i][j].Z<<endl;
}
//弧度的a,z
for(i=0;i<=n0;i++)
for(j=0;j<=m0;j++)
{
double f1=1.0;
cout<<"经度"<<M1+m*j<<"纬度"<<N1+n*i<<" ";
iofile<<"经度"<<M1+m*j<<"纬度"<<N1+n*i<<" ";
iofile1<<"经度"<<M1+m*j<<"纬度"<<N1+n*i<<" ";
//屏幕输出a,Z, p,Q, x,y, f1,f2, P,w
cout<<"a "<<rad1(gp[i][j].a)<<" "<<"Z "<<rad1(gp[i][j].Z)<<endl;
cout<<" "<<"p "<<gp0[i][j].p<<" "<<"Q "<<rad1(gp0[i][j].a)<<endl;
cout<<" "<<"x "<<gp1[i][j].x<<" "<<"y "<<gp1[i][j].y<<endl;
cout<<" "<<"f1 "<<f1<<" "<<"f2 "<<f2[i][j]<<endl;
cout<<" "<<"P "<<P[i][j]<<" "<<"w "<<w1[i][j]<<endl;
//输出到文本文件myfile.txt
iofile<<"a "<<rad1(gp[i][j].a)<<" "<<"Z "<<rad1(gp[i][j].Z)<<endl;
iofile<<" "<<"p "<<gp0[i][j].p<<" "<<"Q "<<rad1(gp0[i][j].a)<<endl;
iofile<<" "<<"x "<<gp1[i][j].x<<" "<<"y "<<gp1[i][j].y<<endl;
iofile<<" "<<"f1 "<<1<<" "<<"f2 "<<f2[i][j]<<endl;
iofile<<" "<<"P "<<P[i][j]<<" "<<"w "<<w1[i][j]<<endl;
//输出到excel文件myfile.xls
iofile1<<"a "<<rad1(gp[i][j].a)<<" "<<"Z "<<rad1(gp[i][j].Z)<<endl;
iofile1<<" "<<"p "<<gp0[i][j].p<<" "<<"Q "<<rad1(gp0[i][j].a)<<endl;
iofile1<<" "<<"x "<<gp1[i][j].x<<" "<<"y "<<gp1[i][j].y<<endl;
iofile1<<" "<<"f1 "<<1<<" "<<"f2 "<<f2[i][j]<<endl;
iofile1<<" "<<"P "<<P[i][j]<<" "<<"w "<<w1[i][j]<<endl;
}
iofile<<endl;
iofile1<<endl;
cout<<" "<<","<<" "; //第一行输出经度
for(j=0;j<=m0;j++)
{
cout<<","<<M1+j*n;
}
cout<<endl;
cout<<" "<<","<<" "; //第二行输出经差
for(j=0;j<=m0;j++)
{
cout<<","<<M1+j*n-M0;
}
cout<<endl;
for(i=n0;i>=0;i--) //10行一个循环
{
cout<<i*n<<","<<"a"<<","; //第三行输出a,Z
for(j=0;j<=m0;j++)
{
cout<<rad1(gp[i][j].a)<<",";
}
cout<<endl;
cout<<" "<<","<<"Z"<<",";
for(j=0;j<=m0;j++)
{
cout<<rad1(gp[i][j].Z)<<",";
}
cout<<endl;
cout<<" "<<","<<"p"<<","; //输出p,Q
for(j=0;j<=m0;j++)
{
cout<<gp0[i][j].p<<",";
}
cout<<endl;
cout<<" "<<","<<"Q"<<",";
for(j=0;j<=m0;j++)
{
cout<<rad1(gp0[i][j].a)<<",";
}
cout<<endl;
cout<<" "<<","<<"x"<<","; //输出x,y
for(j=0;j<=m0;j++)
{
cout<<gp1[i][j].x<<",";
}
cout<<endl;
cout<<" "<<","<<"y"<<",";
for(j=0;j<=m0;j++)
{
cout<<gp1[i][j].y<<",";
}
cout<<endl;
cout<<" "<<","<<"f1"<<",";
for(j=0;j<=m0;j++)
{
cout<<1<<",";
}
cout<<endl;
cout<<" "<<","<<"f2"<<",";
for(j=0;j<=m0;j++)
{
cout<<f2[i][j]<<",";
}
cout<<endl;
cout<<" "<<","<<"w"<<",";
for(j=0;j<=m0;j++)
{
cout<<w1[i][j]<<",";
}
cout<<endl;
cout<<" "<<","<<"P"<<",";
for(j=0;j<=m0;j++)
{
cout<<P[i][j]<<",";
}
cout<<endl;
}
//输出到文本
iofile1<<" "<<","<<" "; //第一行输出经度
for(j=0;j<=m0;j++)
{
iofile1<<","<<M1+j*n;
}
iofile1<<endl;
iofile1<<" "<<","<<" "; //第二行输出经差
for(j=0;j<=m0;j++)
{
iofile1<<","<<M1+j*n-M0;
}
iofile1<<endl;
for(i=n0;i>=0;i--) //10行一个循环
{
iofile1<<i*n<<","<<"a"<<","; //第三行输出a,Z
for(j=0;j<=m0;j++)
{
iofile1<<rad1(gp[i][j].a)<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"Z"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<rad1(gp[i][j].Z)<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"p"<<","; //输出p,Q
for(j=0;j<=m0;j++)
{
iofile1<<gp0[i][j].p<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"Q"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<rad1(gp0[i][j].a)<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"x"<<","; //输出x,y
for(j=0;j<=m0;j++)
{
iofile1<<gp1[i][j].x<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"y"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<gp1[i][j].y<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"f1"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<1<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"f2"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<f2[i][j]<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"w"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<w1[i][j]<<",";
}
iofile1<<endl;
iofile1<<" "<<","<<"P"<<",";
for(j=0;j<=m0;j++)
{
iofile1<<P[i][j]<<",";
}
iofile1<<endl;
}
position get;
position0 get0;
position1 get1;
while (input1==8)
{
M0=105;N0=30;
cout<<"please input 经度m,纬度 n:\n"<<"经度"<<endl;
cin>>M1;
cout<<"纬度"<<endl;
cin>>N1;
get=getp(M0,N0,M1,N1); //经度m,j纬度 n,i;
get0=getp(get.a,get.Z);
get1=getp(get0.a,get0.p,1);
cout<<"x:"<<get1.x<<" y:"<<get1.y<<endl;
cout<<"cin input1"<<endl;
/// cin>>input1;
system("pause");
system("cls");
}
break;
case '9':
exit(-1);
break;
}
iofile.close();
iofile1.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -