⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.h

📁 计算子午圈半径M 计算卯酉圈半径N 计算玮圈半径r 计算经线弧长Sm 计算纬线弧长Sn 计算球面梯形面积 计算最大角度变形 计算球面极坐标
💻 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 + -