社会网络分析系统的设计和实现数据结构课程设计.doc
文本预览下载声明
上海电力学院
数据结构(C++)课程设计
题 目: 综合实验16
社会网络分析系统的设计和实现(*)
目 录
一、 设计题目 1
二、需求分析 1
1)运行环境(软、硬件环境) 1
2)输入的形式和输入值的范围 1
3)输出的形式描述 1
4)功能描述 1
5)测试数据 2
三、概要设计 2
1)抽象数据类型定义描述 2
2)功能模块设计(如主程序模块设计) 5
3)模块层次调用关系图 5
四、详细设计 6
五、调试分析 12
? 问题改进补充 12
? 算法的时间空间复杂性分析 14
? 心得体会 14
六、测试结果 15
七 、附录:程序设计源代码 16
设计题目
社会网络分析系统的设计和实现
二、需求分析
1)运行环境(软、硬件环境)
软件:Microsoft Visual C++ 6.0
硬件:能运行Microsoft Visual C++ 6.0的硬件平台
如CPU:Intel 酷睿i3 3217UWindows 7
2)输入的形式和输入值的范围
数据类型: 整型(int)、字符型(char)
范围:
总人数(1~100)
人员名称(A~Z)
人员数字代码(1~100)
关系总数(1~100)
某条关系(人员数字代码 人员数字代码 权值)注:权值(1~100)即email数据
举例:总人数8个、人员名称ABCDEFGH、人员数字代关系总数15条、具体某一条关系1 2 9。
3)输出的形式描述
1. 该社会网络的邻接矩阵
2. 该社会网络中的核心人物、活跃人物、边缘人物
3. 该社会网络中的小团体、桥接人物
4. 查找任何人的交往圈子
4)功能描述
对email数据进行预处理,利用数据结构课程中图中的理论,建立社会网络的邻接矩阵。
利用度的概念,找出社会网络中核心人物、活跃人物和边缘人物。
利用子图概念,分析社会网络的结构,找出小团体和联系小团体的桥接人物。
能查找任何人的交往圈子。
5)测试数据
三、概要设计
1)抽象数据类型定义描述
(对各类的成员及成员函数进行抽象描述,参见书或ppt及ADT?Mgraph?isData
存放图中社会网络人物的数组存放图中社会网络人物的关系的数组图中人物总数vertexnum和关系总数,arcnum数组Operation
Mgraph (构造函数)初始化值:标志顶点访问的数组visited[i] 动作:,调用的创建函数reateHW。CreateHW(创建输入:前置条件:构造函数调用功能:创建输出:无后置条件:建立PrintGraph(输出邻接矩阵)
输入:无
前置条件:有向网已经建立Centre(核心人物)输入:无前置条件:建立功能:找出社会网络的核心人物输出:社会网络的核心人物后置条件:无Huoyue(活跃人物)
输入:无前置条件:建立功能:找出社会网络的活跃人物输出:社会网络的人物后置条件:无Bianyuan(边缘人物)输入:无前置条件:建立功能:找出社会网络的边缘人物输出:社会网络的人物后置条件:无输入:前置条件:建立功能:输出:指定的交往圈子后置条件:无输入:前置条件:建立功能:输出:后置条件:无输入:前置条件:建立功能:输出:后置条件:无DFS(小团体)
输入:无前置条件:建立功能:从指定的顶点开始进行深度遍历进行深度遍历输出:输出后置条件:对访问过的顶点置1输入:无前置条件:建立功能:从指定的顶点开始进行深度遍历输出:后置条件:无raph
2)功能模块设计(如主程序模块设计)
1. 主程序模块:连接各种功能子模块,完成程序的基本操作实现功能
2. 构造社会网络模块:按照要求构建有向网
3. 输出邻接矩阵模块:根据用户输入的社会网络,输出该网络图的邻接矩阵
4. 核心人物模块:根据用户输入的社会网络,计算得出该社会网络中的核心人物
5. 活跃人物模块:根据用户输入的社会网络,计算得出该社会网络中的活跃人物
6. 边缘人物模块:根据用户输入的社会网络,计算得出该社会网络中的边缘人物
7. 交往圈子模块:根据用户输入的社会网络,计算得出该网络中指定人物的交往圈子
8. 人物两两联系数模块:根据用户输入的社会网络,返回指定人员两两间的联系数
9. 判断边缘人物模块:根据用户输入的社会网络,返回边缘人物的数字代码
10. 小团体模块:根据用户输入的社会网络,深度优先遍历得出该网络中的所有小团体
11. 桥接人物模块:根据用户输入的社会网络,深度优先遍历得出小团体间的桥接人物
3)模块层次调用关系图
详细设计
实现概要设计中定义的所有的类的定义及类中成员函数,并
显示全部