校园导航系统

  • 格式:doc
  • 大小:396.57 KB
  • 文档页数:25

下载文档原格式

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

课程设计

课程名称软件工程

题目名称校园导航系统专业班级2012级网络工程应用学生姓名柴安康

学号 51202031022

指导教师储德锋

二○一五年六月一日

任务书

分工协作说明

目录

摘要 (5)

一、需求分析 (6)

(一)问题提出 (6)

(二)本系统所涉及的知识点 (6)

(三)功能以及要求 (6)

(四)概要设计 (7)

(五)软件功能描述 (7)

1、定义模块 (7)

2、导航图建立模块 (7)

3、求最短路径模块 (7)

4、主菜单 (7)

二、功能设计 (8)

(一)算法设计 (8)

1、程序所能达到的功能 (8)

2、输入的形式和输入值的范围 (8)

3、输出的形式 (8)

4、测试数据 (8)

(二)模块图 (9)

(三)校园平面图及相关景点信息的建立 (9)

三、程序代码设计 (10)

(一)有向网节点结构体类型定义: (10)

(二)主程序和其它主要函数伪码算法 (10)

1、主程序 (10)

2、赋值init函数 (11)

3、输出蚌埠学院平面图的map函数 (13)

5、输出地点信息的information函数 (13)

6、最短路径floyd函数 (14)

7、输出路径way算法 (15)

8、调用floyd和way的最短路径shortestpath算法 (15)

四、程序设计总结 (17)

调试结果 (17)

五、源代码 (19)

六、心得体会 (25)

参考文献 (25)

摘要

为了来访蚌埠学院的访客能够更方便的了解我校的景点,便于参观也减少导游人员的数量,于是编写了这个校园导航系统。这个程序的实现加深了对软件编译的了解及C++的巩固,同时为我校加快现代化,智能化进程贡献一份力,为全面建设蚌埠学院添砖加瓦。这个校园导航系统利用程序算法设计里的图来解决它将校园景点作为图的结点将景点间的路径作为图的边路径距离作为边的权值。这样一来求两景点间最短路径的问题就抽象成了求图中一结点到另一结点的问题。这也是计算机代替人工的一个实例也充分体现算法的重要体现。

关键词蚌埠学院,平面图,校园导航,软件编译,C++

一、需求分析

现在大学占地面积越来越大,建筑物越来越多,功能越来越多样,校内的道路也是纵横交错,校园导航系统可以帮助用户更加快速了解学校道路,建筑布局及建筑物的基本信息(用户主要是新生、家长、教职工等)在帮助用户了解学校道路、实现导航功能的基础上。校园导航还录入学校各个建筑物的信息,以便使用者更方便快捷地找到目的地。根据校园信息设计了学校的平面图,包括9个主要场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

基本要求

(1)设计校园平面图,在校园景点选8个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。

(2)为来访客人提供图中任意景点相关信息的查询。

(3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。

实现提示

一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。顶点和边均含有相关信息。

(一)问题提出

编写一个校园导航系统,主要是用来方便来访我校的访客能够更方便的了解我校的地图与位置。

(二)本系统所涉及的知识点

C++,模块,循环,函数,最短路径,矩阵

(三)功能以及要求

1、建立校园平面图,图中包括景点名称、代号、简介等信息;

2、输入景点名称可以知道该景点的相关信息;

3、输入两个景点的名称可以找出之间的具体线路和最短距离;

4、来访客人可根据系统任意景点相关信息的查询;

5、输出。

(四)概要设计

用图类的存储结构建立带权值的有向图,求两景点之间最短路径,输出图的临界矩阵。本次设计其实就是数据结构中图类的问题。将校园景点作为图的结点,将景点间的路径作为图的边,路径距离作为边的权值。这样一来,求两景点间最短路径的问题就抽象成了求图中一结点到另一结点的问题

(五)软件功能描述

1、定义模块

模块定义了导航图中各个节点的基本结构类型,主要采用邻接矩阵的存储结构来真实反映各节点到其他所有节点的路径长度(权值大小)。

2、导航图建立模块

采用上述结构体类型对导航图中每个节点进行赋值。包括:各定点的名称(地点名),各个节点到其他所有节点的真实路径长度(赋权值)。

3、求最短路径模块

本模块的基本思想是采用迪杰斯特拉算法求最短路径。次模块是本校园导航系统的核心模块,求两点间的最短路径与求一点到其他所有点最短路径两个子功能均是在最短路径算法模块的基础上进行调用,进而实现导航功能。4、主菜单

主菜单中主要是显示导航图中的所有导航节点,能够快速方便的对各个地点进行导航。

二、功能设计

(一)算法设计

1、程序所能达到的功能

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

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

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

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

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

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

(7)main()——主函数

2、输入的形式和输入值的范围

输入数字和字母:

字母:以s查询最短路径;以i查询信息;以e退出程序。

数字:从1到9输入。

3、输出的形式

从A到B得最短路径为:

A-到-C-到-D-到-B

最短距离为:xxx米。

4、测试数据

包括在正确的输入及输出结果及含有错误的输入及输出结果

当输入为:s 3 9

输出为:从教学楼到体育馆的最短路径为:

教学楼—图书馆—艺术楼—九十号男生宿舍

最短距离为:135米。

数据均为测试数据,与实际有误差,敬请谅解。

当输入为:i 1

输出为:名称:北门

简介:学校人最多的地方,小吃街,学生主要活动场所。

当输入为:e

输出为:谢谢使用!

当输入为:i 13

输出为:输入有误!请输入查询地点的编号: