基于C语言的数字校园问题

上传人:M****1 文档编号:512031195 上传时间:2023-08-17 格式:DOCX 页数:19 大小:132.23KB
返回 下载 相关 举报
基于C语言的数字校园问题_第1页
第1页 / 共19页
基于C语言的数字校园问题_第2页
第2页 / 共19页
基于C语言的数字校园问题_第3页
第3页 / 共19页
基于C语言的数字校园问题_第4页
第4页 / 共19页
基于C语言的数字校园问题_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《基于C语言的数字校园问题》由会员分享,可在线阅读,更多相关《基于C语言的数字校园问题(19页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告 报告名称:基于C语言的数字校园问题姓名: 学号:【摘要】本文利用C语言,设计了一个可供游人查询校园内道路选择的系统,可以查询查询图中任意两个地点间的所有路径,并求出最短路径,同时增加、删除、更新有关地点和道路的信息。通过模拟得到测试结果。关键词:数字校园、最短路径一、设计目标 事实上,如果是初来乍到的人到电子科大来,难免会遇到迷路或者不知道走哪条路最近的问题。本设计就是为了到达给他们提供这样信息的目的,设计一个方便查询各地点路径的系统。即设计一个简易的数字校园系统,实现道路的选择。二、设计要求设计一个系统,要求完成以下功能:1、查询各地点的相关信息 2、查询图中任意两个地点间的最

2、短路径。 3、查询图中任意两个地点间的所有路径。 4、增加、删除、更新有关地点和道路的信息。为了到达这些功能,我们可以将宿舍楼,教学楼,主楼,图书馆,食堂,超市,等等作为节点,各节点之间有道路相连,每条道路有长度,那么问题转化为最优路线规划问题。因为在学校里面,人流量不算很多,车流量也可以得到控制,行人的出行根本不受干扰,那么可以忽略人流量的问题。那么我们需要做的工作是:1、输出顶点信息:将校园内各位置输出。2、输出边的信息:将校园内每两个位置假设两个位置之间有直接路径的距离输出。3、修改:修改两个位置假设两个位置之间有直接路径的距离,并重新输出每两个位置假设两个位置之间有直接路径的距离。4、

3、求最短路径:输出给定两点之间的最短路径的长度及途径的地点或输出任意一点与其它各点的最短路径。5、删除:删除任意一条边。6、插入:插入任意一条边。三、程序功能1、查询地点的信息 2、查询任意两地点之间的最短路径及路径长度。 3、查询任意两地点之间的所有路线。 4、在已有的校园导游图中添加新的地点及该地点到其他景点的路径长度。5、在已有的校园导游图中删除已有的地点及以该地点为端点的路径。 6、修改已有校园导游图中的任意一个地点的名称和地点信息或任意一条路径的长度。7、重新创立一个新的学校的导游图。四、系统设计1、系统总图 图1该程序运用数据结构中的图的邻接表的存储方式用顶点来存储地点的名称和地点信

4、息等用边来存储路径的长度等信息。之后以有向图的邻接矩阵的方式用Dijkstra算法来求图的最短路径问题以及图的遍历来求两点间的所有路径问题。最后用图的添加、删除、修改等根本操作完成对校园导游图的修改和重新创立。2、程序设计#include stdio.h #include stdio.h #include malloc.h #include stdlib.h #define Max 20000 typedef struct ArcCell int adj; /* 相邻接的地点之间的路程 */ ArcCell; /* 定义边的类型 */ typedef struct VertexType int

5、 number; /* 地点编号 */ char sight100; /* 地点名称 */ char description1000; /* 地点描述 */ VertexType; /* 定义顶点的类型 */ typedef struct VertexType vex20; /* 图中的顶点即为地点 */ ArcCell arcs2020; /* 图中的边即为地点间的距离 */ int vexnum,arcnum; /* 顶点数边数 */ MGraph; /* 定义图的类型 */ MGraph G; /* 把图定义为全局变量 */ char nameofschool100; int NUM=9

6、; int P2020; /* */ int p20;/*全局数组用来存放路径上的各顶点*/ int visited20;/*全局数组用来记录各顶点被访问的情况*/ int a=0;/*全局变量用来记录每对顶点之间的所有路径的条数*/ long int D20; /* 辅助变量存储最短路径长度 */ int x20=0; void CreateUDN(int v,int a); /* 造图函数 */ void narrate(); /*说明函数*/ void ShortestPath(int num); /*最短路径函数*/ void output(int sight1,int sight2)

7、; /*输出函数*/ char Menu(); /* 主菜单 */ void search(); /* 查询地点信息 */ char SearchMenu(); /* 查询子菜单 */ void HaMiTonian(int); /* 哈密尔顿图的遍历 */ void Searchpath1(MGraph g);/*查询两个地点间的所有路径*/ void disppath(MGraph g,int i,int j); void path(MGraph g,int i,int j,int k);/*确定路径上第k+1个顶点的序号*/ void NextValue(int); void displ

8、ay(); /* 显示遍历结果 */ int Addnewsight(int n); /*添加新的地点和路径*/ int Deletesight(int n); /*删除地点和路径*/ void Changesight(); /*修改地点和路径*/ char Changemenu(); /*修改路径或顶点的选择菜单*/ char Sightmenu(); /*选择需该地点的菜单*/ void NewCreateUDN(); /*创立新的导游图*/ void main() /* 主函数 */ int v0,v1; char ck; system(color 2); CreateUDN(NUM,1

9、1); do ck=Menu(); switch(ck) case 1: search(); break; case 2: system(cls); narrate(); printf(nnttt请选择起点地点0%d,NUM-1); scanf(%d,&v0); printf(ttt请选择终点地点0%d,NUM-1); scanf(%d,&v1); ShortestPath(v0); /* 计算两个地点之间的最短路径 */ output(v0,v1); /* 输出结果 */ printf(nntttt请按任意键继续.n); getchar(); getchar(); break; case 3

10、: system(cls); narrate(); x0=1; Searchpath1(G); printf(nntttt请按任意键继续.n); getchar(); getchar(); break; case4: system(cls); narrate(); NUM=Addnewsight(NUM); system(cls); narrate(); break; case5: NUM=Deletesight(NUM); break; case6: Changesight(); break; case7: NewCreateUDN(); break; ; while(ck!=e); cha

11、r Menu() /* 主菜单 */ char c; int flag; do flag=1; system(cls); narrate(); printf(ntttn); printf(ttt n); printf(ttt 1、查询地点信息 n); printf(ttt 2、查询两地点间最短路径 n); printf(ttt 3、查询两地点间所有路线 n); printf(ttt 4、添加新的地点和路径 n); printf(ttt 5、删除已有地点和路径 n); printf(ttt 6、修改已有地点和路径 n); printf(ttt 7、创立新的校园导游图 n); printf(ttt

12、 e、退出 n); printf(ttt n); printf(tttn); printf(tttt请输入您的选择); scanf(%c,&c); if(c=1|c=2|c=3|c=4|c=5|c=6|c=7|c=e) flag=0; while(flag); return c; char SearchMenu() /* 查询子菜单 */ char c; int flag; do flag=1; system(cls); narrate(); printf(ntttn); printf(ttt n); printf(ttt 1、按照地点编号查询 n); printf(ttt 2、按照地点名称查询 n); printf(ttt e、返回 n); printf(ttt n); printf(tttn

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板/表格 > 财务表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号