📄 front.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 + -