﻿

#include <iostream>
#include <vector>
using namespace std;

// klasa reprezentacja komputer
class Komputer {
    // pola prywatne
    string nazwa;
    string systemOperacyjny;
    unsigned speed;
public:
    // konstruktor domyślny
    Komputer() { nazwa = "default"; systemOperacyjny = "default"; speed = 0; };
    // konstruktor wieloparametrowy
    Komputer(string naz, string sys, unsigned sp) : nazwa(naz), systemOperacyjny(sys), speed(sp) {};
    void wypiszParametry();  // wypisuuje na konsoli parametry komputera
};

void Komputer::wypiszParametry() {
    cout << "Parametry komputera o nazwie " << nazwa << " :\nsystem: "
        << systemOperacyjny << "\nszybkość: " << speed << "MHz" << endl;
}

// klasa reprezentująca salę
class Sala {
    // pola prywatne
    string nazwa;                // nazwa sali
    vector<Komputer> komputery;  // lista komputerów w sali
public:
    Sala(string naz) : nazwa(naz) {};  // konstruktor
    void getParameryKompoterow();     // wypisuje na konsoli parametry komputerów
    void addKomputerDoListy(Komputer komp);    // dodaje komputer do listy komputerów
    void podajInformacje();           // wypisauje informacje o sali na kosoli
};

void Sala::podajInformacje() {
    cout << "Informacje dotyczące sali o nazwie " << nazwa << ":\nkomputery:\n";
    getParameryKompoterow();
}

void Sala::addKomputerDoListy(Komputer komp) {
    komputery.push_back(komp);
}

void Sala::getParameryKompoterow() {
    for (Komputer komp : komputery) {
        komp.wypiszParametry();
    }
}

int main()
{
    // tworzymy obiekty klasy komputer
    Komputer komp1("komp1", "Windows 7", 1700);
    Komputer komp2("komp2", "Windows 8", 1800);
    Komputer komp3("komp3", "Windows 10", 1900);

    // tworzymy obiekt sali pomarańczowej
    Sala pomaranczowa("pomarańczowa");

    // dodajemy komputery do sali
    pomaranczowa.addKomputerDoListy(komp1);
    pomaranczowa.addKomputerDoListy(komp2);
    pomaranczowa.addKomputerDoListy(komp3);

    // wypisujemy informacje o sali
    pomaranczowa.podajInformacje();
}

