Kezdőoldal » Számítástechnika » Programozás » Ezt így van helyesen megoldva?

Ezt így van helyesen megoldva?

Figyelt kérdés

Most tanulom az OO programozást de nem tudom,hogy ennek a programnak így kell e kinéznie objektum orientáltan.


//main.cpp

# include <iostream>

# include <windows.h>


using std::cout;

using std::cin;

using std::endl;


typedef unsigned short ushort;


//globális változók:

ushort mm = 0;


class SIM

{

public:

SIM();

~SIM();

void Pin(ushort x);

void Pukk(ushort y);

void Pukk2(ushort z);

void Bead(ushort m);

private:

ushort *itsPin;

ushort *itsPukk;

ushort *itsPukk2;

ushort *itsSzamlalo;

ushort itsBead;

};


SIM::SIM()

{

itsPin = new ushort(1234);

itsPukk = new ushort(4321);

itsPukk2 = new ushort(6789);

itsSzamlalo = new ushort(3);

}


SIM::~SIM()

{

delete itsPin;

delete itsPukk;

delete itsPukk2;

delete itsSzamlalo;

}



void SIM::Pin(ushort x)

{

if(x == *itsPin)

{

cout <<"PIN-kod jo";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

exit(0);

}

else

{

*itsSzamlalo-=1;

cout <<"PIN-kod rossz ";

if(*itsSzamlalo > 0)

{cout <<"meg "<< *itsSzamlalo <<" lehetoseged van \n";}

if(*itsSzamlalo > 0){mm = 1;Bead(mm);}

else {mm = 2;Bead(mm);}

}


}


void SIM::Pukk(ushort y)

{

if(y == *itsPukk)

{

cout <<"PUKK-kod jo ";

*itsSzamlalo+= 1;

Bead(1);

}

else

{

cout <<"PUKK-kod rossz ";

Bead(3);

}

}


void SIM::Pukk2(ushort z)

{

if(z == *itsPukk2)

{

cout <<"PUKK2-kod jo ";

Bead(2);

}

else

{

cout <<"PUKK2-kod rossz SIM-zarolva! \n"

<<"KILEPES!!";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

exit(0);

}


}


void SIM::Bead(ushort m)

{

mm = m;

switch(mm)

{

case 1:

cout <<"Add meg a PIN-kodot: "; cin >> itsBead; Pin(itsBead);

break;

case 2:

cout <<"Add meg a PUKK-kodot: "; cin >> itsBead; Pukk(itsBead);

break;

case 3:

cout <<"Add meg a PUKK2-kodot: "; cin >> itsBead; Pukk2(itsBead);

break;

}

}



int main()

{

SIM *Simcard = new SIM;

Simcard->Bead(1);


delete Simcard;

cin.get();

return 0;

}


2011. dec. 21. 15:05
 1/3 A kérdező kommentje:
A forráskóddal nincs gond csak arra vagyok kíváncsi,hogy ezt ilyen stílusban e szokták megírni?
2011. dec. 21. 15:35
 2/3 anonim ***** válasza:

Külön header file-ba rakják az osztály member-einek és metódusainak definícióit és külön az osztály implementációt.

Utána meg be include-olják az osztály(ok) header file(-ai)-t.


A main-ba a Simcard változót statikusan is példányosíthatnád.

2011. dec. 21. 22:57
Hasznos számodra ez a válasz?
 3/3 anonim válasza:

Az osztály adattagjainak nem kell pointernek lenniük, ha nem muszáj. A konstruktorba pedig szebb lenne egy olyan, ami három paramétert vár és abból ad értéket a pin, puk,puk2 változóknak.


az a globális mm változó NAGYON csúnya. "mm = 1;Bead(mm);" ennek semmi értelme nincs. "Bead(1);" és jól van.


Amúgy szerintem korrekt program, és destruktort sosem írok, a külön header és cpp fájlok viszont kellenek (csomagokra bontás)

2012. jan. 6. 18:16
Hasznos számodra ez a válasz?

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!