电子地图管理系统
![电子地图管理系统](https://img.360docs.net/img05/1lvzl57dlx8lu34s7vokmy4ugedy57o-51.webp)
![电子地图管理系统](https://img.360docs.net/img05/1lvzl57dlx8lu34s7vokmy4ugedy57o-32.webp)
电子地图管理系统-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
void start();
void display();
void displaypaixu();
void displayjiansuo();
Road *head = NULL;
void SearchByClass(Road *head)
{
time_t a,b;
Road *prev,*p,*end,*temp_head;
char Run_time[80];
int i=0,Class;
printf("请输入您所要查找的道路的番号:\n");
scanf("%d",&Class);
prev=p=(Road *)malloc(sizeof(Road));//创建一个结点
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));
printf("#linkid=%d ",temp_head->stRoadRec.LinkID);
printf("roadnameflag=%d ",temp_head->stRoadRec.roadnameflag);
printf("brunch=%d ",temp_head->stRoadRec.brunch);
printf("dispclass=%d ",temp_head->stRoadRec.linkid);
printf("roadname=%s#\n",temp_head->stRoadRec.roadname);
p->stRoadRec.LinkID = temp_head->stRoadRec.LinkID;
p->stRoadRec.roadnameflag = temp_head->stRoadRec.roadnameflag;
p->stRoadRec.brunch = temp_head->stRoadRec.brunch;
p->stRoadRec.linkid = temp_head->stRoadRec.linkid;
p->stRoadRec.roadname = temp_head->stRoadRec.roadname;
p->next=end;
p = p->next;
i++;}
temp_head=temp_head->next;
}
end->next=NULL;
p ->next = NULL;
if(i>=5)
{
save(prev);
printf("查询结果数大于5,已保存至SearchResult.txt\n");
}
b=time(NULL);
strftime(Run_time,79,"%H:%M:%S",localtime(&b));
printf("本次查找用时%d 秒.\n",b-a);
}
void SearchById(Road *head)
{
time_t a,b;
Road *prev,*p,*end,*temp_head;
char Run_time[80];
int i=0,LinkId;
printf("请输入您所要查找的道路的ID:\n");
scanf("%d",&LinkId);
prev=p=(Road *)malloc(sizeof(Road));//创建一个结点
a=time(NULL);
strftime(Run_time,79,"%H:%M:%S",localtime(&a));
temp_head = head;
if(temp_head == NULL)
{
printf("无数据源");
system("pause");
exit(3);
}
while(temp_head!=NULL){
if(temp_head->stRoadRec.LinkID==LinkId){
end=(Road *)malloc(sizeof(Road));
printf("#linkid=%d",temp_head->stRoadRec.LinkID);
printf("roadnameflag=%d",temp_head->stRoadRec.roadnameflag);
printf("brunch=%d",temp_head->stRoadRec.brunch);
printf("dispclass=%d",temp_head->stRoadRec.linkid);
printf("roadname=%s#\n",temp_head->stRoadRec.roadname);
p->stRoadRec.LinkID=temp_head->stRoadRec.LinkID;
p->stRoadRec.roadnameflag=temp_head->stRoadRec.roadnameflag;
p->stRoadRec.brunch=temp_head->stRoadRec.brunch;
p->stRoadRec.linkid=temp_head->stRoadRec.linkid;
p->stRoadRec.roadname = temp_head->stRoadRec.roadname;
p->next=end;
p = p->next;
i++;}
temp_head=temp_head->next;
}
p ->next = NULL;
if(i>=5)
{
save(prev);
printf("查询结果数大于5,已保存至SearchResult.txt\n");
}
b=time(NULL);
strftime(Run_time,79,"%H:%M:%S",localtime(&b));
printf("本次查找用时%d 秒.\n",b-a);
}
void SearchByName(Road *head)
{
time_t a,b;
Road *prev,*p,*end,*temp_head;
char Run_time[80];
int i=0;
char Name[30];
printf("请输入您所要查找的道路的名称:\n");
scanf("%s",Name);
prev=p=(Road *)malloc(sizeof(Road));//创建一个结点
a=time(NULL);
strftime(Run_time,79,"%H:%M:%S",localtime(&a));
temp_head = head;
if(temp_head == NULL)
{
printf("无数据源");
system("pause");
exit(6);
}
while(temp_head!=NULL){
if(strcmp(temp_head->stRoadRec.roadname,Name)==0){
end=(Road *)malloc(sizeof(Road));
printf("#linkid=%d",temp_head->stRoadRec.LinkID);
printf("roadnameflag=%d",temp_head->stRoadRec.roadnameflag);
printf("brunch=%d",temp_head->stRoadRec.brunch);
printf("dispclass=%d",temp_head->stRoadRec.linkid);
printf("roadname=%s#\n",temp_head->stRoadRec.roadname);
p->stRoadRec.LinkID = temp_head->stRoadRec.LinkID;
p->stRoadRec.roadnameflag = temp_head->stRoadRec.roadnameflag;
p->stRoadRec.brunch = temp_head->stRoadRec.brunch;
p->stRoadRec.linkid = temp_head->stRoadRec.linkid;
p->stRoadRec.roadname = temp_head->stRoadRec.roadname;
p->next=end;
p = p->next;
i++;}
temp_head=temp_head->next;
}
p ->next = NULL;
if(i>=5)
{
save(prev);
printf("查询结果数大于5,已保存至SearchResult.txt\n");
}
b=time(NULL);
strftime(Run_time,79,"%H:%M:%S",localtime(&b));
printf("本次查找用时%d 秒.\n",b-a);
}
void updata(Road*head)
{
FILE*pp;
FILE*ppp;
FILE*infile;
FILE*outfile;
time_t a;
char filename[20];
Road*p1;
Road*p2;
pp=fopen("newfile.txt","w");
if(pp==NULL)
{
printf("文件创建失败\n");
exit(1);
}//判断文件是否创建成功//
p1=head;
if(p1==NULL)
{
printf("空指针\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->stRoadRec.linkid);
p1=p1->next;
}
fclose(pp);//将动态链表中的内容写入文件newfile中//