Wpis z mikrobloga

Uwaga, wytrawni programiści - nie czytać, newbie here.

Otóż, krótko i zwięźle. Mam do napisania program symulujący tabelę ligi piłkarskiej. Wyniki mogę sam przypisać, bądź pseudolosować. Problem mam ogólnie w pojęciu konceptualnym tego wszystkiego. Jestem świeżo po wytłumaczeniu początku obiektówki i ta wiedza jeszcze nie jest przyswojona.

Do rzeczy. Jak stworzyć cały projekt? Myślałem nad klasą drużyna, w niej obiekty jak nazwa, pkt, bramki itd.. Czy jakieś metody oprócz konstruktora by się zawierały w tej klasie? Czy w main.cpp funkcja mecz to dobry pomysł? Do maina dodać też sortowanie i wypisywanie tabeli?

Ogólnie, gdyby ktoś mógł wytłumaczyć zarys tego wszystkiego, czego użyć, jakich funkcji, byłbym bardzo wdzięczny. A ja już sobie będę próbował to napisać.

#programowanie #cpp
  • 10
@Hayek: ja bym stworzyl klase Liga mająca pola np numr kolejki, liczba druzyn, liste zespolów(obiektow klasy Zespol), metody dodajMecz albo dodajWynik, klasa zespół mialaby pola: punkty, no i oczywiscie nazwa zespolu, no i co tam jeszcze Ci potrzebne, ewentualnie jakas lista wynikow,
@Hayek: na TDD za szybko, ale ja na poczatku stosowalem zasade "jak bym chcial tego uzywac". Chodzi o to, zebys sie zastanowil jak bedziesz chcial sie wywolywac rozne zdarzenia. Np.

mecz = liga.nastepnyMecz(), a moze bardziej liga.dodajMecz(mecz). Zastanow sie gdzie chcesz czym zarzadzac itd. I napisz klasy tak, zeby to osiagnac.
@Hayek: Nie rób globalnych funkcji i zmiennych, robi to dużo zamieszania i jest traktowane jako antywzorzec programowania. Dodanie funkcji mecz w main to zły pomysł. Generalnie w main.cpp najlepiej mieć tylko funkcję main w której przygotowywujesz sobie obiekty do tego, że mogły sterować programem.
@Hayek: Nie najgorzej choć zastanów się czy nie chcesz zrobi sobie managera np. LigaManager który by wywoływał odpowiednie funkcje z klas liga i zespół. Tak w ogóle to polecam Ci spróbować zaprojektować sobie ten program w jakimś UMLu np. StarUML, dośc stary program ale darmowy. Takie projektowanie na kartce lub w programie pozwoli Ci pisać kod bardziej przejrzysty bo będziesz widział jakie masz zależności między klasami oraz co dana klasa ma
@Hayek: Wg mnie Mecz powinien być klasą, zespół powinien być klasą. W meczu powinny być - drużyny, wynik. Liga jako tako jest trochę za szeroka wg mnie. Tzn, lepiej to rozbić na Liga - która przechowuje tylko mecze, a LigaTable - powinna być bardziej serwisem, który przyjmuje obiekt Liga i na jego podstawie interpretuje kto jest pierwszy, drugi itd - i może to jakoś wyświetlać.