// fylladio 4 ASKHSH 15 C++ 2019-2020
#include <iostream>
#include <fstream>
#include <stdlib.h>

#define N 80
using namespace std;
class w_turb
{
private:
	int code_tb;
	int code_part;
	int code_sub;
	int f[10];
	

public:
	w_turb()  //default constructor
	{ code_tb=0; code_part=0; code_sub=0;
		for (int i=0;i<10;i++) f[i]=0;
	};
	// constructor with parameters' list
	w_turb(int in_code_tb,int in_code_part, int in_code_sub, int in_f[])
	{	code_tb=in_code_tb; code_part=in_code_part;
		code_sub=in_code_sub;
		for (int i=0;i<10;i++) f[i]=in_f[i];
	};

	void print()
	{	cout<<code_tb<<" "<<code_part<<"  "<<code_sub<<"  ";
		for (int i=0;i<10;i++) cout<<f[i]<<" ";
		cout<<endl;
	};

	int sum()
	{	int sumt=0;
			for (int i=0;i<10;i++) sumt+=f[i];
		return sumt;
	};

	int get_code_sub() {return code_sub;};
	int get_code_tb() {return code_tb;};
	int get_code_part() {return code_part;};
	

}; // end class definition
int main()
{ int i,k, in_code_tb,in_code_part,in_code_sub;
int in_f[10],j;
int t[10][20]={0};
int code_anemos;

int *pt, m=0;

w_turb a[N];

for (i=0;i<N;i++)
	{// RHTH KLHSH STON DEFAULT CONSTRUCTOR !!!
	a[i]=w_turb();
	a[i].print();
};

ifstream data_file;
data_file.open("wind_tb.txt");
		if(!data_file) {
			cout<<"file does not open"<<endl;
		    exit(1);
		}
		k=0;
		
		while  ((!data_file.eof()) && (k<N))
		{
			data_file>>in_code_tb>>in_code_part>>in_code_sub;
			for (j=0;j<10;j++) data_file>>in_f[j];

			//RHTH KLHSH STON CONSTRUCTOR ME TH LISTA PARAMETRWN !!
				a[k]=w_turb(in_code_tb,in_code_part,in_code_sub,in_f);
				k++;
		}; // end while
		cout<<endl<<"data from file"<<endl;
if (k>0)
	for (i=0;i<k;i++) a[i].print();

// ERWTHMA 2A
for (i=0;i<k;i++)
	t[a[i].get_code_sub()-1][a[i].get_code_tb()-1]+=a[i].sum();
// display
cout<<endl<<endl<<"DISPLAY RESULTS FROM 2A"<<endl;
 for (int q=0;q<10;q++)
 {
	 for (int p=0;p<20;p++)
		 cout<<t[q][p]<<" ";
	 cout<<endl;
 };

 // erwthma 2b
 code_anemos=rand()%20+1;

 pt = new int;

 for (i=0;i<k;i++)
 { if (code_anemos==a[i].get_code_tb()) 
			{	pt[m]=a[i].get_code_part();
				pt[m+1]=a[i].get_code_sub();
				pt[m+2]=a[i].sum()/10;
				m=m+3;
			}

 }; // end for
 cout<<"* * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl;
 // display 
 if (m>0)
 for (i=0;i<m;i+=3)
	 cout<<pt[i]<<" "<<pt[i+1]<<" "<<pt[i+2]<<endl;

return 0;
} // end main
