测绘C程序设计实习报告_第1页
测绘C程序设计实习报告_第2页
测绘C程序设计实习报告_第3页
测绘C程序设计实习报告_第4页
测绘C程序设计实习报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

测绘程序设计(C版)实习报告学号: 姓名: 班级: 专业: 测绘工程课程名称:C程序及其测绘应用指导老师: 2013年12月目录1。实习目的 错误!未定义书签。2。实习内容 错误!未定义书签。2.1实习环境 错误!未定义书签。2.2实习主要内容介绍 错误!未定义书签。2。2.1 算法 错误!未定义书签。2。2.2 坐标转换 32.2.3 前方交会 错误!未定义书签。2.2.4 角度转换 错误!未定义书签。2.2.5 水准闭合 错误!未定义书签。2。2.6 带号计算 错误!未定义书签。2.2.7 方向观测 错误!未定义书签。2。2。8多边形面积 错误!未定义书签。3.实习步骤 错误!未定义书签。3。1基本程序 错误!未定义书签。3.2程序改进 错误!未定义书签。3.3程序完善 错误!未定义书签。3.4程序扩展 错误!未定义书签。4.实习成果 错误!未定义书签。4。1初始调试 错误!未定义书签。4.2成功调试 错误!未定义书签。4。3运行界面 错误!未定义书签。4。4运行成果 错误!未定义书签。5.实习体会 错误!未定义书签。6。附录:实习程序作业清单 错误!未定义书签。.实习目的。1认识并了解TURBOC3。0软件及其配置环境•一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓”环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。2.学习上机调试程序,完成程序的编写,决不意味着万事大吉.你认为万无一失的程序,实际上机运行时可能不断出现麻烦.如编译程序检测出一大堆错误.有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。3.加深对课堂讲授内容的理解,通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于初次接触C程序,缺乏C程序的实习所致。学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题.即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题.自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力二.实习内容:在整个实习中,认识并了解TURBOC3。0及其的环境配置这次的实习是对书本上的一些程序的运行方法进行了解和运用。熟练的掌握一些基本的方法,了解程序的基本运行过程.加深对C语言基本数据类型的了解,掌握条件,循环语句的正确使用,掌握输入输出函数用法,掌握水平角观测数据的处理方法,加深对构造数据类型的理解,加深对文件的理解,全面学习C程序的基础上,掌握TURBOC3。0软件的正确使用。通过对题目解读和编程,使你不断地运用自己所学的知识以及对题目的分析程度,去对自己所写的编码进行调试直至成功。实习环境:由于上机的时间有限,大部分程序先在寝室用自己的电脑进行初步编写,然后再到实验室的机房通过老师的指导进行修改不断调试。实习主要内容介绍:算法:判断函数循环指针数组结构体文件。分别运用这些算法对老师所给题目进行编程坐标转换:分为两种,一种是正算,一种是反算。坐标正算:已知一点坐标以及该点与未知点连线的方位角和距离,求未知点坐标。坐标反算:已知两点坐标,求算两点连线的方位角和距离。3。 前方交会:在两个已知点以上分别对待定点相互进行水平角观测,并根据已知点的坐标及观测角值计算出待定点坐标的。4。角度转换:5。 水准路线闭合差:水准测量存在误差,水准测量的实测高差与理论值往往不相符合,其差值称为水准路线的闭合差.带号计算:由于高斯投影中,存在长度变形,为了控制变形,将地球椭球面按一定的经度差分成若干范围不大的带.根据经度计算其带号方向观测:把两个以上的方向合为一组依次观测水平角的方法.设测站上欲观测的方向为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));printf(”Xp=%f,Yp=%f”,Xp,Yp);}运行结果:坐标反算include〈stdio.h>#include〈math。h>intmain(){floatXa,Ya,Xb,Yb,Sab,ab,m,n;scanf(”%f%f%f%f”,&Xa,&Ya,&Xb,&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;运行结果:#include<stdio.h〉#include〈math。h〉#definePI3。1415926voidmain(){floatxa,ya,xb,yb,x,y;floatp1,*p2;floatrad(floatp1);printf(”shuruAdianzuobiao:");scanf(”%f%f”,&xa,&ya);printf(”shuruBdianzuobiao:")scanf("%f%f”,&xb,&yb);p1=atan((yb-ya)/(xb-xa));y=rad(p1);p2=&p1;printf("y=%f",y);}floatrad(float p1){floatm;m=p1*180/PI;return(m);}运行结果:前方交会#include<stdio.h>#include〈math.h〉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;printf("inputXa,Ya,Xb,Yb,A,B:\n”);scanf("%f%f%f%f%f%f",&Xa,&Ya,&Xb,&Yb,&A,&B);Xp=(*p1)(Xa,Ya,Xb,Yb,A,B);Yp=(*p2)(Xa,Ya,Xb,Yb,A,B);printf("Xp=%f,Yp=%f",Xp,Yp);return0;}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);}#include<math.h〉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);运行结果:include<stdio.h〉include<math.h〉#definePI3。1415926intmain()doubleXa,Ya,Xb,Yb,ab,Xp,Yp,r,q;scanf(”%lf%lf%lf%lf%lf%lf",&Xa,&Ya,&Xb,&Yb,&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));printf("Xp=%lf\nYp=%lf\n",Xp,Yp);return0;}运行结果:3、角度转换/*201120050304wangyoufei*/include<stdio.h>include<math.h〉definepi3。1415926main(){float*p1,*p2;doublem,n,k,h;floatXa,Ya,Sab,Xb,Yb;p1=&Xb;p2=&Yb;printf("entertheXa,Ya,Sab,m,n,k:\n");scanf(”%f%f%f%f%f%f",&Xa,&Ya, &Sab,&m,&n,&k);h=(m+n/60+k/3600)*pi/180;*p1=Xa+Sab*cos(h);*p2=Ya+Sab*sin(h);printf("*p1=%f,*p2=%f\n",*p1,*p2);}运行结果:水准闭合#include〈stdio.h>#include〈math.h>voidmain()doublefh,fHs,fHz,ffh,fhy;intn;printf(”enterthefH,fHs,fHz,n\n");scanf("%d,%d,%d,%d",&fh,&fHs,&fHz,&n)ffh=fh—(fHs-fHz);fhy=12*sqrt(n);if(ffh>fhy)printf(”chaoxian,\n”);elseprintf(”weichaoxian,\n”);}运行结果:带号计算#include〈stdio.h〉#include<math.h>intmain(){doublen,L1,L2;printf(”enterthen: ")scanf(”%d”,&n);if(n<24&&n>12)L1=6*n——3;L2=3*n;}

elseL1=floor(n+3)/6。0;L2=floor(n/3。0);printf("%d\n,%d\n”,L1,L2);return0;}运行结果:#include#includemain()〈stdio.h〉〈math.h>intN,L;printf(”intputN:\n”);scanf("%d",&N);if(N>12&&N<46)if(N〈24&&N>12){L=6*N-3;}else{L=3*N;}printf("jingdu:\n%d\n",L)}运行结果:6。方向观测#include〈stdio.h〉voidmain(){intimax,imin,i2C;printf(”inputimax,imin\n");scanf(”%d, %d”,&imax,&imin);i2C=imax—imin;if(i2C>13)printf(”chaoxian\n”);elseprintf(”weichaoxian\n");运行结果:7•多边形面积计算/*201120050304wangyoufei*/#include<stdio.h〉#include〈math.h>voidmain()floatS(floatXa,floatYa,floatXb,floatYb,floatXc,floatYc,floatXd,floatYd,floatXe,floatYe);floata,b,c,d,e,f,g,h,i,j,s;printf("shuruzuobiaoxa,ya,xb,yb,xc,yc,xd,yd,xe,ye:\n”);scanf("%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);printf("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语言实习中,在调试过程中,有时会出现未定义变量,经检查原因是定义的变量在书写过程中出现了错误,像漏写,颠倒字母等错误,还有些时候在程序的结束时少了花括号等等小错误,但最后还是使程序得到了改进.带导计算〔函数).cpp R319X|1|^YC\2ai120^5C^DocumentsandSettingsXfidiiinistratorX^gj^'^^^^XC^DocumentsandSettingsXAiiiiiinistratorX-7^'Ej\lJf^^^-|z^XC:XDocunentsandSettingsXAdninistratorX^®\fJ:f^^;^^\执行cl.exe吋出错R319X|1|^YC\2ai120^5带号计W(lS^)-eKe-1error(s),0wjrning(s)还有因为漏输入代码等原因,如下图

HiI Line22Col3InsertIndentTabFillJmndeni*D;JDZHHS.Csc^nf("%f",8trad);deg=rad2deg(rad);prinif("KSdKSdKSdXn'',dd,nn,ss);Ifloatrad2deg(floatm)floatdecree:clegr'e&^^lGD/PI:dd=ini(degree);(dngrnrj-dd)*MJ);iril((d^yrts^-dd-nin/hW) ;return(decree);)ConpilingD:\TJRBOC2\JDZHHS.C:•WarningD:\TURB0C2\JDZHHS.CConpilingD:\TJRBOC2\JDZHHS.C:•WarningD:\TURB0C2\JDZHHS.C13:Jdeg'isErrorD;\TURB0C2\JD2HHS.C13;ExpressionErrorD:\TURB0C2\JDZHHS.C19:ExpressionErrorD:\TURB0C2\JDZHHS.C29:Expressionass丄gneQavaluewhichisneverusedsyntaxinfunctionrad2degsyntaxinfunctionrad2degsyntexinfunctionrad2deg卜卜力一$甲jtch卜/-Iracel-8-Stepl-9-HakeK10-Henu还有程序本身条件的限制:3。3。3程序完善随着进一步的深入学习C语言,对于以前很复杂的程序,运用新学的知识,结合各种算法的特点来处理不同的问题,可以进一步优化程序,使的程序更加清晰易懂,符合C语言的程序特点,同时使得程序更加完美,像对于顺序结构的角度计算,运用选择结构可以更加完善的考虑角度的范围.3。4

温馨提示

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

评论

0/150

提交评论