测绘C程序设计实习报告Word下载.docx
- 文档编号:21841144
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:446.22KB
测绘C程序设计实习报告Word下载.docx
《测绘C程序设计实习报告Word下载.docx》由会员分享,可在线阅读,更多相关《测绘C程序设计实习报告Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。
有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
3.加深对课堂讲授内容的理解,通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于初次接触C程序,缺乏C程序的实习所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。
只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。
但是在程序设计领域里这是一定要克服的传统的、错误的想法。
因为在这种思想支配下,可能你会想办法去"
掩盖"
程序中的错误,而不是尽可能多地发现程序中存在的问题。
自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力
二.实习内容:
在整个实习中,认识并了解TURBOC3.0及其的环境配置这次的实习是对书本上的一些程序的运行方法进行了解和运用。
熟练的掌握一些基本的方法,了解程序的基本运行过程。
加深对C语言基本数据类型的了解,掌握条件,循环语句的正确使用,掌握输入输出函数用法,掌握水平角观测数据的处理方法,加深对构造数据类型的理解,加深对文件的理解,全面学习C程序的基础上,掌握TURBOC3.0软件的正确使用。
通过对题目解读和编程,使你不断地运用自己所学的知识以及对题目的分析程度,去对自己所写的编码进行调试直至成功。
1.实习环境:
由于上机的时间有限,大部分程序先在寝室用自己的电脑进行初步编写,然后再到实验室的机房通过老师的指导进行修改不断调试。
2.实习主要内容介绍:
1.算法:
判断函数循环指针数组结构体文件。
分别运用这些算法对老师所给题目进行编程
2.坐标转换:
分为两种,一种是正算,一种是反算。
坐标正算:
已知一点坐标以及该点与未知点连线的方位角和距离,求未知点坐标。
坐标反算:
已知两点坐标,求算两点连线的方位角和距离。
3.前方交会:
在两个已知点以上分别对待定点相互进行水平角观测,并根据已知点的坐标及观测角值计算出待定点坐标的。
4.角度转换:
5.水准路线闭合差:
水准测量存在误差,水准测量的实测高差与理论值往往不相符合,其差值称为水准路线的闭合差。
6.带号计算:
由于高斯投影中,存在长度变形,为了控制变形,将地球椭球面按一定的经度差分成若干范围不大的带。
根据经度计算其带号
7.方向观测:
把两个以上的方向合为一组依次观测水平角的方法。
设测站上欲观测的方向为A、B、C、…、F等目标,其观测方法是盘左位置顺时针旋转照准部,从起始方向A(零方向)依次照准各方向B、C、…、F、A等目标,并读水平度盘读数,纵转望远镜,用盘右位置逆时针从A分别观测F、…、D、C、B、A等目标,并读水平度盘读数,最后计算各观测目标的方向值,从而获得各方向间的水平角
8.多边形面积
3.1基本程序:
1.坐标换算:
坐标正算
#include<
stdio.h>
#include<
math.h>
voidmain()
{
doubleA,B,Xp,Yp;
floatXa,Ya,Xb,Yb;
printf("
entertheXa,Ya,Xb,Yb,A,B:
"
);
scanf("
%f%f%f%f%f%f"
&
Xa,&
Ya,&
Xb,&
Yb,&
A,&
B);
Xp=(Xa*tan(A)+Xb*tan(B)+(Yb-Ya)*tan(A)*tan(B))/(tan(A)+tan(B));
Yp=(Ya*tan(A)+Yb*tan(B)+(Xa-Xb)*tan(A)*tan(B))/(tan(A)+tan(B));
Xp=%f,Yp=%f"
Xp,Yp);
}
运行结果:
坐标反算
include<
#include<
intmain()
floatXa,Ya,Xb,Yb,Sab,ab,m,n;
scanf("
%f%f%f%f"
Yb);
m=Xb-Xa;
n=Yb-Ya;
ab=atan(n/m);
Sab=sqrt(m*m+n*n);
printf("
ab=%f\tSab=%f\n"
ab,Sab);
return0;
}
#definePI3.1415926
voidmain()
{
floatxa,ya,xb,yb,x,y;
floatp1,*p2;
floatrad(floatp1);
shuruAdianzuobiao:
"
%f%f"
xa,&
ya);
shuruBdianzuobiao:
xb,&
yb);
p1=atan((yb-ya)/(xb-xa));
y=rad(p1);
p2=&
p1;
y=%f"
y);
floatrad(floatp1)
floatm;
m=p1*180/PI;
return(m);
2.前方交会
intmain()
floatqfjhX(floatXa,floatYa,floatXb,floatYb,floatA,floatB);
floatqfjhY(floatXa,floatYa,floatXb,floatYb,floatA,floatB);
float(*p1)(floatXa,floatYa,floatXb,floatYb,floatA,floatB);
float(*p2)(floatXa,floatYa,floatXb,floatYb,floatA,floatB);
p1=qfjhX,p2=qfjhY;
floatXa,Ya,Xb,Yb,A,B;
floatXp,Yp;
inputXa,Ya,Xb,Yb,A,B:
\n"
Xp=(*p1)(Xa,Ya,Xb,Yb,A,B);
Yp=(*p2)(Xa,Ya,Xb,Yb,A,B);
floatqfjhX(floatXa,floatYa,floatXb,floatYb,floatA,floatB)
floatX;
X=(Xa*tan(A)+Xb*tan(B)+(Yb-Ya)*tan(A)*tan(B))/(tan(A)+tan(B));
return(X);
floatqfjhY(floatXa,floatYa,floatXb,floatYb,floatA,floatB)
floatY;
Y=(Ya*tan(A)+Yb*tan(B)+(Xa-Xb)*tan(A)*tan(B))/(tan(A)+tan(B));
return(Y);
doubleXa,Ya,Xb,Yb,ab,Xp,Yp,r,q;
%lf%lf%lf%lf%lf%lf"
r,&
q);
r=r*PI/180;
q=q*PI/180;
Xp=(Xa*1/tan(q)+Xb*1/tan(r)+(Yb-Ya))/(1/tan(r)+1/tan(q));
Yp=(Ya*1/tan(q)+Yb*1/tan(r)-(Xb-Xa))/(1/tan(r)+1/tan(q));
Xp=%lf\nYp=%lf\n"
3、角度转换
/*2wangyoufei*/
#include<
#definepi3.1415926
main()
float*p1,*p2;
doublem,n,k,h;
floatXa,Ya,Sab,Xb,Yb;
p1=&
Xb;
Yb;
entertheXa,Ya,Sab,m,n,k:
\n"
Sab,&
m,&
n,&
k);
h=(m+n/60+k/3600)*pi/180;
*p1=Xa+Sab*cos(h);
*p2=Ya+Sab*sin(h);
*p1=%f,*p2=%f\n"
*p1,*p2);
4.水准闭合
voidmain()
doublefh,fHs,fHz,ffh,fhy;
intn;
enterthefH,fHs,fHz,n\n"
%d,%d,%d,%d"
fh,&
fHs,&
fHz,&
n);
ffh=fh-(fHs-fHz);
fhy=12*sqrt(n);
if(ffh>
fhy)
printf("
chaoxian,\n"
else
weichaoxian,\n"
运行结果:
5.带号计算
doublen,L1,L2;
enterthen:
%d"
if(n<
24&
&
n>
12)
{L1=6*n-3;
L2=3*n;
L1=floor(n+3)/6.0;
L2=floor(n/3.0);
%d\n,%d\n"
L1,L2);
intN,L;
intputN:
N);
if
(N>
12&
N<
46)
(N<
N>
L=6*N-3;
else
L=3*N;
jingdu:
\n%d\n"
L);
6.方向观测
intimax,imin,i2C;
inputimax,imin\n"
%d,%d"
imax,&
imin);
i2C=imax-imin;
if(i2C>
13)
chaoxian\n"
weichaoxian\n"
7.多边形面积计算
floatS(floatXa,floatYa,floatXb,floatYb,floatXc,floatYc,floatXd,floatYd,floatXe,floatYe);
floata,b,c,d,e,f,g,h,i,j,s;
shuruzuobiaoxa,ya,xb,yb,xc,yc,xd,yd,xe,ye:
%f%f%f%f%f%f%f%f%f%f"
a,&
b,&
c,&
d,&
e,&
f,&
g,&
h,&
i,&
j);
s=S(a,b,c,d,e,f,g,h,i,j);
mianji=\n"
s);
floatS(floatXa,floatYa,floatXb,floatYb,floatXc,floatYc,floatXd,floatYd,floatXe,floatYe)
floatW;
W=(Xa+Xb)*(Yb-Ya)+(Xb+Xc)*(Yc-Yb)+(Xc+Xd)*(Yd-Yc)+(Xd+Xe)*(Ye-Yd)+(Xe+Xa)*(Ya-Ye);
return(W/2);
3.2程序改进
在此次C语言实习中,在调试过程中,有时会出现未定义变量,经检查原因是定义的变量在书写过程中出现了错误,像漏写,颠倒字母等错误,还有些时候在程序的结束时少了花括号等等小错误,但最后还是使程序得到了改进。
还有因为漏输入代码等原因,如下图
还有程序本身条件的限制:
3.3程序完善
随着进一步的深入学习C语言,对于以前很复杂的程序,运用新学的知识,结合各种算法的特点来处理不同的问题,可以进一步优化程序,使的程序更加清晰易懂,符合C语言的程序特点,同时使得程序更加完美,像对于顺序结构的角度计算,运用选择结构可以更加完善的考虑角度的范围。
3.4程序扩展
利用C语言后期所学的知识进行程序的扩展。
四.实习成果
4.1初始调试
打开turboC2.0先进行路径配置,然后进行程序编写,编好程序后,按F9判定是否编写正确,如出现错误,则根据错误提示,进行进一步调试,直到正确。
如正确,则按F1中OSSHELL进行数据输出,得到结果。
4.2成功调试
调试成功后,保存程序至指定文件夹。
4.3运行界面
在初始调试的成功调试后,运行程序。
4.4运行成果
在最后,所有的程序全部调试成功,完成要求。
五.实习体会
在实习中老师总是耐心的对同学们的提问给予及时的解答,虽然有好多的问题“很简单”,但老师也没有因此责怪我们,反而更加耐心、细致地为我们讲解,直到每位同学都能理解,因此这次实训激发起同学们极大的兴趣。
我学到了很多实际有用的东西,有许多东西是课本上无法学到的,同时在实习中充分的运用了自己所学的知识和方法,让自己更加熟练的运用,也为自己以后打下了基础。
这次实习中的编程过程的锻炼,让我知道C语言知识是有序的学习,没有零碎的感觉。
增加了动手的时间,使动手能力得到了提高,编写C语言程序和分析C语言问题的能力提高了。
让我在读题和编程的过程中更加仔细。
同时也让我弄懂了一些我以前不懂的,也把一些以前一些零散的知识整合起来,让我在使用的时候更加的方便、灵活。
理论与实践结合。
对C语言有了一个更深的了解认识,以前学的知识得到巩固,也尝试运行编程,每运行程序成功,让我对下面的题就充满信心。
通过自己独立编写程序,我最终把最初的理论知识转化基本技能。
这次实训中,使我认识到自己还有很多的知识没学好,基础知识没理清。
自己也不能独立编程。
遇到一些小错误运行不出来,就叫老师过来帮忙,觉得有依赖性,以后要克服,尽量自己多尝试完成,学好这门课。
这将会对我们将来到社会工作将会有莫大的帮助。
六.附录:
实习程序作业清单
1.坐标转换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测绘 程序设计 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)