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 enligt första två kapitlen i rättningsprotokollet (se nedan) och koden ska fungera korrekt.

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 med sendlab.

Sendlab: Efter godkänd muntlig redovisning ska koden skickas till assistenten genom länken labinlämning 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. Vid komplettering ges referenser till UPP-gruppens gemensamma rättningsprotokoll.

Bonus: Om muntlig redovisning sker i tid för laborationens bonusdeadline, och om inlämningen är godkänd efter maximalt en komplettering, och om kompletteringen lämnas in inom åtta dagar efter meddelande om komplettering, så erhålls bonus för laborationen. Mer information om bonus hittar du under "examination" i menyn. Datum för samtliga deadlines hittas under "Deadlines" i menyn.

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)) 

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++ -Wold-style-cast -Woverloaded-virtual -fmax-errors=3 -g"

Om du undrar vad en viss flagga gör kan du läsa i manualen (skriv "man g++" i terminalen).

Laborationsuppgifter

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

Klockslag

Labinstruktion klockslag | Givna filer (gitlab)
I denna laboration ska du, med hjälp av testdriven utveckling, skapa en grundläggande klass för hantering av ett klockslag.

Listan

Labinstruktion listan
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.

Kretssimulatorn

Labinstruktion kretssimulator
Här ska du skapa en klassheirarki för att representera elektriska komponenter. De klasser du skapat ska du sedan använda för att skapa ett program som kan simulera strömmar i ett elektriskt nät.


Sidansvarig: Eric Ekström
Senast uppdaterad: 2022-01-06