teszt
  • commissioner
    #1785

    #include<stdio.h>
    #include<conio.h>
    #include<ctype.h> // toupper();
    #include<string.h> // strcpy();
    #include<stdlib.h> // exit();

    typedef int bool;

    class Terem
    {
    protected:
    char helye[10];
    int ulohelyekSzama;
    bool sotetitheto;
    public:
    char* Get_helye (void) {return helye;}
    void Set_helye (char* akt_hely) { strcpy(helye, akt_hely); }

    int Get_ulohelyekSzama (void) {return ulohelyekSzama;}
    void Set_ulohelyekSzama (int akt_ulohelyek) {ulohelyekSzama = akt_ulohelyek;}

    bool Get_sotetitheto (void) {return sotetitheto;}
    void Set_sotetitheto (bool akt_sotetitheto) {sotetitheto = akt_sotetitheto;}
    };

    class Eloadoterem : public Terem
    {
    private:
    bool hangosithato;
    bool beepitettProjektor;
    bool lepcsozetesPadsorok;
    public:
    bool Get_hangosithato (void) {return hangosithato;}
    void Set_hangosithato (bool akt_hangosithato) {hangosithato = akt_hangosithato;}

    bool Get_beepProj (void) {return beepitettProjektor;}
    void Set_beepProj (bool akt_beepProj) {beepitettProjektor = akt_beepProj;}

    bool Get_lepcsPad (void) {return lepcsozetesPadsorok;}
    void Set_lepcsPad (bool akt_lepcsPad) {lepcsozetesPadsorok = akt_lepcsPad;}
    };

    enum OP_RENDSZER {Windows2000,WindowsXP,Linux,egyeb};
    char opr [4][12] = {"Windows2000","Windows XP","Linux","egyeb"};

    class Szamitogep_labor : public Terem
    {
    private:
    int szamitogepekSzama;
    bool halozatiKapcsolat;
    OP_RENDSZER operaciosRendszer;
    public:
    int Get_szgSzam (void) {return szamitogepekSzama;}
    void Set_szgSzam (int akt_szgszam) {szamitogepekSzama = akt_szgszam;}

    bool Get_haloKapcs (void) {return halozatiKapcsolat;}
    void Set_haloKapcs (bool akt_haloKapcs) {halozatiKapcsolat = akt_haloKapcs;}

    OP_RENDSZER Get_opRendszer (void) {return operaciosRendszer;}
    void Set_opRendszer (OP_RENDSZER akt_opRendszer) {operaciosRendszer = akt_opRendszer;}
    };

    void main()
    {
    clrscr();
    printf ("Terem program\n\n");
    printf ("___Előadótermek adatainak feltöltése___\n");
    int eaTermekSzama;
    do
    {
    printf ("Előadótermek száma=");
    scanf ("%d", &eaTermekSzama);
    } while (eaTermekSzama < 0 || eaTermekSzama > 32565);

    Eloadoterem* EloadoteremP;
    EloadoteremP = new Eloadoterem [eaTermekSzama];
    if (EloadoteremP == NULL)
    {
    printf("Hiba! Sikertelen memóriafoglalás, program leáll!");
    exit (0);
    }

    char hely [10];
    int ulohelyek;

    for (int i = 0; i < eaTermekSzama; i++)
    {
    printf ("%d. előadóterem adatainak feltöltése:\n", i+1);
    printf ("előadóterem helye=");
    scanf ("%s", &hely);
    EloadoteremP[i].Set_helye (hely);
    printf ("ülőhelyek száma=");
    scanf ("%d", &ulohelyek);
    EloadoteremP[i].Set_ulohelyekSzama (ulohelyek);
    printf ("sötétíthető (I/N)?");
    if (toupper(getch()) == 'I')
    EloadoteremP[i].Set_sotetitheto (1);
    else EloadoteremP[i].Set_sotetitheto (0);
    printf ("\nhangosítható (I/N)?");
    if (toupper(getch()) == 'I')
    EloadoteremP[i].Set_hangosithato (1);
    else EloadoteremP[i].Set_hangosithato (0);
    printf ("\nbeépített projektor van (I/N)?");
    if (toupper(getch()) == 'I')
    EloadoteremP[i].Set_beepProj (1);
    else EloadoteremP[i].Set_beepProj (0);
    printf ("\nlépcsőzetesek a padsorok (I/N)?");
    if (toupper(getch()) == 'I')
    EloadoteremP[i].Set_lepcsPad (1);
    else EloadoteremP[i].Set_lepcsPad (0);
    clrscr();
    }

    printf ("A hangosítható és egyúttal projektorral is ellátott előadótermek adatainak kilistázása:\n");
    for (i = 0; i < eaTermekSzama; i++)
    {
    if (EloadoteremP[i].Get_hangosithato() == 1 && EloadoteremP[i].Get_beepProj() == 1)
    {
    printf ("%d. előadóterem adatai:\n", i+1);
    printf ("helye:"); puts(EloadoteremP[i].Get_helye());
    printf ("\nülőhelyek száma:%d", EloadoteremP[i].Get_ulohelyekSzama());
    if (EloadoteremP[i].Get_sotetitheto())
    printf("\nsötétíthető");
    else printf("\nnem sötétíthető");
    if (EloadoteremP[i].Get_lepcsPad())
    printf("\nlépcsőzetes padsorok vannak");
    else printf("\nnincsenek lépcsőzetes padsorok");
    printf ("\nNyomjon meg egy billentyűt a folytatáshoz!");
    getch();
    }
    }
    delete EloadoteremP;

    clrscr();
    printf ("___Számítógép laborok adatainak feltöltése___");

    int szgLaborokSzama;
    int szgkSzama;

    do
    {
    printf ("\nSzámítógép laborok száma=");
    scanf ("%d", &szgLaborokSzama);
    } while (szgLaborokSzama < 0 || szgLaborokSzama > 32565);

    Szamitogep_labor* Szamitogep_laborP;
    Szamitogep_laborP = new Szamitogep_labor [szgLaborokSzama];
    if (Szamitogep_laborP == NULL)
    {
    printf("Hiba! Sikertelen memóriafoglalás, program leáll!");
    exit (0);
    }

    for (i = 0; i < szgLaborokSzama; i++)
    {
    printf ("\n%d. számítógép labor adatainak feltöltése:", i+1);
    printf ("\nhelye:");
    scanf ("%s", &hely);
    Szamitogep_laborP[i].Set_helye (hely);
    printf ("ülőhelyek száma=");
    scanf ("%d", &ulohelyek);
    Szamitogep_laborP[i].Set_ulohelyekSzama (ulohelyek);
    printf ("sötétíthető (I/N)?");
    if (toupper(getch()) == 'I')
    Szamitogep_laborP[i].Set_sotetitheto (1);
    else Szamitogep_laborP[i].Set_sotetitheto (0);
    printf("\nszámítógépek száma=");
    scanf ("%d", &szgkSzama);
    Szamitogep_laborP[i].Set_szgSzam (szgkSzama);
    printf ("hálózati kapcsolat van (I/N)?");
    if (toupper(getch()) == 'I')
    Szamitogep_laborP[i].Set_haloKapcs (1);
    else Szamitogep_laborP[i].Set_haloKapcs (0);
    printf ("\n\n");
    int y = 0;
    for (OP_RENDSZER op = Windows2000; op <= 3; op++, y++)
    printf ("%d: %s ", y, opr[op]);
    printf ("\ntelepített operációs rendszer sorszáma (0..3)=");
    int sorszam;
    scanf ("%d", &sorszam);
    Szamitogep_laborP[i].Set_opRendszer ( (OP_RENDSZER) sorszam );
    clrscr();
    }

    float ulohelyosszeg;
    float db = 0;
    float atlag;

    for (i = 0; i < szgLaborokSzama; i++)
    {
    if (Szamitogep_laborP[i].Get_opRendszer() == Windows2000)
    {
    ulohelyosszeg += Szamitogep_laborP[i].Get_ulohelyekSzama();
    db++;
    }
    }
    if (db != 0)
    atlag = ulohelyosszeg / db;
    else atlag = ulohelyosszeg;
    printf ("\nA Windows 2000 operációs rendszert futtató számítógép laborok átlagos ülőhelyszáma= %f", atlag);
    delete Szamitogep_laborP;
    printf ("\n\nNyomjon meg egy billentyűt a kilépéshez!");
    getch();
    }