算法与数据结构课程设计 报告
课程设计题目:图的基本操作及应用
数据结构课程设计是在学完数据结构课程之后的实践教学环节。
本实践教学
是培养学生数据抽象能力,
进行复杂程序设计的训练过程。
要求学生能对所涉及
问题选择合适的数据结构、
存储结构及算法,
并编写出结构清楚且正确易读的程
序,提高程序设计基本技能和技巧。
一.设计目的
1.提高数据抽象能力。根据实际问题,能利用数据结构理论课中所学到的
知识选择合适的逻辑结构以及存储结构,并设计出有效解决问题的算法。
2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的
正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
3.初步了解开发过程中问题分析、整体设计、程序编码、测试等基本方法
和技能。
二.设计任务
设计一个基于
DOS
菜单的应用程序。要利用多级菜单实现各种功能。内容
如下:
1. 无向图的基本操作及应用
① 创建无向图的邻接矩阵
② 创建无向图的邻接表
③ 无向图的深度优先遍历
④ 无向图的广度优先遍历
2.有向图的基本操作及应用
①创建有向图的邻接矩阵
② 创建有向图的邻接表
③ 拓扑排序
3.无向网的基本操作及应用
① 创建无向网的邻接矩阵
② 创建无向网的邻接表
③ 求最小生成树
4.有向网的基本操作及应用
①
创建有向网的邻接矩阵
②
创建有向网的邻接表
③
关键路径
④
单源最短路径
三.设计指导
第一步:根据设计任务,设计
DOS菜单。
第二步:设计菜单(c语言)
#includestdio.h
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
创建无向图的邻接矩阵
*\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:
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(*
原创力文档

文档评论(0)