Symulator bankomatu z wykorzystaniem class

0

Witam.
Na lekcje programowania miałem napisać symulator bankomatu. Wczoraj dowiedziałem się, że symulator ma być napisany z wykorzystaniem klas. Niestety problem tkwi w tym, iż nie wiem jak obecny kod, który mam już napisany zmienić na taki z wykorzystaniem klasy bankomat. Do logowania potrzebne jest podanie banku, imienia i nazwiska oraz pinu. Byłbym bardzo wdzięczny, gdyby ktoś pomógł mi go zmienić.

Klasa jaką mam wykorzystać:

class bankomat
{
private: 
int numery_pin[100];     
int numery_kont[100];	
void uwierzytelnij(int pin, int numer_karty); 
public:
int wybierz(int pin, int numer_karty);
void sprawdzkonto();
int pobierz(int pin, int numer_karty);
};

Program napisany przeze mnie:

#include <iostream>
#include <Windows.h> 
#include <conio.h>

using namespace std;

int main()
{
 char wyjscie;
 char x;
 int stan =1000;
 int kwota;
  
cout << "Wloz karte do bankomatu." << endl;
Sleep(2500);
system("cls");
string podaj;
string pass="1";
int i=0;
for(i;i<3;i++)
{
cout << "Podaj haslo: ";
cin >> podaj;
cin.ignore();
if(pass!=podaj)
cout << "Dostep zabroniony.";
else
goto granted;
}
cout << "Bledne haslo. Nie znasz hasla.";
cout << "Koniczenie dzialania sesji...";
getchar();
return 0;

granted:
cout << "Haslo poprawne. ";
cout << "Dostep przyznany.";
system("cls");
     
cout<<"\tWybierz opcje"<<endl;
cout<<"\t1) wyjscie"<<endl;
cout<<"\t2) stan konta"<<endl;
cout<<"\t3) wyplata gotowki"<<endl;
cout<<"\tTwoj wybor? ";
cin>>wyjscie;

switch (wyjscie) {
case '1': return 0; break;
case '2': cout<<"\tTwoj stan konta: " << stan << " zl." << endl;
break;
case '3' : do {
cout<<"\tIle pieniedzy chcesz wyplacic?";
cin>>kwota;
if (kwota %10 !=0) {
cout<<"UWAGA: nie mozna wyplacic takiej kwoty"<<endl;
}
} while (kwota %10 !=0);
cout<<"\twyplacono " <<kwota<< " zlotych "<<endl;
cout<<"\t(pozostalo " <<stan - kwota<< " zlotych na koncie.)"<<endl<<endl;
cout<<"\tZycze milego dnia :-)";

break;
}

fflush stdin;
getch();
return 0;
} 
0
  1. Napisz ten kod nie używając goto, ta instrukcja wieje złem. Działa tragicznie na czytelność kodu, bo jest zbyt elastyczna. Wyobraź sobie projekt w którym masz klasy przynajmniej 500 linijek, nie dał byś rady połapać się we wszystkich etykietach jeśli byłyby tak porozrzucane w kodzie. Jeśli jest się początkującym, radzę zapomnieć na jakiś czas w ogóle o używaniu goto, zdecydowaną większość przypadków da się rozwiązać znacznie ładniej nie używając w/w instrukcji. Uczmy się poprawnie programować... W tym wypadku powinieneś zamiast używać GOTO wydzielić osobną funkcję.

  2. Użyj tabulacji. Czy nie czytelniej wygląda taki kod:

int main() {
	int costam = 1;
	for(int i=5;i<20;i++) {
		costam++;
	}
	return costam;
}

Od takiego?

int main() {
int costam = 1;
for(int i=5;i<20;i++) {
costam++;
}
return costam;
}

Jak zastosujesz się do podstawowych zasad "czystości" można porozmawiać o czymś bardziej zaawansowanym...
Co do samego problemu, wyszukanie tutoriala do obiektowego programowania zajmuje 10 sekund.
Chociażby to: http://www.egrafik.pl/kurs-c-plus-plus/6.2.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1