• 大小: 448KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签:

资源简介

本程序包含了数据的输入,输出,法方程的建立,近似高程的计算,残差计算,精度评定估计与平差结果输出,用到了最小二乘计算,水准网粗差探测,自由网平差,拟稳平差,抗差估计,闭合差的计算与检验等等。比较全面。值得参考。

资源截图

代码片段和文件信息

// LevelingAdjust.cpp: implementation of the CLevelingAdjust class.
//
//////////////////////////////////////////////////////////////////////

#include 
#include 
#include 


#include “LevelingAdjust.h“
#include “math.h“
#include “string.h“
#include “public.h“

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

CLevelingAdjust::CLevelingAdjust()
{
m_Lnumber=0;
m_Pnumber=0;
m_StablePnumber=0;
}

CLevelingAdjust::~CLevelingAdjust()
{
if(m_Lnumber>0)
{
delete []StartP;  
delete []EndP;    
delete []L;       
delete []P;       
delete []V;       
}

if(m_Pnumber>0)
{
delete []Height;   
delete []ATPA;     
delete []ATPL;     
delete []dX;       

for(int i=0; i if(Pname[i]!=NULL)delete[](Pname[i]);
delete []Pname;    
}

}



//////////////////////////////////////////////////////////////////////////
//   原始数据输入函数
void CLevelingAdjust::Inputdata(char *datafile)
{
     FILE *fp;
     if((fp=fopen(datafile“r“))==NULL)
     {        
 MyBreak(“\n 数据文件打不开!“);  
 exit(0);
 }

     fscanf(fp“%d%d%d“&m_Lnumber&m_Pnumber&m_knPnumber);
     
 int unPnumber=m_Pnumber-m_knPnumber;

     Height=new double [m_Pnumber];
     dX=new double [m_Pnumber];
     ATPA=new double [m_Pnumber*(m_Pnumber+1)/2];
     ATPL=new double [m_Pnumber];
     StartP=new int [m_Lnumber];
     EndP=new int [m_Lnumber];
     L=new double [m_Lnumber];
     V=new double [m_Lnumber];
     P=new double [m_Lnumber];
     fscanf(fp“%lf“&m_Sigma);

     Pname=new char* [m_Pnumber]; 
 for(int i=0;i  {
 // GetStationNumber函数根据Pname[i]是否为NULL
 // 确定Pname[i]是否为点名地址
 Pname[i] = NULL;
 }

 char buffer[100]; //临时数组,保存从文件中读到的点名  
 
 //  读取已知高程数据
 for( i=0;i<=m_knPnumber-1;i++)
     {
   fscanf(fp“%s“buffer);
   int c=GetStationNumber(buffer);
   
   fscanf(fp“%lf“&Height[c]);
     }

 //  读取观测数据
     for(i=0;i     {
 fscanf(fp“%s“buffer); //读取高程起点名
   StartP[i]=GetStationNumber(buffer); 
 if(StartP[i]<0)
 {
 fprintf(resultfp“\n数据文件出错:“);
 fprintf(resultfp“\n第%d个高差的起始点名为\“%s\““i+1buffer);
 fclose(resultfp);
 exit(0);
 }
 
 fscanf(fp“%s“buffer);//读取高程终点
 EndP[i]=GetStationNumber(buffer);

 if(EndP[i]<0)
 {
 fprintf(resultfp“\n数据文件出错:“);
 fprintf(resultfp“\n第%d个高差终点的点名为\“%s\““i+1buffer);
 fclose(resultfp);
 exit(0);
 }  
 
 fscanf(fp“%lf%lf“&L[i]&P[i]); //读取高差值与路线长度
 P[i]=1.0/P[i]; 
     }

     fclose(fp);
}

//////////////////////////////////////////////////////////////////////////
//   原始数据写到结果文件
void CLevelingAdjust::Printdata()
{
     int i;
     fprintf(resultfp“\n 观测值总数: %d  总点数: %d  已知点数:%d \n“
m_Lnumber m_Pnumberm_knPnumber);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-05-05 23:57  水准网平差\
     目录           0  2013-05-05 23:57  水准网平差\Debug\
     文件       17862  2013-04-30 15:32  水准网平差\Debug\LevelingAdjust.sbr
     文件       20046  2007-06-29 16:31  水准网平差\Debug\MyCpp.obj
     文件           0  2007-06-29 16:31  水准网平差\Debug\MyCpp.sbr
     文件       18863  2008-12-25 17:47  水准网平差\Debug\probability.obj
     文件           0  2008-12-25 17:47  水准网平差\Debug\probability.sbr
     文件       17774  2008-12-25 17:47  水准网平差\Debug\public.obj
     文件           0  2008-12-25 17:47  水准网平差\Debug\public.sbr
     文件       50176  2013-04-30 15:32  水准网平差\Debug\vc60.idb
     文件       53248  2013-04-30 15:32  水准网平差\Debug\vc60.pdb
     文件      140288  2013-04-30 15:32  水准网平差\Debug\第4章高程网平差.bsc
     文件      245854  2008-12-25 17:47  水准网平差\Debug\第4章高程网平差.exe
     文件      275964  2008-12-25 17:47  水准网平差\Debug\第4章高程网平差.ilk
     文件       18466  2008-12-25 17:47  水准网平差\Debug\第4章高程网平差.obj
     文件      244328  2013-04-30 15:32  水准网平差\Debug\第4章高程网平差.pch
     文件      558080  2008-12-25 17:47  水准网平差\Debug\第4章高程网平差.pdb
     文件           0  2008-12-25 17:47  水准网平差\Debug\第4章高程网平差.sbr
     文件       15631  2013-04-30 15:33  水准网平差\LevelingAdjust.cpp
     文件        2108  2011-11-29 18:55  水准网平差\LevelingAdjust.h
     文件        1232  2007-06-17 23:57  水准网平差\ReadMe.txt
     文件         297  2007-06-17 23:57  水准网平差\StdAfx.cpp
     文件         667  2007-06-17 23:57  水准网平差\StdAfx.h
     文件        6341  2008-03-08 01:48  水准网平差\probability.cpp
     文件        1388  2008-03-08 01:48  水准网平差\probability.h
     文件        5915  2008-12-25 17:39  水准网平差\public.cpp
     文件        1720  2008-12-23 22:17  水准网平差\public.h
     文件        3660  2008-12-25 17:47  水准网平差\第4章高程网平差.cpp
     文件        3913  2008-04-02 21:41  水准网平差\第4章高程网平差.dsp
     文件         555  2003-09-25 07:57  水准网平差\第4章高程网平差.dsw
     文件      148480  2013-04-30 16:20  水准网平差\第4章高程网平差.ncb
............此处省略21个文件信息

评论

共有 条评论