-
Notifications
You must be signed in to change notification settings - Fork 0
/
getData.cpp
153 lines (139 loc) · 4.22 KB
/
getData.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include "share.h"
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
ifstream input("nx_20150427_1355.txt",ios::in);
//指明数据所在位置
ofstream output1("busdata.txt",ios::ate);
ofstream output2("aclinedata.txt",ios::ate);
ofstream output3("toponodedata.txt",ios::ate);
ofstream output4("unitdata.txt",ios::ate);
ofstream output5("transformerdata.txt",ios::ate);
ofstream output6("busInTransformer.txt",ios::ate);
ofstream output7("totalBranch.txt",ios::ate);
ofstream output8("busNameInBranch.txt",ios::ate);
ofstream output9("loaddata.txt",ios::ate);
int main()
{
vector<Bus> busList;//存放了所有节点
vector<ACline> aclineList;//存放了所有ACline
vector<TopoNode> topoNodeList;
vector<Transformer> transformerList;
vector<Unit> unitList;
vector<Load> loadList;
getData(input,busList,aclineList,topoNodeList,unitList,transformerList,loadList);
// int printNum=0;
for(size_t i=0;i!=busList.size();++i)
{
output1<<busList[i]<<endl;//无差别输出
// if(busList[i].printBusOnline(output1))//输出在线节点
// {
// printNum++;
// output1<<endl;
// }
}
// output1<<endl<<"结点总数:"<<printNum<<endl;
// printNum=0;
for(size_t j=0;j!=aclineList.size();++j)
{
output2<<aclineList[j]<<endl;
// if(aclineList[j].printAClineOnline(output2))
// {
// printNum++;
// output2<<endl;
// }
}
// output2<<endl<<"支路总数:"<<printNum<<endl;
// printNum=0;
for(size_t j=0;j!=topoNodeList.size();++j)
{
output3<<topoNodeList[j]<<endl;
}
for(size_t t=0;t<unitList.size();++t)
{
output4<<unitList[t]<<endl;
// size_t k=0;
// for(;k<topoNodeList.size();++k)
// {
// if(busList[t].getBusName()==topoNodeList[k].getTopoNodeName())
// break;
// }
// if(k>=topoNodeList.size())
// noExistInTopoNodeList.push_back(busList[t]);
}
// output4<<"在Bus中存在,但在Toponode中不存在的节点:"<<noExistInTopoNodeList.size()<<endl;
// for(size_t i=0;i<noExistInTopoNodeList.size();++i)
// {
// output4<<noExistInTopoNodeList[i].getBusName()<<endl
// <<noExistInTopoNodeList[i].getBusOff()<<endl<<endl;
// }
// printNum=0;
// output5<<"ACline中有断开:"<<endl;
// printAClineOfflineBus
/*output5<<"ACline中断开的节点:"<<endl;
int breakBusInAcline(0);
for(size_t i=0;i<aclineList.size();++i)
{
if(aclineList[i].getAClineI_off())
{
output5<<busList[aclineList[i].getAClineI_node()]<<endl;
breakBusInAcline++;
}
else if(aclineList[i].getAClineJ_off())
{
output5<<busList[aclineList[i].getAClineJ_node()]<<endl;
breakBusInAcline++;
}
else
continue;
}
output5<<endl<<breakBusInAcline<<endl;*/
for(size_t i=0;i<transformerList.size();++i)
{
output5<<transformerList[i]<<endl;
}
for(size_t i=0;i<loadList.size();++i)
{
output9<<loadList[i]<<endl;
}
cout<<"Bus中在线的节点:"<<getNumberOfBusOnline(busList)<<endl;
//获取在线的ACline
vector<ACline> aclineOnline=getAClineOnline(aclineList);
cout<<"ACline中在线的支路:"<<aclineOnline.size()<<endl;
cout<<"Unit中在线的机组:"<<getNumberOfUnitOnline(unitList)<<endl;
cout<<"ACline中出现的所有节点:"<<busNameInAcline(aclineList).size()<<endl;
cout<<"在线ACline中出现的所有节点:"<<busNameInAcline(aclineOnline).size()<<endl;
vector<string> busInTrans=busNameInTransformer(transformerList);
cout<<"Transformer中出现的所有节点:"<<busInTrans.size()<<endl;
for(size_t i=0;i<busInTrans.size();++i)
output6<<busInTrans[i]<<endl;
vector<Branch> branchList;
//获取acline和transformer中的所有在线支路
branchList=totalBranch(aclineList,transformerList);
cout<<"支路总数:"<<branchList.size()<<endl;
for(size_t i=0;i<branchList.size();++i)
{
// output7<<branchList[i]<<endl;
branchList[i].printUnitStyle(output7);
}
//获取Branch中所有在线的节点
vector<string> vecBranchBusName;
vecBranchBusName=busNameInBranchList(branchList);
cout<<"BranchList中的总节点数:"<<vecBranchBusName.size()<<endl;
for(size_t i=0;i<vecBranchBusName.size();++i)
{
output8<<vecBranchBusName[i]<<endl;
}
input.close();
output1.close();
output2.close();
output3.close();
output4.close();
output5.close();
output6.close();
output7.close();
output8.close();
output9.close();
return 0;
}