Hirdetés

Új hozzászólás Aktív témák

  • Badb0y

    addikt

    Valaki rendbe tudná nekem ezt a programot hozni? Mármint, hogy fusson ?

    Iszonyat hálás lennék. Ha esetleg hülyeség vagy fölösleg van benne, akkor az kerüljön eltávolításra :)

    Ma le kell adnom uh. pls help :R

    Köszönöm segítségetek előre is.

    /*
    C++ nyelven szeretnénk modellt készíteni a következő leírás alapján. Egy óvodás hátizsákjába sok (max. 100) játék fér. Minden játéknak van népszerűségi indexe (egész szám, hány óvodás irigykedik a játék tulajdonosára), és minden játékot meg lehet nyomni (push()), amire minden játék máshogy reagál. Játékból több fajta is van, és a játékfajták száma később csak nőni fog. Játékok jelenleg az alábbiak:
    • Macintosh-MACi (index: 15, verziószám: egész). Ha megnyomják, és a verziószám legalább 10, akkor kiírja, hogy „Én is unix vagyok”.
    • Linux-pingvin (kezdő index: 500, kernel_verzió: sztring), ha megnyomják, kiírja a kernel verziószámát, és ha az index kisebb, mint 97, akkor 4-gyel megnöveli. Ha megsemmisül, kiírja, hogy „UNIX4EVER”.
    • Microsoft-majom (kezdő index: 53, vagyon: long double). ha megnyomják, kiírja, hogy „I! LOVE! THIS! COMPANY!!!”.
    A rendszerben a következő funkciókat kell megvalósítani:
    • hátizsák átlagos népszerűségi indexének lekérése (getAvgPopularity())
    • hátizsákba új játék behelyezése (addToy())
    • játék népszerűségének lekérdezése (getPopularity())
    • minden játékhoz a megnyomás (push())
    • pingvin destruktora.
    Feladatok:
    • Tervezzen meg egy olyan OO modellt, mely a fenti követelményeket kielégíti! Rajzolja fel a modell osztálydiagramját! (0,5p)
    • Deklarálja a Hátizsák, Játék, Maci, Pingvin osztályokat és az elvárt funkciók ellátásához szükséges tagfüggvényeket! Használja a dőlt betűs neveket! (2)
    • Implementálja a fenti osztályokat és azok tagfüggvényeit! Az osztályokat olyan módon készítse el, hogy újabb játék-típus felvételekor a már meglevő kódot ne kelljen módosítani! (1,5 pont)
    • Írjon egy egyszerű programrészletet, ami készít egy hátizsákot, és elhelyez benne egy pingvint (kernel verzió: 2.6.11) és egy majmot (vagyona $3.5e274). Írassa ki a hátizsák átlagos népszerűségét, majd nyomja meg a pingvint, és így is írja ki a hátizsák népszerűségét! (1 pont)

    */

    #include <stdio.h>
    #include <iostream.h>
    #include <string.h>

    class Jatek {
    protected:
    int index;
    public:
    Jatek(int i) : index(i) {}
    int getPopularity() {
    return index;
    }
    virtual void push() = 0;
    virtual ~Jatek() {}
    };
    class Maci : public Jatek {
    int verzio;
    public:
    Maci(int v) : Jatek(14), verzio(v) {}
    void push() {
    if (verzio >= 10)
    cout << "En is unix vagyok!"
    << endl;
    }
    };
    class Pingvin : public Jatek {
    string ker_ver;
    public:
    Pingvin(string k) : Jatek(43),
    ker_ver(k) {}
    void push() {
    cout << ker_ver << endl;
    if (index < 97) index += 4;
    }
    ~Pingvin() {
    cout << "UNIX4EVER" << endl;
    }
    };

    class Hatizsak {
    Jatek* tar[100];
    int n;
    public:
    Hatizsak() : n(0) {}
    ~Hatizsak() {
    for (int i = 0; i < n; i++) {
    delete tar[i];// ha adoptal
    }
    }
    void addToy(Jatek* j) {
    if (n < 100) {
    tar[n] = j;
    n++;
    } else {
    delete j; // ha adoptal
    }
    }
    int getAvgPopularity() {
    int sum = 0;
    for (int i = 0; i < n; i++) {
    sum +=
    tar[i]->getPopularity();
    }
    return sum/n;
    }
    };
    // a feladat szerint nem kell
    class Majom : public Jatek {
    long double vagyon;
    public:
    Majom(long double ld) :
    Jatek(43), vagyon(ld) {}
    void push() {
    cout << "I! LOVE! THIS!\
    COMPANY!!!"
    << endl;
    }
    };

    int main() {
    Hatizsak h;
    Pingvin* p = new Pingvin("2.6.11");
    Majom* m = new Majom(3.5e274);
    h.addToy(p);
    h.addToy(m);
    cout << h.getAvgPopularity() << endl;
    p->push();
    cout << h.getAvgPopularity() << endl;
    return 0;
    }

    Ill. még ebben is van valami hiba, mert nem azt írja ki, amit akarok. Valamiért mindig 99-110-ig ír ki, nem azt amit beadok.

    /*
    Egy meteorológiai állomáson különféle adatokat mérnek (szél, hőmérséklet, csapadék, stb.). A mért adatokat egy OO programmal szeretnénk nyilvántartani, mégpedig úgy, hogy azokat az észlelés sorrendjében egy tárolóba tesszük (add). Az adatok eltérő formátumúak. A szélnek pl. iránya és nagysága is van, míg a hőmérséklet csak egy mennyiség, de a sorrend megtartása miatt közös tárolóban kell azokat tárolnunk. A tároló maximum 1000 adatot tud tárolni, és képes kilistázni (list) a benne levő adatokat a hozzájuk tartozó értékekkel együtt. (pl. szél: É-Ny, 10km/h; hőmérséklet: 12 C).
    • Tervezzen OO modellt, mely tartalmaz Wind, Temperature, valamint Store objektumot, és könnyen bővíthető esetleges újabb adatokkal (pl. csapadék). Rajzolja fel a modell osztálydiagramját! Használja a megadott dőltbetűs neveket!
    • Implementálja az osztályokat! Ne legyen egy függvénytörzsben sem feleslegest kód! Olyan módon készítse el az osztályokat, hogy bővítéskor ne kelljen a kódot módosítani! A tárolónak legyen olyan művelete is, mellyel az összes adat kitörölhető (clear)!
    • Írjon egy egyszerű programrészletet, ami megmutatja 2 különböző típusú meteorológiai adat bevitelét egy tárolóba, majd kiírja a tárolóban tárolt adatokat és a hozzájuk tartozó értékeket!
    */

    #include <iostream.h>

    //osztalyok
    class homerseklet
    {
    public:
    int hom;
    char dimenzio[10];

    };

    class szel
    {
    public:
    int erosseg;
    char irany[10];


    };

    //osztalyok vege
    //globalis adatok
    struct Adat
    {
    homerseklet h;
    //csapadek cs;
    szel sz;
    };
    Adat adattomb[1000];
    //golbalis adatok vege
    //globális eljárások függvények

    void kiir(int n)
    {
    for(int i=0;i<n;i++)
    {
    cout<<adattomb[i].h.hom<<" "<<adattomb[i].h.dimenzio[10]<<" "<<adattomb[i].sz.erosseg<<" "<<adattomb[i].sz.irany[10]<<endl;

    }
    }
    void beolvas(int h,char dim[10],int ero, char irany[10],int i)
    {
    adattomb[i].h.hom=h;
    adattomb[i].h.dimenzio[10]=dim[10];
    adattomb[i].sz.erosseg=ero;
    adattomb[i].sz.irany[10]=irany[10];

    }
    //ováááá
    void main()
    {

    int i=0;
    int muv;
    cout<<"1 add , 2 list"<<endl;
    cout<<"elemszam:"<<i<<endl;

    int eleg=0;
    while (eleg!=1)
    {
    cin>>muv;
    switch (muv)
    {
    case 1: {
    cout<<"Adja meg a homersekletet"<<endl;
    int hom;
    cin>>hom;

    cout<<"Adja meg a homersekletet dimenziojat"<<endl;
    char dim[10];
    cin>>dim[10];
    cout<<"Adja meg a szeleroseget"<<endl;
    int ero;
    cin>>ero;
    cout<<"Adja meg a szeleroseg iranyat"<<endl;
    char irany[10];
    cin>>irany[10];
    beolvas(hom,dim,ero,irany,i);
    i++;
    cout<<"1 add, 2 list"<<endl;
    cout<<"elemszam:"<<i<<endl;
    }; break;
    case 2:{ kiir(i); eleg=1;} break;
    }
    }


    }

    [ Szerkesztve ]

    Minőségi laptopok https://notebookokhu.business.site/

Új hozzászólás Aktív témák