#include "stdafx.h"
struct turbina {
float Moc;
float Procent;
};
class elektrownia {
turbina Turbina[4];
float MocZadana;
public
//konstruktor
:elektrownia(float Moc1, float Moc2, float Moc3, float Moc4);
//wartosci do odczytywania
float MocMax(void);
float MocAktualna();
float MocAktualnaTurbiny(char Nr);
//wartosci do ustawiania
void UstawMocDlaTurbiny(char Nr, float Procent);
void UstawMocCalkowita(float Moc);
};
//inicjalizuje clase i ustawia moce turbin
elektrownia::elektrownia(float Moc1, float Moc2, float Moc3, float Moc4)
{
char i = 4;
while (i--) Turbina[i].Procent = 0;
Turbina[0].Moc = Moc1;
Turbina[1].Moc = Moc2;
Turbina[2].Moc = Moc3;
Turbina[3].Moc = Moc4;
MocZadana = 0;
};
//zwraca max moc elektrowni
float elektrownia::MocMax(void)
{
float Suma = 0;
char i = 4;
while (i--) Suma += Turbina[i].Moc;
return Suma;
}
//zwraca aktualna moc elektrowni
float elektrownia::MocAktualna()
{
float Suma = 0;
char i = 4;
while (i--) Suma += Turbina[i].Moc * Turbina[i].Procent;
return Suma;
}
float elektrownia::MocAktualnaTurbiny (char Nr)
{
return Turbina[Nr].Moc * Turbina[Nr].Procent;
}
//steruje jedna turbina
void elektrownia::UstawMocDlaTurbiny(char Nr, float Procent)
{
Turbina[Nr].Procent = Procent;
}
//steruja wszystkimi turbinami
void elektrownia::UstawMocCalkowita(float Moc)
{
char i = 0;
while (i < 4)
{
if (Moc >= Turbina[i].Moc)
{
Turbina[i].Procent = 100;
Moc -= Turbina[i].Moc;
}
else
{
Turbina[i].Procent = Moc * 100 / Turbina[i].Moc;
return;
}
i++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
elektrownia Elektrownia(10, 20, 30, 40);
Elektrownia.UstawMocCalkowita(50);
return 0;
}
Comments
0 B
|👍
/👎