欢迎来到文档下载导航网!

交通指南系统实验报告..docx

时间:2020-11-14|当前位置:首页 > 应用文档 > 报告/分析 > |用户下载:

交通指南系统实验报告..docx


本文档部分文本预览

PAGE 郑州轻工业大学本科 数据结构课程设计 总结报告 设计题目:交通指南系统 学生姓名: 育人 系 别: 专 业:计算机科学与技术 班 级: 学 号: 指导教师: 2020 年 6 月 2 日 所选题目 交通指导系统 系统需求 1.实验目的: 掌握图的存储、构建、搜索等操作和应用,能用最短路径及其搜索等算法编制较综合性的程序,求解最优路线问题,进行程序设计、数据结构和算法设计等方面的综合训练。 2.问题描述: 假设以一个带权有向图表示某一区域的公交线路图,图中顶点代表一些区域中的重要站点,弧代表已有的公交路线,弧上的权表示该路线上的票价(或搭乘所需时间),设计一个交通指南系统,指导前来咨询者以最低的票价或最少的时间从区域中的某一站点到达另一站点。 3.设计要求: (1)设计结点和图的存储结构。 (2)设计任意两点最短路径方法。 (3)输入:图的相关信息以建立公交线路网,以及公交线路网咨询的任意两个站点。 (4)输出:两个站点间一条最短的简单路径。 参考信息如下: 弧 1 2 3 4 5 6 7 8 9 10 11 票价 (元) 12 8 6 5 8 7 5 6 10 6 8 时间 (分钟) 20 9 11 13 18 7 7 5 9 8 15 系统设计 主要程序模块: void Old_Map(); 当有地图数据时,调用此函数 void New_Map(); 当无地图数据时,调用此函数 void Floyd(int (*e)[max_element],double (*t)[max_element], int n); 计算最短路径 int e[max_element][max_element]; 用来保存地图的的顶点与路径的长度的数组 int path_e[max_element][max_element], 保存地图中各最短路径的顶点的选择的数组 int path_t[max_element][max_element]; 保存地图中各最短用时的顶点的选择的数组 double t[max_element][max_element]; 保存地图的顶点到顶点间的时间的数组 系统实现 图一:输入地图数据 图二:显示顶点个数 图三:计算最低票价 图四:计算最短时间 运行结果分析 本次测试的的数据是随机设置的,通过程序的运行结果看是比较成功的。通过测试结果可以看出,基本实现了实验的要求和目的,最终结果是比较正确的。我们也进行了大量的测试,目前来看最后结果没有出错,最终方案简单明了的呈现出来,这说明我们的代码还是比较正确的。 收获及体会附:程序的源代码 #include #include #include #define inf#define max_element 50 int p[max_element][max_element]; //保存地图的数组 double t[max_element][max_element]; //保存地图的时间 int path_p[max_element][max_element], path_t[max_element][max_element];//保存地图的路径 void Menu(); void Old_Map(); void New_Map(); void Floyd(int (*p)[max_element],double (*t)[max_element], int n); //计算最短路径 void Floyd_price(int (*p)[max_element], int n, int start, int end); void Floyd_time(double (*t)[max_element], int n, int start, int end); int main(){system("color E0");int Mu=5;Menu();while(scanf("%d", &Mu), Mu!=0){switch(Mu){case 1: Old_Map();break;case 2: New_Map();break;case 3: system("cls");break;default:printf("\n格式错误,请输入正确指令!!!");break;}Menu();}printf("\n退出成功!");return 0; } void Menu(){//页面printf("");printf("\n 选择使用已保存的地图:1");printf("\n\n 选择重新录入地图信息:2\n");printf("\n 清屏:3\n");printf("\n 退出:0\n");printf("\n"); } void Old_Map(){//使用原有地图int i, j;FILE *fp;int count = 0;//读入文档count.txtif((fp=fopen("count.txt","r")) == NULL){printf("File open failed!\n");exit(0);}fscanf(fp,"%d", &count);fclose(fp);printf("顶点个数 == %d\n", count);if(count == 0 ){printf("\n信息读入错误!!\n错误原因:没有已保存的地图,请选择重新输入地图信息!!\n");return ;}///读入文档map_price.txtif((fp=fopen("map_price.txt","r")) == NULL){printf("File open failed!\n");exit(0);}for(i = 1; i <= count; i++)for(j = 1; j <= count; j++){fscanf(fp,"%d", &p[i][j]);}fclose(fp);///读入文档map_time.txtif((fp=fopen("map_time.txt","r")) == NULL){printf("File open failed!\n");exit(0);}for(i = 1; i <= count; i++)for(j = 1; j <= count; j++){fscanf(fp,"%lf", &t[i][j]);}fclose(fp);Floyd(p,t, count); } void New_Map(){//新录入地图//map数组初始化int i, j;for(i = 0; i < max_element; i++ )for(j = 0; j < max_element; j++)if(i == j){p[i][j] = 0;t[i][j] = 0;}else {p[i][j] = inf;t[i][j] =

继续预览文档剩余内容

温馨提示:本页预览文本内容并非错乱,是从文档中提取部分无格式预览!如您需要正常预览文档全文,请点击下方按钮↓↓↓

上一篇:斗式提升机培训通用.ppt

栏    目:报告/分析

下一篇:2020学校安全自查报告范文.doc

本文标题:交通指南系统实验报告..docx

本文地址:https://www.365weibook.com/html/20201114/282576.html

    正常预览或下载提示:

    本页面文档预览是由服务器自动提取的部分内容,并不是文档错乱。如您需要预览全文或下载文档,请点击页面左侧(点击去预览文档全文或下载文档)按钮,进行全文预览或下载。

推荐下载

联系我们 | 广告投放 |网站地图

免责申明:本网站不提供任何形式的下载服务,因此与之有关的知识产权纠纷本网站不承担任何责任。

如果侵犯了您的权利,请与我们联系,我们将进行删除处理。