Göm menyn

TDIU20 Objektorienterad programmering

Laborationer

För att bli godkänd på en laboration krävs det uppgifterna är lösta enligt objektorienterade principer. Använd vanliga C++-idiom och konventioner. Använd de koncept och den syntax vi tagit upp i kursen. Dessutom ska koden följa god kodstil.

Redovisning

Muntligt: Du ska redovisa din lösning muntligt för din assistent under schemalagt labtid. Du är personligen ansvarig även för kod som din labkamrat skrivit. Du måste alltså kunna redogöra för hur ni tänkt för varje kodrad i er lösning. Din assistent ställer frågor om hur ni tänkt och on hur koncept fungerar. Din assistent kommer inte att ge dig återkoppling om din lösning är godkänd. Den återkopplingen får du skriftligt efter kodinlämning.

Sendlab: Efter godkänd muntlig redovisning ska koden skickas till assistenten genom länken i menyn till vänster. Den inlämnade koden genomgår då noggrannare granskning och därför är det möjligt att komplettering ges i detta steg.

Laborationsuppgifter

Här listas laborationsuppgiferna som ni ska lösa under kursen.

Klockslag

Labinstruktion klockslag (givna filer)

I denna laboration ska du, med hjälp av testdriven utveckling, skapa en grundläggande klass för hantering av ett klockslag.

Listan

Labinstruktion (givna filer)

Här ska du skapa en klass för att hantera en dubbellänkad lista. Här stöter vi på problem såsom pekaroperationer, nästlade klasser, djup kopiering och mycket annat kul.

För att testa korrekt minneshantering kan verktyget valgrind användas. En guide till hur valgrind fungerar kan hittas här.

Pacman

Labinstruktion (givna filer)

Här ska du skapa en klassheirarki för att representera objekt i ett arkadspel. Klasserna sätts in i en komplett version av spelet så vi kan se hur våra objekt agerar "på riktigt".

Rätt indentering i Emacs

För att få korrekt indentering (enligt Allman/BSD-stil) i emacs lägger du till följande i filen ~/.emacs (skapa den om den saknas).

    ;; C/C++ settings
    (setq c-default-style "bsd")
    (setq c-basic-offset 4)
    (setq-default indent-tabs-mode nil)
    (add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))

Fler inställningar som kan vara trevliga att ha i emacs. Se detta som ett smakprov på vad textredigeraren har att erbjuda.

    (setq inhibit-startup-screen t) ; Disable startup screen
    (save-place-mode 1)             ; Remember where in the file we were
    (delete-selection-mode 1)       ; Delete the selected text when pasting

Rätt kompileringsflaggor med g++

Du ska kompilera din kod med flaggor som ger dig information om alla fel som vi ger komplettering på. För att underlätta ditt arbete ska du lägga till följande alias i filen ~/.bashrc

    alias g++='echo "Use w++17 to compile your code."'
    alias w++17="\g++ -std=c++17 -Wall -Wextra -pedantic -Weffc++ -Woverloaded-virtual -fmax-errors=3 -g"

Sidansvarig: Eric Ekström
Senast uppdaterad: 2024-02-05