Proste logowanie - bankomat

0

Witam, robie sobie małą powtórkę podstaw C++ , w końcu będe miał czas zająć się tym porządnie :)
Jakies rażące błędy w kodzie rzucają wam się w oczy? Co można by tu usprawnić/ulepszyć?

#include <iostream>

using namespace std;

int main()
{
   int PIN;
   int proby=3;

    cout <<"Witaj w naszym bankomacie!\n" <<endl;
    cout <<"Aby zalogowac sie, podaj PIN: \n" ;
    cin >>PIN;
    cout << "\n";


  if (PIN == 1000)
  {
      cout <<"Udalo sie zalogowac\n";
  }
  else
  if( PIN != 1000)
  {
      while ( proby > 0)
      {
        cout << "Podaless zly PIN, sproboj ponownie.\n";
        cout <<"Pozostalo Ci " << proby <<" proby do blokady konta\n";
        cin >> PIN;
        proby--;
        if(PIN == 1000)
        {
            cout << "Udalo sie zalogowac!!";
            break;
        }
        else
        if (( proby ==0) && ( PIN != 1000))
        {
            cout << "BLOKADA\n";
        }
    }
  }
    return 0;
}
 
1

Daj kod PIN jako stałą i używaj jej w programie.

2
  1. Brzydkie formatowanie http://format.krzaq.cc/
  2. A co z pinami zaczynającymi się od 0?
  3. Po co oddzielnie pierwszą próbę? W sensie dlaczego nie zacząć od razu z while tylko masz if (PIN == 1000)?
else
  if( PIN != 1000)
  1. Po co if? Jaką wartość może mieć PIN tam?

  2. Wielkie spaghetti w mainie zamiast osobnych funkcji.

0

Wpisałam literkę zamiast cyfry i od razu zablokowali mi konto :(
Potem podałam bardzo długą liczbę i też zabrali mi od razu trzy próby.

Ogólnie w tym programie powinna wystarczyć jedna pętla while i jeden if-else.

0

Już kiedyś ktoś mówił na temat tego zadania, PIN powinien być typu string bo inaczej PIN 0007 można wprowadzić na 4 sposoby.

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