Keresés

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

  • 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;
    }

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