《校园导游》课程设计报告

发布时间 : 星期二 文章《校园导游》课程设计报告更新完毕开始阅读

cout<<\增加景点信息成功!\ } else cout<<\增加景点编号重复,请重新增加!\} //删除景点信息2 void Delete(char* sno1,char* sno2,Graph& G) { int count=0; VNode* address=NULL; ArcNode* last=NULL; VNode* parent1=NULL; ArcNode* parent2=NULL; address=GetAddress(sno2,G); last=address->nextArc; parent1=address; while(last) { if(!strcmp(sno1,last->sno)) { if(!count) parent1->nextArc=last->next; else parent2->next=last->next; free(last); break; } else { count++; parent2=last; last=last->next; } } } //删除景点信息1 void DeleteScenery(Graph& G) { int count=0; char noOrName[21]; VNode* p=NULL; VNode* parent=NULL; ArcNode* last; parent=p=G.V; cout<<\请输入要删除的景点的编号或名称\ cin>>noOrName; while(p) { if(!(strcmp(p->sc.sno,noOrName)&&strcmp(p->sc.sname,noOrName))) { count++; break; } else { parent=p; p=p->nextV; } } if(!count) cout<<\无法删除该景点信息,请查核后在删除!\ else { char sno[4]; if(p==G.V) //防止删了第一个景点信息后,找不其他景点信息 G.V=p->nextV; else parent->nextV=p->nextV; strcpy(sno,p->sc.sno); last=p->nextArc; ArcNode* q=NULL; while(last) { Delete(sno,last->sno,G); q=last; last=last->next; free(q); } free(p); G.vexnum--; cout<<\成功删除该景点信息!\ } } //更新景点信息 void UpdateScenery(Graph& G) { int count=0; cout<<\提示:更新景点信息只允许更改景点名称以及景点介绍,编号作为主关键字不允许更改!\ char noOrName[21]; cout<<\请输入需要修改景点的编号以及名称:\ cin>>noOrName; VNode* p=G.V; while(p) { if(!(strcmp(p->sc.sname,noOrName)&&strcmp(p->sc.sno,noOrName))) { count++; cout<<\请输入新的景点名称:\ cin>>p->sc.sname; cout<<\请输入新的景点介绍:\ cin>>p->sc.stext; break; } else { p=p->nextV; } } if(!count) cout<<\修改景点信息未成功!请查核后再次修改!\ else cout<<\修改景点信息成功!\} //增加道路信息 void AddRode(Graph& G) { int count=0; VNode* address=NULL; ArcNode* q=NULL; ArcNode* p=NULL; char sno1[4]; char sno2[4]; int length; cout<<\请输入要增加道路两端的景点编号以及道路长度\ cin>>sno1>>sno2>>length; if(!strcmp(sno1,sno2)) cout<<\您输入的道路两端的景点编号一样,请核查后再试!\ else { address=GetAddress(sno1,G); p=address->nextArc; while(p) { if(!strcmp(p->sno,sno2)) { count++; break; } else p=p->next; } if(count) cout<<\增加道路信息失败!\ else { address=GetAddress(sno1,G); q=(ArcNode*)malloc(sizeof(ArcNode)); strcpy(q->sno,sno2); q->length=length; q->next=address->nextArc; address->nextArc=q; address=GetAddress(sno2,G); q=(ArcNode*)malloc(sizeof(ArcNode)); strcpy(q->sno,sno1); q->length=length; q->next=address->nextArc; address->nextArc=q; G.arcnum++; cout<<\增加道路信息成功!\ } } } //删除道路信息 void DeleteRode(Graph& G) { int count=0; VNode* address=NULL; ArcNode* p=NULL; char sno1[4]; char sno2[4];

联系合同范文客服:xxxxx#qq.com(#替换为@)