Inlämningsuppgift
Inlämningsuppgift 3 – Objektorienterat program
Välj ett projekt och visa att du kan arbeta med klasser, objekt, attribut och metoder.
Uppgiftens syfte
Syftet är att visa att du kan:
- Skapa och använda egna klasser i Python.
- Strukturera ett objektorienterat program med flera objekt.
- Använda metoder, konstruktorer och attribut.
- Använda arv och metodöverskuggning om du siktar på en mer utvecklad lösning.
- Testa och dokumentera din kod.
Instruktioner
Välj ett av projekten nedan och genomför det i Python. Du ska:
- Planera programmet med ett UML-diagram eller en tydlig beskrivning.
- Skapa klasser enligt instruktionerna.
- Skriva ett huvudprogram som demonstrerar funktionaliteten.
- Testa programmet och säkerställa att det fungerar korrekt.
- Kommentera din kod så att den är lätt att förstå.
Repetera innan du börjar
- Kap 3.1 - vad objektorientering är.
- Kap 3.2 - skapa klasser och objekt.
- Kap 3.3 - konstruktorer och metoder.
- Kap 3.5 - UML för objektmodeller.
- Kap 3.6 - arv och polymorfism.
Välj ett av följande projekt
Alternativ 1: Bibliotekssystem
- Skapa klasserna
Book,MemberochLibrary. - En medlem ska kunna låna och återlämna böcker.
- Biblioteket ska hålla reda på alla böcker och medlemmar.
Alternativ 2: RPG-strid
- Skapa klasserna
Character,Player,EnemyochItem. - Implementera arv och föremålsanvändning.
- Skapa ett enkelt stridssystem med flera rundor.
Alternativ 3: Receptplanerare
- Skapa klasserna
Ingredient,RecipeochMealPlanner. - Recept ska innehålla flera ingredienser.
MealPlannerska kunna lista recept och skapa en inköpslista.
Bedömningskriterier
För E-nivå
- Skapa ett fungerande program med minst två egna klasser.
- Använda metoder och attribut korrekt.
- Visa att du förstår syftet med objektorientering.
- Arv är inte ett krav för E-nivå, men programmet ska tydligt använda objekt.
För C-nivå
- Använda arv, metodöverskuggning och objektstruktur.
- Visa att du kan strukturera kod på ett tydligt sätt.
- Kommentera och testa din kod.
För A-nivå
- Använda arv, flera samverkande objekt, listor och logik.
- Göra tydlig design med UML eller annan planering.
- Visa att du kan felsöka och förbättra ditt program.
Checklista innan du lämnar in
- Har du minst två egna klasser?
- Använder du objekt på ett tydligt sätt?
- Har du testat alla funktioner?
- Är din kod kommenterad?
- Har du använt arv eller flera objekt om det krävs?
Testfall
| Test | Exempel | Förväntat resultat |
|---|---|---|
| Skapa objekt | Skapa en bok, karaktär eller ett recept | Objektet får rätt attribut via __init__. |
| Anropa metod | Låna bok, attackera fiende eller visa recept | Metoden ändrar eller visar objektets data korrekt. |
| Felaktigt eller oväntat val | Försök låna en bok som inte finns | Programmet ger tydlig återkoppling och kraschar inte. |
| Arv, om du använder det | Player och Enemy ärver från Character |
Subklasserna återanvänder basklassens kod och kan ha eget beteende. |
Det här ska lämnas in
- Pythonfil eller Pythonfiler med din lösning.
- En enkel UML-skiss eller textbeskrivning av dina klasser.
- En kort lista över testfall du har provat.
- En kort kommentar om hur dina klasser samarbetar.