C语言实训—电子地图导航系统源代码
/***************************************************************************************Filename:tagMap_tDo.cpp **Created:2012/6/24 * *Author:.. 吴昊王洋张伟王伟 ***************************************************************************************/#include#include#include#include/*函数声明部分*/void ma_interf();int ReadFile();void ReadData(FILE *p);void WriteResult (int b[] , int j);void Search();/*宏定义*/#define MCGETCHAR(data) (*((char *)(data)))#define MCGETSHORT(data) ((unsigned short)(( ((unsigned short)(*((char *)(data))))<<8 )|( ((unsigned short)(*((char *)(data)+1)))&0x00ff )))#define MCGETLONG(data) ( ( ((unsigned long)MCGETSHORT((data)))<<16 )|( ((unsigned long)MCGETSHORT((char *)(data)+2))&0x0000ffff ) )#define MCGET3BN(data) ( ( ((unsigned long)MCGETCHAR((data)))<<16 )|( ((unsigned long)MCGETSHORT((char *)(data)+1))&0x0000ffff ) )#define Length 655350 int nsizecount = 2 ;/*定义结构体类型及变量*/struct RoadRecord{short ussize;long ullinkId;short usroadnamesize;int usdispclass;int usbrunch;int usroadnameflag;char roadname[20];};struct tagMap_t{char sign_one[2];char linkid[14];char flag[7];char brunch[9];char dispclass[13];char Roadname[30];char sign_two[2];}*s , *ss;int mark_1=0,mark_2=0; //标记程序是否运行读取文件和排序操作void SortData(tagMap_t s[]);void Update (tagMap_t s[]); struct dataOut{ long linkId;int dispclass;int brunch;int roadnameflag;};struct RoadRecord road[Length];struct dataOut data[Length]; /*存储道路信息的数组*/ /***************************************************************************************Functionname:ReadFile **Function Description:读取二进制文件,并将其解析在文本文档里 **Date:2012/6/20 * **************************************************************************************/int ReadFile() { int m;char aclinkId[4] ;/*从二进制文件中读取道路编号*/ char acroadnamesize[2] ;/*从二进制文件中读取道路名称数据长度*/ char acNodeInfo[4];unsigned short ustotalsize; unsigned long ullinkId; unsigned short usroadnamesize;char actotalsize[2] ; /*从二进