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

📄 testside3dlg.cpp

📁 工程测量数据处理
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -