当前位置:文档之家› (完整word版)高斯投影坐标正反算编程报告

(完整word版)高斯投影坐标正反算编程报告

}
void fansuan(){
double myX,myY;
cout<<"【反算】"<<endl;
cout<<"请输入国家统一坐标X Y。例如3378627.1819 20243953.4517"<<endl;
cin>>myX>>myY;
Fansuan myFansuan1(myX,myY);
myFansuan1.printLocation();
#define AFX_ZHENGSUAN_H__2655EA28_E810_44A3_8F14_56421A7B4466__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VERቤተ መጻሕፍቲ ባይዱ> 1000
#define rouSecond 206264.806247096355
double degreeToRadian(double degree);
double degreeToRadian();//将角度换算为弧度
MyFunction.cpp
#include "MyFunction.h"
double angleToDegree(int du,int fen,float miao){
高斯投影坐标正反算编程报告
10021班 张鑫 学号:2010302590040
1.编程思想
进行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更清楚,各块的数据复用性更强,这里采取了结构化的编程思想。
程序由四大块组成。
GeodesyHomework.cpp文件用于存放main()函数,是整个程序的入口。通过结构化的编程尽力使main()函数变得简单。
Fansuan.h和Fansuan.cpp用于存放Fansuan类,类似于Zhengsuan类,Fansuan类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。通过get函数获得相应的反算结果。
2.计算模型
高斯投影正算公式
高斯投影反算公式
3.程序框图
4.计算结果
cin>>du>>fen>>miao;
result=angleToDegree(du,fen,miao);
return result;
}
double degreeToRadian(double degree){
double result=0;
result=degree/57.295779513082321;
5.附录:程序代码
/////主函数入口
GeodesyHomework.cpp
#include "MyFunction.h"
#include "Zhengsuan.h"
#include "Fansuan.h"
#include <iostream>
using namespace std;
void fansuan();
cout<<"请输入大地经度L"<<endl;
myL=angleToDegree();
Zhengsuan myZhengsuan1(myB,myL);
printf("Radian B=%f L=%f \n",myZhengsuan1.getrB(),myZhengsuan1.getrL());
myZhengsuan1.printLocation();
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ZHENGSUAN_H__2655EA28_E810_44A3_8F14_56421A7B4466__INCLUDED_)
double getY();
double getrB();
}
///自定功能函数库
MyFunction.h
#define PI 3.1415926
#include <iostream>
using namespace std;
double angleToDegree(int du,int fen,float miao);
double angleToDegree();//将度分秒换算为度
return result;
}
double degreeToRadian(){
double result,degree;
degree=angleToDegree();
result=degreeToRadian(degree);
return result;
}
///正算类
Zhengsuan.h
// Zhengsuan.h: interface for the Zhengsuan class.
#include "MyFunction.h"
#include <iostream>
#include <math.h>
using namespace std;
class Zhengsuan
{
public:
Zhengsuan();
Zhengsuan(double fB,double fL);
double getX();
MyFunction.h和MyFunction.cpp用于存放计算过程中进行角度弧度换算时所要用到的一些自定的转换函数。
Zhengsuan.h和Zhengsuan.cpp用于存放Zhengsuan类,在Zhengsuan类中声明了高斯投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。通过get函数获得相应的正算结果。
void zhengsuan();
void main(){
zhengsuan();
fansuan();
printf("/n over!");
}
void zhengsuan(){
double myB,myL;
cout<<"【正算】"<<endl;
cout<<"请输入大地纬度B"<<endl;
myB=angleToDegree();
double result=0;
result=miao/3600.0+fen/60.0+du;
return result;
}
double angleToDegree(){
int du,fen;
float miao;
double result;
cout<<"请输入度分秒。例如:30 20 00"<<endl;
相关主题