Keresés

Hirdetés

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

  • choco01

    addikt

    Hali.

    TFeri alapok mellett tudtok még ajánlani valami hasonlóan szájbarágós jól bevált irodalmat C++-ra? :U

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    Hali.

    Átvettem a Tferi és Webötlet oldalakról az alap leckéket, folytatásképp tud valaki valami "picit haladóbb" leckékből felépülő anyagot? :U

    :R

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    Ehhez a osztályos, kontruktoros, destruktoros témához van valakinak valami részletes példákkal tarkított jegyzete? Már vagy 5-6 könyvet átnéztem de így sem értem hogy ezt miért így kellet..

    a struktúrát értem, azt hogy miért kell ez a kolcsonzes *k a privátba azt már nem.. :F

    struct kolcsonzes
    {
    string datum;
    string tipus;
    int sorszam;
    int ido;
    };

    class kolcsonzo
    {
    private:
    kolcsonzes *k;
    int db;
    public:
    kolcsonzo(char fnev[]);
    ~kolcsonzo();
    int Getdb();
    int GetMagellan();
    int GetMedian();
    int MedianBevetel();
    int Osszbevetel();
    int LeghosszabbKolcsonzes();
    void Kiir();
    };

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz PandaMonium #4049 üzenetére

    Köszönöm, nagyon minimálisan kapizsgálom, próbáltam keresni ilyenekt, pl. ezt, de továbbra is úgy érzem hogy a kicsit bonyolultabb helyezetknél nem értem mi értelme..

    ezen az oldalon ugye írja ezt:

    Nézzünk mindjárt egy kis kódot:

    class Student {
    string name;
    }
    Ez egy osztály. Ha ezt az osztályt szeretnénk használni, azt példányosítással tehetjük meg. Nagyjából így:

    Student student = new Student();
    student.name = "János";
    Vagyis az osztályt úgy képzelhetjük el, mint egy tervrajz. A tervrajz alapján csinálunk egy konkrét példányt.

    Vagyis a tervrajzot, az osztályt használva, létrehozhatunk több példányt is:

    Student mintaJozsef = new Student();
    mintaJozsef.name = "Minta József";

    Student mintaBela = new Student();
    mintaBela.name = "Minta Béla";

    Na most nekem ezt még sem fogadja el:

    #include<iostream>
    #include<string>

    using namespace std;


    class iskola
    {
    public:
    string nev;

    };

    int main()
    {

    iskola *tanulo=new iskola();
    tanulo.nev = "Tamas";


    system("pause");
    return 0;

    }

    se csillaggal, se anélkül.. :F

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz jattila48 #4051 üzenetére

    És ha csak simán így csinálom az mivel rosszabb?

    int main()
    {

    iskola tanulo;
    tanulo.nev = "Tamas";

    cout << tanulo.nev;


    system("pause");
    return 0;

    }

    szóval kihagyom a new iskolás részt..

    [ Szerkesztve ]

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz b.kov #4053 üzenetére

    Most ilyen speedrun megy mert holnap írunk ZH-t és leragadtam a struktúráknál, de elvileg kötelező lesz osztályokat használni.. :U :((( úgy hogy amennyit csak tudok olvasok..

    A gyakorló feladat ilyesmi volt, végülis értem, csak pár apró része nem világos hogy miért oda miért nem, eddig úgy gondoltam hogy a private/protected rész arra kell hogy mások elől védjem az ott lévő dolgokat és akkor valahogy publicba tudok infót adni a védett részbe is..de aztán lehet nem.. :DDD :DDD

    #include <iostream>
    #include <fstream>
    #include <iomanip>
    #include <string>
    using namespace std;
    /*Készítsen programot, melyben a Kétkerék nevű kerékpár kölcsönző adatait tudja kezelni.A kölcsönzőben kétféle
    típusú kerékpár van, melyek kölcsönzési óradíja különböző.A magellan 1200 Ft / óra, a median 1000 Ft / óra.
    A kolcsonzo.txt szöveges állomány első sorában a kölcsönzések számát, a kölcsönzések adatait a következő struktúra szerint tartalmazza:
    struct kolcsonzes
    {
    string; //a kölcsönzés napja
    string tipus; //a kerékpár típusa
    int sorszam; //a kerékpár sorszáma
    int ido; //a kölcsönzés ideje
    };
    Készítse el az alábbi függvényeket, mindegyik függvény vegye át az állomány nevét :
    Getdb() Adja vissza az adatok számát.
    GetMagellan() Adja vissza a magellan kerékpárok számát.
    GetMedian() Adja vissza a median kerékpárok számát.
    MedianBevetel() Adja vissza a median kerékpárokkal szerzett bevétel összértékét.
    OsszBevetel() Adja vissza a bevétel összértékét.
    LeghosszabbKolcsonzes() Adja vissza a leghosszabb kölcsönzés adatait tartalmazó struktúrát.
    Kiir() A függvény minden adatot sorszámozva, az kiíratja a képernyőre táblázatos formában, minden struktúra egy
    sorba kerüljön(a sorszám 1 - ről indul).
    */
    struct kolcsonzes
    {
    string datum;
    string tipus;
    int sorszam;
    int ido;
    };

    class kolcsonzo
    {
    private:
    kolcsonzes *k;
    int db;
    public:
    kolcsonzo(char fnev[]);
    ~kolcsonzo();
    int Getdb();
    int GetMagellan();
    int GetMedian();
    int MedianBevetel();
    int Osszbevetel();
    int LeghosszabbKolcsonzes();
    void Kiir();
    };

    //kolcsonzo.txt beolvasasa
    kolcsonzo::kolcsonzo(char fnev[])
    {
    ifstream be(fnev);
    if (be.fail()) { cerr<<"hiba fajlnyitas"; system("pause"); exit(-1);}
    be >> db;
    k = new kolcsonzes[db];
    if (k == 0) { cerr << "hiba2";system("pause");exit(-2);}
    for (int i = 0; i < db; i++)
    {
    be >> k[i].datum;
    be >> k[i].tipus;
    be >> k[i].sorszam;
    be >> k[i].ido;
    }

    be.close();
    }
    kolcsonzo::~kolcsonzo()
    {
    if (k != 0)
    delete[]k;
    }
    int kolcsonzo::Getdb()
    {
    return db;
    }
    int kolcsonzo::GetMagellan()
    {
    int m = 0;
    for (int i = 0; i < db; i++)
    {
    if (k[i].tipus=="magellan")
    {
    m++;
    }
    }
    return m;
    }
    int kolcsonzo::GetMedian()
    {
    int m = 0;
    for (int i = 0; i < db; i++)
    {
    if (k[i].tipus=="median")
    {
    m++;
    }
    }
    return m;
    }
    int kolcsonzo::MedianBevetel()
    {
    int mbev = 0;
    for (int i = 0; i < db; i++)
    {
    if (k[i].tipus=="median")
    {
    mbev += k[i].ido * 1000;
    }
    }
    return mbev;
    }
    int kolcsonzo::Osszbevetel()
    {
    int bev = 0;
    for (int i = 0; i < db; i++)
    {
    if (k[i].tipus=="median")
    {
    bev += k[i].ido * 1000;
    }
    else
    {
    bev += k[i].ido * 1200;
    }
    }
    return bev;
    }
    int kolcsonzo::LeghosszabbKolcsonzes()
    {
    int l = k[0].ido;
    for (int i = 0; i < db; i++)
    {
    if (k[i].ido > l)
    {
    l = k[i].ido;
    }
    }
    return l;
    }

    void kolcsonzo::Kiir()
    {
    cout << setw(14) << "datum" << setw(20) << "tipus" << setw(10) << "sorszam" << setw(10) << "kolcsido" << endl;
    for (int i = 0; i < db; i++)
    {

    cout << i + 1 << "." << setw(12) << k[i].datum << setw(20) << k[i].tipus << setw(10) << k[i].sorszam << setw(10) << k[i].ido << endl;
    }
    }
    int main()
    {

    kolcsonzo ketkerek("kolcsonzo.txt");
    cout << "Az allomanyban levo adatok:\n";
    ketkerek.Kiir();
    cout << endl;
    cout << "A kolcsonzesek szama: " << ketkerek.Getdb() << endl;
    cout << "A magellan kolcsonzesek szama: " << ketkerek.GetMagellan() << endl;
    cout << "A median kolcsonzesek szama: " << ketkerek.GetMedian() << endl;
    cout << "A median kerekparokkal szerzett bevetel: " << ketkerek.MedianBevetel() << endl;
    cout << "A kerekparokkal szerzett osszbevetel: " << ketkerek.Osszbevetel() << endl;
    cout << "A leghosszabb kolcsonzes ideje: " << ketkerek.LeghosszabbKolcsonzes() << endl;



    cout << endl << endl;
    cout << "***************** dinamikus objektum *****************\n\n";
    kolcsonzo *kektura = new kolcsonzo("kolcsonzo.txt");
    if (kektura == 0)
    {
    cerr << "keves a memoria 2";
    return 2;
    }
    cout << "Az allomanyban levo adatok:\n";
    (*kektura).Kiir();
    cout << endl;
    cout << "A kolcsonzesek szama: " << kektura->Getdb() << endl;
    cout << "A magellan kolcsonzesek szama: " << kektura->GetMagellan() << endl;
    cout << "A median kolcsonzesek szama: " << kektura->GetMedian() << endl;
    cout << "A median kerekparokkal szerzett bevetel: " << kektura->MedianBevetel() << endl;
    cout << "A kerekparokkal szerzett osszbevetel: " << kektura->Osszbevetel() << endl;
    cout << "A leghosszabb kolcsonzes ideje: " << kektura->LeghosszabbKolcsonzes() << endl;
    cout << "Az 5 oranal hosszabb kolcsonzesek:\n";
    delete kektura;

    system("pause");
    return 0;
    }

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz b.kov #4055 üzenetére

    Igen van továbbra is az ami az elején.. :DDD

    ez a *k dolog azaz hogy kolcsonzes *k; sor miért kell a privátba?
    a kolcsonzes struktúrára mutat a k? vagy hogy értelmezzem?

    mert utána visszatér ugye az előbb írt kódban a k = new kolcsonzes[db]; meg utána a feltöltés is a k-ra megy.. :F

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz choco01 #4056 üzenetére

    Továbbá ezt sem értem hogy miért nevezzük ezt a konstruktornak: kolcsonzo(char fnev[]); mert hát más is néz ki ehhez hasonlan.. pl.: int GetMagellan(); és akkor ehhez is lehetne egy ~GetMagellan();-t destruktornak írni..? mivan ha nem csinálok konstruktort hanem csak int kolcsonzo(char fnev[]);-et írok?

    bocs a dupláért..

    [ Szerkesztve ]

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz b.kov #4058 üzenetére

    De most akkor azt is lehetne írni a feltöltéskor hogy kolcsonzes[i].datum; és a többi? minek akkor ez a k-s dolog.. :F meg hogyan tehetem a private tagokat elérhetővé más számára? valamilyen értékátadásról beszélt a Tanár Úr az egyik órán, de nem értettem teljesen..volt valami friend függvény is.. :DDD ezeket csak így elmondják aztán nem használtuk, de azért van.. :F

    cattus:

    Köszönöm, most belenéztem, de ebbe hogyhogy strukturákon csinálja a private meg public dolgokat.. :Y :Y

    [ Szerkesztve ]

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz dabadab #4061 üzenetére

    Zsír akkor értem a class és struct közötti különbségeket, köszönöm!

    Ugye az nem világos hogy minek csináljak private tagokat ha akkor lényegében azzal nem tudok semmit sem tenni.. :F az csak van mindentől elszigetelve és kész, a példa kódomban ugye ez van:

    private:
    kolcsonzes *k;
    int db;

    Na most itt akkor nem sok értelmét látom mert ezzel nem tudok mit kezdeni? Bár ha végig nézem a konstruktorba még is csak hivatkozik a k-ra, akkor a konstruktor még is látja a private dolgokat? :U

    Általában emeltszintű érettségi példák vannak kidolgozva és azokat csináljuk meg..

    all:Az miért van hogy mindig dinamikus tömböket használunk amikor tudjuk előre is hogy hány elemű lesz?Azt hiszem néztünk olyan példát előadáson hogy volt benne dinamikustömb de konkrétan megadva az elemszámmal.. vagy ennél a classon témánál mindig ez kell? :F

    Meg ugye a dinamikus tömbkezelésre ezt tanultuk: <típus>* név = new <típus>[érték];
    Most az előző példakódomban ez volt: k = new kolcsonzes[db]; itt se típus se * nincs az elején a másik végén meg típus nincs.. akkor honnan tudja hogy ez dinamikus? :F

    jattila48:

    Neked is köszönöm, így már kezd összeáállni, valahogy gyakarolnom kéne, próbálok keresni rá még példát a suliban majd.. :U Így ennél a példámnál értem hogy ezért kell dinamikus meg hogy a beolvasáskor tudjuk meg hogy hány elemű lesz! :R

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    válasz jattila48 #4069 üzenetére

    Gondolom ez nekem jött, szóval akkor amiket betettem a publicba függvényeket, pl. getMagellan() azokban amikor kifejtem hogy mit is csináljanak ott felhasználhatom a private dolgokat?

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

  • choco01

    addikt

    Köszi mindnekinek!! Sikerült!! :DD :R

    Applikáció fejlesztés, weboldal készítés, SEO, Online marketing » https://petadev.com

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