// Hermetyzacja (funckje public, zmienne private) + troche rozbudowany main #include #include class Elektrownia { float turbina1, turbina2, turbina3, turbina4; float MocMax; public: Elektrownia(); void Wyswietl(); void WpuscWode(int nr, float otworz); void Auto(float moc); }; Elektrownia::Elektrownia(): turbina1 (100), turbina2 (100), turbina3 (100), turbina4 (100), MocMax (0) {} void Elektrownia::Wyswietl() { printf ("stan elektrowni:\n"); printf ("Turbina1 jest w %.2f %% zamknieta\n",turbina1); printf ("Turbina2 jest w %.2f %% zamknieta\n",turbina2); printf ("Turbina3 jest w %.2f %% zamknieta\n",turbina3); printf ("Turbina4 jest w %.2f %% zamknieta\n",turbina4); printf ("Wydzielana Moc Maksymalna jest rowna %.2f %% \n",MocMax); } void Elektrownia::WpuscWode(int nr, float otworz) { if (nr == 1) { turbina1 = (turbina1) - (otworz); if (turbina1<0) turbina1 = 0; MocMax = (MocMax) + (0.25) * (otworz); } if (nr == 2) { turbina2 = (turbina2) - (otworz); if (turbina2<0) turbina2 = 0; MocMax = (MocMax) + (0.25) * (otworz); } if (nr == 3) { turbina3 = (turbina3) - (otworz); if (turbina3<0) turbina3 = 0; MocMax = (MocMax) + (0.25) * (otworz); } if (nr == 4) { turbina4 = (turbina4) - (otworz); if (turbina4<0) turbina4 = 0; MocMax = (MocMax) + (0.25) * (otworz); } } void Elektrownia::Auto (float moc) { int z; MocMax = moc; if ((moc)>0 && (moc)<=25) { turbina1 = 100 - (moc)*4; } if ((moc)>25 && (moc)<=50) { moc = (moc)-25; turbina2 = 100 - (moc)*4 ; turbina1 = 0; } if ((moc)>50 && (moc)<=75) { moc = (moc)-50; turbina3 = 100 - (moc)*4 ; turbina1 = 0; turbina2 = 0; } if ((moc)>75 && (moc)<=100) { moc = (moc)-75; turbina4 = 100 - (moc)*4 ; turbina1 = 0; turbina2 = 0; turbina3 = 0; } } int main() { Elektrownia elektrownia; int wybor, nr; float otworz; float moc; do{ printf("\n\nMenu\n[1] - Wyswietl stan elektrowni \n[2] - Wpusc wode do turbiny \n[3] - Ustaw automatycznie zeby otrzymac wybrana Moc \n[4] - Koniec\n"); scanf("%d", &wybor); switch(wybor) { case 1: elektrownia.Wyswietl(); break; case 2: { do { printf ("podaj numer turbiny \n"); scanf ("%d",&nr); } while (nr!=1 && nr!=2 && nr!=3 && nr!=4); printf ("o ile %% chcesz otworzyc zawor? \n"); scanf ("%f",&otworz); elektrownia.WpuscWode(nr, otworz); break; } case 3: { printf ("podaj moc w zakresie od 0 do 100\n"); printf ("podaj jaka moc w %% chcesz uzyskac\n"); scanf ("%f",&moc); elektrownia.Auto (moc); break; } case 4: { printf("Koniec!"); getch(); return 0; break; } default: printf("\nNie ma takiej opcji!"); } }while(wybor !=4); return 0; }