void map_revise_vex() { int vid,choose,i; do { printf(\请输入需要修改的站点ID(e:退出):\ vid = input_num_check(0,G.vexnum-1); if(input_exit == 1) { input_exit = 0; system(\ welcome(); return; } print_fgx(); printf(\站点信息预览:【%d】%s 介绍:%s \\n\.vexs[vid].id,G.vexs[vid].name,G.vexs[vid].des); print_fgx(); for(i=0;i
20
map_reroad_in(vid); } else { printf(\输入错误!\\n\ continue; } save_map(); print_fgx(); printf(\修改成功!\\n\ }while(1); }
//修改道路(引导界面) void map_revise_road() { int vid; do { printf(\请输入需要修改的道路的起点(e:退出):\ vid = input_num_check(0,G.vexnum-1); if(input_exit == 1) { input_exit = 0; system(\ welcome(); return; } map_reroad_in(vid); save_map(); print_fgx(); printf(\修改成功!\\n\ }while(1); }
//修改道路
void map_reroad_in(int vid) { int fid,ekind,pass=0,passt=1;
21
do { printf(\请输入需要修改的道路的终点(e:退出):\ fid = input_num_check(0,G.vexnum-1); if(input_exit == 1) input_exit = 0; else if(G.arcs[vid][fid].distance == MAX || fid == vid) printf(\道路不存在或端点重复!\\n\ else pass = 1; }while(pass != 1); if(pass == 1) pass = 0; do { printf(\您需要修改线路【%d】%s ->【%d】%s 的\\n(1.终点 2.长度 3.类型):\.vexs[vid].id,G.vexs[vid].name,G.vexs[fid].id,G.vexs[fid].name); scanf(\ if(ekind == 1) { int xid; do { printf(\请输入道路的新终点:\ xid = input_num_check(0,G.vexnum-1); if(input_exit == 1) input_exit = 0; else if(G.arcs[vid][xid].distance < MAX || xid == vid) printf(\新道路已存在或端点重复!\\n\ else pass = 1; }while(pass != 1); map_re_arc(vid,fid,3,xid); } else if(ekind == 2) { map_re_arc(vid,fid,1,-1); } else if(ekind == 3) { map_re_arc(vid,fid,2,-1); } else
22
{ printf(\输入错误!\\n\ passt = 0; } }while(passt == 0); }
//删除站点
void map_delete_vex() {
int vid,i; do { printf(\请输入需要删除的站点编号(e:退出):\ vid = input_num_check(0,G.vexnum-1); if(input_exit == 1) { input_exit = 0; system(\ welcome(); return; } print_fgx(); printf(\站点信息预览:【%d】%s 信息:%s \\n\.vexs[vid].id,G.vexs[vid].name,G.vexs[vid].des); print_fgx(); for(i=0;i
23
} else { //删除顶点向量(用编号最大的顶点覆盖) G.vexs[vid] = G.vexs[G.vexnum-1]; G.vexs[vid].id = vid; //编号最大顶点清空 strcpy(G.vexs[G.vexnum-1].name,\ strcpy(G.vexs[G.vexnum-1].des,\ //删除与已删除顶点相连的边 for(i=0;i void map_delete_road() { int bid,fid,pass; do { pass = 0; printf(\请输入需要删除的道路的起点(e:退出):\ 24