水利水能规划——兴利调节模拟计算法

//兴利调节模拟计算.cpp
//通过额定供水量(此程序中为固定值)求有效库容
//或通过有效库容求额定供水量(求得结果为定值)
//来水过程已知,从已经划分好水利年的入库流量读取
//用水保证率已知
#include "stdafx.h"
#include <fstream>
#include<iostream>
#include<iomanip>

int T;//系列资料长度,单位:年
int DestroyYear, DestroyMonth;//用水不足,破坏
double 	M,//额定用水流量系列,单位:m/s
    Vx;//兴利库容,单位:(m/s*月)
double P,//用水保证率
	S[13],//兴利库容存水量,单位:(m/s*月)
	X[12],//来水流量系列,单位:m/s
	D[12];//库泄流量(实际用水量+超过最大过水能力的弃水)系列,单位:m/s
int Judge;//判断数
double Value, Left, Right;//待求值及其阈值
int Num;//试算次数

void main()
{
	using namespace std;
	ofstream outfile;
	outfile.open("outfile.txt");
	cout<<"输入系列长度(年):"<<endl;
	cin>>T;
	cout<<"求有效库容请输入,求额定用水流量输入:"<<endl;
	cin>>Judge;
	cout<<"请输入已知的效库容(m/s*月)或额定用水流量的值:"<<endl;
	if(Judge == 0)//求有效库容
	{
		cin>>M;
		outfile<<setw(10)<<"有效库容"<<setw(10)<<"供水保证率"<<endl;
	}
    if(Judge == 1) //额定用水流量
	{
		cin>>Vx;
		outfile<<setw(10)<<"额定用水流量"<<setw(10)<<"供水保证率"<<endl;
	}
	cout<<"输入待求值的下限:"<<endl;
	cin>>Left;
	cout<<"输入待求值的上限:"<<endl;
	cin>>Right;
	cout<<"输入试算次数:"<<endl;
	cin>>Num;
	for(int n = 0; n <= Num; n++)
	{//等差试算有效库容
		ifstream infile_X;
		infile_X.open("infile_X.txt");
		Value = (Right - Left)/Num*n + Left;
		if(Judge == 0) Vx = Value;
		else M = Value;
		S[0] = DestroyYear = 0;
		for(int year = 0; year < T; year++)
		{
			DestroyMonth = 0;
			for(int t = 0; t < 12; t ++)
			{//读入已按水利年分配的月来水流量
				infile_X>>X[t];
				if(S[t]+X[t] < M)
				{//破坏月
					D[t] = S[t]+X[t];
					DestroyMonth++;
				}
				else 
					if (S[t]+X[t]< M + Vx)
					D[t] = M;//正常供水段,未蓄满
					else D[t] = S[t] + X[t] - Vx;//加大泄水段,已蓄满
				S[t + 1] = S[t] + X[t] - D[t];
				if(t == 11) S[0] = S[t + 1];
			}
			if(DestroyMonth > 0) DestroyYear++;
		}
		infile_X.close();
		P = 1 - (double)DestroyYear/T;
		outfile<<setw(10)<<Value<<setw(10)<<P<<endl;		
	}
	outfile.close();
}


输入文件:"infile_X.txt"

717 615 265 1500 215 162 191 136 107 104 120 312
545 1540 410 873 1510 1110 621 288 165 85 130 450
483 592 590 958 236 182 797 369 115 190 127 133
783 1440 1600 2860 1480 142 195 91 139 100 159 341
262 957 2310 446 652 336 106 112 52 56 96 146
584 1340 390 479 641 228 161 75 44 140 226 205
717 844 652 1010 1450 85 85 203 322 148 95 153
417 1600 631 936 1130 507 791 128 77 65 244 368
746 708 789 276 154 122 157 398 218 110 117 240
430 525 1260 1210 130 187 90 270 65 46 60 766
568 371 442 389 227 138 421 728 257 167 114 272
540 1250 1500 506 545 361 425 504 316 106 88 85
953 1470 813 1630 1240 119 464 619 247 300 179 479
1290 1150 2090 747 543 584 623 311 120 93 94 139
636 490 626 310 511 630 690 151 169 86 121 123
684 282 872 395 162 70 484 138 72 60 186 369
493 2010 1650 1100 595 434 577 424 214 118 124 625
809 781 357 1230 532 950 411 410 166 131 99 195
542 837 673 2000 1030 718 274 325 87 74 123 190
461 1190 894 1210 222 743 190 166 206 207 247 186
592 900 1270 357 479 362 397 214 86 75 181 388
637 1270 721 198 100 439 780 654 117 147 330 276
1110 1020 1490 733 508 1180 186 80 55 48 70 129
581 1230 958 1140 565 259 573 98 78 77 77 193
680 1370 1420 485 244 240 356 539 188 91 152 325
579 1100 1490 1020 153 212 441 406 113 71 142 525
1450 1170 1240 1530 654 183 442 536 103 225 76 99
216 605 1260 399 415 376 159 690 133 77 82 66
104 498 1307 705 216 39 105 54 52 79 85 159
481 799 1671 1869 2459 284 749 180 151 89 119 170
808 673 779 197 258 114 127 238 85 52 157 288
516 759 1406 560 1097 1035 397 648 255 209 198 183
680 918 1147 2265 529 694 550 300 108 75 57 69
283 614 1105 947 634 337 681 172 283 117 158 389
590 703 759 741 235 188 157 274 165 140 164 189
570 517 1163 1526 271 256 140 152 114 108 77 81
411 778 1114 1405 1040 401 628 249 122 110 82 153
102 586 594 284 476 1143 176 92 68 68 174 434
1178 535 921 386 211 714 572 659 180 143 296 518
572 821 965 654 144 89 176 379 125 170 275 372
400 987 793 2088 557 445 140 81 76 55 107 390
401 857 953 509 183 149 110 69 66 161 264 318
426 646 654 1590 1582 509 280 486 193 106 97 122
494 356 844 300 137 207 445 254 353 267 338 193
485 870 1856 1050 732 180 512 176 99 103 86 161
256 566 1576 2254 553 560 451 711 141 118 284 324
734 503 486 798 308 183 199 157 203 201 192 448
735 1173 858 1982 1712 325 287 125 82 81 63 52
582 660 2178 1740 414 392 209 468 137 129 177 262
248 259 1139 582 614 344 798 269 263 77 82 250

你可能感兴趣的:(水利水能规划——兴利调节模拟计算法)