• 大小: 863KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-08-10
  • 语言: C/C++
  • 标签: GPGGA  SEU  数据解析  C++  

资源简介

东南大学22系导航选修课的C++编程作业参考,包含两个不同的程序版本,可以自己参考。有说明文档和原始数据。

资源截图

代码片段和文件信息

/*  功能 C++解析GPGGA数据并显示  时间 2017-12-26* by 黄天意*/    
#include           //文件输入输出流 
#include       
#include           //输入输出流 
#include             //用于储存临时数据的容器 
#include            //字符串流,用于转换数据类型 
#include            //操纵运算子,本例中用于保留转换数据后经纬度的输出精度 
using namespace std;   
  
//数据类型转换模板函数
template       
Type stringToNum(const string str)     
{          
    istringstream iss(str);         
    Type num;         
    iss >> num;         
    return num;      //字符串转数字类型   
}    
  
int main()   
{    
    ifstream in(“D:/GPGGA_File/GPGGA+ZDA52.txt“); 
ofstream out(“D:/GPGGA_File/GPGGA+ZDA52print.txt“);   //文件读取与输出 
    string filename;
string line;            
int i;
    
for(i=0;i<=51;i++)
    {
    //读取第一行 GGA格式  $GPGGA022432.003203.44939287N11847.34198256E1190.714.284M0.949M*68  
      
    //GGA字段含义   语句IDUTC时间,纬度,N/S,经度,E/W,GPS状态,卫星数量,精度因子,海拔      
   
getline(inline);      //读取in文件第一行 
vector arr1;  //定义一个字符串容器    
    int position = 0;    //行开始位置 
      do   
      {     
        string tmp_s;    position = line.find(““); //找到逗号的位置     
        tmp_s = line.substr(0position); //截取需要的字符串      
        line.erase(0position+1); //将已读取的数据删去       
        arr1.push_back(tmp_s);   //将字符串压入容器中    
      }   while(position != -1);  //读取整行数据 
 
// 读取第二行 ZDA格式   $GPZDA022431.010071120160000*53
    //  ZDA字段含义   语句ID,UTC时间,日,月,年,时区
    position = 0;          //重新定位开始第二行,以下同上 
getline(inline);
vector arr2;
  do 
  {
string tmp_s;
position = line.find(““);
tmp_s = line.substr(0position);
line.erase(0position+1);
arr2.push_back(tmp_s);
  }while(position != -1);

     string date1 = arr2[4]+“.“+arr2[3]+“.“+arr2[2];
     int d0 = stringToNum(arr1[1]); 
     int d1=d0/10000+8;                //转东八区 
string datetime = arr1[1].substr(22)+“:“+arr1[1].substr(42);  
     out<<“UTC日期:“<      out<<“时间:“<     long double w0 = stringToNum(arr1[2]); 
     out<     long double j1 = stringToNum(arr1[4]);                   
out< out<<“定位质量指示:“< out<<“使用卫星数量:“< position = 0;    
arr1.clear();
arr2.clear();   //清空容器以便连续读取多组数据 
    }
     cout<<“输出文件成功,文件路径D:\\GPGGA_File\\GPGGA+ZDA52print.txt“<    return 0;   
}      
 


 
/*  输入数据 
$GPGGA022431.003203.44938748N11847.34197908E1180.814.307M0.949M*67
$GPZDA022431.010071120160000*53
$GPGGA022432.003203.44939287N11847.34198256E1190.714.284M0.949M*68
$GPZDA022432.010071120160000*50
$GPGGA022433.003203.44939714N11847.34198425E1180.814.266M0.949M*66
$GPZDA022433.010071120160000*51
$GPGGA022434.003203.

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14855  2018-01-11 15:21  GPGGA数据解析程序_修改最终版\GPGGA\gpgga.cpp

     文件        899  2018-01-11 15:21  GPGGA数据解析程序_修改最终版\GPGGA\GPGGA.dev

     文件    2143440  2018-01-11 15:21  GPGGA数据解析程序_修改最终版\GPGGA\GPGGA.exe

     文件         95  2018-01-11 15:21  GPGGA数据解析程序_修改最终版\GPGGA\GPGGA.layout

     文件     186651  2018-01-11 15:21  GPGGA数据解析程序_修改最终版\GPGGA\gpgga.o

     文件       1204  2018-01-11 15:21  GPGGA数据解析程序_修改最终版\GPGGA\Makefile.win

     文件       6292  2018-01-02 14:04  GPGGA数据解析程序_修改最终版\GPGGA_File\GPGGA+ZDA52.txt

     文件       5460  2018-01-11 15:18  GPGGA数据解析程序_修改最终版\GPGGA_File\GPGGA+ZDA52print.txt

     文件      23345  2018-01-07 22:56  GPGGA数据解析程序_修改最终版\解析GPGGA数据-格式分析与使用说明.docx

     目录          0  2018-01-02 15:53  GPGGA数据解析程序_修改最终版\GPGGA

     目录          0  2018-01-02 15:54  GPGGA数据解析程序_修改最终版\GPGGA_File

     目录          0  2018-03-24 16:08  GPGGA数据解析程序_修改最终版

     文件      39216  2018-01-07 23:31  GPGGA数据解析程序_修改最终版\完整版\1.DAT

     文件       4372  2018-01-09 14:39  GPGGA数据解析程序_修改最终版\完整版\gps数据读取.cpp

     文件    1927767  2018-01-09 14:39  GPGGA数据解析程序_修改最终版\完整版\gps数据读取.exe

     文件       1472  2018-01-09 14:04  GPGGA数据解析程序_修改最终版\完整版\Output.txt

     目录          0  2018-03-24 16:08  GPGGA数据解析程序_修改最终版\完整版

----------- ---------  ---------- -----  ----

              4355068                    17


评论

共有 条评论