《算法与数据结构课程设计 报告.docx》由会员分享,可在线阅读,更多相关《算法与数据结构课程设计 报告.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、算法与数据结构课程设计 报告 算法与数据结构课程设计报告 课程设计题目:图的基本操作及应用 数据结构课程设计是在学完数据结构课程之后的实践教学环节。 本实践教学 是培养学生数据抽象能力, 进行复杂程序设计的训练过程。 要求学生能对所涉及 问题选择合适的数据结构、 存储结构及算法, 并编写出结构清楚且正确易读的程 序,提高程序设计基本技能和技巧。 一设计目的 1提高数据抽象能力。根据实际问题,能利用数据结构理论课中所学到的 知识选择合适的逻辑结构以及存储结构,并设计出有效解决问题的算法。2提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的 正确性。学会有效利用基本调试方法,迅速找出程
2、序代码中的错误并且修改。3初步了解开发过程中问题分析、整体设计、程序编码、测试等基本方法 和技能。 二设计任务 设计一个基于 DOS 菜单的应用程序。要利用多级菜单实现各种功能。内容 如下: 1无向图的基本操作及应用 创建无向图的邻接矩阵 创建无向图的邻接表 无向图的深度优先遍历 无向图的广度优先遍历 2有向图的基本操作及应用 创建有向图的邻接矩阵 创建有向图的邻接表 拓扑排序 3无向网的基本操作及应用 创建无向网的邻接矩阵 创建无向网的邻接表 求最小生成树 4有向网的基本操作及应用 创建有向网的邻接矩阵 创建有向网的邻接表 关键路径 单源最短路径 三设计指导 第一步:根据设计任务,设计 DO
3、S菜单。 第二步:设计菜单(c语言) #include void ShowMainMenu() printf(n); printf(* 图的基本操作及应用 *n); printf(* 1 无向图的基本操作及应用*n); printf(* 2 有向图的基本操作及应用 *n); printf(* 3 无向网的基本操作及应用 *n); printf(* 4 有向网的基本操作及应用 *n); printf(* 5 退出 n); printf(*n); void UDG() int n; do printf(n); printf(* 无向图的基本操作及应用 *n); printf(* 1 创建无向图的邻
4、接矩阵 *n); printf(* 2 创建无向图的邻接表 *n); printf(* 3 无向图的深度优先遍历 *n); printf(* 4 无向图的广度优先遍历 *n); printf(* 5 退出 n); printf(*n); printf( 请选择: ); scanf(%d,&n); switch(n) case 1: printf(-wait-);break; case 2: printf(-wait-);break; case 3: printf(-wait-);break; case 4: printf(-wait-);break; case 5:break; default
5、: printf(ERROR!); while(n!=5); void DG() int n; do printf(n); printf(* 有向图的基本操作及应用*n); printf(* 1 创建有向图的邻接矩阵 *n); printf(* 2 创建有向图的邻接表 *n); printf(* 3 拓扑排序 *n); printf(* 4 退出 *n); printf(*n); printf( 请选择: ); scanf(%d,&n); switch(n) case 1: printf(-wait-);break; case 2: printf(-wait-);break; case 3:
6、printf(-wait-);break; case 4:break; default: printf(ERROR!); while(n!=4); void UDN() int n; do printf(n); printf(* 无向网的基本操作及 *n); printf(* 1 创建无向网的邻接矩阵 *n); printf(* 2 创建无向网的邻接表 *n); printf(* 3 Prim 算法求最小生成树 *n); printf(* 4 kraskal 算法求最小生成树 *n); printf(* 5 退出 n); printf(*n); printf( 请选择: ); scanf(%d
7、,&n); switch(n) case 1: printf(-wait-);break; case 2: printf(- -wait-);break; case 3: printf(-wait-);break; case 4: printf(-wait-);break; case 5:break; default: printf(ERROR!); while(n!=5); void DN() int n; do printf(n); printf(* 有向网的基本操作 *n); printf(* 1 创建有向网的邻接矩阵 *n); printf(* 2 创建有向网的邻接表 *n); pri
8、ntf(* 3 关键路径 *n); printf(* 4 单源顶点最短路径问题 *n); printf(* 5 退出 n); printf(*n); printf( 请选择: ); scanf(%d,&n); switch(n) case 1: printf(-wait-);break; case 2: printf(-wait-);break; case 3: printf(-wait-);break; case 4: printf(-wait-);break; case 5:break; default: printf(ERROR!); while(n!=5); void main() i
9、nt n; do ShowMainMenu(); printf( 请选择: ); scanf(%d,&n); switch(n) case 1:UDG();break; case 2:DG();break; case 3:UDN();break; case 4:DN();break; case 5:break; default:printf(ERROR!);break; while(n!=5); 第三步: 添加功能函数。 在主程序的合适位置添加相应的函数实现各功能(提示: 语句 printf( “ -wait- ” ) 所在位置) 。 四成绩评定 实习报告(文字不得少于 4000 字) 一、 设计方案; 二、 实现过程; 三、 实现代码; 四、 测试;