测量程序设计报告.doc_第1页
测量程序设计报告.doc_第2页
测量程序设计报告.doc_第3页
测量程序设计报告.doc_第4页
测量程序设计报告.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

。成绩 环境与测绘工程学院课程论文学年学期: 2016-2017(一) 课程名称: 测量程序设计 论文题目: 附合导线平差求解 姓 名: 胡慧茹 学 号: 2014100455 任课教师: 白洪伟 目录一 实训目的.3二 实训任务.3三 实训环境.43.1 硬件环境.43.2软件环境.4四 项目设计与分析.54.1软件基本界面.64.2 附合导线平差求解.74.3 高差求解.114.4 计算方位角.124.4.1 实训内容.124.4.2 实现步骤设计 .124.5 角度转换.134.5.1 实训内容.134.5.2 实现步骤设计.134.6 计算坐标.14五 调用程序.15 1.导线.15 2.将度分秒转换为度.16 3.将度分秒转换为秒数.17 4.将弧度转化为度分秒.17 5.将角度转换为弧度 .17 6.给定俩坐标,坐标正y算方位角,返回的是以弧度为单位的角度.18六 实验心得.18一 实训目的(1)掌握C#窗体创建及其常用控件的选用和编程。进一步提高编程能力,掌握对C#方法的调用,同时学会并运用Microsoft Visual Studio2010软件编辑C#语言程序。 (2)实训室由学校组织,利用课堂有限的时间掌握专业知识与运用,结合课下空闲时间巩固加强。学生在实训期间,以个人为单位完成项目,通过自己的不断摸索,实训可以学到课堂上学不到的知识,可以将学到的知识灵活运用起来。 (3)在实训的过程中,可以让学生树立明确的学习态度,拥有良好的职业素养,锻炼扎实的职业技能,塑造坚定的职业人生,也为选择考研深造的同学提供锻炼的机会。 (4)C#是当今社会中发展速度迅猛的一种语言,所以企业公司对于人员的要求也不断提高,与测绘相关的职业也需要具备编程知识的人员,通过实训激发自身潜力,提高自身修养,掌握编程语言,养成良好的编程习惯,为以后的求职生涯添上一块“敲门砖”。 (5)利用Microsoft Visual Studio2010软件设计窗体应用程序并完成“附合导线平差”程序设计,其中包括登录界面、主界面、角弧转换界面和距离及方位角计算等界面。 二 实训任务 (1)软件基本界面软件的基本界面包登录界面和主界面,主界面里面为附合导线平差求解,在菜单栏的小工具中包高差求解、角度转换和坐标求解。(2)附合导线平差求解在一条双定向附合导线中,已知端点四点坐标,若干左角和边长,求其中各点坐标。(3)高差求解用全站仪在一点观测了另一点斜边和垂直角,求两点的高差。(4)计算方位角方位角的取值为0-360度。(5)角度转换将输入的角度转换为弧度或弧度转换为角度。(6)计算坐标已知两点中一点的坐标、距离及方位角,求另一点的坐标。三 实训环境3.1 硬件环境硬件环境是计算机及其外围设备组成的计算机物理系统,即硬件设施,是指由传播活动所需要的那些物质条件、有形条件之和构筑而成的环境。硬件环境主要是由计算机的硬件组成的,而计算机硬件是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。这些物理装置系统按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。简而言之,计算机硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源;外部设备包鼠标、键盘、显示器、音箱等,这些设备通过接口和连接线与主机相连。这些都是构成硬件的主要部分。对于C#面向对象的软件来说,所需的硬件环境,要求其实不是很高,安装Visual Studio 2010时的所需的必备条件如表1:表1 安装Visual Studio 2010所需的必备条件硬件描述处理器600MHz处理器,建议使用1GHz处理器RM192MB,建议使用256MB内存可用硬盘空间如果不安装MSDH,系统驱动器上需要1GB的可用空间,安装驱动起上需要2GB的可用空间;如果安装MSDHL,则系统驱动上需要1GB的可用空间,安装完整MSDH的安装驱动器上需要3.8GB的可用空间,默认安装MSDH的安装驱动器上需要2.8GB的可用空间。CD-ROM或DVD-ROM驱动器必须使用显示器800600,256色,建议使用1024768,增强色16位鼠标微软鼠标或兼容的指针设备操作系统及所需补丁Windows 2000 Service Pack 4、Windows XP Service Pack 2、Windows Server 2003、Service Pack 1或更高版本 3.2软件环境 软件环境是指由传播活动所需要的那些非物质条件、无形条件之和构筑而成的环境。只要指软件的运行环境以软件运行所需要的周边软件等等,除此之外,还包括目的软件之外的应用层软件,在涉及软件交互的时候,这些应用软件往往影响很大。实训中,我们使用VS集成环境来实现对于C#程序的运行。Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单和明了。Visual Studio 2010同时带来了NET Framework 4.0、Microsoft Visual Studio 2010 CTP,并且支持开发面向windows7的应用程序。Visual Studio是开发.NET应用程序的一套完整的开发工具集,集设计、编辑、运行和调试等多种功能于一体的集成开发环境(IDE)。Visual Studio支持四种内置的开发语言:Visual Basic、Visual C+、Visual C#和Visual J#,他们使用相同的集成开发环境,因而有助于创建混合语言解决方案。使用Visual Studio可以高效的生成各种ASP.NET web应用程序、XML Web Services,桌面应用程序和移动应用程序。使用Visual Studio集成开发环境可以快捷高效的开发Windows窗体应用程序。Visual Studio是我们学习C#必不可少的应用环境,实训时,我们对于Visual Studio的应用更加熟练了,也对Visual Studio有了各方面的了解。四 项目设计与分析4.1软件基本界面 图1 程序设计本程序名为“程序设计”,登录界面如图1,用户名为“2014100455”,密码为“胡慧茹”。双击“确定”,为了实现账户名密码登录输入一下程序: private void button1_Click(object sender, Eventrgs e) string = textBox1.Text; string b = textBox2.Text; if ( = 2014100455 & b = 胡慧茹) this.Hide(); 附合导线平差求解frm2 = new 附合导线平差求解(); frm2.Show(); 具体步骤: 文件,新建项目,windows应用窗体程序,添加两个label控件,两个textbox控件,两个button,右键属性修改控件的name和text的名称。 主界面如图2,主界面是附合导线平差求解,菜单栏中包“文件(打开、另存为)”、“小工具(角度转换、高差求解、计算坐标和计算方位角)”和“帮助(示意图)”。 图2 主界面示意图4.2 附合导线平差求解 新建windows窗体命名为附和导线平差,添加五个label控件,十一个textbox控件,三个button控件,一个pictureBox控件,一个openFileDialog,一个 saveFileDialog右键属性修改控件的name和text的名称。 图3 附合导线示意图 图4 附合导线平差求解在菜单栏中选择“文件”“打开”,导入文件夹中“附合导线实例数据”,点击“平差.txt”,就得出如图4的结果,点击“另存为”,可以将结果以“.txt”格式保存,命名为“附合导线输出数据实例”。 新建一个Windows应用程序命名为“附合导线平差求解”,并设计窗口,双击“平差”,编写如下代码:private void button1_Click(object sender, EventArgs e) double Mx = Convert.ToDouble(textBox1.Text); double My = Convert.ToDouble(textBox2.Text); double Ax = Convert.ToDouble(textBox3.Text); double Ay = Convert.ToDouble(textBox4.Text); double Nx = Convert.ToDouble(textBox5.Text); double Ny = Convert.ToDouble(textBox6.Text); double Bx = Convert.ToDouble(textBox7.Text); double By = Convert.ToDouble(textBox8.Text); /计算M到A的方位角 double 0 = 导线.方位角(Mx, My, Ax, Ay); /计算B到N的方位角 double 1 = 导线.方位角(Bx, By, Nx, Ny); List 坐标增量X集合 = new List(); List 坐标增量Y集合 = new List(); List 水平距离平方集合 = new List(); List 方位角集合 = new List(); double 坐标增量X和 = 0; double 坐标增量Y和 = 0; double 坐标增量X绝对值和 = 0; double 坐标增量Y绝对值和 = 0; double 水平距离和 = 0; double 水平距离平方和 = 0; double = 0; /ArrayList pj_spj = new ArrayList(256); string st = textBox9.Text; string array = st.Split(n); int pj; int spj; /int n; /for (n = 0; n 10000; ) / / if (aArrayn != ) / / n+; / / else break; / for (pj = 0, spj =1; spj 6; ) string str = arraypj; double S = double.Parse(str); string sd = arrayspj; double sd1 = double.Parse(sd); double = 导线.DEG(sd1); 水平距离平方集合.Add(S * S); 水平距离平方和 += S * S; double dx, dy; = 导线.坐标(0, 0, , S, , out dx, out dy); 方位角集合.Add(); 坐标增量X集合.Add(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; 坐标增量Y和 += dy; 坐标增量X绝对值和 += Math.Abs(dx); 坐标增量Y绝对值和 += Math.Abs(dy); pj += 2; spj += 2; /int number = pj.Capacity; /pj.TrimtoSize(); double LJ = Convert.ToDouble(textBox13.Text); double n = 导线.DEG(LJ); /推算B到N的方位角 double BN = 导线.方位角(方位角集合方位角集合.Count - 1, n); /计算方位角闭合差 double 方位角闭合差 = BN - 1; textBox10.Text = Convert.ToString(方位角闭合差); double 方位角改正数 = -方位角闭合差 / (方位角集合.Count + 1); /先对角度进行平差计算,并重新计算坐标增量 坐标增量X集合.Clear(); 坐标增量Y集合.Clear(); 坐标增量X和 = 0; 坐标增量Y和 = 0; 坐标增量X绝对值和 = 0; 坐标增量Y绝对值和 = 0; for (int j = 0; j 方位角集合.Count; j+) 方位角集合j += 方位角改正数 * (j + 1); /计算坐标增量 double 平距 = Math.Sqrt(水平距离平方集合j); double dx = 平距 * Math.Cos(方位角集合j); double dy = 平距 * Math.Sin(方位角集合j); 坐标增量X集合.Add(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; 坐标增量Y和 += dy; 坐标增量X绝对值和 += Math.Abs(dx); 坐标增量Y绝对值和 += Math.Abs(dy); /计算闭合差 double 闭合差X = Ax + 坐标增量X和 - Bx; textBox11.Text = Convert.ToString(闭合差X); double 闭合差Y = Ax + 坐标增量Y和 - By; textBox12.Text = Convert.ToString(闭合差Y); /计算单位长度改正数 double X坐标单位长度改正数 = -闭合差X / 坐标增量X绝对值和; double Y坐标单位长度改正数 = -闭合差Y / 坐标增量Y绝对值和; /计算导线相对精度 int f = (int)(水平距离和 / Math.Sqrt(闭合差X * 闭合差X + 闭合差Y * 闭合差Y); Console.WriteLine(导线的相对精度为1/0, f); /计算每点坐标 double X = Ax; double Y = Ay; List 坐标x = new List(); List 坐标y = new List(); for (int j = 0; j = 360.0) 方位角 -= 360.0; if (方位角 = Math.PI * 2) 方位角 -= Math.PI; if (方位角 0.000000001) angle = Math.tn2(deltY, deltX); if (angle 0) angle += Math.PI; if (deltY = Math.PI * 2) 方位角 -= Math.PI * 2; if (方位角 = Math.PI * 2) 方位角 -= Math.PI * 2; if (方位角 60) a = 0; f = f + 1; if (f = 60) f = 0; d = d + 1; a = d + f / 100.0 + a / 10000.0; return a; 5.将角度转换为弧度 public class j_h public double JIAO_HUDU(double jiao) int d = (int)(Math.Floor(jiao); jiao = jiao - d; int f = (int)(Math.Floor(jiao * 100.0); jiao = jiao * 100 - f; double m = jiao * 100.0; jiao = d * 3600.0 + f * 60.0 + m; double hudu = jiao / 206264.806247096263; return hudu; 6.给定俩坐标,坐标正y算方位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论