测绘程序实验报告

合集下载

测绘课程设计实验报告

测绘课程设计实验报告

测绘课程设计实验报告一、教学目标本课程旨在通过学习,使学生掌握测绘学的基本原理和方法,能够熟练使用测绘仪器和软件,具备基本的测绘实践能力。

知识目标上,要求学生了解测绘学的基本概念、测量原理和数据处理方法;技能目标上,要求学生能够操作和使用测绘仪器,进行实地测量和数据处理;情感态度价值观目标上,培养学生对测绘工作的兴趣和责任感,认识测绘工作在国民经济和社会发展中的重要性。

二、教学内容教学内容主要包括测绘学的基本概念、测量原理、数据处理方法和测绘实践。

具体包括:测绘学的基本概念,如地图、测量、定位等;测量原理,如角度测量、距离测量、高程测量等;数据处理方法,如数据平差、坐标转换、地图绘制等;测绘实践,如实地测量、数据处理、成果输出等。

三、教学方法教学方法采用讲授法、讨论法、实验法相结合。

讲授法用于讲解测绘学的基本概念和原理;讨论法用于探讨测绘工作中的实际问题;实验法用于实地测量和数据处理实践。

通过多样化教学方法,激发学生的学习兴趣和主动性,提高学生的实践能力。

四、教学资源教学资源包括教材、实验设备、多媒体资料等。

教材选用具有权威性和实用性的专业教材,为学生提供系统的理论知识;实验设备包括测绘仪器和计算机,用于学生实地操作和实践;多媒体资料包括教学课件、视频等,用于辅助教学,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与和讨论积极性;作业分为练习题和项目报告,评估学生对知识的理解和应用能力;考试为闭卷考试,评估学生的知识掌握和运用能力。

评估方式客观、公正,全面反映学生的学习成果。

六、教学安排教学安排规定了教学进度、教学时间和教学地点等。

本课程共安排32课时,每周2课时,共计16周完成。

教学时间安排合理、紧凑,确保在有限的时间内完成教学任务。

教学地点选在教室和实验室,方便学生进行实地操作和实践。

七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程设计了差异化的教学活动和评估方式。

测绘学实验报告

测绘学实验报告

测绘学实验报告测绘学实验报告引言:测绘学是一门研究地球表面特征及其空间分布的学科,广泛应用于土地管理、城市规划、工程建设等领域。

本实验旨在通过实地测量和数据处理,探索测绘学在实际应用中的重要性和技术手段。

实验目的:1. 了解测绘学的基本概念和原理;2. 掌握实地测量的方法和仪器使用;3. 学习数据处理和地图绘制的基本技巧。

实验材料和仪器:1. 测量工具:经纬仪、水平仪、测距仪等;2. 数据处理软件:AutoCAD、ArcGIS等。

实验过程:1. 实地测量在实验开始前,我们先进行了实地勘测,并选择了一个具有一定高程变化的地点作为测量对象。

使用经纬仪测量了该地点的经纬度,并利用水平仪测量了地面的水平度。

随后,使用测距仪测量了地面上两个固定点之间的距离。

2. 数据处理将实地测量得到的数据导入到数据处理软件中,进行数据处理和地图绘制。

首先,根据经纬度数据,绘制了该地点的位置图,并标注了测量点的坐标。

然后,根据测距数据,绘制了地面的等高线图,以展示地面的高程变化情况。

3. 结果分析通过对实地测量和数据处理结果的分析,我们可以得出以下结论:- 测绘学是一门综合性学科,需要掌握地理知识、测量技术和数据处理技巧等多方面的知识;- 实地测量是测绘学的基础,准确的测量数据是地图绘制和空间分析的基础;- 数据处理是测绘学的重要环节,只有对测量数据进行合理的处理和分析,才能得出准确的结果;- 地图绘制是测绘学的最终目标,通过绘制地图,我们可以直观地展示地球表面特征及其空间分布。

结论:通过本次实验,我们深入了解了测绘学的基本概念和原理,掌握了实地测量和数据处理的基本技巧。

测绘学在现代社会中有着广泛的应用,不仅在土地管理和城市规划中发挥着重要作用,也为工程建设和资源开发提供了重要支持。

通过不断学习和实践,我们可以不断提升自己的测绘技术水平,为社会发展做出更大的贡献。

测绘程序设计实习报告

测绘程序设计实习报告

测绘程序设计实习报告一、实习背景及目的随着科技的不断发展,测绘领域逐渐融入了越来越多的计算机技术,测绘程序设计成为了一项重要的工作。

本次实习旨在让我们了解测绘程序设计的基本流程,掌握测绘程序设计的方法和技巧,提高我们的实际操作能力。

二、实习内容及过程1. 实习内容本次实习主要分为以下几个部分:(1) 熟悉测绘程序设计的基本原理和流程;(2) 学习测绘程序设计的相关软件;(3) 参与实际测绘项目,进行程序设计和调试;(4) 撰写测绘程序设计实习报告。

2. 实习过程(1) 基本原理学习在实习开始阶段,我们首先学习了测绘程序设计的基本原理,包括测绘数据采集、数据处理、图形绘制等。

通过学习,我们了解了测绘程序设计的核心内容和方法。

(2) 软件学习为了更好地进行测绘程序设计,我们学习了AutoCAD、MapGIS、ArcGIS等软件。

这些软件为我们进行测绘程序设计提供了强大的支持,使我们能够更加高效地完成实习任务。

(3) 实际项目参与在掌握了基本原理和软件操作后,我们参与了实际的测绘项目。

项目中,我们负责进行数据处理、图形绘制等工作,通过实际操作,我们深入了解了测绘程序设计的具体应用。

(4) 实习报告撰写在实习结束后,我们根据实习过程中的经验和收获,撰写了测绘程序设计实习报告。

报告中,我们总结了实习过程中遇到的问题及解决方法,并对自己的实习成果进行了分析。

三、实习收获及体会通过本次实习,我们收获了以下几点:1. 掌握了测绘程序设计的基本原理和方法;2. 熟悉了测绘程序设计的相关软件,提高了实际操作能力;3. 了解了测绘程序设计在实际项目中的应用;4. 培养了团队协作能力和解决问题的能力。

同时,我们认识到测绘程序设计不仅需要理论知识,更需要实践操作。

在实习过程中,我们要善于发现问题、解决问题,不断提高自己的实际操作能力。

此外,我们还应注重学习最新的测绘技术和软件,紧跟科技发展的步伐,为我国的测绘事业做出贡献。

房产测绘实习报告

房产测绘实习报告

房产测绘实习报告
本次房产测绘实习工作,我通过实地测量、数据处理和相关软件操作等环节,全面了解了房产测绘的基本流程和技术要点。

在实习期间,我主要参与了以下工作:
首先,我跟随导师进行了实地测量的实际操作。

通过使用测量仪器和设备,我学会了如何准确地获取建筑物的尺寸、形状和位置信息。

在实际操作中,我深刻体会到了测绘工作的细节和技巧,以及对准确性的要求。

其次,我参与了数据处理和绘图的工作。

在导师的指导下,我学会了如何利用测量所得的数据,进行图纸绘制和相关数据处理。

我熟悉了测绘软件的使用方法,能够准确地将实地数据转化为精确的电子地图和平面图。

最后,我还参与了部分现场勘测和报告撰写工作。

通过实际参与,我更加深入地了解了房产测绘工作的实际应用和重要性。

同时,我也体会到了报告撰写的要点和技巧,为今后的工作积累了经验。

通过本次实习,我不仅增加了实际操作的经验,还对房产测绘工作的流程和要点有了更清晰的认识。

在未来的学习和工作中,我将继续努力,提高自己的专业技能,为房产测绘工作做出更大的贡献。

测绘实习报告

测绘实习报告

测绘实习报告
一、实习背景。

在测绘工程专业的学习中,实习是非常重要的一部分。

通过实习,我们可以将在课堂上学到的理论知识应用到实际工作中,提升
自己的专业能力和实践能力。

本次实习是在某测绘公司进行的,主
要任务是参与实际的测绘项目,并协助完成相关工作。

二、实习过程。

在实习的过程中,我参与了多个测绘项目的实地勘测和数据处
理工作。

在实地勘测中,我学习了如何使用测量仪器进行地形测量、建筑物测量和道路测量等工作,掌握了测量技术和操作方法。

在数
据处理方面,我学习了如何使用专业的测绘软件进行数据处理和制图,包括数据的导入、编辑、分析和输出等工作。

通过实际操作,
我对测绘工作的整个流程有了更深入的了解,提高了自己的实际操
作能力。

三、实习收获。

通过这次实习,我不仅学到了很多专业知识和技能,还学会了团队合作和沟通协调能力。

在实际工作中,我和同事们密切合作,相互协助,共同完成了测绘项目。

在与客户沟通和协商的过程中,我学会了如何与他人有效地沟通,解决问题,提高了自己的沟通能力和团队合作能力。

同时,我也意识到了测绘工作的重要性和复杂性,对自己未来的发展方向有了更清晰的认识。

四、实习总结。

通过这次实习,我对测绘工作有了更深入的了解,提高了自己的专业能力和实践能力。

在未来的学习和工作中,我将继续努力,不断提升自己,为测绘事业做出更大的贡献。

以上就是本次测绘实习的报告,谢谢!。

测绘学实训总结报告单

测绘学实训总结报告单

一、实训目的本次测绘学实训旨在通过实际操作,巩固和加深对测绘学基本理论和方法的理解,提高实际测量技能,培养独立从事测绘工作的能力,同时培养严谨的工作态度和团队协作精神。

二、实训内容1. 水准测量:掌握水准仪的使用方法,根据已知水准点的高程,测量其他水准点的高程。

2. 导线测量:通过测角和量距,求出各导线点的坐标。

3. 碎部测量:根据控制点,测定碎部点的平面位置和高程。

4. 图形绘制:利用测绘数据,绘制地形图或建筑平面图。

5. 实验室数据处理:学习使用相关软件进行数据采集、处理和分析。

三、实训过程1. 水准测量:实训开始,我们首先学习了水准仪的使用方法,包括仪器的组装、调整、读数等。

在导师的指导下,我们进行了水准点的高程测量,掌握了水准测量的基本步骤和注意事项。

2. 导线测量:在掌握了水准测量的基础上,我们进行了导线测量实训。

通过实际操作,我们学会了如何利用经纬仪进行角度观测,以及如何使用钢尺进行距离测量。

在实训过程中,我们掌握了导线测量的基本步骤和误差分析。

3. 碎部测量:在完成导线测量后,我们进行了碎部测量实训。

通过实际操作,我们学会了如何利用全站仪进行碎部点测量,掌握了碎部测量的基本步骤和注意事项。

4. 图形绘制:在完成现场测量后,我们利用测绘数据进行了地形图或建筑平面图的绘制。

在实训过程中,我们学习了如何使用绘图软件进行图形绘制,掌握了绘图的基本技巧。

5. 实验室数据处理:在实训过程中,我们还学习了如何使用相关软件进行数据采集、处理和分析。

通过实际操作,我们掌握了数据处理的基本方法和技巧。

四、实训成果1. 成功完成了水准测量、导线测量、碎部测量等实际测量任务。

2. 熟练掌握了水准仪、经纬仪、全站仪等测绘仪器的使用方法。

3. 掌握了地形图或建筑平面图的绘制技巧。

4. 熟悉了相关软件在测绘数据处理中的应用。

5. 培养了严谨的工作态度和团队协作精神。

五、实训总结1. 通过本次实训,我们对测绘学的基本理论和方法有了更深入的理解,提高了实际操作能力。

测绘程序设计(VS2008)实验报告--水准网平差程

测绘程序设计(VS2008)实验报告--水准网平差程

《测绘程序设计()》上机实验报告(Visual C++.Net)班级:学号:姓名:序号:二零一一年五月实验8 平差程序设计基础1.实验目的:1.1 巩固过程的定义与调用;1.2 巩固类的创建于使用;1.3 巩固间接平差模型与平差计算;1.4 掌握平差程序设计的基本技巧与步骤。

2.实验内容:水准网平差程序设计。

设计一个水准网平差的程序,要求数据从文件中读取。

计算部分也界面无关。

3.设计思路:在本次的实验中,我着重想表现的是一种面向对象的编程思想。

于是,在程序中我设计了4个类:CPoint、CObserve、CMatrix、Leveling,分别定义点的属性、观测数据属性、矩阵和水准网平差计算的属性与方法。

水准网平差计算一般步骤为:(1)读取观测数据和已知数据;(2)计算未知点高程近似值;(3)列高差观测值误差方程;(4)根据水准路线长度计算高差观测值的权;(5)组成法方程;(6)解法方程,求得未知点高程改正数及平差后高程值;(7)求高差观测值残差及平差后高差观测值;(8)精度评定;(9)输出平差结果。

水准网高程近似值计算算法4.界面设计:仅添加了一个button按钮,单击后读取数据,并进行水准网平差计算,计算结果保存在记事本中5.主要代码:文件一: CPoint.h代码:class ControlPoint{public:ControlPoint(void){};~ControlPoint(void){};public:CString pointID; //点号double H; //高程};class CObserve{public:CObserve(void){};~CObserve(void){};public:ControlPoint *pStartObs; //后视点ControlPoint *pEndObs; //前视点double h; //路线长度double dDist; //高差};文件二:Leveling.h代码:#pragma once#include"CPoint.h"#include"Matrix.h"class Leveling{public:Leveling(void);~Leveling(void);private:ControlPoint *m_pKnownPoint; //已知点数组int m_iKnownPointCount; //已知点个数ControlPoint *m_pUnknownPoint; //待测点数组int m_iUnknownPointCount; //待测点个数CObserve *m_pObsData; //观测数据数组int m_iObsDataCount; //观测数据个数public:bool LoadData(const CString &FileName); //从文件中导入数据void OutMatrixToFile(const CMatrix& mat,CStdioFile& SF); //把矩阵输出到文件中void SetKownPointSize(int n); //设置已知点数据大小void SetUnknownPointSize(int n);void SetObsDataSize(int n);CString* SplitString(CString str , char split, int iSubStrs); //分割字符串public://根据点号从已知点数组中找到控制点,并返回该点的指针ControlPoint* SearchKnownPointUsingID(CString pointID);//根据点号从未知点数组中找到控制点,并返回该点的指针ControlPoint* SearchUnknownPointUsingID(CString pointID);//根据点号从未知点和已知点数组中找到控制点,并返回该点的指针ControlPoint* SearchPointUsingID(CString pointID);void ComputeApproximateH(void); //求待测点高差近似值public://组成误差方程,B 为系数矩阵,f为常数项向量void FormErrorEquations(CMatrix& B, CMatrix& f);void Weight(CMatrix& P); //求高差观测值的权阵void IndirectlyAdjust(const CString& strFileName);//间接平差计算主函数};文件三:Leveling.cpp代码:#include"StdAfx.h"#include"Leveling.h"#include"math.h"#include<locale.h>Leveling::Leveling(void){m_pKnownPoint=NULL;m_iKnownPointCount=0;m_pUnknownPoint=NULL;m_iUnknownPointCount=0;m_pObsData=NULL;m_iObsDataCount=0;}Leveling::~Leveling(void){//释放动态数组内存if(m_pUnknownPoint!=NULL){delete[] m_pUnknownPoint;m_pUnknownPoint=NULL;}if(m_pKnownPoint!=NULL){delete[] m_pKnownPoint;m_pKnownPoint=NULL;}if(m_pObsData!=NULL){delete[] m_pObsData;m_pObsData=NULL;}}bool Leveling::LoadData(const CString &FileName){CStdioFile sf; //创建文件对象//以读的形式打开文件,如果打开失败则返回if(!sf.Open(FileName, CFile::modeRead)) return false;CString strLine;BOOL bEOF=sf.ReadString(strLine);//读取第一行,已知点数m_iKnownPointCount= _ttoi((strLine)); //把读取的第一行字符串转换为数值型SetKownPointSize(m_iKnownPointCount);//设置已知点数组大小int n=0;//读取并保存已知点数据for(int i=0;i<m_iKnownPointCount;i++){sf.ReadString(strLine);CString *pstrData=SplitString(strLine,',',n);m_pKnownPoint[i].pointID=pstrData[0];m_pKnownPoint[i].H=_tstof(pstrData[1]);delete[] pstrData;pstrData=NULL;}//开始读取未知知点数据sf.ReadString(strLine);//未知点个数m_iUnknownPointCount= _ttoi((strLine));SetUnknownPointSize(m_iUnknownPointCount); //设置未知点数组大小sf.ReadString(strLine);//未知点点号//读取并保存未知点数据CString *pstrData=SplitString(strLine,',',n);for(int i=0;i<m_iUnknownPointCount;i++){m_pUnknownPoint[i].pointID=pstrData[i];m_pUnknownPoint[i].H=0;}delete[] pstrData;pstrData=NULL;//开始读取观测数据个数sf.ReadString(strLine);//观测数个数m_iObsDataCount= _ttoi((strLine));SetObsDataSize(m_iObsDataCount);//读取并保存观测数据for(int i=0;i<m_iObsDataCount;i++){sf.ReadString(strLine);CString *pstrData=SplitString(strLine,',',n);m_pObsData[i].pStartObs=SearchPointUsingID(pstrData[0]);m_pObsData[i].pEndObs=SearchPointUsingID(pstrData[1]);m_pObsData[i].h=_tstof(pstrData[2]);m_pObsData[i].dDist=_tstof(pstrData[3]);delete[] pstrData;pstrData=NULL;}sf.Close();return true;}void Leveling::SetKownPointSize(int n){m_iKnownPointCount=n;m_pKnownPoint=new ControlPoint[n];}void Leveling::SetUnknownPointSize(int n){m_iUnknownPointCount=n;m_pUnknownPoint=new ControlPoint[n];}void Leveling::SetObsDataSize(int n){m_iObsDataCount=n;m_pObsData=new CObserve[n];}//字符串分割函数CString* Leveling::SplitString(CString str , char split, int iSubStrs) {int iPos = 0; //分割符位置int iNums = 0; //分割符的总数CString strTemp = str;CString strRight;//先计算子字符串的数量while (iPos != -1){iPos = strTemp.Find(split);if (iPos == -1){break;}strRight = strTemp.Mid(iPos + 1, str.GetLength());strTemp = strRight;iNums++;}if (iNums == 0) //没有找到分割符{//子字符串数就是字符串本身iSubStrs = 1;return NULL;}//子字符串数组iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1CString* pStrSplit;pStrSplit = new CString[iSubStrs];strTemp = str;CString strLeft;for (int i = 0; i < iNums; i++){iPos = strTemp.Find(split);//左子串strLeft = strTemp.Left(iPos);//右子串strRight = strTemp.Mid(iPos + 1, strTemp.GetLength()); strTemp = strRight;pStrSplit[i] = strLeft;}pStrSplit[iNums] = strTemp;return pStrSplit;}//根据点号从已知点数组中找到控制点,并返回该点的指针ControlPoint* Leveling::SearchKnownPointUsingID(CString pointID) {for(int i=0;i<m_iKnownPointCount;i++){if(pointID==m_pKnownPoint[i].pointID){return &m_pKnownPoint[i];}}return NULL;}//根据点号从未知点数组中找到控制点,并返回该点的指针ControlPoint* Leveling::SearchUnknownPointUsingID(CString pointID) {for(int i=0;i<m_iUnknownPointCount;i++){if(pointID==m_pUnknownPoint[i].pointID){return &m_pUnknownPoint[i];}}return NULL;}//根据点号从未知点和已知点数组中找到控制点,并返回该点的指针ControlPoint* Leveling::SearchPointUsingID(CString pointID){ControlPoint* pCP=NULL;pCP=SearchKnownPointUsingID(pointID);if(pCP==NULL){pCP=SearchUnknownPointUsingID(pointID);}return pCP;}void Leveling::ComputeApproximateH(void) //求待测点近似高程{for(int i=0;i<m_iUnknownPointCount;i++){if(m_pUnknownPoint[i].H!=0)continue;for(int j=0;j<m_iObsDataCount;j++){if(m_pUnknownPoint[i].pointID==m_pObsData[j].pStartObs->pointID&&m_pObsData[j].pEndObs->H>0)m_pUnknownPoint[i].H=m_pObsData[j].pEndObs->H-m_pObsData[j].h;elseif(m_pUnknownPoint[i].pointID==m_pObsData[j].pEndObs->pointID&&m_pObsData[j].pStartObs->H>0)m_pUnknownPoint[i].H=m_pObsData[j].pStartObs->H+m_pObsData[j].h;}}}void Leveling::FormErrorEquations(CMatrix& B, CMatrix& f){B.SetSize(m_iObsDataCount, m_iUnknownPointCount);f.SetSize(m_iObsDataCount, 1);//计算系数阵for(int i=0;i<m_iObsDataCount;i++)for(int j=0;j<m_iUnknownPointCount;j++){if(m_pObsData[i].pStartObs->pointID==m_pUnknownPoint[j].pointID) B(i,j)=-1;if(m_pObsData[i].pEndObs->pointID==m_pUnknownPoint[j].pointID)B(i,j)=1;}//计算常数阵for(int i=0;i<m_iObsDataCount;i++)f(i,0)=m_pObsData[i].h-(m_pObsData[i].pEndObs->H-m_pObsData[i].pStartObs->H);}void Leveling::Weight(CMatrix& P) //计算权阵{P.SetSize(m_iObsDataCount,m_iObsDataCount);for(int i=0;i<m_iObsDataCount;i++)for(int j=0;j<m_iObsDataCount;j++){if(i==j)P(i,j)=1.0/m_pObsData[i].dDist;}}void Leveling::IndirectlyAdjust(const CString& strFileName){//使用最小二乘法计算平差值//NBB=BT*P*BCMatrix B; //系数矩阵CMatrix BT; //B的转置矩阵CMatrix NBB; //NBBCMatrix invNbb; //NBB逆阵CMatrix W; //W=BT*P*fCMatrix f; //常数项矩阵CMatrix P; //权阵CMatrix x; //近似值改正项矩阵CMatrix V; //改正项矩阵CMatrix Omiga; //方差CMatrix X; //平差值ComputeApproximateH();FormErrorEquations(B,f); //系数阵Weight(P); //权阵BT=~B; //B的转置矩阵NBB=BT*P*B;invNbb=NBB.Inv();; //NBB逆阵W=BT*P*f;x=invNbb*W;X.SetSize(m_iUnknownPointCount,1);for(int i=0;i<m_iUnknownPointCount;i++){X(i,0)=m_pUnknownPoint[i].H+x(i,0);}//精度评定V=B*x-f;//开始输出间接平差的结果CStdioFile SF;CString strLine;setlocale(LC_ALL,"");if(!SF.Open(strFileName, CFile::modeCreate|CFile::modeWrite)) return;//开始写数据SF.WriteString(_T("----------水准网间接平差结果----------\n"));//写已知点数据strLine.Format(_T("已知点个数:%d\n"),m_iKnownPointCount);SF.WriteString(strLine);for(int i=0;i<m_iKnownPointCount;i++){strLine.Format(_T("%s,%4f\n"),m_pKnownPoint[i].pointID,m_pKnownPoint[i].H);SF.WriteString(strLine);}//待测点平差值strLine.Format(_T("待测点个数:%d\n"),m_iUnknownPointCount);SF.WriteString(strLine);strLine.Format(_T("平差结果:\n"));SF.WriteString(strLine);for(int i=0;i<m_iUnknownPointCount;i++){strLine.Format(_T("%s,%4f\n"),m_pUnknownPoint[i].pointID,X(i,0));SF.WriteString(strLine);}//输出系数阵和常数项SF.WriteString(_T("B矩阵:\r\n"));OutMatrixToFile(B,SF);//输出权矩阵SF.WriteString(_T("\r\nP矩阵(对角阵):\r\n"));OutMatrixToFile(P,SF);SF.WriteString(_T("高差改正数x(mm):\r\n"));OutMatrixToFile(x,SF);SF.WriteString(_T("NBB矩阵:\r\n"));OutMatrixToFile(NBB,SF);SF.WriteString(_T("NBB矩阵的逆矩阵:\r\n"));OutMatrixToFile(invNbb,SF);SF.WriteString(_T("W矩阵:\r\n"));OutMatrixToFile(W,SF);//输出观测值残差SF.WriteString(_T("观测值残差(mm):\r\n"));OutMatrixToFile(V,SF);//计算单位权中误差,并输出Omiga=~V*P*V;double Sigma;Sigma = sqrt(Omiga(0, 0) / (m_iObsDataCount - m_iUnknownPointCount));strLine.Format(_T("单位权中误差(mm):%.4f\r\n"),Sigma);SF.WriteString(strLine);double Qx;SF.WriteString(_T("点位误差(mm):\r\n"));for(int i=0;i<invNbb.Row();i++){Qx=sqrt(invNbb(i,i))*Sigma;strLine.Format(_T("%.4f "),Qx);SF.WriteString(strLine);}SF.WriteString(_T("\r\n"));SF.Close();}//把矩阵输出到文件中void Leveling::OutMatrixToFile(const CMatrix& mat,CStdioFile& SF){CString strLine,strTmp;for(int i=0;i<mat.Row();i++){strLine.Empty();for(int j=0;j<mat.Col();j++){strTmp.Format(_T("%.4f "),mat(i,j));strLine=strLine+strTmp;}SF.WriteString(strLine+_T("\r\n"));}}文件四:Matrix.h代码:#pragma onceclass CMatrix{public:CMatrix(int row=3,int col=3);// copy constructorCMatrix (const CMatrix& m);~CMatrix(void);private:double **dMatData;//保存矩阵元素数据的二维数组int iRow;//矩阵的行int iCol;//矩阵的列public:int Row() const {return iRow;}//返回行int Col() const {return iCol;}//返回列void SetSize (int row, int col);//调整数组的大小,原有数据不变(未测试)double& operator () (int row, int col);//获取矩阵元素double operator() (int row, int col) const;//重载获取矩阵元素函数,只有const 对象能访问CMatrix& operator = (const CMatrix& m) ;//注意:友元函数并不是类自己的成员函数friend CMatrix operator + (const CMatrix& m1,const CMatrix& m2);friend CMatrix operator - (const CMatrix& m1,const CMatrix& m2);friend CMatrix operator * (const CMatrix& m1,const CMatrix& m2);friend CMatrix operator * (const double& num, const CMatrix& m1);friend CMatrix operator * (const CMatrix& m1,const double& num);friend CMatrix operator ~ (const CMatrix& m);//矩阵转置CMatrix Inv();//矩阵求逆void Unit();//生成单位矩阵};文件五:LevelingAdjustDlg.cpp代码:void CLevelingAdjustDlg::OnBnClickedButton2(){// TODO: 在此添加控件通知处理程序代码CFileDialog dlgFile(TRUE,_T("txt"),NULL,OFN_EXPLORER,_T("(文本文件)|*.txt")); //创建打开文件对话框if(dlgFile.DoModal()==IDCANCEL) return;//如果选择取消按钮,则退出CString strFileName=dlgFile.GetPathName();//获取选择的文件的名称Leveling ST;ST.LoadData(strFileName);ST.IndirectlyAdjust(_T("IndirectlyAdjustResult.txt"));MessageBox(_T("计算完毕!\r\n结果保存在Result.txt文件中!"));ShellExecute(this->m_hWnd,_T("open"),_T("notepad.exe"),_T("IndirectlyAdjustResult.txt"),_T(""),SW_SHOW );}6.运行结果:实验的运行结果如下图所示:8.实验总结这次的实验让我对于面对对象的编程思想有了进一步的理解。

测绘程序设计基础实验报告【范本模板】

测绘程序设计基础实验报告【范本模板】

《测绘程序设计()》上机实验报告(Visual C++。

Net)班级:测绘1101学号: 0405100731姓名:龚自飞序号:二零一四年六月目录实验1 Visual C++。

Net环境和程序设计初步 (1)实验内容: (1)设计思路: (1)界面设计: (1)主要代码:列出程序的代码,按文件依次列出。

注意代码的书写格式和注释 (2)运行结果: (3)总结 (5)实验1 Visual C++。

Net 环境和程序设计初步实验内容:1. 启动与退出VC++.net ,熟悉VC++。

net 的开发环境,通过向导生成基于对话框的应用程序。

使用MSDN 查看命令按钮、标签和文本框的主要属性和方法。

2. 打开Microsoft visual studio 2008 文档,浏览“Visual studio 文档”目录下的内容,并从“Visual studio 文档->Visual C++—〉示例”目录下下载一个程序,编译并运行之。

3. 设计一个已知三边边长计算三角形面积的程序.计算模型如下: 海伦公式:))()((c p b p a p p S ---=,其中2c b a p ++= 设计思路:(1)、创建名为“gzf1"的 MFC 应用程序;(2)、在窗体上放置4 个文本框、4 个静态框、3 个命令按钮(其中两个缺省);(3)、设置控件属性,如Static1 的Caption 属性设置成“a=”,用于提示Edit框的输入边长a;(4)、把“取消”按钮的Caption 属性改为“退出”;双击前两个按钮,生成Click 消息函数,注释掉重载函数“OnOK ()”。

(5)、为4 个Edit 控件添加绑定变量。

(6)、在相应的函数中添加代码;(7)、运行和调试程序;(8)、保存应用程序。

界面设计:主要代码:gzf1void Cproject01Dlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);double p;p=(a+b+c)/2;S=sqrt(p*(p—a)*(p-b)*(p-c));UpdateData(FALSE);//OnOK();}void Cproject01Dlg::OnBnClickedOk2() {// TODO: 在此添加控件通知处理程序代码a=0;b=0;c=0;S=0;UpdateData(FALSE);}void Cproject01Dlg::OnBnClickedCancel() {// TODO:在此添加控件通知处理程序代码OnCancel();}运行结果:总结总结的书写要求:这是我这学期编写的第一个MFC程序,在这次课前,我们在大一课程设计的时候有接触到相关的MFC编程,不过时隔两年,也陌生了不少。

测绘程序设计实验报告python

测绘程序设计实验报告python

测绘程序设计实验报告python 实验目的:学习如何使用Python语言编程实现测绘程序设计。

实验内容:1.设计测量平面图的程序2.实现坐标转换功能3.计算计算两点之间的距离实验步骤:1. 使用Pycharm等Python开发工具新建一个python文件2. 导入所需的模块:numpy、math3. 定义函数,实现程序的功能代码如下:1. 设计测量平面图的程序def map_design():print("请输入地图缩放比例:")scale = float(input())print("请输入地图的长度和宽度(m):")length = float(input())width = float(input())area = length * width * scale * scaleprint("地图的面积是:", area, "平方米")2. 实现坐标转换功能def coords_convert():print("请输入原坐标系的坐标(x, y):")x1 = float(input())y1 = float(input())print("请输入目标坐标系的坐标系数(a, b):")a = float(input())b = float(input())x2 = a * x1y2 = b * y1print("转换后的坐标(x, y)为:", x2, y2)3. 计算计算两点之间的距离def distance_calc():print("请输入起始点和结束点的坐标(x1, y1, x2, y2):")x1 = float(input())y1 = float(input())x2 = float(input())y2 = float(input())distance = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)print("两点之间的距离为:", distance, "米")4. 主函数,用于调用其他函数def main():print("***欢迎使用测绘程序设计***")print("请选择要进行的操作:")print("1. 设计测量平面图的程序")print("2. 实现坐标转换功能")print("3. 计算两点之间的距离")choice = int(input())if choice == 1:map_design()elif choice == 2:coords_convert()elif choice == 3:distance_calc()else:print("输入错误,请重新输入")if __name__ == '__main__':main()实验总结:通过这个Python编程实验,我学到了如何使用Python语言编程实现测绘程序设计。

测绘程序设计报告

测绘程序设计报告

测绘程序设计报告引言测绘程序设计是一个基于计算机技术的测绘工具开发过程。

它通过编写程序来处理测量原始数据,建立地理信息系统,并生成地图、图表等测绘产品。

本文将介绍测绘程序设计的目的、设计过程和最终结果。

目的测绘程序设计的主要目的是提供一个高效、准确的测绘工具,以帮助测绘工作者进行测绘数据的处理和分析。

通过编写程序,可以提高测绘工作的效率,减少错误,并且可以生成各种形式的测绘产品,满足不同用户的需求。

设计过程需求分析在进行测绘程序设计之前,首先需要进行需求分析。

这包括确定用户的具体需求,明确测绘工作的流程和要求,进而确定程序所需的功能和特性。

通过与测绘工作者进行交流和讨论,我们可以清楚地了解他们的需求,并据此进行下一步的设计工作。

系统设计在需求分析的基础上,我们开始进行系统设计。

系统设计包括以下几个方面:•数据模型设计:确定存储测量数据的数据结构和关系模型,以便于后续的数据处理和分析。

•界面设计:设计程序的用户界面,以便用户可以方便地输入数据、选择功能和查看结果。

•算法设计:设计各种算法来处理测量数据,例如计算坐标、插值、坐标转换等。

•数据库设计:设计数据库结构,以便存储和管理测绘数据。

编码和测试在系统设计完成后,我们开始进行编码和测试。

编码阶段是将设计好的系统转换为实际可执行的程序代码的过程。

在编码过程中,我们需要选择合适的编程语言和开发工具,并根据设计文档逐步实现各个功能模块。

编码完成后,需要进行测试以验证程序的正确性和稳定性。

测试过程包括单元测试、功能测试和性能测试等。

通过不同层次的测试,可以发现并修复程序的错误和缺陷,确保程序的稳定运行。

部署和维护程序编码和测试完成后,我们需要进行部署和维护工作。

部署是将程序安装到用户的计算机上,并进行配置和设置,以确保程序可以正常运行。

维护工作包括对程序的bug修复、功能更新和性能优化等。

最终结果经过上述的设计过程,最终我们将得到一个完整的测绘程序。

该程序具备以下特点和功能:•支持测量数据的导入和管理,包括数据的录入、编辑和删除等功能。

机构运动简图测绘实验报告

机构运动简图测绘实验报告

机构运动简图测绘实验报告本次实验旨在通过测绘机构运动简图,探究机构运动的规律和特点。

通过实验,我们将对机构运动的相关知识有更深入的了解,并且能够通过测绘实验报告的形式,将实验结果进行详细记录和总结。

实验材料及方法。

1. 实验材料,测绘仪器、机构运动简图模型、实验记录表。

2. 实验方法,首先,我们准备好测绘仪器和机构运动简图模型,并将仪器校准至标准状态。

然后,根据实验要求,进行机构运动简图的测绘工作。

在测绘过程中,需要准确记录各个位置的坐标和角度,并及时进行数据整理和分析。

实验过程及结果。

在实验过程中,我们按照实验要求,进行了机构运动简图的测绘工作。

通过仔细观察和记录,我们获得了一系列准确的数据,并成功完成了机构运动简图的测绘任务。

在数据整理和分析阶段,我们发现了一些有趣的规律和特点,这些结果将在下文进行详细阐述。

实验总结及结论。

通过本次实验,我们对机构运动的规律和特点有了更深入的了解。

我们发现,在机构运动中,各个部件的位置和角度随着时间的变化而发生规律性的变化,这些变化对机构的整体运动起着重要的作用。

通过测绘实验,我们成功地记录了这些变化,并对其进行了详细的分析和总结。

结论。

1. 机构运动简图的测绘工作是一项重要的实验任务,通过这项工作,我们可以更直观地了解机构运动的规律和特点。

2. 在测绘过程中,需要准确记录各个位置的坐标和角度,以获得准确的数据。

3. 通过数据整理和分析,我们可以发现一些有趣的规律和特点,这些结果对于理解机构运动具有重要的意义。

展望。

在今后的实验工作中,我们将继续深入探究机构运动的规律和特点,通过不断的实验和研究,为机构运动的应用和发展提供更多的科学依据和技术支持。

结语。

通过本次实验,我们对机构运动的规律和特点有了更深入的了解,同时也积累了宝贵的实验经验。

我们相信,在今后的工作中,我们将能够更好地应用这些知识和技术,为机构运动的研究和应用做出更大的贡献。

最新测绘程序设计实验报告

最新测绘程序设计实验报告

最新测绘程序设计实验报告实验目的:本实验旨在通过设计和实现最新的测绘程序,提高学生对测绘技术和程序设计的理解,同时培养学生的编程能力和解决实际问题的能力。

通过实验,学生将学习到如何运用现代测绘方法和编程技巧,有效地处理地理信息数据,并生成精确的地图。

实验内容:1. 测绘数据采集:使用全球定位系统(GPS)和遥感技术收集地理信息数据。

2. 数据处理与分析:利用地理信息系统(GIS)软件对采集的数据进行处理和分析,包括数据清洗、格式转换和误差分析。

3. 程序设计:基于Python或C++等编程语言,设计测绘程序,实现数据的自动化处理和地图的生成。

4. 地图生成:通过编写的程序,生成二维或三维地图,并进行可视化展示。

5. 实验评估:对生成的地图精度和程序性能进行评估,提出改进意见。

实验步骤:1. 确定实验目标和所需数据类型。

2. 选择合适的测绘工具和GIS软件。

3. 设计程序架构,编写程序代码。

4. 运行程序,输入测绘数据,进行数据处理。

5. 生成地图,并对地图进行校验和修正。

6. 撰写实验报告,总结实验过程和结果。

实验结果:通过本次实验,成功设计并实现了一个测绘程序。

该程序能够自动处理GPS和遥感数据,生成精确的地图。

实验中发现,程序在处理大规模数据时效率较高,但在数据清洗阶段需要进一步优化以提高准确性。

生成的地图清晰度高,满足了实验的基本要求。

结论:本次实验验证了所设计测绘程序的有效性,通过实际应用,程序能够满足基本的测绘需求。

未来的工作将集中在提高程序的数据处理能力和用户交互体验上,以适应更复杂的测绘任务。

此外,还需探索如何将人工智能技术集成到测绘程序中,进一步提升地图生成的智能化水平。

测绘程序设计实验报告

测绘程序设计实验报告

测绘程序设计(C版)实习报告学号: 201420050138姓名:李阳靖班级: 1420501Z专业:测绘工程课程名称:测绘程序设计(C及Matlab)指导老师:肖根如2015年12月目录前言1一、实验目的1二、实验环境2三、Turbo C 3.0与VC++6.0的熟悉与操作2四、实验内容梗概3五、实验具体内容4实验一算法4实验二数据类型、运算符和表达式5实验三控制语句6实验四函数9实验五数组11实验六结构体与共用体12六、常见错误及分析14七、程序调试15八、实验心得与体会17九、附录:实习程序设计清单21前言现代科学飞速发展,世界也不断的变化,人类的生活随着科技的发展也发生着惊天动地的变化。

作为新时代的大学生,我们应该不断努力学习科学文化知识,以适应社会的发展要求,以现代化的科学知识为祖国做贡献。

而C语言作为一种计算机语言,无疑是我们将来工作不可缺少的一门技能,所以我们应该认真学好C语言。

但只是课本上的知识是不够的,我们应该将从课本上学到的理论知识应用到实践中,通过不断的实践,在实践中发现错误解决错误,并不断创新,最后能熟练的运用所学的知识,充分掌握这种工具。

C语言知识博大精深,有必要对C语言的专著进行研究学习,多阅读别人的程序代码、多动手实践操作与设计,这样便对程序算法精简改进提供了可能。

想学的更深更透彻的话就必须进一步掌握运用C进行程序设计的能力;进一步理解和运用面向过程程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用互联网查找相关的知识并学习;学海之路何其宽广,有必要让我们孜孜不倦的求索下去。

一、实验目的C语言程序设计实习是在学习《C语言程序设计》理论知识的基础上进行的实践教学环节,其目的是培养我们具有初步的C语言程序设计、编程、调试和排除C语言程序语法、逻辑错误的能力。

全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

测绘程序设计(VS2019)实验报告--文件操作word资料6页

测绘程序设计(VS2019)实验报告--文件操作word资料6页

《测绘程序设计(VC)》上机实验报告(Visual C++)实验5 文件班级:学号:姓名:序号:二零一零年四月实验5 文件一、实验目的∙掌握文件对话框的使用方法。

∙掌握C++文件操作的一般步骤及实现方法。

∙了解MFC文件操作的特点及使用方法。

二、实验内容1. 编制简单的Cass数据文件进行数据整理的程序。

整理后的数据文件中要求无重复点数据,且数据按点号大小的升序进行排序。

要求整理后的数据按与原始数据文件同样的格式保存为另外一个文件要求:a.用SaveFileDialog和OpenFileDialog控件获取文件打开或保存的文件名。

b.自定义一个测量点数据结构体,其元素包括:点号,编码,X,Y,Hc.用文本框显示原始数据和整理后的数据d..按编程规范进行编码设计思路:1)自定义一个测量点数据结构体,其元素包括:点号,编码,X,Y,H2)定义一个分割函数用来分割数据3)打开文件,将测量点的数据值赋给点的结构体数组4)通过比较结构体元素的异同删除重复点,获得新的总点数5)按点号大小的升序排列6)将新排好的数据输出到另一个文本框中,并保存于文件中。

界面设计:共2个文本框、2个Group Box控件、2个命令按钮。

主要代码:FileDlg.cpp//定义点的结构体#define POINT struct pointPOINTint iDotmark;CString strCode;double X;double Y;double Z;void CFileDlg::OnBnClickedOpenfile()// TODO: 在此添加控件通知处理程序代码CFileDialog dlgFile(TRUE,_T("txt"),NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,_T("(文本文件)|*.txt"));if(dlgFile.DoModal()==IDCANCEL) return;CString strFileName=dlgFile.GetPathName();setlocale(LC_ALL,"");CStdioFile sf;if(!sf.Open(strFileName, CFile::modeRead)) return;CString strLine;strPriData.Empty();BOOL bEOF=sf.ReadString(strLine);while(bEOF)strPriData+=strLine;bEOF=sf.ReadString(strLine);if(bEOF) strPriData+=_T("\r\n");sf.Close();//整理原始数据并在右边编辑框中输出//UpdateData(TRUE);int iLine;//分行并存入字符串数组CString *pstrLine=SplitString(strPriData,'\n',iLine);int iTotalPoint; //总点数CString *strTmp=NULL;int n;iTotalPoint = _ttoi(pstrLine[0]); //第一行为总点数if(iTotalPoint!=iLine-1)MessageBox(_T("数据格式有误"));POINT *pPoint=new POINT[iTotalPoint]; //结构体指针,指向点结构体//逐行用Split函数分离,给点结构体赋值for(int i=0;i<iTotalPoint;i++)strTmp = SplitString(pstrLine[i+1], ',',n);pPoint[i].iDotmark = _ttoi(strTmp[0]);pPoint[i].strCode = strTmp[1];pPoint[i].X = _tstof(strTmp[2]);pPoint[i].Y = _tstof(strTmp[3]);pPoint[i].Z = _tstof(strTmp[4]);if(strTmp!=NULL)//释放内存delete[] strTmp;strTmp=NULL;if(strTmp!=NULL)//释放内存delete[] strTmp;strTmp=NULL;//删除重复点for(int i=0;i<iTotalPoint;i++)for(int j=i+1;j<iTotalPoint;j++)if(pPoint[i].iDotmark ==pPoint[j].iDotmark)//delete pPoint;for(int k=j;k<iTotalPoint-1;k++)pPoint[k]=pPoint[k+1];iTotalPoint--;//按点号的升序排列/*POINT min=pPoint[0];*/for(int i=0;i<iTotalPoint;i++)for(int j=i+1;j<iTotalPoint;j++)if(pPoint[i].iDotmark>pPoint[j].iDotmark){POINT t=pPoint[i];pPoint[i]=pPoint[j];pPoint[j]=t;} //输出调整后的数据strTidyData.Format(_T("%d\r\n"),iTotalPoint);CString strOutput;for(int i=0;i<iTotalPoint;i++)strOutput.Format(_T("%d,%s,%f,%f,%f\r\n"),pPoint[i]);strTidyData=strTidyData+strOutput;UpdateData(FALSE);//释放内存if(pPoint!=NULL)delete[] pPoint;pPoint=NULL;void CFileDlg::OnBnClickedSavefile()// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);CFileDialog dlgFile(FALSE,_T("txt"),NULL,OFN_EXPLORER,_T("(文本文件)|*.txt"));if(dlgFile.DoModal()==IDCANCEL) return;CString strFileName=dlgFile.GetPathName();setlocale(LC_ALL,"");CStdioFile sf;if(!sf.Open(strFileName, CFile::modeCreate|CFile::modeWrite)) return;sf.WriteString(strTidyData);sf.Close();CString *CFileDlg::SplitString(CString str, char split, int& iSubStrs) int iPos = 0; //分割符位置int iNums = 0; //分割符的总数CString strTemp = str;CString strRight;//先计算子字符串的数量while (iPos != -1)iPos = strTemp.Find(split);if (iPos == -1)break;strRight = strTemp.Mid(iPos + 1, str.GetLength());strTemp = strRight;iNums++;if (iNums == 0) //没有找到分割符//子字符串数就是字符串本身iSubStrs = 1;return NULL;//子字符串数组iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1CString* pStrSplit;pStrSplit = new CString[iSubStrs];strTemp = str;CString strLeft;for (int i = 0; i < iNums; i++)iPos = strTemp.Find(split);//左子串strLeft = strTemp.Left(iPos);//右子串strRight = strTemp.Mid(iPos + 1, strTemp.GetLength());strTemp = strRight;pStrSplit[i] = strLeft;pStrSplit[iNums] = strTemp;return pStrSplit;运行结果:操作过程:单击“打开原始数据”,选择原始数据所在的文本文件,自动输出原始数据及整理后的数据,单击“保存整理后的数据”,选择保存路径,确定文件名,单击保存即可。

轴系结构测绘实验报告

轴系结构测绘实验报告

轴系结构测绘实验报告摘要:轴系结构测绘是一种常用的实验方法,用于确定物体或系统的坐标轴方向和位置关系。

本实验报告介绍了轴系结构测绘实验的目的、原理和步骤,并详细描述了实验过程和结果。

通过本实验,我们能够掌握轴系结构测绘的基本技术,并应用于实际测绘工作中。

一、引言轴系结构测绘是一项重要的测绘实验,用于确定物体或系统的坐标轴方向和位置关系。

该实验应用于各种领域,如工程测量、机械设计和建筑规划。

本实验报告旨在介绍轴系结构测绘实验的目的、原理和步骤,并展示实验结果。

二、实验目的本实验的主要目的是:1. 理解轴系结构测绘的原理和概念。

2. 学习使用测绘仪器和工具进行轴系结构测量。

3. 掌握测绘数据处理和分析的基本技巧。

三、实验原理轴系结构测绘的原理基于坐标轴的确定和位置关系的测量。

常用的测绘方法包括:1. 方位角和倾斜角法:通过测量方位角和倾斜角来确定物体或系统的坐标轴方向。

2. 垂直测量法:通过测量垂直线的长度和角度来确定物体或系统的坐标轴位置关系。

四、实验步骤1. 准备测绘仪器和工具,如测角仪、测距仪、经纬仪等。

2. 设置测量基准点,并确定参考方向。

3. 根据实验要求,选择合适的测量方法,如方位角和倾斜角法或垂直测量法。

4. 进行实际测量,记录测量数据并标记测点。

5. 进行数据处理和分析,计算坐标轴的方向和位置关系。

6. 绘制测绘图纸或报告,展示实验结果。

五、实验结果通过实验测绘和数据处理,我们得到了目标物体的坐标轴方向和位置关系。

实验结果显示了测绘图纸或报告,并说明了各个坐标轴的方向和相对位置。

六、实验总结轴系结构测绘实验是一项重要的测绘技术,通过本实验,我们深入了解了轴系结构测绘的原理和步骤。

通过测量和数据处理,我们成功确定了目标物体的坐标轴方向和位置关系。

实验结果表明,轴系结构测绘方法在确定物体或系统坐标轴的方向和位置方面具有较高的准确性和可靠性。

本实验的成功得益于实验前的准备工作和仪器的正确使用。

测绘实训实验报告

测绘实训实验报告

一、实验目的1. 掌握测绘基本原理和基本技能;2. 熟悉测绘仪器的操作方法和使用技巧;3. 培养团队合作精神和实践能力;4. 加深对测绘工程应用的理解。

二、实验仪器与设备1. 全站仪一台;2. 钢尺一把;3. 三脚架一个;4. 坐标纸若干;5. 实验记录本一本。

三、实验内容与步骤1. 实验地点:学校测绘实验室2. 实验步骤:(1)了解实验目的、原理及注意事项。

(2)熟悉全站仪的操作方法和使用技巧。

(3)测量实验场地控制点坐标。

(4)绘制实验场地平面图。

(5)进行高程测量。

(6)整理实验数据,分析误差来源。

四、实验结果与分析1. 控制点坐标测量结果(1)A点坐标:X=100.123,Y=200.456,Z=30.789;(2)B点坐标:X=150.789,Y=250.123,Z=40.567;(3)C点坐标:X=200.123,Y=300.456,Z=50.789。

2. 平面图绘制结果根据控制点坐标,绘制实验场地平面图,标注各控制点及测量点。

3. 高程测量结果(1)A点高程:30.789m;(2)B点高程:40.567m;(3)C点高程:50.789m。

4. 误差分析(1)仪器误差:全站仪本身的精度对实验结果有一定影响;(2)操作误差:操作者对仪器的操作熟练程度、观测时间等因素对实验结果有一定影响;(3)环境误差:实验场地周围环境对实验结果有一定影响。

五、实验总结1. 通过本次实验,掌握了测绘基本原理和基本技能,熟悉了全站仪的操作方法和使用技巧;2. 培养了团队合作精神和实践能力,提高了对测绘工程应用的理解;3. 认识到实验过程中存在的误差来源,为今后进一步提高实验精度提供参考。

六、实验建议1. 在实验过程中,应严格按照操作规程进行操作,确保实验数据准确可靠;2. 提高实验者的观测技能,减少人为误差;3. 注意实验场地周围环境对实验结果的影响,选择合适的实验场地进行实验。

测绘实习报告

测绘实习报告

测绘实习报告测绘实习报告15篇随着个人素质的提升,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。

那么什么样的报告才是有效的呢?下面是小编精心整理的测绘实习报告,希望对大家有所帮助。

测绘实习报告1实习时间:20xx年8月29号到20xx年9月4号实习地点实习单位:实习内容:测绘一级锥齿轮减速器一实习目的:机械制图是机械类设计人员必须掌握的专业知识中一门实践性较强的技术基础知识,图示方法的掌握、制图标准的应用、绘图技能的提高、制图和读图能力的培养以及空间想象能力的增强,都是通过制图习题和作业要求来实现的。

多做练习是学好机械制图的关键,因此要积极独立多做各种练习。

通过对一级锥齿轮减速器装配的测绘,让我们全面地、系统的复习机械制图课程所要求掌握的基础理论、基本知识和基本技能,进一步提高绘图、读图的质量和速度,为后续课程打下基础。

实际生产中,在新产品设计、引进先进技术以及对原有设备进行技术改造和维修时,需要对现有的机器和零部件进行测绘,画出其装配图和零件图,因此,掌握测绘技术对工程技术人员具备有重要意义。

在机械制图测绘实习中,通过对一级锥齿轮减速器的测绘,达到以下目的:1、使我们掌握零件测绘的方法和步骤;2、了解徒手画草图的意义;3、掌握常用工量具的使用方法,能够根据测量数据、有关标准和手册、计算公式确定标准件的规格和齿轮参数;4、能正确选择配合、表面粗糙度和形位公差并进行标注;5、进一步巩固《机械制图》中掌握的绘图技能,使识图能力上一个新的台阶;6、培养我们耐心细致工作作风、科学严谨的工作态度和团队精神。

7、在测绘中,注意培养认真负责,踏实细致的工作作风和保质,保量按时完成任务的习惯,在测绘过程中要做到复习教材,查找资料,学以致用;8、在零件的表达方法上有独到的见解,视图选择正确、布置合理;9、弄清所测绘的装配体的工作原理,懂得各零部件的作用以及各零部件间的装配联结关系10、所绘图样要符合机械制图的标准,标准件要按标准画法、简化画法或比例画法绘制,并要标准化,要有正确的、较完整的尺寸标注与技术要求;11、熟练掌握测量工具,准确测出外圆,内孔,中心距,高度,深度,长度,孔距,齿顶圆,螺纹等有关尺寸。

测绘类实习报告7篇

测绘类实习报告7篇

测绘类实习报告7篇测绘类实习报告篇1一、测绘人员__X __X __X __ __ __二、测绘时间.6.27-.7.8三、测绘目的1、培养理论联系实际的正确的设计思想,训练综合运用已经学过的理论和生产实际知识去分析和解决实际问题的能力;2、学习机械设计的一般方法,了解和掌握常用机械零件、传动装置或简单机械的设计过程和进行方式;3、进行基本技能训练,包括测量、绘图(手工绘制装配图和零件图)、计算、CAD;运用设计资料、手册和规范及使用经验数据进行经验估算和处理数据等。

四、测绘对象一级圆柱齿轮减速器五、测绘工具直尺、游标卡尺六、测绘内容1、零件测绘2、装配图设计第一阶段(1)装配图设计的准备(2)有关零部件结构和尺寸的确定3、装配图设计第二阶段(1)传动零件结构设计(2)轴承端盖结构(3)轴承的密封与润滑4、装配图设计第三阶段(1)圆柱齿轮减速器机体的设计(2)减速器附件的设计5、完成减速器装配图6、零件图的设计七、测绘心得装配体测绘实习心得为提高我们10级机械专业学生的专业素质和动手的能力,并将理论知识与实践经验相结合,深化用理论去指导实践,用实践去理解理论的马克思辨证唯物主义法。

学校安排了为期两周的专业实习,实习内容为对一级减速器的测绘及画出图纸。

在此次实习中我学到了很多。

首先,这次实习提高我们机械专业素质和动手的能力,并将理论知识与实践经验相结合。

经过这次实习,巩固、扩大和加深了我从课堂上所学的理论知识,掌握了机械制图cad等基本操作,并达到了一定的熟练程度,而且还有机会学会了装配体图的绘制方法。

在锻炼大家画草图、运用计算机绘图的能力同时也积累自己的绘图经验和提高自己的绘图速度。

我们不仅从此次专业实习中获得了测量以及绘制等实际工作的初步经验和基本技能,还培养了我们的独立工作能力,培养我们发现问题、解决问题的能力,而且进一步熟练了测量仪器的使用技能,提高了数据计算能力和对数据的敏感程度,并对测绘装配体图的全过程有了一个全面和系统的认识,这些知识往往是我在课堂中很少接触、注意的,但又是十分重要、十分基础的知识。

测绘程序设计基础实验报告

测绘程序设计基础实验报告

测绘程序设计基础实验报告1.引言本实验旨在通过测绘程序设计基础实验,加深对测绘程序设计基本概念及其应用的理解。

在实验中,我们将学习如何使用测绘程序设计工具,结合实际测绘数据进行计算、分析和可视化展示。

本报告将详细介绍实验背景、实验过程和实验结果,并总结实验中的收获与体会。

2.实验背景测绘程序设计是测绘工程的重要组成部分,它利用计算机技术和数学方法对大量的测量数据进行处理和分析,以实现对地理信息的精确描述与快速获取。

测绘程序设计的基础是计算机编程和地理测量学知识,因此对编程基础和地理测量学的了解是进行测绘程序设计的前提。

为了培养学生对测绘程序设计的理解和应用能力,本实验将通过设计测绘程序,实现对实际测绘数据的处理和分析。

通过这个实验,我们将进一步了解测绘程序设计的基本原理和实际应用。

3.实验过程3.1 实验准备在开始实验之前,我们需要准备以下工具和材料:•计算机•测绘软件•实验数据3.2 实验步骤1.下载并安装测绘软件,根据官方提供的安装指南完成软件的安装。

2.运行测绘软件,新建一个项目,在项目中导入实验数据。

3.使用测绘软件提供的分析工具,对实验数据进行计算和处理。

4.根据实验要求,设计测绘程序,实现对实验数据的处理和分析。

5.在测绘软件中运行测绘程序,获取处理后的数据。

6.根据实验要求,将处理后的数据可视化展示。

7.完成实验报告,总结实验过程和结果。

3.3 实验注意事项在进行实验过程中,需要注意以下几点:•确保测绘软件和测绘程序的兼容性,避免出现兼容性问题导致实验失败。

•仔细阅读实验要求,确保程序设计符合要求并能够正确处理和分析实验数据。

•注意数据质量和精度,对实验数据进行必要的清洗和校验。

4.实验结果根据实验要求,我们设计了一个测绘程序,用于对实验数据进行处理和分析。

经过运行程序并在测绘软件中查看结果,我们得到了以下实验结果:•处理后的数据结果清晰可见。

•分析结果准确,符合实验要求和设计要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1 Visual C++.Net环境和程序设计初步1.掌握VC++.net 语言的基本语法;2.理解顺序结构、选择结构和循环结构程序设计的特点及应用;3.掌握对基于对话框的MFC 应用程序设计方法;4.掌握一些简单算法。

5.编写一个方位角计算程序。

提示:先使用反正切函数计算,然后利用坐标增量的符号来判断所在的象限。

设计思路:在按钮下面添加程序。

X Y同时大于0在第一象限,方位角等于arctan(y/x);X>0,Y<0在第二象限,方位角等于arctan(y/x)+90;X<0,Y<0在第三象限,方位角等于arctan(y/x)+180;X<0,Y>0在第四象限,方位角等于arctan(y/x)+270;界面设计:主要代码:// 0145110615 ymh 2.1Dlg.h : 头文件protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:double x;double y;double Q;afx_msg void OnBnClickedOk();afx_msg void OnBnClickedCancel();afx_msg void OnBnClickedButton1();double A;};// 0145110615 ymh 2.1Dlg.cpp : 实现文件#include"stdafx.h"#include"0145110615 ymh 2.1.h"#include"0145110615 ymh 2.1Dlg.h"#include<math.h>#ifdef _DEBUG#define new DEBUG_NEW#endifvoid CMy0145110615ymh21Dlg::OnBnClickedOk()//计算{// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);if(x>0){if(y>0){Q=1;A=atan(y/x);}//x大于y大于在第一象限else{Q=4;A=atan(y/x)+270;}//x大于y小于在第四象限}else if(y>0){Q=2;A=atan(y/x)+90;}//x大于y小于在第二象限else{Q=3;A=atan(y/x)+180;}//x小于y小于在第三象限UpdateData(FALSE);//OnOK();}void CMy0145110615ymh21Dlg::OnBnClickedCancel()//清除{// TODO: 在此添加控件通知处理程序代码UpdateData(true);x=0;y=0;Q=0;A=0;UpdateData(false);}void CMy0145110615ymh21Dlg::OnBnClickedButton1()//退出{// TODO: 在此添加控件通知处理程序代码OnCancel();}运行结果:总结第一次做这个实验的时候真的觉得挺难得可是当我经过更难的实验的洗礼之后在返回来看它真是顿时亲切了许多,其实当时是对这个软件不了解简单的东西把它想得很复杂绕来绕去都不知道该怎么实现一些很简单的东西了。

实验2.2 .设计同一参考椭球下的三维地心坐标(笛卡儿坐标系)与大地坐标系转换的程序。

(提示:用do…while 迭代,B、H 初始为0 进行迭代,直到H 的精度达到0.00001 米)注意:东经0~180(Y>0),西经:0~-180(Y<0)式中,B、L、H 为椭球面上的大地纬度、大地经度、大地高;X、Y、Z 为空间直角坐标;N 为卯酉圈曲率半径,e 为椭球的偏心率,a 为椭球的长半径,b 为椭球的短半径。

(WGS84 椭球参数:长半径a=6378137m,扁率α=1/298.257223563)设计思路:在按钮下面设置主程序,按照指导书给的思路编辑公式界面设计:主要代码:// 0145110615 ymh 2.2Dlg.h : 头文件protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:double B;double L;double H;double X;double Y;double Z;afx_msg void OnBnClickedOk();};// 0145110615 ymh 2.2Dlg.cpp : 实现文件#include"stdafx.h"#include"0145110615 ymh 2.2.h"#include"0145110615 ymh 2.2Dlg.h"#include<math.h>#ifdef _DEBUG#define new DEBUG_NEW#endifvoid CMy0145110615ymh22Dlg::OnBnClickedOk()//大地坐标转换为空间直角坐标{// TODO: 在此添加控件通知处理程序代码UpdateData(true);double r=1/298.257223563;double e=sqrt((2*r)-(r*r));int a=6378137;double W=sqrt(1-e*e*sin(B)*sin(B));double N=a/W;X=(N+H)*cos(B)*cos(L);Y=(N+H)*cos(B)*cos(L);Z=(N*(1-e*e)+H)*sin(B);UpdateData(false);//OnOK();运行结果:。

实验2.3 .编写一个后方交会计算程序。

3.1 基本原理及计算公式若将Pa、Pb、Pc 看成权,则P 点的坐标即为三个已知点的加权平均值3.2 计算程序设计步骤(1)设计界面,用于输入 3 个已知点的坐标和三个观测角、和,以及用于输出待定点坐标的文本框(12 个)、静态标签框和Button 按钮;(2)定义文本框控件变量(Value);(3)根据已知点计算三个内角A、B、C;(4)计算Tan(α)、Tan(β)、Tan(γ)、Tan(A)、Tan(B)、Tan(C);(5)计算Pa、Pb、Pc;(6)计算待定点坐标Xp、Yp。

界面要求:三个坐标输入框,两个角度输入框一个坐标结果输出框一个计算按钮,一个清除按钮,一个退出按钮。

2.由三角形三个边长求内角函数计算公式:设计思路:通过示例编辑框添加变量,在按钮下面添加程序。

先将α、β、的度分秒之转换成度利用三角形内角和等于180算出γ并将γ转换成弧度。

接着计算三角形的内角,判断P点是否在危险圆上若不在则计算P点坐标若在则弹出“该点在危险圆上”。

界面设计:主要代码:protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:afx_msg void OnEnChangeEdit5();double XA;double YA;double XB;double YB;double XC;double YC;double alfa;double bet;double Xp;double Yp;afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedOk();};#include"stdafx.h"#include"dss2-3.h"#include"dss2-3Dlg.h"#include<math.h>const double PI=3.1415926535897932;#ifdef _DEBUG#define new DEBUG_NEW#endifvoid Cdss23Dlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);double afAB,afAC,afBC,afBA,afCA,afCB,A,B,C,Pa,Pb,Pc;int D1,M1,D2,M2;double S1,S2,alfa1,bet1,gama1,alfa2,bet2,gama2;//将alfa转换成度D1=int(alfa);M1=int((alfa-D1)*100);S1=((alfa-D1)*100-M1)*100;alfa1=D1+M1/60+S1/3600;alfa2=alfa1*PI/180;//将bet转换成度D2=int(bet);M2=int((bet-D2)*100);S2=((bet-D2)*100-M2)*100;bet1=D2+M2/60+S2/3600;bet2=bet*PI/180;//计算gama1的值gama1=180-bet1-alfa1;gama2=gama1*PI/180;//将gama1的值转换成弧度//计算已知点的三个内角afAB=atan((YB-YA)/(XB-XA));afAC=atan((YC-YA)/(XC-XA));afBA=atan((YA-YB)/(XA-XB));afBC=atan((YC-YB)/(XC-XB));afCA=atan((YA-YC)/(XA-XC));afCB=atan((YB-YC)/(XB-XC));A=afAB-afAC;B=afBC-afBA;C=afCA-afCB;//判断点是否在危险圆上若不在则计算P点坐标if(alfa+bet+C<170||alfa+bet+C>190){Pa=(tan(alfa2)*tan(A))/(tan(alfa2)-tan(A));Pb=(tan(bet2)*tan(B))/(tan(bet2)-tan(B));Pc=(tan(gama2)*tan(C))/(tan(gama2)-tan(C));Xp=(XA*Pa+XB*Pb+XC*Pc)/(Pa+Pb+Pc);Yp=(YA*Pa+YB*Pb+YC*Pc)/(Pa+Pb+Pc);}else//若在则弹出“该点位于危险圆上”MessageBox(_T("该点位于危险圆上"));UpdateData(FALSE);//OnCancel();}void Cdss23Dlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);XA=0;YA=0;XB=0;YB=0;XC=0;YC=0;alfa=0;bet=0;Xp=0;Yp=0;UpdateData(FALSE);//OnOK();};运行结果:总结本次实验刚开始还是遇到了很多问题的比如说根本不就不知道该如何用程序来实现后方交会这个过程,后来经过问同学、上网查资料等大概弄懂了实现步骤可是写完程序后我发现他根本计算不了点计算按按钮一点反应都没有。

相关文档
最新文档