Kezdőoldal » Számítástechnika » Programozás » Üdv! Szeretnék egy programban...

Üdv! Szeretnék egy programban segítséget kérni. C++ban kell megírni, de én nem mélyedtem bele, csak a C programozásba. Elvileg class fügvénnyel kell megcsinálni, de nagyon nem tudom az hogy működik (? ). Előre köszi a segítségeket!

Figyelt kérdés
A szöveg a következő: Hozza létre a Terem osztályt Helye, Ülőhelyek száma, Sötétíthető adattagokkal. Származtassa belőle az Előadóterem és a Számítógép labor alosztályokat. Az Előadóterem alosztályt bővítse a Hangosítható, Beépített projektor, Lépcsőzetes padsorok, a Számítógép labor alosztályt a Számítógépek száma, Hálózati kapcsolat, Telepített operációs rendszer adattagokkal. Írjon programot, amellyel létrehozhatók az Előadóterem és a Számítógép labor osztályok egyedeit tároló vektorok. A program tegye lehetővé a feltöltést és a hangosítható és egyúttal projektorral is ellátott előadótermek adatainak kilistázását, valamint a Windows 2000 operációs rendszert futtató számítógépes laborok átlagos ülőhelyszámának kiíratását.
2011. máj. 25. 12:32
 1/9 anonim ***** válasza:

Nohát, akkor leírok egy kis szintaktikát, azután meg próbálkozz, és ha valami nem megy, akkor nézz vissza. Remélem senki nem fogja megírni helyetted.


class A

{}; //fontos a ;


class B: public A //így jelöljük a leszármazást

{

public:

int a, b, c;

};


Más nem kell.

2011. máj. 25. 12:41
Hasznos számodra ez a válasz?
 2/9 bongolo válasza:

Kiegésæítés:


A class az nem függvény! Ha elmélyedtél a C programozásban, akkor bizonyára ismered a struct-ot. A class egy az egyben egy struct, csak éppen az elemeihez alapértelmezetten senki más nem fér hozzá, csak a class-hoz tatozó függvények.


(Az előző válaszoló példájában a B osztály "belseje" azzal kezdődik, hogy "public:", ez azt jelenti, hogy a mögötte lévő struktúra elemekhez más is hozzáférhet, vagyis pont olyan, mintha class helyett struct szerepelni a neve előtt.)


Kicsit módosítanék a mintapéldán:


class A

{

public:

int a;

bool v;

};


class B: public A //így jelöljük a leszármazást

{

public:

int b;

};


class C: public A

{

public:

int c;

}


B ObjB;

C ObjC;


Itt most létre is hoztam két objektumot (változót), az egyik B tipusú, a másik C tipusú. ObjB-nek olyan elemei vannak, hogy a (int tipusú), v (bool) és b (int). ObjC-nek pedig szintén van a-ja meg v-je és van még egy c (int tipusú).


Nagyon fontos része a class-nak, hogy lehetnek neki függvényei is, de te most elvagy anélkül is, hogyha mindegyik osztály mindegyik elemét public-ká teszed (mint ahogy fent van). Az elemekhez ugyanúgy tudsz hozzáférni, mint C-ben a struktura elemeihez, szóval pl. ObjB.a = 3; ObjB.v = true; ObjB.b = 0;

2011. máj. 25. 13:37
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
Annyival egészíteném ki a második választ, hogy a C structok nem ugyan azok, mint a C++ structok. Általában egy C-s struct érvényes C++ struct és ugyanúgy működik, de a C++ struct minden szempontból megegyezik egy class-al, kivéve az alapértelmezett láthatóság, tehát gyakorlatilag felcserélhető a két kulcsszó.
2011. máj. 25. 13:41
Hasznos számodra ez a válasz?
 4/9 A kérdező kommentje:
Köszi a hozzászólásokat, készül a program, majd ha nem fut valamiért, vagy nem tudok valamit és ki kell egészíteni akkor írok.
2011. máj. 25. 14:17
 5/9 A kérdező kommentje:

Jelenleg itt jár a program: #ifndef teremh

#define teremh

#include <cstdlib>

#include <iostream>


using namespace std;


class eloadoterem

{

public:

char hangosithato;

char projektor;

char lepcsozetes;

};

class szamitogeplabor

{

public:

int szamitogepek;

char halozat;

char OPr;

};

class terem: public eloadoterem, public szamitogeplabor

{

public:

char hely;

int ulohelyek;

char sotetit;


};

2011. máj. 25. 14:41
 6/9 A kérdező kommentje:
Elakadtam :/ Nem tudom innen hogy tudok tovább haladni. A változókat nem tudom hogy deklaráljam.
2011. máj. 25. 16:23
 7/9 bongolo válasza:

Pont fordítva kell származtatni. a Terem az alaposztály, mert a másik kettő ennek a további adatokkal ellátott változata. Tehát először kell egy Terem:


class Terem

{

public:

char helye;

int ulohelyek;

bool sotetitheto;

};


// szerintem a 'helye' tipusának nem elég egy char, bár

// nincs a feladatkiírásban róla szó, hogy milyen

// jellegű adat. Vagy string-et akartál ott igaziból?

//

// A sotetitheto feltehetőleg leginkább bool kell legyen,

// azt át is írtam olyanra


class Eloadoterem: public Terem

{

public:

// ezek tuti mind leginkabb bool-ok!

bool hangosithato;

bool projektor;

bool lepcsozetes;

};


class Szamitogeplabor: public Terem

{

public:

int szamitogepek;

bool halozat; // ez inkább bool

string OPr; // char alatt te a sting-et ertetted?

};


De nekem az a gyanúm, hogy C-ben sem mélyedtél el igazán korábban...


A változók a kiírás szerint egy vector-ban (vagy több vector-ban, egy-egy vector az egyes teremtipusokra) kellenek. Ismered a vector-t? Annak olvass utána.

2011. máj. 25. 16:57
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

Az a probléma, hogy rég tanultam már a C-t és sokat felejtettem. Nem mondom hogy mindent 100%osan tudtam belőle, de azért ott nagyjából még tudom mi hogy volt.


Amúgy a char mint karakter akart lenni. De már annyira belekavarodtam, hogy még amit eddig tudtam abban se vagyok biztos. Olvastam egy csomó anyagot róla, néztem programokat is, de nemnagyon tudom kibogarászni. Reménytelen :/

2011. máj. 25. 17:04
 9/9 A kérdező kommentje:
Amúgy innentől akadtam igazából el. Fáradt is vagyok, majd még próbálkozok vele.
2011. máj. 25. 17:06

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!