C语言程序入门设计 OJ
GPS数据处理
题目内容:

NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。

NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有 $ GPGGA、$ GPGSA、$ GPGSV、$ GPRMC、$ GPVTG、$GPGLL等。

其中$GPRMC语句的格式如下:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,A*50

这里整条语句是一个文本行,行中以逗号“,”隔开各个字段,每个字段的大小(长度)不一,这里的示例只是一种可能,并不能认为字段的大小就如上述例句一样。

字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息

字段1:UTC时间,hhmmss.sss格式

字段2:状态,A=定位,V=未定位

字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

字段4:纬度N(北纬)或S(南纬)

字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

字段6:经度E(东经)或W(西经)

字段7:速度,节,Knots

字段8:方位角,度

字段9:UTC日期,DDMMYY格式

字段10:磁偏角,(000 - 180)度(前导位数不足则补0)

字段11:磁偏角方向,E=东W=西

字段16:校验值

这里,“ * ”为校验和识别符,其后面的两位数为校验和,代表了“$”和“ * ”之间所有字符(不包括这两个字符)的异或值的十六进制值。上面这条例句的校验和是十六进制的50,也就是十进制的80。

提示 ^ 运算符的作用是异或。将$和 * 之间所有的字符做^运算(第一个字符和第二个字符异或,结果再和第三个字符异或,依此类推)之后的值对65536取余后的结果,应该和*后面的两个十六进制数字的值相等,否则的话说明这条语句在传输中发生了错误。注意这个十六进制值中是会出现A-F的大写字母的。

现在,你的程序要读入一系列GPS输出,其中包含$GPRMC,也包含其他语句。在数据的最后,有一行单独的

END

表示数据的结束。

你的程序要从中找出$ GPRMC语句,计算校验和,找出其中校验正确,并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。

你的程序一定会读到一条有效的$GPRMC语句。

输入格式:

多条GPS语句,每条均以回车换行结束。最后一行是END三个大写字母。

输出格式:

6位数时间,表达为:

hh:mm:ss

其中,hh是两位数的小时,不足两位时前面补0;mm是两位数的分钟,不足两位时前面补0;ss是两位数的秒,不足两位时前面补0。

输入样例:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,A*50

END

输出样例:

10:48:13

#include <stdio.h>
#include <string.h>
int main()
{int i,j,len;int hh,mm,ss;char str[100]="/0";char a[]="$GPRMC";char b[]="END";int jiaoyanhe,jiaoyan;char jiaoyanstr[3];do {gets(str);if (strncmp(str, a,6)==0) {for (jiaoyan = str[1],i=2; str[i]!='*'; i++) {jiaoyan = jiaoyan ^ str[i];}jiaoyan=jiaoyan % 655536;len=strlen(str);for (i=len-2,j=0; j<3; j++,i++) {jiaoyanstr[j]=str[i];}sscanf(jiaoyanstr, "%x", &jiaoyanhe);if (jiaoyan==jiaoyanhe) {sscanf(str, "$GPRMC,%2d%2d%2d", &hh, &mm, &ss);}}} while (strcmp(str, b)!=0);hh=hh+8;if (hh>=24) {hh=hh-24;}printf("%02d:%02d:%02d",hh,mm,ss);return 0;
}

C语言程序入门设计OJ练习题11 浙江大学——程序入门设计相关推荐

  1. C语言程序入门设计OJ练习题7 浙江大学——程序入门设计-翁恺

    C语言程序入门设计 OJ #浙江大学--程序入门设计-翁恺 7.高精度小数 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1 ...

  2. java 语言程序设计 李尊朝 第11章 图形用户界面设计

    11.1 AWT组件概述 AWT(abstract Window Toolkit)抽象窗口工具集,其目的是为程序员创建界面提供支持.AWT组件定义在java.awt包中,包括组件类.组件        ...

  3. python新手入门英文词汇笔记(1-1)_Python新手入门英文词汇(1-1)

    英文词汇总结 一.交互式环境与print输出 1.print:打印/输出 2.coding:编码 3.syntax:语法 4.error:错误 5.invalid:无效 6.identifier:名称 ...

  4. python语言必背代码-Python入门必须知道的11个知识点

    Python被誉为全世界高效的编程语言,同时也被称作是"胶水语言",那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因. ...

  5. 《程序员》2014年11月刊:电商峰值系统架构设计

    双11来临之际,<程序员>以"电商峰值系统架构设计"为主题,力邀京东.当当.小米.1号店.海尔商城.唯品会.蘑菇街.麦包包等电商企业,及商派.基调网络等服务公司,分享电 ...

  6. STC51入门笔记(郭天祥C语言)---第二节:Keil 软件使用及流水灯设计

    声明:本篇文章只是个人知识盲区.知识弱点.重点部分的归纳总结,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理,转载请注明出处. 作者:sumjess 本章详细介绍单片机程序常用编译软件 Keil ...

  7. c语言模拟计算机指令流程图,家居分布式温度监测报警系统-传感器课程设计报告 带程序及仿真全套资料...

    资料包: 0.png (13.1 KB, 下载次数: 11) 2018-1-10 04:19 上传 传感器课程设计报告 课    题: 家居分布式温度监测报警系统班    级: 自152 姓    名 ...

  8. r语言软件GDINA_finTech MSc代做、代写Python程序语言、代写MSc program、代做Python设计帮做C/C++编程|代写R语言...

    finTech MSc代做.代写Python程序语言.代写MSc program.代做Python设计帮做C/C++编程|代写R语言Strathclyde Business School, finTe ...

  9. 单片机c语言程序开发洗衣机,基于的51单片机全自动洗衣机设计(北理工

    <基于的51单片机全自动洗衣机设计(北理工>由会员分享,可在线阅读,更多相关<基于的51单片机全自动洗衣机设计(北理工(24页珍藏版)>请在人人文库网上搜索. 1.全自动洗衣机 ...

最新文章

  1. mxnet迁移学习 注释版
  2. C# 如何使用 Elasticsearch (ES)
  3. Boost.Function 库示例
  4. Visual Studio 常见问题及解决方案(持续更新)
  5. 图像局部显著性—点特征(SIFT为例)
  6. java多线程笔记补充之线程的生命周期
  7. SQLi LABS Less-8
  8. Multiload-ng
  9. c/c++ 时间函数总结 linux
  10. java window的对象方法_Javascript:window对象的方法
  11. php微信回调验证签名,微信支付回调验证签名处理
  12. [Spark]-编译(2.3.1)部署(YARN-Cluster)
  13. 简约记账系统基于android,基于Android平台的记账系统的设计与实现
  14. 【010Editor】010Editor使用技巧汇总(不断更新中)
  15. 2021年暑期训练阶段三Day3
  16. JAVA 实现《拳皇误闯冒险岛》游戏
  17. win10配置系统默认utf-8编码
  18. 设置网站301跳转,直接输入主域名跳转至www域名
  19. 真的不能错过的打印攻略!打印一张7分钱
  20. 语音论文阅读(Conformer:基于卷积增强的Transformer语音识别模型)

热门文章

  1. 解决方案| anyRTC 融合其他厂商视频会议系统方案
  2. Mac M1 jdk11 DNS错误
  3. 【ABviewer从零开始教学查看器篇③】打开文件之缩略图菜单
  4. RMAN 备份报错 RMAN-06207 RMAN-06208 解决方法
  5. oracle stat=30,使用Solaris上的filestat工具
  6. 【麦当劳 肯德基】是美国在中国的基因武器试验场(转)
  7. 证件照如何换底色,分享三种证件照换底色的方法!
  8. SAP QM 启用了Inspection Point的检验批在UD界面里有什么不同?
  9. 风火之旅那么多脱机外挂不知道前途如何?
  10. windows自动发送文件到FTP服务器脚本