校园导航课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

资料收集于网络,如有侵权请联系网站删除

数据结构课程设计

资料收集于网络,如有侵权请联系网站删除

分工协作说明

蚌埠学院计算机科学与技术系课程设计任务书

目录

1 引言 (6)

1.1 问题的提出 (6)

1.2任务与功能简介 (6)

1.2.1任务 (6)

1.2.2功能简介 (6)

2 程序运行平台 (8)

3 总体设计与模块分析 (9)

3.1抽象数据类型定义 (9)

3.2主程序模块的整体流程 (9)

3.3各模块调用和函数关系如下 (9)

4 程序的主要功能实现 (11)

4.1 main()——主函数 (11)

4.2赋值init函数 (12)

4.3输出蚌埠学院校园导航平面图的map函数 (15)

4.4菜单menu函数 (16)

4.5输出地点信息的information函数 (16)

4.7输出路径way函数 (18)

4.8调用floyd和way的最短路径shortestpath算法 (20)

5系统测试 (21)

5.1系统运行后主界面 (21)

5.2查询最短路径 (22)

5.3查询地点信息 (23)

致谢 (26)

参考文献 (27)

附录 (28)

1 引言

为了加深对《数据结构》这一课程所学内容的进一步理解与巩固,我们这一组按课程设计要求完成了校园导航系统的设计。

1.1 问题的提出

我们这次基于对导航这个热门问题的研究设计了简易校园导航系统,我们的导航平面图中至少包括8个以上校园的场所,每两个场所间可以有不同的路,且路长也可能不同,给出校园各主要建筑的名称信息及有线路联通的建筑之间的距离,利用校园导航系统计算出给定的起点到终点之间的最近距离及线路。本导航系统能够很好的向同学们提供距离与地点的详细信息。

1.2任务与功能简介

1.2.1任务

(1)本次作业的核心是利用弗洛伊德算法计算给定有向网中两点最短距离;给出有向网中所要求点的信息。在调试过程中,除了简单语法错误外,就是对弗洛伊德算法的理解和实现,以及菜单的设置,这是我以前没有实现过的。出于简单化,并没有对有向图中各个点进行输入,而是在程序中直接赋值。

(2)在对各个功能操作的实现上,由于有弗洛伊德算法时间复杂度大多数是O(n3),空间上增加了二维数组,空间复杂度为O(n+s)。

1.2.2功能简介

程序所能达到的功能:

(1) map——输出蚌埠学院导航平面图。

(2) init()——按相应编号输入各个节点内容,对相应路径赋值的函数。

(3) menu()——菜单函数

(4) information()——输出简介的函数

(5) way()——最短路径的输出函数

(6) shortestpath()——调用弗洛伊德和最短路径输出的函数

(7) main()——主函数

2 程序运行平台

本次课程设计我们采用的运行平台是 visual C++6.0,该平台是由Visual C++6.0由Microsoft开发, 它不仅是一个C++编译器,而且是一个基于Windows 操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。

3 总体设计与模块分析

3.1抽象数据类型定义

有向网节点结构体类型

typedef struct

{

char name[10] ;

int number;

char introduce[100];

}vertex;

3.2主程序模块的整体流程

1、进入主函数,调用init,map和menu函数。

2、选择“s”,调用shortestpath函数,并同时调用floyd和way函数。并返回调用menu函数。

3、选择“i”,调用information函数。并返回调用menu函数。

4、选择“e”,退出。

3.3各模块调用和函数关系如下

4 程序的主要功能实现

4.1 main()——主函数

是程序执行的入口,主函数用于使用者便于使用者选择使用导航系统的功能int main()/*主函数*/

{

char i;

printf("\t\t\t欢迎使用蚌埠学院校园导航系统\n\n");

init();

map();/*输出地图,提示使用者*/

while (1)

{

i=menu();

switch(i)

{

case 's':shortestpath();break;

case 'i':information();break;

case 'e':printf("\n\n\n\t\t\t\t谢谢使用!\n");return 0;

default :printf("输入错误!\n");break;

}

}

}

相关文档
最新文档