- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
社会网络分析系统的设计和实现社会网络分析系统的设计和实现
上海电力学院
数据结构C++课程设计
题 目: 社会网络分析系统的设计和实现
学生姓名:
学 号:
院 系: 计算机与信息工程学院
专业年级: 信息安全 2010 级
2012 年 6 月 29 日
一、设计题目
社会网络分析系统的设计和实现
二、需求分析
1)运行环境(软、硬件环境)
软件:Microsoft Visual C++
硬件:Intel(R) Core(TM)2 Duo CPU
T6670 @2.20 GHz 2.00GB内存
2)输入的形式和输入值的范围
字符型数据 人数、关系数(0——100)
3)输出的形式描述
1. 该社会网络的邻接矩阵
2. 该社会网络中的核心人物、活跃人物、边缘人物
3. 该社会网络中的小团体以及桥接人物
4. 查找任何人的交往圈子
4)功能描述
(1)对email数据进行预处理,利用数据结构课程中图中的理论,建立社会网络
的邻接矩阵。
(2)利用度的概念,找出社会网络中核心人物、活跃人物和边缘人物。
(3)利用子图概念分析社会网络的结构,找出小团体和联系小团体的桥接人
物。
(4)能查找任何人的交往圈子
5)测试数据
三、概要设计
1)抽象数据类型定义描述
(对各类的成员及成员函数进行抽象描述,参见书或ppt及ADT?Mgraph?isData存放图中社会网络人物的数组存放图中社会网络人物的关系的数组图中人物总数和关系总数标记数组Operationraph初始化值:图中的人数关系数/存放图中的数组/标志顶点访问的数组动作:选择操作类型,调用图的创建函数。createUG输入:图中的顶点数(图中的人物数),图中的顶点的边(人员之间的相互联系)前置条件:构造函数调用功能:创建无向图输出:无后置条件:无向图建立Cent输入:无前置条件:无向图已经建立功能:找出社会网络的核心人物输出:社会网络的核心人物后置条件:无输入:无前置条件:无向图建立功能:找出社会网络的活跃人物输出:社会网络的活跃人物后置条件:无输入:无前置条件:无向图的建立功能:找出社会网络的边缘人物输出:社会网络的边缘人物后置条件:无raph输入:无前置条件:无向图建立功能:输出邻接矩阵输出:输出邻接矩阵后置条件:无DFSTraverse输入:无前置条件:无向图的建立,对标志数组进行初始化为0功能:从指定的顶点开始深度遍历输出:深度遍历序列,找出指定点的交往圈子后置条件:无DFS输入:无前置条件:无向图的建立,重新对数组进行置0处理功能:从指定的顶点开始进行深度遍历输出:输出连通图的序列后置条件:对访问过的顶点置1输入:无前置条件:无向图的建立,已对访问过的顶点功能:从指定的顶点开始进行深度遍历输出:已标记为1的顶点后置条件:无
四、详细设计
实现概要设计中定义的所有的类的定义及类中成员函数,并对主要的模块写出伪码算法。
//////////////////// 主程序模块
const int maxsize=100;
templateclass T
class Mgraph
{
public:
Mgraph(T a[],int n,int e);//构造函数,a[]表示数组,表示顶点的个数,e表示边数
void centre(int n);
void Pgraph();//输出
void huoyue(int n);
void DFSTraverse(int v);
void bianyuan(int n);
void DFS(int v);
void DFS2(int n);
private:
T vertex[maxsize];//顶点数组
int arc[maxsize][maxsize];//边数
int vertexnum,arcnum;//定点数,边数
void createUG(T a[],int n,int e);
int *visited;
};//////////////////////构造函数
templateclass T
MgraphT::Mgraph(T a[],int n,int e)
{
visited=new int[vertexnum];
for(int i=0;iv
文档评论(0)