Wątek przeniesiony 2021-09-09 21:20 z C/C++ przez cerrato.

Początki początków mam nadzieję na rady i krytkę

0

Witam chciałbym się dowiedzieć czy jak na początkującego stworzony przeze mnie program jest "dobry" wykonałem prostą symulację "bankomatu" mam nadzieję na jakieś uwagi krytykę oraz ewentualne rady co do dalszej nauki c++.

projekt: https://github.com/Cristoferos/Projectscpp/blob/main/bank/bank/bank.cpp

7

@Cristoferos:

  1. using namespace std; nie używaj namespaców ogólnych
  2. int wybor1; używaj angielskich nazw, bez liczb i inicjalizuj zmienne.
  3. int PIN; Czy pin może być ujemny? Pin jest liczbą czy napisem?
  4. W małym programie lepiej definiowac od razu funkcje, bez wcześniejszej deklaracji.
  5. Po co thread jeżeli go nie używasz?
  6. Jeszcze jedna ważna rzecz, main(); to nielegalne.
    Z takich ogólnych rzeczy, to używaj .gitignore i nie wrzucaj wszystkiego na githuba.

Rad miałbym dużo więcej, ale widzę, że jesteś początkującym, więc na razie napraw to co napisałem.

2

w linii 192 masz błąd - powinno być wpłacić. Generalnie mocno używasz metody copjego-pejsta :). Jak na pierwszy program jest OK. Możesz się teraz zastanowić jak zredukować powtórzenia kodu w programie.

2
  1. Funkcje "jakby" do podejmowania decyzji, void potwierdzenie(), void login(), void potwierdzenie2() są typu void, i nic od nich nie zależy.
    Psychologicznie się wczuwam, że mocno ukierunkowałeś się na drukowanie, jak się drukuje to jest dobrze. No nie jest. Negatywny login dalej przechodzi, negatywne potwierdzenie też.
    Program niby coś drukuje, można być zadowolonym, ale nie ma logiki, nic się nie przełącza, stan się nie zmienia

  2. Niby masz "ilość środków", ale nic się z tym nie dzieje. Podobnie do powyższego. W dodatku Ty o tym wiesz, bo oszukujesz wypisując stan konta.

  3. zapętlenie login() w login() przez rekurencję jest złe. Rekurencji NIGDY się do tego nie używa. Podobnie jak rekurencyjny main(). Sorry kolego, trzeba pętle opanować

Wiec nie tylko styl kodu jest "poczatkujacy" (wybaczył bym), ale algorytmika jest cienka (nie ma jej prawie wcale)

6

Zacznijmy od repo:

  • dobrze, że od razu używasz git
  • dobrze, że dałeś kod na github
  • źle, że dodałeś katalog Debug do kontroli wersji. Wyggoglaj msvc .gitignore i dodaj taki plik do swojego repozytorium

Kod:

  • unisng namspace std używają wszyscy początkujący. Nie jest to błąd, tylko zła praktyka
  • #include <windows.h> specyficzne dla Windows a i tak jego zawartości nie używasz.
  • zamaist using namespace std::this_thread; zrobiłbym using std::this_thread::sleep_for;
  • setlocale(LC_CTYPE, "Polish"); to raczej nie działa nie ma locale o takiej nazwie. Powinno być pl.1250 ale lepie robić tak: https://stackoverflow.com/a/67819605/1387438
  • za dużo w main
  • coś pokręcone jest w logice z wykorzystaniem logowania.
  • dużo liczb magicznych

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