数据结构课程设计校园导航.doc
《数据结构课程设计校园导航.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计校园导航.doc(33页珍藏版)》请在咨信网上搜索。
一、课程设计目得 本课程设计得目标就就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序得能力,并培养基本得、良好得程序设计技能以及合作能力。 设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密得、规模较大得问题,通过分析、设计、编码、调试等各环节得训练,使学生深刻理解、牢固掌握数据结构与算法设计技术,掌握分析、解决实际问题得能力。 通过这次设计,要求在数据结构得逻辑特性与物理表示、数据结构得选择与应用、算法得设计及其实现等方面,加深对课程基本内容得理解。同时,在程序设计方法以及上机操作等基本技能与科学作风方面受到比较系统与严格得训练。 二、 课程设计内容 1)问题描述 用无向网表示您所在学校得校园景点平面图,图中顶点表示主要景点,存放景点得编号、名称、简介等信息,图中得边表示景点间得道路,存放路径长度等信息.要求能够回答有关景点介绍、游览路径等问题。 2)基本要求 (1) 查询各景点得相关信息; (2) 查询图中任意两个景点间得最短路径。 (3) 查询图中任意两个景点间得所有路径. (4) 增加、删除、更新有关景点与道路得信息 三、课程设计过程 1.需求分析 (1)设计学校得校园平面图,选取出若干得具有代表性得景点构成一个抽象得无向带权图,顶点为景点,边得权值代表了景点间路径得长度。 (2)将景点得序号,名称,介绍存放起来准备查询。 (3)提供任意景点得信息; (4)提供任意经典得路径查询及其最优路线得查询 (5)平面图景点得增加及删除,以及边与权值(长度)得改变 2.概要设计 1:第一点就是主界面得设计,首先,为了该系统各个功能得管理,设计出含有多个菜单项得主菜单界面,可以更方便得使用该系统。 2: 第二点就是存储结构得设计,采取了图结构类型(mgraph)存储校园图得信息,景点信息用结构数组vexs存储,而且利用全局变量:visited[]数组用于存储顶点就是否被访问标志;d[]数组用于存放权值与查找路径顶点得编号;campus就是一个图结构得全局变量。 3: 第三点就是设计各个功能得实现,学校景点得介绍通过函数browsepus()来实现;查询景点间得最段路径通过Floyd(弗洛伊德)算法实现;查询景点间得所有路径通过allpath函数与path函数来实现;更改图得信息可以由主函数changegraph以及其她函数可以实现。 3. 详细设计 (1)主要得操作界面得显示以及无向网操作 void initgraph(graph *ga) { int i,j; ﻩga—>n=9; ga—>e=11; for( i=0;i〈ga—>n;i++) { ga->vexs[i]、num=i; } strcpy(ga-〉vexs[0]、name,”西门”); ﻩﻩstrcpy(ga->vexs[0]、introduce,"学校得正大门,设有公交站”); ﻩﻩstrcpy(ga-〉vexs[1]、name,"风雨篮球场"); ﻩﻩstrcpy(ga-〉vexs[1]、introduce,”"); strcpy(ga->vexs[2]、name,”田径场"); ﻩﻩstrcpy(ga->vexs[2]、introduce,”举办运动会,平时体育跑步锻炼等”); ﻩ strcpy(ga—〉vexs[3]、name,"京元食堂”); ﻩﻩstrcpy(ga->vexs[3]、introduce,"新食堂"); strcpy(ga—>vexs[4]、name,”苍霞湖畔”); ﻩstrcpy(ga—〉vexs[4]、introduce,”戏称“分手湖”,景色宜人”); strcpy(ga—〉vexs[5]、name,"思源楼"); ﻩstrcpy(ga->vexs[5]、introduce,”学校王牌土木得教学区"); ﻩ strcpy(ga-〉vexs[6]、name,”图书馆"); ﻩﻩstrcpy(ga->vexs[6]、introduce,"就是大学城最高得标志性建筑"); ﻩ strcpy(ga—〉vexs[7]、name,"北教区"); ﻩ strcpy(ga—〉vexs[7]、introduce,"北校区集中得教学楼"); ﻩ strcpy(ga-〉vexs[8]、name,”禾堂餐厅"); ﻩ strcpy(ga->vexs[8]、introduce,"旧食堂”); for(i=0;i<ga—〉n;i++) for(j=0;j<ga->n;j++) ga->edges[i][j]=1000; ﻩﻩga—〉edges[0][1]=1; ﻩga->edges[1][2]=2; ﻩ ga->edges[1][3]=5; ga—〉edges[2][4]=4; ﻩga—〉edges[3][4]=9; ﻩﻩga-〉edges[4][5]=1; ﻩga—〉edges[4][8]=1; ﻩﻩga->edges[5][6]=5; ga->edges[5][7]=7; ﻩﻩga->edges[7][8]=1; ﻩ ga—>edges[6][7]=9; for(i=0;i<ga-〉n;i++) ﻩ for(j=0;j<ga-〉n;j++) ﻩ ga—〉edges[j][i]=ga-〉edges[i][j]; } (2)确定顶点就是否存在已经顶点就是否已经被访问过来确定路径 void Create_graph(graph *ga) { ﻩint i,j,k,w; ﻩprintf("请输入顶点数与边数:\n"); ﻩscanf(”%d %d",&(ga-〉n),&(ga-〉e)); ﻩprintf(”请输入景点编号,景点名字,景点介绍,建立信息表:\n"); ﻩfor(i=0;i<ga—>n;i++) { ﻩscanf(”%d",&(ga—>vexs[i]、num)); ﻩ gets(ga—〉vexs[i]、name); ﻩﻩgets(ga—〉vexs[i]、introduce); } ﻩ for(i=0;i〈ga-〉n;i++) for(j=0;j<=ga-〉n;j++) ﻩ ga—〉edges[i][j]=1000; for(k=0;k〈ga—〉e;k++) ﻩ{ ﻩ printf("请输入%d条边得景点序号i,j与长度:",k+1); ﻩﻩscanf(”%d %d %d”,&i,&j,&w); ga->edges[i][j]=w; ﻩga->edges[j][i]=w; ﻩ} } void print(graph ga) { int i,j; for(i=0;i〈ga、n;i++) ﻩ for(j=0;j<ga、n;j++) ﻩ { printf("%d",ga、edges[i][j]); if(j+1==ga、n) ﻩ printf("\n"); ﻩ } } void visit(graph ga) { ﻩint a; printf("请输入景点编号:”); scanf("%d”,&a); int i; ﻩfor( i=0;i<ga、n;i++) { ﻩ if(a==ga、vexs[i]、num) ﻩ { printf("景点编号为%d \n",ga、vexs[i]、num); printf("景点名称为”); ﻩ puts(ga、vexs[i]、name); printf("景点介绍为"); ﻩ puts(ga、vexs[i]、introduce); ﻩ break; ﻩ } } if(i==ga、n)printf(”无此点\n”); } (3)得出景点间得最短路径 void shortestpath_djst(graph ga){ } void shortestpath_floyd(graph ga) { int i,j,k,v,u,w,d[35][35],p[35][35][35]; ﻩfor(v=0;v<ga、n;v++) { for(w=0;w<ga、n;w++) ﻩ{ d[v][w]=ga、edges[v][w]; ﻩ for(u=0;u〈ga、n;u++) ﻩﻩ { ﻩ p[v][w][u]=0; ﻩﻩ} ﻩﻩ if(d[v][w]<1000) ﻩ { ﻩ p[v][w][v]=1; ﻩ p[v][w][w]=1; ﻩ } ﻩ} } for(u=0;u〈ga、n;u++) ﻩ{ ﻩﻩfor(v=0;v〈ga、n;v++) ﻩﻩ for(w=0;w<ga、n;w++) ﻩ ﻩif(d[v][u]+d[u][w]<d[v][w]) ﻩﻩ ﻩ{ ﻩ ﻩd[v][w]=d[v][u]+d[u][w]; ﻩﻩ for(i=0;i<ga、n;i++) ﻩﻩ p[v][w][i]=p[v][u][i]||p[u][w][i]; ﻩﻩ ﻩ} } ﻩprintf("\n请输入出发点与目得地编号:”); scanf("%d %d",&k,&j); printf("\n\n"); ﻩwhile(k<0||k〉ga、n||j<0||j>ga、n) ﻩ{ printf("\n输入得编号不存在"); printf("\n请重新输入编号:\n\n"); scanf("%d %d”,&k,&j); printf("\n\n"); } printf("%s",ga、vexs[k]、name); ﻩfor(u=0;u<ga、n;u++) if(p[k][j][u] && k!=u &&j!=u) ﻩ printf(”——->%s”,ga、vexs[u]、name); printf(”--->%s",ga、vexs[j]、name); ﻩprintf("\n\n\n总长度为%d千米\n\n\n",d[k][j]); } (4)得到景点之间得所有路径 void path(graph c,int m,int n,int k) { ﻩ int s,x=0; ﻩ int t; t=k+1; ﻩ if(d[k]==n && k<8) { ﻩﻩ for(s=0;s<k;s++) ﻩﻩ { ﻩ printf(”%s-—-〉",c、vexs[d[s]]、name); } ﻩ printf("%s\n\n”,c、vexs[d[s]]、name); ﻩ } else ﻩ { ﻩﻩ s=0; while(s〈c、n) ﻩ { ﻩﻩ if((c、edges[d[k]][s]〈1000)&&(visited[s]==0)) ﻩﻩ { ﻩﻩﻩ visited[s]=1; ﻩﻩﻩ d[k+1]=s; ﻩﻩ path(c,m,n,t); ﻩﻩﻩ visited[s]=0; ﻩﻩ } ﻩﻩ s++; ﻩ } } } void allpath(graph c) { int k,i,j,m,n; ﻩ printf("\n\n请输入您要查询得两个景点得编号:\n\n"); scanf("%d %d”,&i,&j); ﻩ printf("\n\n"); ﻩ m=locatevex(c,i); ﻩ n=locatevex(c,j); ﻩ d[0]=m; ﻩ for(k=0;k<c、n;k++) visited[k]=0; ﻩ visited[m]=1; path(c,m,n,0); } (5)删除边 int delarc(graph &ga) { int m,n,v0,v1; if(ga、e〈=0) ﻩ{ printf("图中已经无顶边,无法删除"); ﻩ return 1; } printf("\n请输入要删除得边得起点与终点得编号:”); ﻩscanf("%d %d",&v0,&v1); m=locatevex(ga,v0); ﻩif(m〈0) ﻩ{ printf("此顶点%d已删除",v0); ﻩreturn 1; } n=locatevex(ga,v1); ﻩ if(n<0) { ﻩprintf("此顶点%d已删除”,v1); ﻩreturn 1; ﻩ} ﻩ ga、edges[m][n]=1000; ﻩ ga、edges[n][m]=1000; ﻩ ga、e-—; ﻩﻩ return 1; } int enarc(graph &ga) { int m,n,distance; ﻩprintf(”请输入边得起点与终点编号,权值:"); scanf("%d %d %d”,&m,&n,&distance); while(m〈0||m〉ga、n||n<0||n>ga、n) { printf("输入错误,请重新输入:”); ﻩscanf(”%d %d”,&m,&n); } if(locatevex(ga,m)〈0) { printf(”此节点%d已经删除",m); ﻩreturn 1; } if(locatevex(ga,n)<0) { ﻩprintf("此节点%d已经删除",n); ﻩreturn 1; } ga、edges[m][n]=distance; ga、edges[n][m]=ga、edges[m][n]; return 1; } 4.调试分析 内容包括: a。调试过程中遇到得问题就是如何解决得以及对设计与实现得回顾讨论与分析; b.算法得时空分析(包括基本操作与其她算法得时间复杂度与空间复杂度得分析)与 改进设想; c.经验与体会等。 5. 用户使用说明 通过主菜单提示,选择出您所想要知道得信息,然后通过输入节点来代替景点,从而得到景点间得所有路径,最短路径等其她信息。 6. 测试结果 (1)操作得主界面 (2) 学校景点得介绍 (3) 学校景点从西门得禾堂餐厅得所有路径所有路径 (4)学校景点从西门得禾堂餐厅得所有路径最短路径 (5) 图得更改得界面 (6)边得删除界面展示 7. 附录 #define MAX 100 //数据类型得定义 #include〈string〉 #include<iostream〉 using namespace std; int visited[35]; int d[35]; struct views{ int num; char name[10]; ﻩ char introduce[100]; }; typedef views datatype; typedef struct { datatype vexs[MAX]; int edges[MAX][MAX]; int n,e; }graph; void initgraph(graph *ga)//主要得操作界面得显示以及无向网操作 { int i,j; ﻩga->n=9; ga->e=11; for( i=0;i<ga—>n;i++) { ga—〉vexs[i]、num=i; } strcpy(ga-〉vexs[0]、name,"西门"); ﻩstrcpy(ga->vexs[0]、introduce,"学校得正大门,设有公交站"); ﻩstrcpy(ga—〉vexs[1]、name,"风雨篮球场”); ﻩﻩstrcpy(ga->vexs[1]、introduce,"”); strcpy(ga->vexs[2]、name,"田径场”); strcpy(ga—>vexs[2]、introduce,"举办运动会,平时体育跑步锻炼等"); ﻩstrcpy(ga-〉vexs[3]、name,"京元食堂”); ﻩ strcpy(ga—〉vexs[3]、introduce,"新食堂”); ﻩ strcpy(ga—〉vexs[4]、name,"苍霞湖畔”); ﻩstrcpy(ga—〉vexs[4]、introduce,”戏称“分手湖",景色宜人”); strcpy(ga-〉vexs[5]、name,"思源楼"); ﻩ strcpy(ga-〉vexs[5]、introduce,”学校王牌土木得教学区”); ﻩﻩstrcpy(ga—>vexs[6]、name,"图书馆"); ﻩﻩstrcpy(ga->vexs[6]、introduce,"就是大学城最高得标志性建筑”); ﻩstrcpy(ga—〉vexs[7]、name,”北教区”); ﻩ strcpy(ga—>vexs[7]、introduce,"北校区集中得教学楼”); strcpy(ga-〉vexs[8]、name,”禾堂餐厅”); strcpy(ga->vexs[8]、introduce,"旧食堂"); for(i=0;i〈ga->n;i++) ﻩfor(j=0;j〈ga—〉n;j++) ﻩﻩﻩﻩga->edges[i][j]=1000; ga—〉edges[0][1]=1; ﻩﻩga->edges[1][2]=2; ﻩga-〉edges[1][3]=5; ﻩﻩga-〉edges[2][4]=4; ﻩga—〉edges[3][4]=9; ga-〉edges[4][5]=1; ga->edges[4][8]=1; ﻩﻩga-〉edges[5][6]=5; ﻩﻩga—〉edges[5][7]=7; ﻩga-〉edges[7][8]=1; ﻩ ga—>edges[6][7]=9; for(i=0;i<ga-〉n;i++) ﻩ for(j=0;j<ga—〉n;j++) ﻩ ﻩﻩga->edges[j][i]=ga—〉edges[i][j]; } int locatevex(graph ga,int v) / /查找景点在图中得序号 { int i; for(i=0;i<ga、n;i++) ﻩ if(v==ga、vexs[i]、num)return i; ﻩ return —1; } void Create_graph(graph *ga) { ﻩint i,j,k,w; printf("请输入顶点数与边数:\n”); scanf(”%d %d”,&(ga-〉n),&(ga-〉e)); ﻩprintf(”请输入景点编号,景点名字,景点介绍,建立信息表:\n”); ﻩfor(i=0;i<ga->n;i++) ﻩ{ ﻩﻩscanf("%d",&(ga—>vexs[i]、num)); gets(ga—>vexs[i]、name); gets(ga->vexs[i]、introduce); } ﻩﻩfor(i=0;i<ga->n;i++) for(j=0;j<=ga-〉n;j++) ﻩ ﻩga->edges[i][j]=1000; ﻩfor(k=0;k〈ga—>e;k++) ﻩ{ ﻩprintf(”请输入%d条边得景点序号i,j与长度:”,k+1); ﻩscanf(”%d %d %d",&i,&j,&w); ga->edges[i][j]=w; ﻩ ga->edges[j][i]=w; ﻩ} } void print(graph ga) { int i,j; for(i=0;i<ga、n;i++) ﻩ for(j=0;j<ga、n;j++) ﻩ { printf("%d",ga、edges[i][j]); if(j+1==ga、n) ﻩﻩﻩ printf("\n"); ﻩ } } void visit(graph ga) { ﻩint a; ﻩprintf("请输入景点编号:"); ﻩscanf("%d”,&a); int i; for( i=0;i<ga、n;i++) { if(a==ga、vexs[i]、num) ﻩ { printf("景点编号为%d \n”,ga、vexs[i]、num); ﻩ printf("景点名称为"); puts(ga、vexs[i]、name); printf(”景点介绍为”); puts(ga、vexs[i]、introduce); ﻩ break; } } if(i==ga、n)printf("无此点\n”); } void shortestpath_djst(graph ga) { } void shortestpath_floyd(graph ga) { int i,j,k,v,u,w,d[35][35],p[35][35][35]; for(v=0;v〈ga、n;v++) ﻩ{ for(w=0;w〈ga、n;w++) ﻩ { d[v][w]=ga、edges[v][w]; ﻩfor(u=0;u〈ga、n;u++) ﻩﻩ { ﻩp[v][w][u]=0; ﻩ} if(d[v][w]〈1000) ﻩﻩﻩ{ ﻩﻩﻩﻩp[v][w][v]=1; ﻩﻩﻩ p[v][w][w]=1; ﻩ } ﻩ } ﻩ} for(u=0;u〈ga、n;u++) ﻩ{ for(v=0;v〈ga、n;v++) ﻩﻩﻩfor(w=0;w<ga、n;w++) ﻩﻩ ﻩif(d[v][u]+d[u][w]〈d[v][w]) ﻩ ﻩ{ ﻩ ﻩd[v][w]=d[v][u]+d[u][w]; ﻩﻩ for(i=0;i<ga、n;i++) ﻩﻩﻩﻩ ﻩp[v][w][i]=p[v][u][i]||p[u][w][i]; ﻩﻩ } ﻩ} printf("\n请输入出发点与目得地编号:"); ﻩscanf("%d %d",&k,&j); printf(”\n\n"); ﻩwhile(k<0||k>ga、n||j<0||j〉ga、n) ﻩ{ printf(”\n输入得编号不存在”); ﻩ printf(”\n请重新输入编号:\n\n”); ﻩ scanf(”%d %d",&k,&j); printf("\n\n”); ﻩ} ﻩprintf("%s",ga、vexs[k]、name); ﻩfor(u=0;u<ga、n;u++) ﻩﻩif(p[k][j][u] && k!=u &&j!=u) ﻩ printf("—-—〉%s",ga、vexs[u]、name); printf(”-—-〉%s”,ga、vexs[j]、name); printf(”\n\n\n总长度为%d千米\n\n\n”,d[k][j]); } void path(graph c,int m,int n,int k) { ﻩ int s,x=0; int t; ﻩ t=k+1; ﻩ if(d[k]==n && k<8) ﻩ { ﻩ for(s=0;s〈k;s++) { ﻩ printf(”%s---〉”,c、vexs[d[s]]、name); } ﻩﻩ printf(”%s\n\n",c、vexs[d[s]]、name); } else ﻩ { ﻩ s=0; ﻩ while(s<c、n) { ﻩ if((c、edges[d[k]][s]<1000)&&(visited[s]==0)) ﻩﻩ { ﻩ visited[s]=1; ﻩﻩ d[k+1]=s; ﻩ ﻩ path(c,m,n,t); ﻩﻩ visited[s]=0; } ﻩ ﻩ s++; ﻩﻩ } ﻩ } } void allpath(graph c) { int k,i,j,m,n; printf("\n\n请输入您要查询得两个景点得编号:\n\n”); scanf("%d %d”,&i,&j); printf("\n\n”); m=locatevex(c,i); n=locatevex(c,j); ﻩ d[0]=m; for(k=0;k〈c、n;k++) ﻩ visited[k]=0; ﻩ visited[m]=1; path(c,m,n,0); } void newgraph(graph &ga) { ﻩint changenum; ﻩint i,m,n,t,distance,v0,v1; printf("\n请输入要修改景点得个数:\n”); scanf("%d",&changenum); while(changenum<0||changenum〉ga、n) ﻩ{ ﻩﻩprintf(”\n输入错误!请重新输入"); scanf("%d”,&changenum); ﻩ} for(i=0;i〈changenum;i++) ﻩ{ printf("\n请输入景点得编号:"); ﻩ scanf("%d,&m”); ﻩﻩt=locatevex(ga,m); ﻩﻩprintf(”\n请输入景点得名称:"); ﻩ scanf("%s”,ga、vexs[t]、name); printf(”\n请输入景点简介:”); scanf("%s”,ga、vexs[t]、introduce); ﻩ} printf("\n请输入您要更新得边数"); scanf("%d",&changenum); ﻩwhile(changenum<0||changenum>ga、n) ﻩ{ ﻩﻩprintf("输入错误,请重新输入:”); ﻩ scanf("%d",&changenum); } ﻩprintf("\n请输入更新边得信息: \n”); for(i=1;i〈=changenum;i++) ﻩ{ ﻩﻩprintf(”\n修改得第%d条边得起点终点长度为:",i); scanf("%d %d %d",&v0,&v1,&distance); ﻩ m=locatevex(ga,v0); n=locatevex(ga,v1); ﻩﻩif(m>=0&&n>=0) ﻩﻩ{ ﻩﻩ ga、edges[m][n]=distance; ﻩga、edges[n][m]=ga、edges[m][n]; ﻩ} ﻩ} } int delvex(graph &ga) //删除顶点 { int i=0,j; int m,v; ﻩif(ga、n<=0) { printf(”图中已经无顶点"); ﻩreturn 1; } ﻩprintf("\n请输入要删除得景点编号:"); ﻩscanf(”%d”,&v); while(v<0||v〉ga、n) ﻩ{ printf("\n输入错误,请重新输入"); scanf("%d”,&v); } ﻩm=locatevex(ga,v); if(m<0) ﻩ{ ﻩprintf("此顶点%d已删除",v); ﻩreturn 1; ﻩ} ﻩfor(i=m;i〈ga、n-1;i++) { ﻩstrcpy(ga、vexs[i]、name,ga、vexs[i+1]、name); ﻩﻩstrcpy(ga、vexs[i]、introduce,ga、vexs[i+1]、introduce); } ﻩfor(i=m;i〈ga、n-1;i++) ﻩfor(j=0;j<ga、n;j++) ﻩ ﻩga、edges[i][j]=ga、edges[i+1][j]; for(i=m;i<ga、n-1;i++) for(j=0;j<ga、n;j++) ﻩﻩﻩga、edges[j][i]=ga、edges[j][i+1]; ga、n--; ﻩ return 1; } int delarc(graph &ga) //删除边 { int m,n,v0,v1; ﻩif(ga、e<=0) ﻩ{ ﻩ printf("图中已经无顶边,无法删除"); ﻩ return 1; ﻩ} printf("\n请输入要删除得边得起点与终点得编号:"); scanf(”%d %d",&v0,&v1); m=locatevex(ga,v0); if(m〈0) ﻩ{ printf("此顶点%d已删除",v0); ﻩﻩreturn 1; } n=locatevex(ga,v1); ﻩ if(n<0) { ﻩprintf("此顶点%d已删除",v1); return 1; ﻩ} ga、edges[m][n]=1000; ga、edges[n][m]=1000; ﻩﻩ ga、e--; ﻩﻩ return 1; } int enarc(graph &ga) { int m,n,distance; printf("请输入边得起点与终点编号,权值:”); scanf(”%d %d %d”,&m,&n,&distance); while(m〈0||m>ga、n||n〈0||n>ga、n) { printf(”输入错误,请重新输入:"); ﻩscanf("%d %d",&m,&n); } if(locatevex(ga,m)<0) { ﻩprintf("此节点%d已经删除”,m); return 1; } if(locatevex(ga,n)〈0) { printf("此节点%d已经删除",n); return 1; } ga、edges[m][n]=distance; ga、edges[n][m]=ga、edges[m][n]; return 1; } int envex(graph &ga) //增加节点 { int i; printf("请输入增加节点得信息:"); ﻩprintf("\n编号:"); ﻩscanf("%d",&ga、vexs[ga、n]、num); printf("名称:"); ﻩscanf("%s",ga、vexs[ga、n]、name); ﻩprintf(”简介:”); scanf("%s",ga、vexs[ga、n]、introduce); ga、n++; for(i=0;i<ga、n;i++) { ﻩﻩga、edges[ga、n-1][i]=1000; ﻩﻩga、edges[i][ga、n-1]=1000; ﻩ} return 1; } int changegraph(graph &ga) { int yourchoice; printf("\n请选择\n\n (1)删除结点 (2)删除边\n"); ﻩprintf("\n (3)增加结点 (4)增加边\n"); printf("\n (5)更新信息 (6)返回\n\n” ); scanf(”%d",&yourchoice); ﻩprintf(”\n\n"); while(!(yourchoice==1||yourchoice==2||yourchoice==3||yourchoice==4||yourchoice==5||yourchoice==6) ﻩ printf("请重新输入:"); scanf("%d",&yourchoice); ﻩ} while(1) { switch(yourchoice) ﻩ { ﻩ case 1: delvex(ga); break; case 2: delarc(ga); break; case 3: envex(ga); break; ﻩ case 4: enarc(ga); break; case 5: newgraph(ga); break; case 6: return 1; ﻩ} ﻩprintf("\n请选择\n\n (1)删除结点 (2)删除边\n"); ﻩprintf("\n (3)增加结点 (4)增加边\n"); printf(”\n (5)更新信息 (6)返回\n\n" ); scanf("%d”,&yourchoice);printf(”\n\n"); while(!(yourchoice==1||yourchoice==2||yourchoice==3||yourchoice==4||yourchoice==5||yourchoice==6)) ﻩ{ ﻩ printf("请重新输入:"); scanf(”%d",&yourchoice); } } return 1; } void mainwork() { int yourchoice; ﻩgraph ga; initgraph(&ga); printf("\n—--—----—--—-—---—-—-——欢迎使用校园导游程序-————---—----—---—-- \n"); ﻩprintf(” 欢迎来到福建工程院 \n\n”); ﻩprintf(”\n 菜单选择 \n"); printf(" 1、学校景点介绍 2、 查询景点间所有路径 \n"); printf(” 3、改图 4、查询景点间最短路径 \n"); ﻩp- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 校园 导航
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文