Skocz do zawartości
pcmax

Bankomat C++

Rekomendowane odpowiedzi

Witam możecie pomoc? Nie wiem dlaczego nie idzie poprawnie skompilować:

 

 

 

# include <iostream>

# include <conio.h>

 

using namespace std;

 

class Konto {

private:

string numerKonta;

string typKonta;

double saldo;

 

int pin;

 

public:

int getpin();

void setpin (int p);

string getnumerKonta ();

void setnumerKonta (string nk);

 

string gettypKonta();

void settypKonta (string tk);

 

double getsaldo();

void setsaldo (double s);

 

void wplata (double kwota);

 

void wyplata (double kwota);

};

int Konto::getpin()

{

return this->pin;

}

void Konto::setpin (int p)

{

this->pin = p;

}

void Konto::wplata (double kwota)

 

{

if (kwota >0)

this->saldo+= kwota;

}

void Konto::wyplata (double kwota)

{

if(kwota<=this->saldo && kwota >0)

{

this->saldo -= kwota;

}

 

}

string Konto::getnumerKonta()

{

return this ->numerKonta;

}

string Konto::gettypKonta()

{

return this ->typKonta;

}

double Konto::getsaldo()

{

return this -> saldo;

 

}

void Konto::setnumerKonta (string nk)

{

this ->numerKonta = nk;

}

void Konto::settypKonta(string tk)

{

this->typKonta = tk;

}

void Konto::setsaldo (double s)

{

this->saldo = s;

 

}

 

int main ()

{

Konto k1[3];

k1[0].setnumerKonta("1345464575454");

k1[0].settypKonta("Rachunek oszczedzam");

k1[0].setsaldo(1000);

k1[0].setpin(1234);

 

 

k1[1].setnumerKonta("23408766");

k1[1].settypKonta("Rachunek");

k1[1].setsaldo(34400);

k1[1].setpin(8888);

 

k1[2].setnumerKonta("7999134546668");

k1[2].settypKonta("Lokata");

 

k1[2].setsaldo(100643);

k1[2].setpin(6432);

 

int idKlienta = -1;

int iloscProb = 3;

do{

int pinUzytkownika;

cout << "Podaj pin do konta: ";

cin >> pinUzytkownika;

 

for (int i=0;i<sizeof(k1);i++)

{

if(k1.getpin() == pinUzytkownika)

{

idKlienta = i;

break;

}

if (idKlienta >= 0)break;

 

iloscProb--;

}while(iloscProb>0);

cout << "Id klineta to: " << idKlienta << endl;

cout << "Numer konta: " << k1[idKlienta].getnumerKonta() << endl;

 

 

/*cout << "Numer rachunku: " << k1.getnumerKonta() << endl;

cout << "Typ konta: " << k1.gettypKonta() << endl;

cout << "Saldo rachunku: " << k1.getsaldo() << endl;

 

cout <<"Ile wplacic? ";

double kwota;

cin >> kwota;

k1.wplata(kwota);

cout<<"Saldo rachunku: "<< k1.getsaldo() << endl;

 

 

cout <<"Ile wyplacic? ";

cin >> kwota;

k1.wyplata(kwota);

cout << "Saldo rachunku: " << k1.getsaldo() << endl; */

 

 

 

getch();

 

return 0;

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zapomniałeś sobie zamknąć fora w tej pętli do-while:

do {	int pinUzytkownika;	cout << "Podaj pin do konta: ";	cin >> pinUzytkownika;	for (int i=0;i<sizeof(k1);i++)	{		if(k1[i].getpin() == pinUzytkownika)		{			idKlienta = i;			break;		}		if (idKlienta >= 0)break;		iloscProb--;} while(iloscProb>0);
Edytowane przez luqash

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nom rzeczywiście, dziękuję.

Kurcze ale coś ten programik nie działa :(

Chyba będzie trzeba rozwinąć ten programik: Tylko tak, aby działała wpłata i wyplata. Ktoś ma pomysł?

 

 

#include <iostream>

#include <stdlib.h>

#include <math.h>

using namespace std;

class Bankomat // definicja klasy Zesolone

{

public:

 

void wpisz ()

{

cout <<"Witamy w bankomacie firmy 'SS'. Proszę podać 4 cyfrowy kod PIN."<< endl;

cout << "Podaj a: ";

cin >> a;

system("cls");

}

 

float pin ();

void nazwisko ();

void nazw ();

 

private:

float a, b, c, d,e; // pola klasy

};

void Bankomat::nazwisko()

{

if (a==1234)

d=1000;

cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: "<<d<<"PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;

}

void Bankomat::nazw()

{

if (a==1234)

cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: 1000PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;

d=1000;

}

float Bankomat::pin()

{

 

cin>>b;

if (b==1)

{

cout<<" Wybrales opcje Wyplata"<<endl;

cout<<" Podaj kwote jaka chcesz wyplacic"<<endl;

cin>>c;

d=d-c;

}

if (b==2)

{

cout<<" wybrales opcje Wplata"<<endl;

cout<<" Podaj kwote jaka chcesz wyplacic"<<endl;

cin>>e;

d=d+e;

}

if (b==3)

{

cout<<" wybrales opcje 'Stan Konta'"<<endl;

cout<<d;

}

if (b==4)

{

cout<<" wybrales opcje 'Wyjdz'"<<endl;

}

}

 

 

 

int main ()

{

int wybor;

Bankomat bank;

bank.wpisz();

bank.nazwisko();

bank.pin();

cout<<"Chcesz wrocic do menu czy wyjsc? \n (1) - Powrot \n (2) - Wyjscie"<<endl;

cin>>wybor;

if (wybor==1)

{

cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;

}

if (wybor==2)

{

system ("pause");

return 1;

}

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  pcmax napisał(a):

Nom rzeczywiście, dziękuję.

Kurcze ale coś ten programik nie działa :(

Chyba będzie trzeba rozwinąć ten programik: Tylko tak, aby działała wpłata i wyplata. Ktoś ma pomysł?

przeciez dziala? zapewne chodzi ci o obsluge menu, o petlach slyszal?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jestem na podobnym poziomie nauczania. Mam parę pytań:

 

1. Dlaczego metoda(?) wpisz jest zadeklarowane wewnątrz klasy, a pozostałe poza nią. Tak dla sprawdzenia obu sposobów deklaracji?

2. Dlaczego pola klasy są prywatne?

3. Bankomat nazw to poprzednia wersja metody nazwisko?

4. wybor=1, jego efekt nie jest widoczny bo brakuje na koncu system (\"pause\");.

 

cin>>wybor;if (wybor==1){cout <<\"Witamy Panie: Kowalski. Aktualny stan konta to: \\nCo planujesz zrobic? \\n (1) - Wyplata \\n (2) - Wplata \\n (3) - Stan konta \\n (4) - Wyjdz\"<<endl;}if (wybor==2){system (\"pause\");return 1;}system (\"pause\");}

5. Na pętle dobrym rozwiązaniem będzie do{całość} while(wybor!=2); ?

 

edit: zrobiłem main tak:

int main (){	int wybor=0;Bankomat bank;do{		 bank.wpisz();bank.nazwisko();bank.pin();cout<<\"Chcesz wrocic do menu czy wyjsc? \\n (1) - Powrot \\n (2) - Wyjscie\"<<endl;cin>>wybor;}while(wybor!=2);system (\"pause\");}

edit2: zrobiłem pętle na całość

#include <iostream>#include <stdlib.h>#include <math.h>using namespace std;class Bankomat // definicja klasy Zesolone{public:float d;void wpisz (){cout <<"Witamy w bankomacie firmy 'SS'. Proszę podać 4 cyfrowy kod PIN."<< endl;cout << "Podaj a: ";cin >> a;system("cls");}float pin ();void nazwisko ();void nazw ();private:float a, b, c, e; // pola klasy};void Bankomat::nazwisko(){if (a==1234)cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: "<<d<<"PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;}void Bankomat::nazw(){if (a==1234)cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: 1000PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;d=1000;}float Bankomat::pin(){cin>>b;if (b==1){cout<<" Wybrales opcje Wyplata"<<endl;cout<<" Podaj kwote jaka chcesz wyplacic"<<endl;cin>>c;d=d-c;}if (b==2){cout<<" wybrales opcje Wplata"<<endl;cout<<" Podaj kwote jaka chcesz wyplacic"<<endl;cin>>e;d=d+e;}if (b==3){cout<<" wybrales opcje 'Stan Konta'"<<endl;cout<<"Stan konta= "<<d<<endl;}if (b==4){cout<<" wybrales opcje 'Wyjdz'"<<endl;}}int main (){	int wybor=0;Bankomat bank;bank.d=0;bank.wpisz();do{ bank.nazwisko();bank.pin();cout<<"Chcesz wrocic do menu czy wyjsc? \n (1) - Powrot \n (2) - Wyjscie"<<endl;cin>>wybor;}while(wybor!=2);system ("pause");}

Przepraszam, że tak wkleiłem się w kod. Już więcej nie ruszam.

Edytowane przez Hubis

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.



×
×
  • Dodaj nową pozycję...