📄 testside3dlg.cpp
字号:
File.Close();
}
void CTestSide3Dlg::OnButtonWriteFile()
{
CLTFile File;
File.Open(_T("A.dat"),CFile::modeCreate|CFile::modeWrite);
B1.SaveToFile(&File);
File.Close();
}
void CTestSide3Dlg::OnButtonPrintData()
{
int i;
CString s;
B1.Calculate();
s.Format(_T("里程: [%s]"),B1.Mileage.GetBuffer(90) ); AddMsg(s);
s.Format(_T("轨顶属性: [%s]"),B1.RailTopProperty.GetBuffer(90)); AddMsg(s);
s.Format(_T("轨顶前视: [%f]"),B1.RailTopForesight ); AddMsg(s);
s.Format(_T("已知点名称:[%s]"),B1.KnownDotName.GetBuffer(90) ); AddMsg(s);
s.Format(_T("已知点高程:[%f]"),B1.KnownHeight ); AddMsg(s);
s.Format(_T("已知点后视:[%f]"),B1.KnownBacksight ); AddMsg(s);
s.Format(_T("测量点数: [%d]"),B1.PointCount ); AddMsg(s);
for (i=0;i<B1.PointCount;i++) {
s.Format(_T(" [%2d][%2d][%10.2f,%10.2f,%10.2f][%d]"),i,B1.Points[i]->Type,B1.Points[i]->Distance,B1.Points[i]->Height,B1.Points[i]->Foresight,B1.Points[i]->StationNumber);
AddMsg(s);
}
s.Format(_T("测站数目: [%d]"),B1.StationCount);
AddMsg(s);
for (i=0;i<B1.StationCount;i++) {
s.Format(_T(" [%2d][%10.2f,%10.2f][%d]"),i,B1.Stations[i]->Height,B1.Stations[i]->Backsight,B1.Stations[i]->PointNumber);
AddMsg(s);
}
}
void CTestSide3Dlg::OnButtonGenDrawdata()
{
CPoint M[100];
int i,k;
CString s;
k = B1.GenDrawPoint(M);
for (i=0;i<k;i++) {
s.Format(_T("%2d %8d %8d "),i,M[i].x,M[i].y);
AddMsg(s);
}
}
void CTestSide3Dlg::OnButtonTest()
{
}
//新建断面工程
void CTestSide3Dlg::OnButtonNewproject()
{
CBreakSidePoint *BP;
CStationPoint *SP;
//第一个断面
B2=new CBreakSide;
B2->Mileage =_T("DK100+100"); //里程
B2->RailTopProperty = _T("Z001") ; //轨顶属性
B2->RailTopForesight = 8 ; //轨顶读数
B2->KnownDotName = _T("BMP1"); //已知点号
B2->KnownHeight = 5 ; //已知高程
B2->KnownBacksight = 2 ; //后视读数
B2->SetBaseData(B2->Mileage,B2->RailTopProperty ,B2->RailTopForesight,
B2->KnownDotName,B2->KnownHeight,B2->KnownBacksight);
//测量点 1
BP = new CBreakSidePoint;
BP->Type = 2 ; //点类型
BP->Distance = -5; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 4 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B2->AddPoint(BP);
//测量点 2
BP = new CBreakSidePoint;
BP->Type = 2 ; //点类型
BP->Distance = -8 ; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 3 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B2->AddPoint(BP);
//测量点 3
BP = new CBreakSidePoint;
BP->Type = 2 ; //点类型
BP->Distance = -10; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 5 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B2->AddPoint(BP);
//测量点 4
BP = new CBreakSidePoint;
BP->Type = 5 ; //点类型
BP->Distance = -11000; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 1 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B2->AddPoint(BP);
SP = new CStationPoint;
SP->Height = 0; //高差(相对于断面零点)
SP->Backsight = 3; //后视读数
SP->PointNumber = 4; //转点号
B2->AddStation(SP);
//测量点 5
BP = new CBreakSidePoint;
BP->Type = 1 ; //点类型
BP->Distance = 15; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 14 ; //前视读数
BP->StationNumber = 1 ; //测站点号
B2->AddPoint(BP);
//第二个断面
B3=new CBreakSide;
B3->Mileage =_T("DK100+200"); //里程
B3->RailTopProperty = _T("Z002") ; //轨顶属性
B3->RailTopForesight = 4 ; //轨顶读数
B3->KnownDotName = _T("BMP2"); //已知点号
B3->KnownHeight = 7 ; //已知高程
B3->KnownBacksight = 3 ; //后视读数
B3->SetBaseData(B3->Mileage,B3->RailTopProperty ,B3->RailTopForesight,
B3->KnownDotName,B3->KnownHeight,B3->KnownBacksight);
//测量点 1
BP = new CBreakSidePoint;
BP->Type = 2 ; //点类型
BP->Distance = -5; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 4 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B3->AddPoint(BP);
//测量点 2
BP = new CBreakSidePoint;
BP->Type = 2 ; //点类型
BP->Distance = -8 ; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 3 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B3->AddPoint(BP);
//测量点 3
BP = new CBreakSidePoint;
BP->Type = 2 ; //点类型
BP->Distance = -10; //水平距离
//BP->Height = 0 ; //高差(相对于断面零点)
BP->Foresight = 5 ; //前视读数
BP->StationNumber = 0 ; //测站点号
B3->AddPoint(BP);
//增加两个断面
P1.AddBreakSide(B2);
P1.AddBreakSide(B3);
// B2->Clear ();
// B3->Clear ();
}
void CTestSide3Dlg::OnButtonPrintProjectdata()
{
int i,j;
CString s;
s.Format(_T("文件名称:[%s]"),P1.FileName);
AddMsg(s);
s.Format(_T("断面数量:[%d]"),P1.BSCount );
AddMsg(s);
s.Format(_T("回收数量:[%d]"),P1.BackBSCount );
AddMsg(s);
//显示断面的内容
for(j=0;j<P1.BSCount;j++){
P1.BS [j]->Calculate ();
s.Format(_T("第 [%d] 个断面数据:"),j+1);
AddMsg(s);
s.Format(_T("里程: [%s]"),P1.BS [j]->Mileage.GetBuffer(90) ); AddMsg(s);
s.Format(_T("轨顶属性: [%s]"),P1.BS [j]->RailTopProperty.GetBuffer(90)); AddMsg(s);
s.Format(_T("轨顶前视: [%f]"),P1.BS [j]->RailTopForesight ); AddMsg(s);
s.Format(_T("已知点名称:[%s]"),P1.BS [j]->KnownDotName.GetBuffer(90) ); AddMsg(s);
s.Format(_T("已知点高程:[%f]"),P1.BS [j]->KnownHeight ); AddMsg(s);
s.Format(_T("已知点后视:[%f]"),P1.BS [j]->KnownBacksight ); AddMsg(s);
s.Format(_T("测量点数: [%d]"),P1.BS [j]->PointCount ); AddMsg(s);
for (i=0;i<P1.BS [j]->PointCount ;i++)
{
s.Format(_T(" [%2d][%2d][%10.2f,%10.2f,%10.2f][%d]"),i,
P1.BS [j]->Points[i]->Type,P1.BS [j]->Points[i]->Distance,
P1.BS [j]->Points[i]->Height,P1.BS [j]->Points[i]->Foresight,
P1.BS [j]->Points[i]->StationNumber);
AddMsg(s);
}
s="*************************************************************";
AddMsg(s);
}
//显示回收站的内容
for(j=0;j<P1.BackBSCount;j++){
P1.BackBS [j]->Calculate ();
s.Format(_T("第 [%d] 个回收站数据:"),j+1);
AddMsg(s);
s.Format(_T("里程: [%s]"),P1.BackBS[j]->Mileage.GetBuffer(90) ); AddMsg(s);
s.Format(_T("轨顶属性: [%s]"),P1.BackBS[j]->RailTopProperty.GetBuffer(90)); AddMsg(s);
s.Format(_T("轨顶前视: [%f]"),P1.BackBS[j]->RailTopForesight ); AddMsg(s);
s.Format(_T("已知点名称:[%s]"),P1.BackBS[j]->KnownDotName.GetBuffer(90) ); AddMsg(s);
s.Format(_T("已知点高程:[%f]"),P1.BackBS[j]->KnownHeight ); AddMsg(s);
s.Format(_T("已知点后视:[%f]"),P1.BackBS[j]->KnownBacksight ); AddMsg(s);
s.Format(_T("测量点数: [%d]"),P1.BackBS[j]->PointCount ); AddMsg(s);
for (i=0;i<P1.BackBS[j]->PointCount ;i++)
{
s.Format(_T(" [%2d][%2d][%10.2f,%10.2f,%10.2f][%d]"),i,
P1.BackBS [j]->Points[i]->Type,P1.BackBS [j]->Points[i]->Distance,
P1.BackBS [j]->Points[i]->Height,P1.BackBS [j]->Points[i]->Foresight,
P1.BackBS [j]->Points[i]->StationNumber);
AddMsg(s);
}
s="*************************************************************";
AddMsg(s);
}
}
void CTestSide3Dlg::OnButtonWriterprojectfile()
{
P1.SetFileName (TEXT("B.dmp"));
P1.Save();
}
void CTestSide3Dlg::OnButtonReadprojectfile()
{
P1.Clear ();
P1.SetFileName (TEXT("B.dmp"));
P1.Load ();
}
void CTestSide3Dlg::OnButtonCompare()
{
P2.Clear ();
P2.SetFileName (TEXT("B.dmp"));
P2.Load ();
//
if(P1.Compare (&P2))
MessageBox(TEXT("一样"),NULL,MB_OK);
else
MessageBox(TEXT("不一样"),NULL,MB_OK);
}
void CTestSide3Dlg::OnButtonRecalldata()
{
int i=0;
if (P1.BackBSCount!=0)
{
for(i=0;i<P1.BackBSCount;i++){
P1.RecallBackBreakSide (i);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -