Punktacja za udział w zajęciach – gr.6

Poniżej lista osób z mojej grupy laboratoryjnej PO oraz liczba punktów zdobytych na zajęciach. Dodatkowo, tam gdzie liczba zer przekracza 4, dałem dopisek „n.z.”, który oznacza „laboratoria nie zaliczone w terminie czerwcowym”. Proszę o weryfikację ocen wpisanych w moodle i ewentualne maile ze sprostowaniami.

  1. 87935 60
  2. 91063 65
  3. 99203 0 (n.z.)
  4. 99204 6 (n.z.)
  5. 99208 6 (n.z.)
  6. 99212 0 (n.z.)
  7. 99227 39
  8. 95202 36
  9. 99246 35
  10. 99250 6 (n.z.)
  11. 99255 44
  12. 99258 36
  13. 99269 43
  14. 99274 18 (n.z.)
  15. 99283 19 (n.z.)
  16. 88384 66
  17. 99294 0 (n.z.)
  18. 99297 0 (n.z.)
  19. 102035 53

Wyniki finałów rozgrywek w HEX

Wyniki finałów rozgrywek w HEX programów napisanych w ramach przedmiotu projekt zespołowy:

  1. PKP: ocena 5
  2. S-BGON: ocena 5
  3. Java: ocena 4.5
  4. WJAM: ocena 4.0
  5. HEX-SZPAKI: ocena 4.0

Aby ocena stała się prawomocna, do 12 czerwca należy przesłać dokumentację zawierającą opis programu wg szablonu podanego poniżej:

Dokumentacja niekompletna (tj. z niewypełnionymi rozdziałami lub podrozdziałami) będzie traktowana jako nieoddana.

Niedostarczenie dokumentacji w terminie do 12.06 skutkuje obniżeniem o 1 proponowanej oceny dla całego zespołu.
Niedostarczenie dokumentacji w terminie do końca sesji czerwcowej, tj. do 30 czerwca, skutkuje zamianą proponowanej oceny na negatywną dla całego zespołu.

Wejściówka na lab.14

Do obydwu klas reprezentujących owoce z poprzedniej wejściówki dodaj operator +=, przy czym dla jednego typu owoców napisz ten operator w formie metody należącej do klasy, a dla drugiego – w formie funkcji globalnej.

Napisz funkcję main w której tworzone są dwie listy dynamiczne, zawierające: jedna owoce jednego typu, a druga drugiego. Dodaj do każdej z list po kilka obiektów utworzonych za pomocą konstruktora domyślnego, a następnie dla każdej z list zsumuj operatorem += jej obiekty, zapisując wynik do obiektów pomocniczych odpowiedniego typu zadeklarowanych jako obiekty lokalne funkcji main.

Wejściówka na lab.13

Wymyśl i napisz klasę abstrakcyjną reprezentującą pojecie owocu. Zaproponuj w tej klasie przynajmniej dwie metody czysto wirtualne. Następnie zaimplementuj dwie klasy dziedziczące po tej klasie i reprezentujące dwa wybrane gatunki owoców. Obiekty reprezentujące gatunki owoców powinny być tak zaprojektowane, aby można z nich było tworzyć listy dynamiczne. W funkcji main utwórz jedną listę dynamiczną składającą się z kilku różnych owoców i na jej przykładzie zademonstruj polimorfizm metod deklarowanych w bazowej jako czysto wirtualne (np. wywołaj dla wszystkich obiektów w liście te czysto wirtualne metody, demonstrując w ten sposób ich różne działanie w zależności od typu obiektu).

Uwaga: zadanie daje dużą swobodę interpretacji, jeżeli chodzi o model (co mają reprezentować metody zadeklarowane w klasie bazowej? – tj. co można robić z owocami..), dlatego interpretacje identyczne mogą zostać potraktowane jako wykonane niesamodzielnie i mogą zostać nie uznane przez prowadzących. Wejściówki opracowane wspólnie przez kilka osób nie będą akceptowane. Sprawdzane będą podobieństwa pomysłów w obrębie grupy usos’owej, a także między grupami. Wszystkie osoby, które zawarły ten sam model w swoim kodzie, mają anulowaną wejściówkę, a w konsekwencji również punkty zdobyte na lab. 13. Nie będzie rozstrzygania, kto pierwszy zaprezentował swój pomysł i jest jego autorem, a kto był tylko plagiatorem.

Wejściówka na lab.12

Zaprojektuj i zaimplementuj cztery klasy, które na zajęciach 12 posłużą jako klasy bazowe. Klasy reprezentują pojęcia:

  1. silnik samochodowy – zawiera pola przechowujące cechy wspólne dla wszystkich silników (moc, wymiary).
  2. samochód – zawiera pola przechowujące cechy wspólne dla wszystkich samochodów (cena, rodzaj silnika).
  3. urządzenie optyczne – zawiera pola przechowujące cechy wspólne dla wszystkich takich urządzeń (zoom, waga).
  4. osoba na uczelni – zawiera pola przechowujące cechy wspólne dla wszystkich takich osób (imię i nazwisko, adres e-mail).

Wszystkie pola klasy bazowej powinny być zadeklarowane jako protected. Dla każdego z pól powinny istnieć odpowiednie getery i setery. Ponadto każda klasa musi mieć metodę wypisz, która wypisze w oknie konsoli wartości wszystkich pól.

Do wszystkich klas zaprojektuj po trzy konstruktory: konstruktor domyślny, kopiujący oraz z argumentami przechowującymi wartości dla inicjalizacji wszystkich pól.

Dodatkowo każda klasa bazowa powinna mieć jeszcze pole nast, zadeklarowane jako public i zawierające wskaźnik typu takiego jak klasa bazowa. Tym sposobem klasa bazowa będzie mogła być wykorzystana jako element listy dynamicznej jednokierunkowej.

Zademonstruj poprawność działania zaprojektowanych klas, pisząc w funkcji main kod, budujący dla każdego z typów danych listę dynamiczną jednokierunkową zawierającą 5 elementów. Do tworzenia elementów listy użyj konstruktorów domyślnych. Po utworzeniu każdej z list wywołaj metodę wypisz na rzecz każdego z elementów listy. Na koniec usuń wszystkie listy.