ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:19.22KB ,
资源ID:19400089      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19400089.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子地图管理系统Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子地图管理系统Word格式.docx

1、/创建一个结点 a=time(NULL); strftime(Run_time,79,%H:%M:%S,localtime(&a); temp_head=head; if(temp_head=NULL) printf(无数据源 system(pause exit(5); while(temp_head!=NULL) if(temp_head-stRoadRec.linkid=Class) end=(Road*)malloc(sizeof(Road);#linkid=%d,temp_head-stRoadRec.LinkID);roadnameflag=%dstRoadRec.roadnamef

2、lag);brunch=%dstRoadRec.brunch);dispclass=%dstRoadRec.linkid);roadname=%s#nstRoadRec.roadname); p-stRoadRec.LinkID=temp_head-stRoadRec.LinkID;stRoadRec.roadnameflag=temp_head-stRoadRec.roadnameflag;stRoadRec.brunch=temp_head-stRoadRec.brunch;stRoadRec.linkid=temp_head-stRoadRec.linkid;stRoadRec.road

3、name=temp_head-stRoadRec.roadname;next=end; p=p-next; i+; temp_head=temp_head- end-next=NULL; p- if(i=5) save(prev);查询结果数大于5,已保存至SearchResult.txtn b=time(NULL);b);本次查找用时%d秒.n,b-a);voidSearchById(Road*head) inti=0,LinkId;请输入您所要查找的道路的ID:LinkId); exit(3);stRoadRec.LinkID=LinkId) temp_head=temp_head-voi

4、dSearchByName(Road*head) inti=0; charName30;请输入您所要查找的道路的名称:%s,Name); exit(6); if(strcmp(temp_head-stRoadRec.roadname,Name)=0)voidupdata(Road*head) FILE*pp; FILE*ppp; FILE*infile; FILE*outfile; time_ta; charfilename20; Road*p1; Road*p2; pp=fopen(newfile.txt,w if(pp=NULL)文件创建失败n exit(1); /判断文件是否创建成功/

5、p1=head; if(p1=NULL)空指针n /判断头指针是否为空/ while(p1!=NULL) fprintf(pp,%d%d%d%s%d%d,p1-stRoadRec.data_size,p1-stRoadRec.LinkID,p1-stRoadRec.road_size,p1-stRoadRec.roadname,p1-stRoadRec.brunch,p1- p1=p1- fclose(pp);/将动态链表中的内容写入文件newfile中/ strcpy(filename,update.dat infile=fopen(jilu.txt fscanf(infile,%d%sa,

6、&filename);/将时间和update.dat都写入文件中/ outfile=fopen(r if(outfile=NULL) fprintf(outfile,filename);/将文件中的内容读出来作为文件名/ fclose(outfile);/将时间加入到文件名中,使更新后之前的文件内容不会被覆盖/ ppp=fopen(filename,wb if(ppp=NULL)更新文件创建失败n p2=head; while(p2! fwrite(p2,sizeof(Road),1,ppp); p2=p2-文件更新中.n文件更新成功n fclose(ppp);/文件更新完毕,将排序后的内容写

7、入文本文件和二进制文件中/voidSearchByBruch(Road*head) inti=0,Bruch;请输入您所要查找的道路的岔路数:Bruch); p=(Road*)malloc(sizeof(Road); prev=p; exit(4);stRoadRec.brunch=Bruch) i的结果是%dn,i);Road*readfile(void) FILE*fp; unsignedshorttemp_data_size1;/数据大小2bytebuffunsignedinttemp_LinkID1;/道路编号4bytebuffunsignedshorttemp_road_size1;

8、/道路名称的尺寸2bytebuff unsignedinttemp_info1;/道路信息4bytebuff chartemp_name5000;/GTBL.dat不存在就输入 char*p_name;/道路名称指针 Road*head,*pCur,*pEnd; pCur=(Road*)malloc(sizeof(Road); head=pCur; fp=fopen(GTBL.datrb+ if(fp=NULL)错误:不能打开GTBL.datn looperror:n请输入你要打开的文件名n scanf(,temp_name); fp=fopen(temp_name, if(fp=NULL)不

9、能打开%s gotolooperror; else读取成功n while(1) pEnd=(Road*)malloc(sizeof(Road); fread(temp_data_size,sizeof(unsignedshort),1,fp); pCur-stRoadRec.data_size=M_CHG_INT16(temp_data_size0);/printf(,pCur-stRoadRec.data_size); fread(temp_LinkID,sizeof(unsignedint),1,fp);stRoadRec.LinkID=M_CHG_INT32(temp_LinkID0);

10、 fread(temp_road_size,sizeof(short),1,fp);stRoadRec.road_size=M_CHG_INT16(temp_road_size0); fread(temp_info,sizeof(unsignedint),1,fp); temp_info0=M_CHG_INT32(temp_info0);stRoadRec.linkid=(0xf&temp_info0);stRoadRec.brunch=(0x70&temp_info0)4);stRoadRec.roadnameflag=(0x80&7); if(pCur-stRoadRec.roadname

11、flag=1)stRoadRec.roadname=(char*)malloc(pCur-stRoadRec.data_size-12); p_name=(char*)malloc(pCur- fread(pCur-stRoadRec.roadname,(pCur-stRoadRec.data_size-12),1,fp); /pCur-stRoadRec.roadname=p_name;stRoadRec.roadname=NULL; if(feof(fp) break;next=pEnd; pCur=pCur-returnhead;voidQListSort(Road*head,Road*

12、end)Road*right;Road*left_walk,*right_walk;Road*pivot,*old;intcount,left_count,right_count;if(*head=end)return;dopivot=*head;left_walk=head;right_walk=&right;left_count=right_count=0;/取第一个节点作为比较的基准,小于基准的在左面的子链表中,/大于基准的在右边的子链表中for(old=(*head)-old!=end;old=old-next)if(old-stRoadRec.LinkIDstRoadRec.Link

13、ID)/小于基准,加入到左面的子链表,继续比较+left_count;*left_walk=old;/把该节点加入到左边的链表中,left_walk=&(old-next);else/大于基准,加入到右边的子链表,继续比较+right_count;*right_walk=old;/合并链表*right_walk=end;/结束右链表*left_walk=pivot;/把基准置于正确的位置上next=right;/把链表合并/对较小的子链表进行快排序,较大的子链表进行迭代排序。if(left_walkright_walk)QListSort(&(pivot-next),end);end=pivo

14、t;count=left_count;elseQListSort(head,pivot);head=&count=right_count;while(count1);Road*BubbleSort(Road*head)Road*endpt;/*控制循环比较*/Road*p;/*临时指针变量*/Road*p1;Road*p2;p1=(Road*)malloc(sizeof(Road);p1-next=head;/*注意理解:我们增加一个节点,放在第一个节点的前面,主要是为了便于比较。因为第一个节点没有前驱,我们不能交换地址。*/head=p1;/*让head指向p1节点,排序完成后,我们再把p1节点释放掉*/for(endpt=NULL;endpt!=head;endpt=p)/*结合第6点理解*/for(p=p1=head;next-next!=endpt;p1=p1-if(p1-stRoadRec.LinkIDstRoadRec.LinkID)/*如果前面的节点键值比后面节点的键值大,则交换*/p2=p1-/*结合第1点理解*/nex

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1