课程设计

本次课程设计旨在通过设计数据结构和算法解决校园内的最短路径问题。学生需要根据学校平面图,构建图的抽象数据类型,实现Dijkstra算法,找到任意两点间的最短路径。此外,系统还允许对图进行修改,如顶点和边的增删。在开发过程中,学生将提高分析、设计和软件开发技能,同时加深对数据结构和算法的理解。
摘要由CSDN通过智能技术生成

一、课程设计目的和要求

(1)目的

1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 

3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 

4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所具备的科学工作方法和作风。

(2)要求

现请根据学校的平面图,找出一些重要的场所,画出学校的平面图(场所可以根据其重要性适当减少),根据实际画出不同点间的路径,并估算每两个场所间的路径长。请设计数据结构并编程,当给出一个出发点和要到达另外一个场所的信息时,请给出最佳路径,并输出路径相关信息。

 

二、系统开发相关情况

(一)开发背景

GDOU是真是一个好地方,校园如一座大花园,美丽而宽广。校园有许多建筑如教学楼、饭堂、宿舍楼、图书馆、体育馆、运动场、商业街、医院等,还有一些著名的风景点。现请根据学校的平面图,找出一些重要的场所,画出学校的平面图(场所可以根据其重要性适当减少),根据实际画出不同点间的路径,并估算每两个场所间的路径长。请设计数据结构并编程,当给出一个出发点和要到达另外一个场所的信息时,请给出最佳路径,并输出路径相关信息。

三、系统及需求分析

(一)需求分析

1、问题描述  图的最短路径问题是指从指定的某一点v开始,求得从该地点到图中其它各地点的最短路径,并且给出求得的最短路径的长度及途径的地点。除了完成最短路径的求解外,还能对该图进行修改,如顶点以及边的增删、边上权值的修改等。 

校园最短路径问题中的数据元素有:

 a)     顶点数

b)     边数

c)     边的长度

四 .逻辑结构设计

1.      抽象数据类型图的定义如下:

ADT Graph{  数据对象V:V是具有相同特性数据元素的集合,称为顶点集。

数据关系R: 

R={VR} 

VR={(v,w)| v , w∈V, (v , w)表示v和w之间存在路径}

基本操作P: 

CreatGraph(&G, V, VR) 

初始条件: V是图的顶点集,VR是图中边的集合。

操作结果: 按定义(V, VR) 构造图G。 

DestroyGraph(&G) 

初始条件: 图G已存在。

操作结果: 销毁图。  LocateVex(G, u)   

初始条件: 图G存在,u和G中顶点具有相同特征。 

操作结果: 若G中存在顶点u,则返回该顶点在图中“位置” ;

否则返回  其它信息。  GetVex(G, v)  

初始条件: 图G存在,v是G中某个顶点。

操作结果: 返回v的信息。  InsertVex(&G, v)  

初始条件: 图G存在,v和G中顶点具有相同特征。

操作结果: 在图G中增添新顶点v。 DeleteVex(&G, v) 

初始条件: 图G存在,v和G中顶点具有相同特征。

操作结果: 删除G中顶点v及其相关的边。 InsertArc(&G, v, w)  

初始条件: 图G存在,v和w是G中两个顶点。 

操作结果: 在G中增添弧<v,w>,若G是无向的,则还增添对称弧<w,v>。 DeleteArc(&G, v, w) 

初始条件: 图G存在,v和w是G中两个顶点。 

操作结果: 在G中删除弧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值