[C++] Baza Pacjentów

Witam, dlostałem oto takie zadanie:

Zrealizowałem je tak:

http://wklej.org/id/243845/

Proszę o opinie, uwagi, zastrzeżenia, sugestie, z góry bardzo dziękuje za pomoc.

  1. Dla poziomu cukru zbyt mały górny zakres. Ponadto nie mierzy się go w procentach, dla zakresu z zadania chodzi raczej o mmol/l.

  2. Nazwa zmiennej “plec” nic nie mówi. Bardziej pasowałoby “jestMezczyzna”.

  3. W funkcji “SortujListe” pierwszy argument jest typu int. Ponieważ jest to przełącznik, to lepiej byłoby użyć typu wyliczeniowego, a nie jakiś magicznych liczb.

  4. W tej funkcji switch wygląda na wykonany metodą kopiuj-wklej, więc coś zapewne jest źle.

  5. Ogólnie nie podoba mi się koncepcja, za mało klas. Klasa “pacjent” jest prawie ok, ale można by zrobić też klasę “ListaPacjentów”, która udostępniałaby wszystkie Twoje luźno rozrzucone funkcje jako metody. Byłoby czytelniej i elastyczniej.

Tak na pierwszy rzut oka.

Nie wgłębiałem się w mechanikę działania, spostrzeżenia raczej do samego kodu.

→ czasem zbędne komentarze

→ mieszanie angielskich i polskich identyfikatorów

→ to co przyjmujesz do funkcji pod nazwą CoSortować mogłoby być typem wyliczeniowym, porównanie CoSortować == 1 nic nie mówi. Podobnie płeć

→ zmienne globalne i funkcje na nich operujące - dla mnie prawie jak użycie goto, nie powinno się tego robić w 99% przypadków

→ osobiście niezbyt mi się podoba taka integracja kontenera i danych

→ np. prosi się o stworzenie funkcji do losowania liczby z danego przedziału

→ odstępy między dwuargumentowymi operatorami i operandami zazwyczaj poprawiają czytelność

To ja dodam jeszcze od siebie (kod przejrzałem pobieżnie):

  1. Co do płci, to możesz zrobić bool jestMezczyzna, tak jak napisał somekind , albo typem wyliczeniowym (tak ja bym zrobił).

  2. Mieszasz języki. Zdecyduj się, czy tworzysz polskie nazwy, czy angielskie.

  3. Mieszasz style. Albo wszystkie zmienne zaczynaj z dużej litery, albo z małej.

  4. Menu wywołuje się rekurencyjnie. Takie rzeczy powinno robić się w pętlach.