测绘应用程序设计.pdf

上传人:啊飒飒 文档编号:11336215 上传时间:2021-07-26 格式:PDF 页数:17 大小:382.36KB
返回 下载 相关 举报
测绘应用程序设计.pdf_第1页
第1页 / 共17页
测绘应用程序设计.pdf_第2页
第2页 / 共17页
测绘应用程序设计.pdf_第3页
第3页 / 共17页
测绘应用程序设计.pdf_第4页
第4页 / 共17页
测绘应用程序设计.pdf_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《测绘应用程序设计.pdf》由会员分享,可在线阅读,更多相关《测绘应用程序设计.pdf(17页珍藏版)》请在三一文库上搜索。

1、. 华北科技学院华北科技学院 课程设计说明书课程设计说明书 课程名称:课程名称:测绘程序课程设计测绘程序课程设计 专业班级:专业班级:测绘测绘 B08-3B08-3 班班 学学号:号: 200805064333 200805064333 姓姓名:名:周周涛涛 指导教师:指导教师:赵赵 亚亚 红红 . 坐标转换程序设计坐标转换程序设计 一、设计目的和任务一、设计目的和任务 计算机程序设计综合课程设计是测绘工程专业一个 综合性的实践教学环节,其目的在于促进学生复习和巩 固计算机软件设计知识, 加深对软件设计方法、 软件设 计技术和设计思想的理解,并能运用所学软件设计知识 和 C 语言技术进行综合软

2、件设计,通过本课程设计能够 进行简单软件系统的开发,掌握软件设计的方法和 C 语 言程序设计的基本技术,提高学生的综合应用能力。 本次课程设计共两周,在这两周内,要求同学们主 要完成一项软件设计与调试任务,通过课程设计,每人 提交运行通过的相应软件 1 套,程序代码 1 套,设计说 明书 1 本。 二、软件设计的一般步骤与方法二、软件设计的一般步骤与方法 通常计算机软件的设计以工程的管理方式、方法进 行,包括需求分析、系统设计、编制程序,调试与测试。 1. 需求分析 准确把握所要开发系统的功能需求。 进行业务流的 分析,根据系统所要完成的功能和所要处理的数据,画 出反映系统逻辑模型的数据流图,

3、对于重要的加工和数 据项在数据字典中进行进一步的补充说明。 . 2、总体设计 根据系统所完成的功能, 准确划分各功能模块, 明 确各模块的功能职责、所要完成的数据处理与其他模块 的数据传递关系,进行数据表的设计和对象类的设计, 明确对象类间的关系。 对各个模块进行初步的算法设计。 3、详细设计 对各功能模块, 准确划出其流程图, 详细地描述算 法。对于各对象类,详细地描述其内部功能实现。在具 体的 DBMS,如 SQL SERVER 中,完成数据的物理实施。 4、编程调试 选用自己熟悉的编程工具,如 C 语言、VB 或 C# 完成相应模块的设计。 5、单元测试、组装测试 完成各模块的测试, 成

4、功后, 由小组负责人将同一 小组分别完成的各模块进行组装测试,成功后,提交软 件成果。 三三. .实验原理与过程实验原理与过程 1 1.问题需求分析问题需求分析 本次设计软件为高斯投影坐标转换的程序设计, 包括坐标正反算,分为6 度带和 3 度带,即大地坐标 与测量坐标间的转换,同时还包括点所在不同带的带 号,比以前所做的高斯投影较为复杂。 此程序可以实现以下功能: . 1.1 由大地坐标转换为 6 度带高斯平面坐标,其中包 含点所在高斯坐标系的带号; 1.2 由高斯平面坐标转换为大地坐标; 1.3 统一转换为点所在国家统一坐标系中的坐标。 2.2.实验要求实验要求 2.1 实验尽量要求可以应

5、用实际,并且符合实际工作 需要; 2.2 程序应该有一定容错能力,并且最好可以检验数 据的小量错误。 2.3 数据流程图 开始 说明 数据输入 数据处理数据显示 数据输出 结束 . 3.3.程序流程图程序流程图 开始 选择要转换类型 大地坐标转换为 高斯平面坐标 高斯平面坐标转换 为大地坐标 输入点大地经度 和纬度 输入高斯平面坐标 及所在带号 计算点所在 6 度带 带号和高斯平面 坐标,以及国家统 一坐标系坐标 计算点大地经度和 纬度,以及转化为国 家统一坐标系坐标 输出结果 结束 . 四、算例成果图四、算例成果图 . . 五课程设计心得五课程设计心得 本次实验为测绘程序设计课程综合性设计,

6、主 要目的是巩固和检验学习的内容,能掌握测绘程序的编 写及应用,掌握更多编程方面的知识。 此次实验采用 C+软件进行程序的编写,经过编写 及实验, 最终得出结果, 并将结果保存附于实验报告中。 这次课程设计在以前实验做过,但又不完全一样, 内容更多了, 所得出的结果更丰富, 更符合实际的需要。 通过这次综合性课程设计,我学到了很多,也对以前所 学的知识能更好的掌握了,基本上达到了实验的目的。 . 六程序代码及算例验证六程序代码及算例验证 #include iostream.h#include iostream.h #include iomanip.h#include iomanip.h #in

7、clude math.h#include math.h #define p 206264.806247096355#define p 206264.806247096355 double x,y,B,L,Bm,Lm;double x,y,B,L,Bm,Lm; int Bd,Bf,Ld,Lf,n;int Bd,Bf,Ld,Lf,n; voidvoidZBZS(intZBZS(intBd,intBd,intBf,doubleBf,doubleBm,intBm,intLd,intLd,int Lf,double Lm);Lf,double Lm); void ZBFS(double x,double

8、 y,int n);void ZBFS(double x,double y,int n); void main()void main() int k;int k; for(int i=0;i3;i+)for(int i=0;i3;i+) coutPress 1:ZBZS; 2:ZBFSendl;coutPress 1:ZBZS; 2:ZBFSk;cink; coutcout . setiosflags(ios:fixed)setprecision(11);setiosflags(ios:fixed)setprecision(11); / /坐标正算坐标正算 if(k=1)if(k=1) cou

9、tPleasecoutPleaseinputinput Bd,Bf,Bm,Ld,Lf,Lm:endl;Bd,Bf,Bm,Ld,Lf,Lm:BdBfBmLdLfLm;cinBdBfBmLdLfLm; / /定定 6 6 度带带号(逢余进一)度带带号(逢余进一) if(Ld%6=0n=(Ld+Lf*1.0/6+Lm*1.0/3600)/6; elseelse n=1+(Ld+Lf*1.0/60+Lm*1.0/3600)/6;n=1+(Ld+Lf*1.0/60+Lm*1.0/3600)/6; / /判断点是否在重叠区内判断点是否在重叠区内 if(Ld*60+Lf+Lm/60-6*(n-1)*60)3

10、0endl; n=1+(Ld+Lf*1.0/60+Lm*1.0/3600)/6;n=1+(Ld+Lf*1.0/60+Lm*1.0/3600)/6; ZBZS(Bd,Bf,Bm,Ld,Lf,Lm);ZBZS(Bd,Bf,Bm,Ld,Lf,Lm); n=n-1;n=n-1; ZBZS(Bd,Bf,Bm,Ld,Lf,Lm);ZBZS(Bd,Bf,Bm,Ld,Lf,Lm); /在重叠区内在重叠区内 elseelse / /不在重叠区内不在重叠区内 ZBZS(Bd,Bf,Bm,Ld,Lf,Lm);ZBZS(Bd,Bf,Bm,Ld,Lf,Lm); / /用坐标反算检查结果用坐标反算检查结果 ZBFS(x,

11、y,n);ZBFS(x,y,n); break;break; . / /坐标反算坐标反算 else if(k=2)else if(k=2) coutPlease input x,y,n:endl;coutPlease input x,y,n:xyn;cinxyn; ZBFS(x,y,n);ZBFS(x,y,n); ZBZS(Bd,Bf,Bm,Ld,Lf,Lm);ZBZS(Bd,Bf,Bm,Ld,Lf,Lm); break;break; elseelse coutPlease press 1 or 2!endl;coutPlease press 1 or 2!endl; continue;con

12、tinue; voidvoidZBZS(intZBZS(intBd,intBd,intBf,doubleBf,doubleBm,intBm,intLd,intLd,int . Lf,double Lm)Lf,double Lm) double l,N,a0,a4,a6,a3,a5,t1;double l,N,a0,a4,a6,a3,a5,t1; l=N=a0=a4=a6=a3=a5=t1=x=y=0.0;l=N=a0=a4=a6=a3=a5=t1=x=y=0.0; int L0=0;int L0=0; L0=6*n-3;L0=6*n-3; l=(Ld*3600+Lf*60+Lm-L0*3600

13、)/p;l=(Ld*3600+Lf*60+Lm-L0*3600)/p; t1=cos(Bd*3600+Bf*60+Bm)/p)*cos(Bd*3600+t1=cos(Bd*3600+Bf*60+Bm)/p)*cos(Bd*3600+ Bf*60+Bm)/p);Bf*60+Bm)/p); N=6399698.902-(21562.267-(108.973-0.612*t1)*t1N=6399698.902-(21562.267-(108.973-0.612*t1)*t1 )*t1;)*t1; ; ; a4=(0.25+0.00252*t1)*t1-0.04166;a4=(0.25+0.00252

14、*t1)*t1-0.04166; a6=(0.166*t1-0.084)*t1;a6=(0.166*t1-0.084)*t1; a3=(0.3333333+0.001123*t1)*t1-0.1666667;a3=(0.3333333+0.001123*t1)*t1-0.1666667; a5=0.0083-(0.1667-(0.1968+0.004*t1)*t1)*t1;a5=0.0083-(0.1667-(0.1968+0.004*t1)*t1)*t1; x=6367558.4969*(Bd*3600+Bf*60+Bm)/p-(a0-(0.x=6367558.4969*(Bd*3600+B

15、f*60+Bm)/p-(a0-(0. a0=32140.404-(135.3302-(0.7092-0.004*t1)*t1)*t1a0=32140.404-(135.3302-(0.7092-0.004*t1)*t1)*t1 . 5+(a4+a6*l*l)*l*l)*l*l*N)*sin(Bd*3600+Bf*60+Bm5+(a4+a6*l*l)*l*l)*l*l*N)*sin(Bd*3600+Bf*60+Bm )/p)*cos(Bd*3600+Bf*60+Bm)/p);)/p)*cos(Bd*3600+Bf*60+Bm)/p); y=(1+(a3+a5*l*l)*l*l)*l*N*cos(

16、Bd*3600+Bf*60+y=(1+(a3+a5*l*l)*l*l)*l*N*cos(Bd*3600+Bf*60+ Bm)/p);Bm)/p); coutZBZS:endl;coutZBZS:endl; coutl=lendl;coutl=lendl; coutN=Nendl;coutN=Nendl; couta0=a0endl;couta0=a0endl; couta4=a4endl;couta4=a4endl; couta6=a6endl;couta6=a6endl; couta3=a3endl;couta3=a3endl; couta5=a5endl;couta5=a5endl; co

17、utcout该点在该点在 6 6 度第度第nn带的高斯坐标带的高斯坐标 为为:endl;:endl; coutx=xendl;coutx=xendl; couty=yendl;couty=yendl; coutcout 该该 点点 的的 国国 家家 统统 一一 坐坐 标标 为为 : x,ny+500000endl;x,ny+500000endl; . void ZBFS(double x,double y,int n)void ZBFS(double x,double y,int n) double beta,Bf1,l,Z,Nf,b2,b3,b4,b5,t2,t3;double beta,B

18、f1,l,Z,Nf,b2,b3,b4,b5,t2,t3; beta=Bf1=Z=Nf=b2=b3=b4=b5=t2=t3=l=0.0;beta=Bf1=Z=Nf=b2=b3=b4=b5=t2=t3=l=0.0; int L0=0;int L0=0; beta=(x/6367558.4969)*p;beta=(x/6367558.4969)*p; t2=cos(beta/p)*cos(beta/p);t2=cos(beta/p)*cos(beta/p); Bf1=beta+(50221746+(293622+(2350+22*t2)*t2)*Bf1=beta+(50221746+(293622+

19、(2350+22*t2)*t2)* t2)*sin(beta/p)*cos(beta/p)*pow(10,-10)*p;t2)*sin(beta/p)*cos(beta/p)*pow(10,-10)*p; t3=cos(Bf1/p)*cos(Bf1/p);t3=cos(Bf1/p)*cos(Bf1/p); Nf=6399698.902-(21562.267-(108.973-0.612*t3)*tNf=6399698.902-(21562.267-(108.973-0.612*t3)*t 3)*t3;3)*t3; Z=y/(Nf*cos(Bf1/p);Z=y/(Nf*cos(Bf1/p); b

20、2=(0.5+0.003369*t3)*sin(Bf1/p)*cos(Bf1/p);b2=(0.5+0.003369*t3)*sin(Bf1/p)*cos(Bf1/p); b3=0.333333-(0.166667-0.001123*t3)*t3;b3=0.333333-(0.166667-0.001123*t3)*t3; b4=0.25+(0.16161+0.00562*t3)*t3;b4=0.25+(0.16161+0.00562*t3)*t3; b5=0.2-(0.1667-0.0088*t3)*t3;b5=0.2-(0.1667-0.0088*t3)*t3; . B=Bf1-(1-(b

21、4-0.12*Z*Z)*Z*Z)*Z*Z*b2*p;B=Bf1-(1-(b4-0.12*Z*Z)*Z*Z)*Z*Z*b2*p; l=(1-(b3-b5*Z*Z)*Z*Z)*Z*p;l=(1-(b3-b5*Z*Z)*Z*Z)*Z*p; L0=6*n-3;L0=6*n-3; Bd=(int)(B/3600);Bd=(int)(B/3600); Bf=(B/3600-Bd)*60;Bf=(B/3600-Bd)*60; Bm=B-Bd*3600-Bf*60;Bm=B-Bd*3600-Bf*60; Ld=L0+(int)(l/3600);Ld=L0+(int)(l/3600); Lf=(l/3600-(

22、int)(l/3600)*60;Lf=(l/3600-(int)(l/3600)*60; Lm=l-(int)(l/3600)*3600-Lf*60;Lm=l-(int)(l/3600)*3600-Lf*60; coutZBFS:endl;coutZBFS:endl; coutbeta=betaendl;coutbeta=betaendl; coutBf=Bf1endl;coutBf=Bf1endl; coutNf=Nfendl;coutNf=Nfendl; coutZ=Zendl;coutZ=Zendl; coutb2=b2endl;coutb2=b2endl; coutb3=b3endl;coutb3=b3endl; coutb4=b4endl;coutb4=b4endl; coutb5=b5endl;coutb5=b5endl; coutB=Bendl;coutB=Bendl; coutl=lendl;coutl=lendl; coutB=BdcoutB=Bd BfBmendl;BfBmendl; coutL=LdcoutL=Ld LfLmendl;LfLmendl; . 。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1