没有合适的资源?快使用搜索试试~ 我知道了~
08_1951096_蓝笙聆1
需积分: 0 0 下载量 151 浏览量
2022-08-08
20:20:38
上传
评论
收藏 480KB DOCX 举报
温馨提示
试读
35页
项目说明文档项目说明文档项目说明文档项目说明文档数据结构课程设计——电网建设造价模拟系统数据结构课程设计——电网建设造价模拟系统数据结构课程设计——电网建设造价
资源详情
资源评论
资源推荐
二○二○年十二月
项目说明文档
数据结构课程设计
——电网建设造价模拟系统
培养单位:软件学院
本 科 生:蓝 笙 聆
学 号:1951096
指导老师:张 颖
目录
I
目录
第 1 章 分析 .......................................................................................................................................................1
1.1 背景分析 .............................................................................................................................................1
1.2 功能分析 .............................................................................................................................................1
第 2 章 设计 .......................................................................................................................................................2
2.1 数据结构设计 ....................................................................................................................................2
2.2 类结构设计.........................................................................................................................................2
2.3 成员与操作设计................................................................................................................................2
2.4 系统设计 .............................................................................................................................................4
第 3 章 实现 .......................................................................................................................................................5
3.1 插入点功能的实现...........................................................................................................................5
3.1.1 插入点功能流程图 ..............................................................................................................5
3.1.2 插入点功能核心代码..........................................................................................................5
3.1.3 插入点功能截屏示例..........................................................................................................7
3.2 插入边功能的实现...........................................................................................................................8
3.2.1 插入边功能流程图 ..............................................................................................................8
3.2.2 插入边代码实现...................................................................................................................8
3.2.3 插入边功能截屏示例 .......................................................................................................10
3.3 删除点功能的实现.........................................................................................................................10
3.3.1 删除点功能流程图............................................................................................................10
3.3.2 删除点代码实现.................................................................................................................11
3.3.2 删除点功能截屏示例 .......................................................................................................12
3.4 删除边功能的实现.........................................................................................................................12
3.4.1 删除边功能流程图............................................................................................................12
3.4.2 删除边代码实现.................................................................................................................13
3.4.3 删除边功能截屏示例 .......................................................................................................15
3.5 Prim 算法生成最小生成树功能的实现 ....................................................................................16
3.5.1 Prim 算法生成最小生成树功能流程图........................................................................16
3.5.2 Prim 算法生成最小生成树功能代码实现 ...................................................................16
3.5.3 Prim 算法生成最小生成树功能截屏示例 ...................................................................18
3.6 Kruskal 算法生成最小生成树功能的实现 ...............................................................................19
3.6.1 Kruskal 算法生成最小生成树功能流程图...................................................................19
3.6.2 Kruskal 算法生成最小生成树功能代码实现 ..............................................................19
3.6.3 Kruskal 算法生成最小生成树功能截屏示例 ..............................................................21
3.7 总体系统的实现 .............................................................................................................................22
3.7.1 总体系统流程图.................................................................................................................22
3.7.2 总体系统代码实现............................................................................................................22
3.7.3 总体功能截屏示例............................................................................................................25
第 4 章 测试.....................................................................................................................................................26
目录
II
4.1 功能测试...........................................................................................................................................26
4.1.1 插入点功能测试.................................................................................................................26
4.1.2 插入边功能测试.................................................................................................................26
4.1.3 删除点功能测试.................................................................................................................27
4.1.4 删除边功能测试.................................................................................................................27
4.1.5 Prim 算法生成最小生成树功能测试 ............................................................................28
4.1.6 Kruskal 算法生成最小生成树功能测试 .......................................................................28
4.2 边界测试...........................................................................................................................................29
4.2.1 删除最后一个点.................................................................................................................29
4.2.2 对唯一一个点生成最小生成树 .....................................................................................29
4.3 出错测试...........................................................................................................................................30
4.3.1 删除点不存在 .....................................................................................................................30
4.3.2 插入点已存在 .....................................................................................................................30
4.3.3 删除边不存在 .....................................................................................................................30
4.3.4 插入边已存在 .....................................................................................................................31
4.3.5 对空图生成最小生成树...................................................................................................31
4.3.6 对非连通图生成最小生成树..........................................................................................31
4.3.7 操作码错误..........................................................................................................................32
第 1 章 分析
1
第 1 章 分析
1.1 背景分析
假设一个城市有 n 个小区,要实现 n 个小区之间的电网都能够相互接通,构
造这个城市 n 个小区之间的电网,使总工程造价最低。请设计一个能够满足要
求的造价方案。
随着计算机科学技术的不断成熟,使用电网造价模拟系统进行模拟,具有手
工计算所无法比拟的优势。这些优点能够极大地提高效率,也是社会走向信息
化、科学化、国际化的重要条件。因此,开发一套电网造价模拟系统具有十分
重要的意义。
1.2 功能分析
作为一个最简易的电网造价模拟系统,在每个小区之间都可以设置一条电网
线路,都要付出相应的经济代价。n 个小区之间最多可以有 n(n-1)/2 条线路,
选择其中的 n-1 条使总的耗费最少。
第 2 章 设计
2
第 2 章 设计
2.1 数据结构设计
如上功能分析所述,该系统要求作图并生成最小生成树,故考虑使用图。
2.2 类结构设计
经典的图一般包括三个抽象数据类型(ADT)——图类(Graph <T>)、点类
(Vertex <T>)与边类(Edge <T>),而三个类之间的耦合关系可以采用嵌套、
继承等多种关系。为方便处理,本系统采用模板 struct 结构体描述树点类(Vertex
<T>)与边类(Edge <T>),这样使得图类(Graph <T>)可以访问链表结点。
2.3 成员与操作设计
点结构体(Vertex)
template <class T>
struct vertex {
T val;
vertex(const T& val) : val(val){};
vertex() : val(){};
bool operator==(const vertex& v2) const { return (this->val == v2.val); };
bool operator==(const T& v2) const { return (this->val == v2); };
bool operator!=(const vertex& v2) { return !(*this == v2); };
bool operator!=(const T& v2) { return !(*this == v2); };
bool operator<(const vertex& v2) const { return (this->val < v2.val); };
bool operator>(const vertex& v2) const { return (this->val > v2.val); };
void operator=(const vertex& v2) { this->val = v2.val; };
void operator=(const T& v2) { this->val = v2; };
};
边结构体(Edge)
template <class T, class E>
struct edge {
剩余34页未读,继续阅读
CyberNinja
- 粉丝: 22
- 资源: 297
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0