DD1311 Programmeringsteknik för Civilingenjör & Lärare och Datorlingvistik
Laboration 4
Innehåll:
Filer, särfall(exceptions), klasser, metoder, objekt, konstruktor, attribut
Läs Kap 7-8 i boken!
Denna labb redovisas på veckans gruppmöte. Ta med utskrifter av
dina program samt dina svar på instuderingsfrågorna.
Vid redovisningen ska du kunna förklara både program och svar
för dina kurskamrater och din assistent.
Program
Krav för programmen i labb 4:
Programmet ska använda filhantering och en klass.
Använd funktions/metodanrop istället för att upprepa liknande kod.
Viktigt! Använd olika namn för attribut och metoder.
- Ändra i ditt glosförhörsprogram från labb 3 så att glosorna
läses in från fil.
- Lägg till en klass
Elev
som håller reda på
elevens namn, antal rätt, och de ord som eleven missade.
Efter glosförhöret ska programmet skriva ut resultatet
och alla missade ord.
Körexempel: (användarens inmatning i fetstil)
Vad heter du? Edvina
Välkommen till glosförhöret, Edvina!
Nu ska du öva att översätta setswana till svenska.
madila: fil
Rätt!
.
.
.
--------------------------------
Edvina , du fick 2 rätt av 5
De ord du missade var:
nama
bogobe
lerotse
--------------------------------
Om du tycker det är svårt finns ett kodskelett elev.py att utgå från.
- Låt programmet skapa två objekt så att bägge i labbgruppen
kan bli förhörda under samma programkörning.
- Extrauppgifter:
- Skriv ut era resultat på en fil efter körningen.
- Nästa gång programmet startas kan det då läsa in resultaten
från fil och fråga om på de missade orden.
- Ordna så att programmet kan hålla reda på många elever och göra
statistik över hela gruppens prestationer.
Instuderingsfrågor
- I vilka moder kan man öppna en textfil?
- Ge två olika förslag på hur man kan läsa in alla rader från en fil.
- Varför vill man låta ett program skriva ut data på en fil?
- Vilka typer av data kan man konservera (pickle)?
- Vad är särfall (exceptions)? Ge exempel!
- Beskriv skillnaden mellan klass och objekt?
- Vad är ett attribut?
- Vad är en metod?
- Hur fungerar
__init__
?
- Vad är
self
?
- Hur anropar man ett objekts metoder?
- Hur kommer man åt ett objekts attribut inuti klassen?
- Hur kommer man åt ett objekts attribut utifrån (från huvudprogrammet)?
- Varför är det fint att definiera åtkomstmetoder för attribut?
Efter labben
Hur tycker du att ditt eget arbete med labben fungerade?
Borde du ha gjort något annorlunda?
Fundera en stund, och skriv upp några tips till dig själv inför nästa labb!