先说缺陷:1.一测回的度分秒值需要先用计算器换算为度值才能进行运算;
2.使用的文件较多;
3.因为老师要求用公式将斜距转换为直线距离,所以计算步骤略多;
4.个别英文单词拼写有误;
5.没有储存单向高差值。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>#define pi 3.1415926535898
#define DEC (pi / 180)static int num_slope_distence, num_angle, num_instrument, num_prism;static float *slope_distence;       //斜距
static float *elevation;            //高程
static float *distence;             //直距
static float *angle;                //角度
static float *elevation_instrument; //仪器高
static float *elevatioon_prism;     //棱镜高
static float *answer;void Read(void);
void computer(void);int main()
{Read();computer();printf("\aThe computer is ended!\n");return EXIT_SUCCESS;
}void Read(void)
{FILE *fp_slope_distence, *fp_angle, *fp_instrument, *fp_prism;fp_slope_distence = fopen("input_distance.txt", "r");fp_angle = fopen("input_angle.txt", "r");fp_instrument = fopen("elevation_instrument.txt", "r");fp_prism = fopen("elevatioon_prism.txt", "r");//fp_test = fopen("test.txt", "w");fscanf(fp_slope_distence, "%d", &num_slope_distence);fscanf(fp_angle, "%d", &num_angle);fscanf(fp_instrument, "%d", &num_instrument);fscanf(fp_prism, "%d", &num_prism);slope_distence = (float *)malloc(sizeof(float) * num_slope_distence);angle = (float *)malloc(sizeof(float) * num_angle);elevation_instrument = (float *)malloc(sizeof(float) * num_instrument);elevatioon_prism = (float *)malloc(sizeof(float) * num_prism);for (int i = 0; i < num_slope_distence; i++)fscanf(fp_slope_distence, "%f", (slope_distence + i));for (int j = 0; j < num_angle; j++)fscanf(fp_angle, "%f", (angle + j));for (int q = 0; q < num_angle; q++)fscanf(fp_instrument, "%f", (elevation_instrument + q));for (int p = 0; p < num_angle; p++)fscanf(fp_prism, "%f", (elevatioon_prism + p));fclose(fp_slope_distence);fclose(fp_angle);fclose(fp_instrument);fclose(fp_prism);//fclose(fp_test);
}void computer(void)
{FILE *fp_answer;fp_answer = fopen("output.txt", "w");distence = (float *)malloc(sizeof(float) * num_slope_distence / 2);for (int i = 0; i < num_slope_distence; i++)*(distence + i) = *(slope_distence + i) / cos(*(angle + i) * DEC);/*for (int i = 0; i < num_slope_distence; i++)printf("%f", *(distence + i));*/answer = (float *)malloc(sizeof(float) * num_slope_distence);for (int i = 0; i < num_slope_distence; i += 2)*(answer + i) = (*(distence + i) * tan(*(angle + i) * DEC) + *(elevation_instrument + i) - *(elevatioon_prism + i) + *(distence + i + 1) * tan(*(angle + i + 1) * DEC) + *(elevation_instrument + i + 1) - *(elevatioon_prism + i + 1)) / 2;for (int i = 0; i < num_slope_distence/2; i++)fprintf(fp_answer, "%f ", *(answer + i));fclose(fp_answer);
}

p.s 每个txt文本数据的第一个值为数据的个数

一测回角度数据
4 0.7428 -1.312 -0.713 -0.463
斜距数据
4 25.789 25.781 14.109 14.123
全站仪高程
4 1.515 1.422 1.517 1.448
棱镜高程
4 1.375 1.345 1.353 1.342
结果:平均高差
-0.019613 -0.001327

欢迎跟我一样的新手交流,也恳请各位大佬提一些意见,感激不尽。

利用C语言编写程序计算数字测图中的三角高程实验相关推荐

  1. C语言编写程序计算运费:f=p*w*s*(1-d)。(用switch语句实现)

    C语言编写程序计算运费:f=pws*(1-d).(用switch语句实现) s<250km 没有折扣 250<=s<500 2%折扣 500<=s<1000 5%折扣 1 ...

  2. 用java语言编写程序计算九宫图

    前言 对于程序员来说,用程序解决数学问题是最有趣的事情之一.本人研究了一个能够轻易计算九宫图的算法,并且用java语言编写程序得以实现.现将算法和代码公布,欢迎广大程序爱好者前来阅读.交流. 九宫图简 ...

  3. 用C语言编写程序计算cos x 的近似值,输入精度 e 和 x,用下列公式求cos(x)的近似值...

    C语言 输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。 #include  //头文件置顶#include double fact(int n){\ C语言编写 ...

  4. c语言编写程序计算行列式值,求行列式的值,用C语言怎么写啊? 如何求行列式的值...

    导航:网站首页 > 求行列式的值,用C语言怎么写啊? 如何求行列式的值 求行列式的值,用C语言怎么写啊? 如何求行列式的值 相关问题: 匿名网友: 行列式计算公式知道吧,给你个源码参考,大一时写 ...

  5. c语言编写程序计算行列式值,新手作品:行列式计算C语言版

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对话     ControlHeightDecrease     Shift+Up Arrow     向上调整选定的控件或对话一个对话单位 对话     ...

  6. c语言组成整数的最大数字,c语言 编写程序将一个正整数中的所有偶数数字取出来并用这些数字构成一个最大数。...

    满意答案 litielige 2016.11.20 采纳率:48%    等级:7 已帮助:515人 #include long fun(long s) { int sum = 0; long fin ...

  7. 用C语言编写程序计算对角线的和,C语言入门级代码 计算二维数组主对角线上的元素之和...

    镇场诗:吾心为他人,此智不私藏.学术有小成,愿帮大家忙. // #include void main(){ int i=0,j=0; int a[4][4]={{1,2,3,4},{1,2,3,4}, ...

  8. c语言for循环1到100奇数和,使用for循环结构编写程序计算1到100之间的奇数之和、偶数之和,输出格式为“1到100奇数和=xxx;1到100偶数和...

    题目: 使用for循环结构编写程序计算1到100之间的奇数之和.偶数之和,输出格式为"1到100奇数和=xxx:1到100偶数和=xxx". 解答: int jishuhe = 0 ...

  9. 输入三角形的三c语言程序,请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出...

    导航:网站首页 > 请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出 请问c语言中 从键盘输入三角形的3边 调 ...

最新文章

  1. Rocksdb 利用recycle_log_file_num 重用wal-log文件
  2. 普华永道:AI规模化应用,基础知识先行
  3. (踩坑回忆录)Dva踩坑与解决方案
  4. golang的GUI库,使用go-fyne设计一个代办事项APP
  5. web服务器-nginx
  6. 11-2 操作系统发展
  7. hbase集群之间数据迁移_hbase数据迁移到另一集群上
  8. left join 和 inner join
  9. netbeans7.4_NetBeans 7.4 Beta提示警告无效的异常处理
  10. JAVA-1011. A+B和C (15)
  11. 【numpy】使用numpy/pytorch创建数组时的一点疑问
  12. 城市动能转换_地理答啦:高速公路过境,省道国道穿城——济南北跨,建设新旧动能转换先行区应当关注的问题...
  13. ISE创建Microblaze软核(三)
  14. 入学年份 mysql_MySQl的学习1___概述
  15. 数据结构-----栈+中缀表达式(计算器)
  16. JMS系列(三)-java操作JMS Topic实例
  17. 【CPI指数预测】基于matlab BP神经网络CPI指数预测【含Matlab源码 662期】
  18. python音标1003python音标_词汇小助手V1.2——可以显示英语单词的国际音标
  19. LTE FDD 时频资源
  20. Silverlight加载xap后通过反射相互调用方法及元素

热门文章

  1. 信捷 XDH Ethercat A_MOVER指令
  2. Unity菜单树 TreeView
  3. 毕业设计-基于SpringBoot员工管理OA系统
  4. 34. 池化层 / 汇聚层
  5. Pose-Guided Feature Alignment for Occluded Person Re-Identification阅读笔记
  6. win10下pip配置国内源
  7. h5 plus/h5+规范使用,模块索引,教你如何去看h5+的手册
  8. MapGIS CIM平台:构建数字孪生城市四维空间底座
  9. MATLAB TXT转Excel
  10. 常见web系统默认口令弱口令总结