資源簡介
本程序包含了數據的輸入,輸出,法方程的建立,近似高程的計算,殘差計算,精度評定估計與平差結果輸出,用到了最小二乘計算,水準網粗差探測,自由網平差,擬穩平差,抗差估計,閉合差的計算與檢驗等等。比較全面。值得參考。

代碼片段和文件信息
//?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個文件信息
- 上一篇:SBDART運用文件
- 下一篇:選擇題答題程序
評論
共有 條評論