#include \#include \#include \#include \
#define PI
double a,b,c,e2,ep2; int main() {
printf(\ 大地测量学 \\n\int m,n,t;
double RAD(double d,double f,double m); void RBD(double hd); void BLH_XYZ(); void XYZ_BLH(); void B_ZS(); void B_FS(); void GUS_ZS(); void GUS_FS();
sp1:printf(\请选择功能:\\n\
printf(\大地坐标系到大地空间直角坐标的转换\\n\printf(\大地空间直角坐标到大地坐标系的转换\\n\
printf(\贝塞尔大地问题正算\\n\printf(\贝塞尔大地问题反算\\n\printf(\高斯投影正算\\n\printf(\高斯投影反算\\n\printf(\退出程序\\n\
scanf(\if(m==0)exit(0);
sp2:printf(\请选择椭球参数(输入椭球序号):\\n\
printf(\克拉索夫斯基椭球参数\\n\printf(\椭球参数\\n\printf(\椭球参数\\n\
printf(\其他椭球参数(自行输入)\\n\scanf(\switch(n) {
case 1:a=;b=;c=;e2=;ep2=;break;
case 2:a=;b=;c=;e2=;ep2=;break; case 3:a=;b=;c=;e2=;ep2=;break; case 0:{
printf(\请输入椭球参数:\\n\
printf(\长半径a=\ printf(\短半径b=\ c=a*a/b;
ep2=(a*a-b*b)/(b*b);
{
}
e2=(a*a-b*b)/(a*a); break;
}
default:printf(\输入错误!\\n请重新输入!\\n\\n\
while(1)
{
switch(m)
case 1:BLH_XYZ();break; }
case 2:XYZ_BLH();break; case 3:B_ZS();break; case 4:B_FS();break; case 5:GUS_ZS();break; case 6:GUS_FS();break;
default:printf(\输入错误!\\n请重新输入!\\n\\n\
printf(\是否继续进行此功能计算 \\n\\n\
printf(\( 若继续进行此功能计算,则输入1;\\n 若选择其他功能进行计算,
则输入2;\\n 若退出, 则输入0. )\\n\
scanf(\switch(t) {
}
}
case 1:break; }
case 2:goto sp1; case 0:exit(0);
double RAD(double d,double f,double m) {
double e; double sign=(d<:; if(d==0) { } if(d<0)
d=d*; sign=(f<:; if(f==0) { }
sign=(m<:;
if(f<0)
f=f*;
if(m<0)
m=m*;
}
void RBD(double hd) {
int t; int d,f; double m; double sign=(hd<:; if(hd<0)
hd=fabs(hd);
e=sign*(d*3600+f*60+m)*PI/(3600*180); return e;
hd=hd*3600*180/PI;
t=int(hd/3600); }
void BLH_XYZ() {
d=sign*t; hd=hd-t*3600; f=int(hd/60); m=hd-f*60;
printf(\
double B,L,H,N,W; double d,f,m; double X,Y,Z;