Opravný zápočet – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Opravný zápočet – C / C++ – Fórum – Programujte.comOpravný zápočet – C / C++ – Fórum – Programujte.com

 

Roman
~ Anonymní uživatel
134 příspěvků
24. 5. 2018   #1
-
0
-

#include <iostream>
#include <vector>   /// potrebujes pre pracu s vectormi

using namespace std;

class NovaTrieda    /// vytvorenie novej tried
{
private:    /// sukromne premenne
    string nazov;
    string typ;
    int pocet;
public:     /// verejna cast
    NovaTrieda(){};     /// bezparametricky konstruktor
    NovaTrieda(string nazov, string typ, int pocet)     /// parametricky konstruktor
    {
        this->nazov = nazov;
        this->typ = typ;
        this->pocet = pocet;
    }
    ~NovaTrieda(){};    /// destruktor

    ///  GET Metody

    string vratNazov()
    {
        return nazov;   /// vracia sukromnu premennu nazov
    }

    string vratTyp()
    {
        return typ;   /// vracia sukromnu premennu typ
    }

    int vratPocet()
    {
        return pocet;   /// vracia sukromnu premennu pocet
    }

    ///   SET Metody

    void nastavNazov(string nazov)
    {
        this->nazov = nazov;   /// nastavi novu hodnotu do premennej nazov
    }

    void nastavTyp(string typ)
    {
        this->typ = typ;   /// nastavi novu hodnotu do premennej nazov
    }

    void nastavPocet(int pocet)
    {
        this->pocet = pocet;   /// nastavi novu hodnotu do premennej nazov
    }

    /// Metoda VYPIS

    void vypis()
    {
        cout << nazov << "\t" << typ << "\t" << pocet << endl;  /// vypise vsetky sukromne premenne do jedneho riadku a vlozi medzi ne tabulator a na konci vypisu odriadkuje
    }
};

int main()
{
    cout << "********************** 1.cast **********************" << endl;
    NovaTrieda *objekt1 = new NovaTrieda("objekt c.1", "objekt", 10);   /// vytvori novy dynamicky objekt v triede NovaTrieda a vola parametricky konstruktor
    objekt1->vypis();   /// vypise dynamicky objekt objekt1 vytvoreny o riadok vyssie

    NovaTrieda objekt2("objekt c.2", "objekt", 55);     /// vytvori staticky objekt v triede NovaTrieda a vola parametricky konstruktor
    objekt2.vypis();

    /// vsimni si ze pri dynamickych objektoch pouzivas pre volanie metody -> a pri statickych .

    /// VECTORY

    vector <NovaTrieda> novyVektor;     /// vytvori novy vektor triedy NovaTrieda s nazvom novyVektor

    novyVektor.push_back(objekt2);      /// vlozis do vektora novyVektor na koniec vektora novy objekt

    novyVektor.push_back(NovaTrieda("objekt c.3","objekt",75));     /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
    novyVektor.push_back(NovaTrieda("objekt c.4","objekt",84));     /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
    novyVektor.push_back(NovaTrieda("objekt c.5","objekt",75));     /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor
    novyVektor.push_back(NovaTrieda("objekt c.6","objekt",95));     /// vytvoris na konci vektora novyVektor novy objekt a volas parametricky konstruktor

    cout << "********************** 2.cast **********************" << endl;

    /// Hladanie objektu s premennou pocet nastavenou na 95, ked ho najde program ho vypise

    int velkost_vektora = novyVektor.size();    /// nacitas do premennej velkost_vektora aktualnu velkost vektora novyVektor

    for(int i = 0; i < velkost_vektora; i++)    /// prejde cely vektor
    {
        if(novyVektor[i].vratPocet() == 95)     /// kazdy objekt vo vektore porovna metodou vratPocet() ci sa pocet zhoduje s 95
        {
            novyVektor[i].vypis();              /// ak zisti že sa zhoduje s 95 vypise dany objekt pomocou metody vypis()
        }
    }

    cout << "********************** 3.cast **********************" << endl;

    /// Vypise cely vektor na obrazovku

    for(int i = 0; i < velkost_vektora; i++)    /// prejde cely vektor, v tomto for pouzivas premennu velkost vektora ktora bola nacitana vysiie ak si ale medzi tymto for a deklaraciou tej premennej 
        ///hore pridal nejak prvok tak musis znova nacitat velkost vektora do tej premennej a to takto : velkost_vektora = novyVektor.size();
    {
            novyVektor[i].vypis();              /// kazdy objekt vypise metodou vypis()
    }

    cout << "********************** 4.cast **********************" << endl;

    /// Hladanie objektu s premennou pocet nastavenou na 55, ked ho najde program ho vymaze a cely vektor vypise

    for(int i = 0; i < velkost_vektora; i++)    /// prejde cely vektor
    {
        if(novyVektor[i].vratPocet() == 55)     /// kazdy objekt vo vektore porovna metodou vratPocet() ci sa pocet zhoduje s 55
        {
            novyVektor.erase(novyVektor.begin()+i);            /// ak zisti že sa zhoduje objekt odstrani z vektora
        }
    }

    for(int i = 0; i < velkost_vektora; i++)    /// prejde cely vektor
    {
            novyVektor[i].vypis();              /// kazdy objekt vypise metodou vypis()
    }

    return 0;
}

Nahlásit jako SPAM
IP: 158.193.98.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý