1、 数据结构 C+课程设计 题 目: 社会网络分析系统的设计与实现 学生姓名: 学 号: 院 系: 计算机与信息工程学院 专业年级: 2012 年 6 月 29 日 一、设计题目 社会网络分析系统的设计和实现 二、需求分析 1)运行环境(软、硬件环境) 软件:Microsoft Visual C+ 硬件:处理器:Intel(R)Pentium(R)CPU 内存(RAM) :2.00GB 2)输入的形式和输入值的范围 1.以字符数据代表社会网络的人员 2.以整形数据代表社会网络人员的关系数(图的边数) 3.输入数值范围(1-100) 3)输出的形式描述 1.输出构建的邻接矩阵 2.输出核心人物、活
2、跃人物、边缘人物,小团体、桥接人物(字符形式) 4)功能描述 1.根据输入的数据构建无向图的连接矩阵,以无向图的边代表两点之间的联系 2利用度的概念,找出核心人物、活跃人物和边缘人物(规定度数大于所有顶点数一半 的为活跃人物,小于一半定点数的为边缘) 3利用子图,找出小团体的和联系小团体的桥接人。即在图中找出连通子图,凡是属于 不同连通子图的公共点都是桥接点。 4.能查找任何人的交往圈子,任意给出一顶点,找出该顶点所属的连通图,即为该人的交 往圈子。 5)测试数据 三、概要设计 1)抽象数据类型定义描述 (对各类的成员及成员函数进行抽象描述,参见书或 ppt 及实验) A A B B C C
3、D D E E ADT Graph is Data 存放图中顶点(社会网络人物)的数组 存放图中各顶点之间的边(社会网络人物的关系)的数组 图中人物总数和关系总数 标记数组 Operation Graph 初始化值:图中的人数关系数/存放图中的数组/标志顶点访问的数组 动作:选择操作类型,调用图的创建函数。 createUG 输入:图中的顶点数(图中的人物数) ,图中的顶点的边(人员之间的相互联系) 前置条件:构造函数调用 功能:创建无向图 输出:无 后置条件:无向图建立 Center 输入:无 前置条件:无向图已经建立 功能:找出社会网络的核心人物 输出:社会网络的核心人物 后置条件:无 A
4、ctive 输入:无 前置条件:无向图建立 功能:找出社会网络的活跃人物 输出:社会网络的活跃人物 后置条件:无 Border 输入:无 前置条件:无向图的建立 功能:找出社会网络的边缘人物 输出:社会网络的边缘人物 后置条件:无 PrintGraph 输入:无 前置条件:无向图建立 功能:输出邻接矩阵 输出:输出邻接矩阵 后置条件:无 DFSTraverse 输入:无 前置条件:无向图的建立,对标志数组进行初始化为 0 功能:从指定的顶点开始深度遍历 输出:深度遍历序列,找出指定点的交往圈子 后置条件:无 DFS 输入:无 前置条件:无向图的建立,重新对数组进行置 0 处理 功能:从指定的顶
5、点开始进行深度遍历 输出:输出连通图的序列 后置条件:对访问过的顶点置 1 Group 输入:无 前置条件:无向图的建立,已对访问过的顶点 功能:从指定的顶点开始进行深度遍历 输出:已标记为 1 的顶点 后置条件:无 2)功能模块设计(如主程序模块设计) 1.主程序模块:连接各种功能的子模块,完成需要的操作和实现的功能。 2.社会网络构建模块:按照相关步骤和要求构建无向图。 3.核心人物模块:根据用户的输入,构建的相关的无向图,由度的概念程序计算出网络的核 心人物。 4.活跃人物模块:根据用户的输入,构建相关的无向图,由度的概念程序计算出网络的活跃 人物。 5.边缘人物模块:根据用户的输入,构
6、建相关的无向图,由度的概念程序计算出网络的边缘 人物。 6.小团体模块:根据用户的输入,构建相关的无向图,由深度遍历程序输出遍历的序列即 为小团体。 3)模块层次调用关系图 四、详细设计 centecenter r rrrr borderborder activeactive DFSDFS DFSTraDFSTraverseverse printGraphprintGraph GraphGraph M Mainain()() 实现概要设计中定义的所有的类的定义及类中成员函数, 并对主要的模块写 出伪码算法。 1 1)对类的定义)对类的定义: templatetemplate class Graphclass Graph public:public: Graph(T a,int n,int e);/Graph(T a,int n,int e);/构造函数,构造函数,aa表示数组,表示顶点的个数,表示数组,表示顶点的个数