数据库数据结构实验三电力网络信息存储及导纳矩阵处理.doc

数据库数据结构实验三电力网络信息存储及导纳矩阵处理.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库数据结构实验三电力网络信息存储及导纳矩阵处理.doc

数据结构与数据库实验 仅供参考 实验三 电力网络信息存储及导纳矩阵处理 实验名称: 电力网络信息存储及导纳矩阵处理 专 业: 电气工程 姓 名: 学 号: 电力网络信息存储及导纳矩阵处理 实验要求 (1) 网络数据输入的内容包括节点信息和支路信息 (2) 可适合任意规模的网络 (3) 可查询节点、支路信息(根据节点名或支路名) (4) 形成导纳矩阵及输出 (5) 导纳矩阵稀疏处理 (6) 基于导纳矩阵的稀疏表示,获取 Yij (7) 测试数据 IEEE 5 节点网络 (8)选作内容 IEEE 14 节点网络。 二、 概要设计 1.采用的数据结构的定义及主要功能模块的功能: 在本实验中,导纳矩阵数据的输入采用文件流方式的读方式建立,输出采用文件流写方式输出,导纳矩阵数据的存储采用邻接表存储方式。为了适合任意规模的网络,导纳矩阵的建立采用动态创建方式,存储的物理结构为非连续存储,稀疏矩阵的压缩处理采用邻接表和三元组。对于矩阵的存储节点类以及支路信息节点类采用结构体template typename NameType,typename BDataTypestruct BusNode和template typename NameType,typename BDataTypestructBranchNode 定义,节点链表类为template typename NameType,typename BDataType, typename DataTypestruct SBusNode,支路节点链表类template typename NameType,typename BDataType,typename DataTypestruct SBranchNode,稀疏矩阵三元组类templatetypename Tstruct Twice,邻接表头指针节点类templatetypename T,typename DataTypestruct YNode,邻接表next域节点类templatetypename Tstruct YYNode,以上全为结构体定义,方便调用,稀疏矩阵采用模板类template typename NameType,typename BDataType,typename DataTypeclass Matrix。计算导纳模块牵涉到复数的运算,所以采用自定义复数类class Complex,并重载了+、+=、/、/=以及插入符等。 矩阵的建立分为节点信息矩阵的建立void CreatBusM(int n,int d[],char*filename)和支路信息矩阵的建立void CreatBranchM(int n,int d[],char*filename),相应的输出分为节点的输出void PrintBus()和支路信息的输出void PrintBranch(),输出的形式与文件中数据的存储形式类似。节点自导纳的创建分为稀疏矩阵的创建CreatSparseMatrix(int d[])以及压缩矩阵的创建MatrixY(int d[]),导纳矩阵输出为复数的输出,在复数类中重载了输出符,ostreamoperator(ostream out,Complexc) ,输出的形式分为两种,一种是矩阵形式输出,一种是只打印非零值的输出。 为了更好地体现类的封装性,在本实验中采用调用函数和执行函数分离的方式,可以使相关类的数据更加安全。如节点及支路信息的查询函数Search(),执行函数为支路查询函数void SearchBranch(int,int)和节点查询函数void SearchBus(int i,SBusNodeNameType,BDataType,DataType*BS),它们是私有函数,而在计算导纳时,真正的执行函数是void CaculateY(int,int),void Caculate()是用来调用它的接口函数。避免类的内容被篡改,使类的内容更加安全。 2、各个结构体及类的声明及其功能如下: 1、节点模板: template typename NameType,typename BDataTypestruct BusNode//节点 {//I: 节点编号 //Name:名称 //Type:节点类型 1=PQ 2:PV 3:SlackBus //V: 电压幅值 //cita:电压角度 //LP: 负荷P //LQ: 负荷Q NameType name1; int I1; int type1;

文档评论(0)

ygeorcgdw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档