Witajcie, mam kod symulatora bankomatu który zrobiłem i który działa w 99 procent (brak ogranicznika przy przelewaniu pieniędzy przez co można nabić nieskończenie ujemne saldo, ale zaraz to dopiszę).
Kod działa, ale chcę żebyście rzucili okiem i powiedzieli mi, czy sposób w który go zbudowałem jest akceptowalny.. Jedyne co wiem, że robię źle to wcięcia i goto x; (ale nie wiedziałem jak wracać do funkcji menu głównego, a na internecie znalazłem, że to jeden z niepolecanych, ale najprostszych sposobów, więc stwierdziłem, że na początek starczy.)
Pierwszy cout to ASCI ART, dodany dla zabawy :)
+ Czy zaawansowani "kodersi" dodawają sobie komentarze do kodu? // czy to raczej lamerskie?
+ Czy długość kodu, a raczej pustych wierszy ma znaczenie na wydajność kodu?
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <stdio.h>
using namespace std;
string opcja;
int stan = 2000;
bool zalogowano=false;
int proby=0;
int main()
{
while(!zalogowano&&proby<3)
{
cout <<" _______ _______ __ _ ___ _ ___ __ _ _______ \n| _ || _ || | | || | | | | | | | | || |\n| |_| || |_| || |_| || |_| | | | | |_| || ___|\n| || || || _| | | | || | __ \n| _ | | || _ || |_ | | | _ || || |\n| |_| || _ || | | || _ | | | | | | || |_| |\n|_______||__| |__||_| |__||___| |_| |___| |_| |__||_______|\n\n\n";
Sleep(1500);
system("cls");
cout << "Witamy w banku. \nProsimy o autoryzacje: \n \n";
string login,haslo;
cout << "Login: ";
cin >> login;
cout << "Haslo: ";
cin >> haslo;
if(login=="wachu"&&haslo=="test")
{
zalogowano=true;
system("cls");
x:
{
cout << "\n Menu wyboru: \n 1. Przelew \n 2. Wplata \n 3. Wyplata \n 4. Stan konta \n 5. Kredyt \n 6. Wyloguj\n\n";
cout << "[Stan konta: " << stan << " zl]\n\n";
cout << "\nWybierz opcje: ";
cin >> opcja;
}
if(opcja=="przelew"||opcja=="Przelew"||opcja=="1")
{ int ile; string target;
cout << "Ile pieniedzy przelac: ";
cin >> ile;
cout << "Na jaki rachunek przeslac pieniadze: ";
cin >> target;
cout << "Czy na pewno chcesz przelac " << ile << " zlotych na rachunek " << target << "?\n";
cout << "Wybor: ";
string choice;
cin >> choice;
if (choice=="tak"||choice=="Tak")
{
stan=stan-ile;
system("cls");
cout << "Prosze czekac. Trwa autoryzacja przelewu. \n ";
Sleep(2000);
cout << "\n \nPrzelew udany. \n \nNastepuje powrot do menu.";
Sleep(2000);
system("cls");
goto x;
}}
}
else
{
cout << "Anulowano przelew. \n \n Nastepuje powrot do menu.";
}
if(opcja=="Wplata"||opcja=="wplata"||opcja=="2")
{ int ile;
cout << "Ile pieniedzy wplacic: ";
cin >> ile;
cout << "Czy na pewno chcesz wplacic " << ile << " zlotych na swoj rachunek " << "?\n";
cout << "Wybor: ";
string choice;
cin >> choice;
if (choice=="tak")
{
system("cls");
cout << "Prosze czekac. Trwa autoryzacja wplaty. \n";
Sleep(2000);
cout << "\n \nWplata udana. \n \nNastepuje powrot do menu.";
Sleep(2000);
system("cls");
goto x;
}
else
{
cout << "Anulowano wplate. \n \n Nastepuje powrot do menu.";
goto x;
}
} // if wplaty
if(opcja=="Wyplata"||opcja=="wyplata"||opcja=="3")
{
int ile;
cout << "Ile pieniedzy wyplacic: ";
cin >> ile;
cout << "Czy na pewno chcesz wyplacic " << ile << " zlotych ze swojego rachunku " << "?\n";
cout << "Wybor: ";
string choice;
cin >> choice;
if(choice=="tak"||choice=="Tak")
{
system("cls");
cout << "Prosze czekac. Trwa autoryzacja wyplaty. \n";
Sleep(2000);
cout << "\n \nWyplata udana. \n \nNastepuje powrot do menu.";
Sleep(2000);
system("cls");
goto x;
}
else
{
system("cls");
cout << "Anulowano wylate. \n \nNastepuje powrot do menu.";
Sleep(2000);
system("cls");
goto x;
}
}
if(opcja=="stan konta"||opcja=="stankonta"||opcja=="4")
{
cout << "Twoj stan konta wynosi: " << stan << " zlotych.";
Sleep(4000);
system("cls");
goto x;
}
if(opcja=="kredyt"||opcja=="Kredyt"||opcja=="5")
{
system("cls");
cout << "Warunki kredytu: \n \n";
cout << "1. Kredyt moga wziac tylko osoby ze stanem konta powyzej 10zl.\n (Wynika to z ochrony phishingowej)\n";
cout << "2. Kredyt udzielany jest wylacznie osobom pelnoletnim. \n (Konta junior nie moga uzyskac kredytu)\n";
cout << "3. Kredyt jest udzielany maksymalnie na 24 raty.\n";
cout << "4. Oprocentowanie wynosi 4% przez pierwszy rok. \n";
cout << "5. Maksymalna kwota kredytu wynosi 5 tysiecy zlotych. \n \n \n";
Sleep(1000);
string akceptacja;
cout << "Czy akceptujesz warunki kredytu: ";
cin >> akceptacja; if(opcja=="stan konta"||opcja=="stankonta"||opcja=="4")
{
cout << "Twoj stan konta wynosi: " << stan << " zlotych.";
Sleep(2000);
goto x;
}
if(akceptacja=="tak"||akceptacja=="Tak")
{
int kwota;
cout << "Podaj kwote kredytu: ";
cin >> kwota;
if(kwota<=5000)
{
stan=stan+kwota;
cout << "Kredyt zostal udzielony. \n \nTwoj aktualny stan konta wynosi:" << stan << " zlotych.";
Sleep(2000);
system("cls");
cout << "Nastepuje przejscie do menu wyboru.";
goto x;
}
}
else
{
cout << "Nie zaakceptowano warunkow umowy. \nNastapi powrot do menu wyboru.";
goto x;
}
}
if(opcja=="wyloguj"||opcja=="Wyloguj"||opcja=="6")
{
system("cls");
cout << "Dziekujemy za skorzystanie z uslug naszego banku. \n\nZapraszamy ponownie.";
Sleep(2000);
break;
}
else
{
proby++;
cout << "Nie udalo sie zalogowac." << " \nTo twoja " << proby << " proba." << endl;
}
} // klamka od petli
return 0;
} // klamra maina