测绘应用程序设计_第1页
测绘应用程序设计_第2页
测绘应用程序设计_第3页
测绘应用程序设计_第4页
测绘应用程序设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、华北科技学院课程设计说明书课程名称: 测绘程序课程设计 专业班级: 测绘b08-3班 学 号: 200805064333 姓 名: 周 涛 指导教师: 赵 亚 红 坐标转换程序设计 一、设计目的和任务计算机程序设计综合课程设计是测绘工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、 软件设计技术和设计思想的理解,并能运用所学软件设计知识和c语言技术进行综合软件设计,通过本课程设计能够进行简单软件系统的开发,掌握软件设计的方法和c语言程序设计的基本技术,提高学生的综合应用能力。本次课程设计共两周,在这两周内,要求同学们主要完成一项软件设计与调试

2、任务,通过课程设计,每人提交运行通过的相应软件1套,程序代码1套,设计说明书1本。二、软件设计的一般步骤与方法通常计算机软件的设计以工程的管理方式、方法进行,包括需求分析、系统设计、编制程序,调试与测试。1. 需求分析  准确把握所要开发系统的功能需求。进行业务流的分析,根据系统所要完成的功能和所要处理的数据,画出反映系统逻辑模型的数据流图,对于重要的加工和数据项在数据字典中进行进一步的补充说明。2、总体设计  根据系统所完成的功能,准确划分各功能模块,明确各模块的功能职责、所要完成的数据处理与其他模块的数据传递关系,进行数据表的设计和对象类的设计,明确对象类间的关系。对各

3、个模块进行初步的算法设计。3、详细设计  对各功能模块,准确划出其流程图,详细地描述算法。对于各对象类,详细地描述其内部功能实现。在具体的dbms,如sql server中,完成数据的物理实施。4、编程调试   选用自己熟悉的编程工具,如c语言、vb或c#完成相应模块的设计。5、单元测试、组装测试  完成各模块的测试,成功后,由小组负责人将同一小组分别完成的各模块进行组装测试,成功后,提交软件成果。三.实验原理与过程1.问题需求分析 本次设计软件为高斯投影坐标转换的程序设计,包括坐标正反算,分为6度带和3度带,即大地坐标与测量坐标间的转换,同时还包括点所

4、在不同带的带号,比以前所做的高斯投影较为复杂。此程序可以实现以下功能:1.1由大地坐标转换为6度带高斯平面坐标,其中包含点所在高斯坐标系的带号;1.2由高斯平面坐标转换为大地坐标;1.3统一转换为点所在国家统一坐标系中的坐标。2.实验要求2.1实验尽量要求可以应用实际,并且符合实际工作需要;2.2程序应该有一定容错能力,并且最好可以检验数据的小量错误。2.3数据流程图数据输出开始数据输入数据处理数据显示说明结束3.程序流程图 开始大地坐标转换为高斯平面坐标高斯平面坐标转换为大地坐标输入点大地经度和纬度选择要转换类型计算点所在6度带带号和高斯平面坐标,以及国家统一坐标系坐标输入高斯平面坐标及所在

5、带号计算点大地经度和纬度,以及转化为国家统一坐标系坐标输出结果结束四、算例成果图五课程设计心得本次实验为测绘程序设计课程综合性设计,主要目的是巩固和检验学习的内容,能掌握测绘程序的编写及应用,掌握更多编程方面的知识。此次实验采用c+软件进行程序的编写,经过编写及实验,最终得出结果,并将结果保存附于实验报告中。这次课程设计在以前实验做过,但又不完全一样,内容更多了,所得出的结果更丰富,更符合实际的需要。通过这次综合性课程设计,我学到了很多,也对以前所学的知识能更好的掌握了,基本上达到了实验的目的。六程序代码及算例验证#include "iostream.h"#include

6、"iomanip.h"#include "math.h"#define p 206264.806247096355double x,y,b,l,bm,lm;int bd,bf,ld,lf,n;void zbzs(int bd,int bf,double bm,int ld,int lf,double lm);void zbfs(double x,double y,int n);void main()int k;for(int i=0;i<3;i+)cout<<"press '1':zbzs; '2

7、9;:zbfs"<<endl; cin>>k; cout <<setiosflags(ios:fixed)<<setprecision(11); /坐标正算if(k=1) cout<<"please input bd,bf,bm,ld,lf,lm:"<<endl; cin>>bd>>bf>>bm>>ld>>lf>>lm; /定6度带带号(逢余进一) if(ld%6=0&&(lf*1.0/6+lm*1.0/3

8、600)=0) n=(ld+lf*1.0/6+lm*1.0/3600)/6; else n=1+(ld+lf*1.0/60+lm*1.0/3600)/6;/判断点是否在重叠区内 if(ld*60+lf+lm/60-6*(n-1)*60)<30&&(ld*60+lf+lm/60-6*(n-1)*60)>-15)|(ld*60+lf+lm/60-6*n*60)<30&&(ld*60+lf+lm/60-6*n*60)>-15) cout<<"该点位于6度相邻两带重叠区,有两套坐标"<<endl; n=

9、1+(ld+lf*1.0/60+lm*1.0/3600)/6; zbzs(bd,bf,bm,ld,lf,lm); n=n-1; zbzs(bd,bf,bm,ld,lf,lm); /在重叠区内 else /不在重叠区内 zbzs(bd,bf,bm,ld,lf,lm); /用坐标反算检查结果 zbfs(x,y,n); break;/坐标反算 else if(k=2) cout<<"please input x,y,n:"<<endl; cin>>x>>y>>n; zbfs(x,y,n); zbzs(bd,bf,bm,l

10、d,lf,lm); break; elsecout<<"please press 1 or 2!"<<endl; continue;void zbzs(int bd,int bf,double bm,int ld,int lf,double lm)double l,n,a0,a4,a6,a3,a5,t1;l=n=a0=a4=a6=a3=a5=t1=x=y=0.0;int l0=0;l0=6*n-3;l=(ld*3600+lf*60+lm-l0*3600)/p;t1=cos(bd*3600+bf*60+bm)/p)*cos(bd*3600+bf*60+

11、bm)/p);n=6399698.902-(21562.267-(108.973-0.612*t1)*t1)*t1;a0=32140.404-(135.3302-(0.7092-0.004*t1)*t1)*t1;a4=(0.25+0.00252*t1)*t1-0.04166;a6=(0.166*t1-0.084)*t1;a3=(0.3333333+0.001123*t1)*t1-0.1666667;a5=0.0083-(0.1667-(0.1968+0.004*t1)*t1)*t1;x=6367558.4969*(bd*3600+bf*60+bm)/p-(a0-(0.5+(a4+a6*l*l)

12、*l*l)*l*l*n)*sin(bd*3600+bf*60+bm)/p)*cos(bd*3600+bf*60+bm)/p);y=(1+(a3+a5*l*l)*l*l)*l*n*cos(bd*3600+bf*60+bm)/p);cout<<"zbzs:"<<endl;cout<<"l="<<l<<endl; cout<<"n="<<n<<endl; cout<<"a0="<<a0<<e

13、ndl;cout<<"a4="<<a4<<endl;cout<<"a6="<<a6<<endl;cout<<"a3="<<a3<<endl;cout<<"a5="<<a5<<endl;cout<<"该点在6度第"<<n<<"带的高斯坐标为:"<<endl;cout<<&quo

14、t;x="<<x<<endl;cout<<"y="<<y<<endl;cout<<"该点的国家统一坐标为:"<<x<<","<<n<<y+500000<<endl;void zbfs(double x,double y,int n)double beta,bf1,l,z,nf,b2,b3,b4,b5,t2,t3;beta=bf1=z=nf=b2=b3=b4=b5=t2=t3=l=0.0;int

15、l0=0; beta=(x/6367558.4969)*p;t2=cos(beta/p)*cos(beta/p);bf1=beta+(50221746+(293622+(2350+22*t2)*t2)*t2)*sin(beta/p)*cos(beta/p)*pow(10,-10)*p;t3=cos(bf1/p)*cos(bf1/p);nf=6399698.902-(21562.267-(108.973-0.612*t3)*t3)*t3;z=y/(nf*cos(bf1/p);b2=(0.5+0.003369*t3)*sin(bf1/p)*cos(bf1/p);b3=0.333333-(0.166

16、667-0.001123*t3)*t3;b4=0.25+(0.16161+0.00562*t3)*t3;b5=0.2-(0.1667-0.0088*t3)*t3;b=bf1-(1-(b4-0.12*z*z)*z*z)*z*z*b2*p;l=(1-(b3-b5*z*z)*z*z)*z*p;l0=6*n-3;bd=(int)(b/3600);bf=(b/3600-bd)*60;bm=b-bd*3600-bf*60;ld=l0+(int)(l/3600);lf=(l/3600-(int)(l/3600)*60;lm=l-(int)(l/3600)*3600-lf*60;cout<<&qu

17、ot;zbfs:"<<endl;cout<<"beta="<<beta<<endl;cout<<"bf="<<bf1<<endl;cout<<"nf="<<nf<<endl;cout<<"z="<<z<<endl;cout<<"b2="<<b2<<endl;cout<<"b3="<<b3<<endl;cout<<"b4="<<b4<<endl;cout<<"b5="<<b5<<endl;cout<<"b="<<b<<endl;cout<<"l="<<l<<endl;cout<<

温馨提示

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

评论

0/150

提交评论