Reklama
Strona 1 z 2 12 OstatniaOstatnia
Pokazuje wyniki od 1 do 15 z 28

Temat: Projekt - obiektowe c++

  1. #1
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,039
    Siła reputacji
    16

    Domyślny Projekt - obiektowe c++

    Hej, mam napisać program "automat biletowy" który generuje bilety komunikacji miejskiej. Projekt ma byc zrealizowany przy pomocy podejścia obiektowego i zawierac
    definiowanie klasy,
    hermetyzację danych i metod,
    dziedziczenie,
    polimorfizm,
    przeciążanie operatorów
    Generalnie żadnych dodatkowych wymagań nie ma więc mam chyba dość dużą dowolność jak to w ogóle ma wyglądać.
    Na początek muszę tylko zrobić schmat klas jakie będę wykorzystywać.I tu mam problem bo nie potrafię tak z góry od razu określić jakie klasy będą potrzebne bo zawsze zaczynam od małego fragmentu kodu który potem rozbudowywuję. Myślę że powinienem stworzyć klasę automat która generalnie będzie posiadała wszystkie potrzebne funkcje oraz klasę bilet (i parę klas dziedziczących po niej (np bilet czasowy/jednorazowy) aby wykorzystać dziedziczenie) Czy taki sposób jest w porządku czy może potrzebuję jeszcze innych klas a może te są złe?

  2. #2
    konto usunięte

    Domyślny

    IMO to co napisałeś wystarczy. Pomyślał bym jeszcze nad przeciążeniem operatorów, tj. gdzie je można w tym co napisałeś fajnie użyć. Możnaby tam kilka wzorców użyć, ale nie wiem czy to przerabialiście.

  3. Reklama
  4. #3
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    31
    Posty
    1,710
    Siła reputacji
    13

    Domyślny

    tutaj masz spoko podział biletow:
    http://www.ztm.waw.pl/?c=516&l=1
    spokojnie mozna z nich zrobić hierarchię klas.

    Co do przeciążania to mozna zastosowac taki myk, że dodając 2 bilety ulgowe dadzą Ci normalny bilety

    irc: freenode.net in #torgdevs

  5. #4
    Avatar Killavus
    Data rejestracji
    2005
    Położenie
    Wrocław
    Wiek
    32
    Posty
    915
    Siła reputacji
    19

    Domyślny

    http://pl.wikipedia.org/wiki/Solid_(...nie_obiektowe)

    Możesz to zrobić jak chcą na typowym kursie "obiektowego C++" - czyli nie mając pojęcia o programowaniu zorientowanym obiektowo jak małpa wykorzystać mechanizmy języka obiektowego. Możesz też chociaż zrozumieć elementy składowe SOLID i zostać porządnym programistą i napisać ten projekt dobrze.

    Wybór należy do Ciebie ;).

    Pozdrawiam
    Killavus
    Ostatnio zmieniony przez Killavus : 03-05-2014, 04:23

  6. #5
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,039
    Siła reputacji
    16

    Domyślny

    Jak zrobić dynamiczne tworzenie obiektów?
    Mam klasę biletów i chcę dać możliwość użytkownikowi tworzenia obiektów(biletów) tej klasy . Nie wiem ile użytkownik będzie chciał ich kupić więc wcześniej zrobiona tablica o skończonych wymiarach odpada. Wiem że trzeba skorzystać w jakiś sposób z operatora new i wskaźników ale zupełnie nie wiem jak to zrobić.
    Czy ten operator ma być w konstruktorze? Jak to zastosować? Powiedzmy że klasa się nazywa "jednorazowy" i chcę w ten sposób tworzyć obiekty tak długo jak chce tego użytkownik. Mam zdefiniowany konstuktor i jeśli wiedziałbym z góry ile biletów chce użytkownik to wyglądało by to tak jak poniżej i nie było problemów.

    jednorazowy bilet1(jakieś parametry)
    jednorazowy bilet2(jakieś parametry)
    jednorazowy bilet3(jakieś parametry)
    jednorazowy bilet4(jakieś parametry)
    ...
    itd


    I czy w ogóle nie dało by się tego zrobić w pętli która by co stworzenie obiektu dodawała +1 do nazwy obiektu bez korzystania w ogóle z operatora new i wskaźników??
    Ostatnio zmieniony przez Pumpkin : 06-05-2014, 03:11

  7. #6
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    33
    Posty
    11,075
    Siła reputacji
    24

    Domyślny

    wektor pewnie cię zainteresuje, ewentualnie lista, stos i miliard innych, ale najbardziej wektor
    ale nie wiem, czy da radę wcisnąć na niego obiekty różnych klas dziedziczących z jednej w razie potrzeby, w javce na pewno by przeszło, a w cpp może być nieciekawie
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

  8. #7
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,039
    Siła reputacji
    16

    Domyślny

    a nie da się zrobić tego z wykorzystaniem właśnie dynamicznej alokacji pamięci? Bo generalnie to jest projekt do szkoły a tam nie mieliśmy tych rzeczy o których wspomniałeś i jednak chciał bym to zrobić właśnie za pomocą operatora new i wskaźników.

  9. #8
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    33
    Posty
    11,075
    Siła reputacji
    24

    Domyślny

    Możesz samodzielnie zaimplementować listę oczywiście, ale tak długo, jak będziesz w stanie wytłumaczyć dlaczego użyłeś gotowego wektora, a nie tłukłeś się z tym każdy normalny nauczyciel czy prowadzący czy whateva bez problemu zaliczy

    Ale jak chcesz to zrobić ręcznie to wyjdzie ci raczej lista, implementacja wektora jest trochę bardziej męcząca
    łatwiej później na nim operować, jednak takich rzeczy się nie robi
    listę się implementuje samodzielnie w ramach pokazania zdolności zarządzania pamięcią, a tak to się używa gotowców
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

  10. #9

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Cytuj Killavus napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    http://pl.wikipedia.org/wiki/Solid_(...nie_obiektowe)

    Możesz to zrobić jak chcą na typowym kursie "obiektowego C++" - czyli nie mając pojęcia o programowaniu zorientowanym obiektowo jak małpa wykorzystać mechanizmy języka obiektowego. Możesz też chociaż zrozumieć elementy składowe SOLID i zostać porządnym programistą i napisać ten projekt dobrze.

    Wybór należy do Ciebie ;).

    Pozdrawiam
    Killavus
    +1, polecam, Piotr Fronczewski ;]

    Cytuj Pumpkin napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Jak zrobić dynamiczne tworzenie obiektów?
    Mam klasę biletów i chcę dać możliwość użytkownikowi tworzenia obiektów(biletów) tej klasy . Nie wiem ile użytkownik będzie chciał ich kupić więc wcześniej zrobiona tablica o skończonych wymiarach odpada. Wiem że trzeba skorzystać w jakiś sposób z operatora new i wskaźników ale zupełnie nie wiem jak to zrobić.
    Czy ten operator ma być w konstruktorze? Jak to zastosować? Powiedzmy że klasa się nazywa "jednorazowy" i chcę w ten sposób tworzyć obiekty tak długo jak chce tego użytkownik. Mam zdefiniowany konstuktor i jeśli wiedziałbym z góry ile biletów chce użytkownik to wyglądało by to tak jak poniżej i nie było problemów.

    jednorazowy bilet1(jakieś parametry)
    jednorazowy bilet2(jakieś parametry)
    jednorazowy bilet3(jakieś parametry)
    jednorazowy bilet4(jakieś parametry)
    ...
    itd


    I czy w ogóle nie dało by się tego zrobić w pętli która by co stworzenie obiektu dodawała +1 do nazwy obiektu bez korzystania w ogóle z operatora new i wskaźników??
    Nie ma sensu grzebać w nazwach.
    Ja na Twoim miejscu stworzyłbym sobie std::vector w którym trzymałbym te bilety, to raz.
    Dwa - stworzyłbym prostą klasę ,,Bilet" której właściwością będzie typ, który będzie jakimś typem wartościowym ( jakiś enum ). I tyle.

  11. #10
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    33
    Posty
    11,075
    Siła reputacji
    24

    Domyślny

    Ale wtedy gdzie wsadzić dziedziczenie?
    IMO zadania "masz narzędzia i znajdź problem, który rozwiązują" to kompletna paranoja i wtedy trzeba kombinować, zamiast zrobić jak należy...
    Ale przerabiałem to
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

  12. #11

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    To proste. Nie wsadzaj dziedziczenia i powiedz wykładowcy, że dziedziczenie implementacji to błąd projektowy, co powie Ci zresztą każdy dobry programista xD
    czekam na hejt ;]

  13. #12
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    33
    Posty
    11,075
    Siła reputacji
    24

    Domyślny

    przyznam szczerze, że się zgubiłem :p
    i zastanawia mnie trochę jak tu wcisnąć przeciążanie operatorów, najwyżej przypisania ma jakikolwiek sens praktyczny IMO
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

  14. #13
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    31
    Posty
    1,710
    Siła reputacji
    13

    Domyślny

    Cytuj zakius napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    przyznam szczerze, że się zgubiłem :p
    i zastanawia mnie trochę jak tu wcisnąć przeciążanie operatorów, najwyżej przypisania ma jakikolwiek sens praktyczny IMO
    tak jak napisałem, Dodanie do siebie dwóch biletów ulgowych da nam bilet normalny. Moim zdaniem to najsensowniejsze rozwiązanie

    irc: freenode.net in #torgdevs

  15. #14

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Cytuj Kusterek napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    tak jak napisałem, Dodanie do siebie dwóch biletów ulgowych da nam bilet normalny. Moim zdaniem to najsensowniejsze rozwiązanie
    Nie musi ograniczać się do ulgowych only, może po prostu zdefiniować rulesy dla łączenia biletów i w ten sposób je dodawać, odejmować i tak dalej.

  16. #15
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    33
    Posty
    11,075
    Siła reputacji
    24

    Domyślny

    dodanie dwóch biletów ulgowych da nam dwa ulgowe, nawet jeśli skasowanie dwóch ulgowych liczy się jako normalny to dalej masz dwa ulgowe
    chyba, że to są wirtualne twory w pamięci komputera, to wtedy ewentualnie można się tak bawić, ale to jest dość dziwne, już bardziej na biletach do kina by zadziałało (rezerwujesz sobie wcześniej ulgowym i później dopłacasz do pełnego czy coś :p)
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [C++] Programowanie obiektowe - zadanie z dziedziczenia
    Przez Pumpkin w dziale Programowanie
    Odpowiedzi: 1
    Ostatni post: 01-04-2014, 09:25
  2. [PHP/JS/Teoria] Programowanie obiektowe
    Przez John Galt w dziale Programowanie
    Odpowiedzi: 50
    Ostatni post: 29-01-2014, 12:18
  3. Odpowiedzi: 7
    Ostatni post: 23-10-2013, 15:49
  4. Programowanie strukturalne i obiektowe
    Przez Bo_Mi_Nick_Zajeli w dziale Szkoła i nauka
    Odpowiedzi: 0
    Ostatni post: 16-11-2011, 15:17
  5. [8.42][Screen] New City Projekt by Verti
    Przez Przemox5 w dziale Mapping
    Odpowiedzi: 10
    Ostatni post: 03-07-2009, 09:42

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •