Datalogilaboration 4 - Swahili

Laborationens tema är användning av objekt, dels som poster i en glosdatabas, dels för implementering av en kö. Slutuppgiften är att genomföra ett glosförhör i swahili.

Viktiga begrepp

Läs om följande begrepp på kursens hemsida och föreläsningsanteckningar:
kö, stack, klass, instans, länkade listor.

Uppgift 1: Fixa en kö

Konstruera en fungerande kö. Tänk på att: Här följer vad ska varje funktion göra: Tips! Studera klassen Stack och tillhörande exempel från föreläsnin 7 för att få lite hjälp om hur klassen Queue skulle kunna se ut. Observera klassen Stack liknar mycket som Queue.

Uppgift 2: Enkel användning av kön

Skriv ett litet program där programmet skapar en instans av den kö klass du har definierat i föregående uppgift: programmet skapar först en kö (ett objekt av klassen Queue). Sedan en meny ska skrivas ut, där användaren kan välja följande:
    1. Lägg till 2. Ta bort 3. Kolla om kön är tom. 4. Avsluta programmet.
så att när användaren väljer 1, så kommer programmet först fråga efter en sträng som användaren ska mata in och sedan funktionen put() ska anropas, som lägger strängen i slutet av kön.
Om 2 väljs av användaren så anropas funktionen get och det som returneras skrivs ut.
Om 3 väljs av användaren så anropas funktionen isEmpty() och det som returneras från funktionen används till att skriva ett meddelande om köns tillstånd alltså att den är tom eller inte.

Läs glosor från fil, skapa glosobjekt och lägg in i kön

I den här delen av labben ska du skriva ett program som frågar på alla glosor i filen kurskatalogen och rättar felaktiga svar. Glosor som inte klarats i första omgången tas sedan om i en andra genomgång osv på samma sätt. För varje genomgång blir det färre frågor och programmet avslutas när gloskön är tom.
Gör följande:
I filen Glosor.py ska du först skriva klassen Glosa som bara innehåller attributena svenska och swahili. Så följer klassen Glosor med ett huvudprogram som först deklarerar en ny instans av klassen kö som du skapade i Uppgift 1 och kontrollerade att den fungerar som det ska i Uppgift2 q=Queue(). För att kunna använda klassen Queue så ska man importera den först. Sedan läser programmet glosfilen och för varje inläst ordpar skapar en instans av klassen Glosor med de två inlästa ord, sedan puttar programmet in den ny skapade instansen av klassen Glosor i kön.

När inläsningsslingan är klar vidtar förhörsslingan:
Programmet tar ut ett ord från kön skriver ut svenska ordet och väntar på att användaren matar in motsvarande ord på swahili. När användaren har matat in sitt svar kontrolleras svaret och endast om svarat är fel läggs då glosparet(hela instansen) sist i kön, för rätt svar programmet gör ingenting. Förhöret fortsätter på samma sätt och avslutas endast när användaren har svarat rätt på alla frågor, d.v.s. när kön är tom. I den får man användning av alla tre anropen q.isEmpty(), q.put(glosan) och glosan = q.get().

python Glosor.py
Ordlistan inläst!
Översätt till swahili:
jag = vi
Rätt svar är ni
du = ku
tala = 
- - -
När du är bombsäker på swahili kan du försöka få underskrift av en lärare.

Storslagen insats av ..................................... intygar.............................. den .................


^ Upp till kurssidan.


Sidansvarig: <vahid@nada.kth.se>
Senast ändrad 10 november 2004
Tekniskt stöd: <webmaster@nada.kth.se>