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

📄 front.cpp

📁 这是测绘方面关于前方交会的计算问题 有数据的 ``欢迎一起探讨
💻 CPP
字号:
// Front.cpp: implementation of the CFront class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "sample7.h"
#include "Front.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CFront::CFront()
{

}

CFront::~CFront()
{

}

//读前方交会数据
BOOL CFront::ReadData(CString strFileName)
{
	CStdioFile fp;
	CFileException e;
	if( !fp.Open( strFileName,CFile::modeRead|CFile::typeText,NULL) )
	{
		AfxGetApp()->m_pMainWnd->MessageBox("数据文件不存在或数据文件错!","提示",MB_OK|MB_ICONWARNING);
		return FALSE;
    }
	int MAXLINE = 254;
	char strBuffer[255], buff[255];
	fp.ReadString(buff,MAXLINE);
	sscanf(buff, "%s",strBuffer);
	if(strcmpi(strBuffer,"FRONT"))
	{
		AfxGetApp()->m_pMainWnd->MessageBox("非前方交会!","提示",MB_OK|MB_ICONWARNING);
		fp.Close();
		return FALSE;
	}
	fp.ReadString(buff,MAXLINE);
	sscanf(buff," %d",&m_Sel_Mode);
	if(m_Sel_Mode == 0)
	{
	    fp.ReadString(buff,MAXLINE);
        sscanf(buff," %lf %lf",&m_XA,&m_YA);
        fp.ReadString(buff,MAXLINE);
        sscanf(buff," %lf %lf",&m_XB,&m_YB);
        fp.ReadString(buff,MAXLINE);
		sscanf(buff," %lf %lf",&m_XC,&m_YC);
		fp.ReadString(buff,MAXLINE);
		sscanf(buff," %lf %lf",&m_A1,&m_B1);
		fp.ReadString(buff,MAXLINE);
		sscanf(buff," %lf %lf",&m_A2,&m_B2);
	}
	if(m_Sel_Mode == 1)
	{
		fp.ReadString(buff,MAXLINE);
        sscanf(buff," %lf %lf",&m_XA,&m_YA);
		fp.ReadString(buff,MAXLINE);
		sscanf(buff," %lf %lf",&m_XB,&m_YB);
		fp.ReadString(buff,MAXLINE);
		sscanf(buff," %lf %lf",&m_A1,&m_B1);
	}
	fp.Close();
	return TRUE;
}
//计算坐标
void CFront::MainProc()
{
	double fa,fb;
	if(m_Sel_Mode == 0)
	{
	    fa = AngleToRadian(m_A1);
		fb = AngleToRadian(m_B1);
	    DirectionMeetCoordinate(m_XA,m_YA,m_XB,m_YB,fa,fb,&m_XP1,&m_YP1);
		fa = AngleToRadian(m_A2);
		fb = AngleToRadian(m_B2);
	    DirectionMeetCoordinate(m_XB,m_YB,m_XC,m_YC,fa,fb,&m_XP2,&m_YP2);
		m_XP = (m_XP1 + m_XP2)/2;
        m_YP = (m_YP1 + m_YP2)/2;
	}
    if(m_Sel_Mode == 1)
	{
	    fa = AngleToRadian(m_A1);
		fb = AngleToRadian(m_B1);
		DirectionMeetCoordinate(m_XA,m_YA,m_XB,m_YB,fa,fb,&m_XP,&m_YP);
	}
	WiritePrompt();
}
//写前方交会数据
BOOL CFront::WriteData(CString strFileName)
{
	CStdioFile f32 ;
	CFileException e32;
	int Len0 = strFileName.Find(".");
	CString PathName = strFileName.Left(Len0);
    CString FileName = PathName + ".out";
	if(!f32.Open(FileName,CFile::modeCreate|CFile::modeWrite|CFile::typeText,&e32))
	{
		CString errorMessage="文件"+strFileName+"不能创建!";
		AfxMessageBox(errorMessage,MB_OK|MB_ICONSTOP,0);
		f32.Close();
		return FALSE;
	}
	CString strBuffer;
    strBuffer.Format("%s","前方交会计算成果\n");
	f32.WriteString(strBuffer);
    strBuffer.Format("%s","已知数据:\n");
    f32.WriteString(strBuffer);
    if(m_Sel_Mode == 0)
	{
        strBuffer.Format("XA=%10.3lf YA=%10.3lf\n",m_XA,m_YA);
        f32.WriteString(strBuffer);
        strBuffer.Format("XB=%10.3lf YB=%10.3lf\n",m_XB,m_YB);
        f32.WriteString(strBuffer);
		strBuffer.Format("XC=%10.3lf YC=%10.3lf\n",m_XC,m_YC);
        f32.WriteString(strBuffer);
		strBuffer.Format("A1=%10.6lf B1=%10.6lf\n",m_A1,m_B1);
        f32.WriteString(strBuffer);
		strBuffer.Format("A2=%10.6lf B2=%10.6lf\n",m_A2,m_B2);
        f32.WriteString(strBuffer);
	    strBuffer.Format("%s","两组数据计算结果平均值\n");
        f32.WriteString(strBuffer);
		strBuffer.Format("XP=%10.3lf YP=%10.3lf\n",m_XP,m_YP);
        f32.WriteString(strBuffer);
	}
	if(m_Sel_Mode == 1)
	{
        strBuffer.Format("XA=%10.3lf YA=%10.3lf\n",m_XA,m_YA);
        f32.WriteString(strBuffer);
        strBuffer.Format("XB=%10.3lf YB=%10.3lf\n",m_XB,m_YB);
        f32.WriteString(strBuffer);
		strBuffer.Format("A1=%10.6lf B1=%10.6lf\n",m_A1,m_B1);
        f32.WriteString(strBuffer);
	    strBuffer.Format("%s","一组数据计算结果\n");
        f32.WriteString(strBuffer);
		strBuffer.Format("XP=%10.3lf YP=%10.3lf\n",m_XP,m_YP);
        f32.WriteString(strBuffer);
	}
	f32.Close();
	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -