Datalogilaboration 5 - Swahili

Laborationens tema är användning av objekt, dels som poster i en glosdatabas, dels för implementering av en abstrakt kö. Uppgiften är att genomföra ett glosförhör i swahili. Programmet frågar på alla glosor i filen /info/kurser/datalogi_e01/labbar/swahili.txt och rättar felaktiga svar. Glosor som inte klarats i första omgången tas sedan om i en andra genomgång. För varje genomgång blir det färre frågor och programmet avslutas när gloskön är tom.

Skapa en abstrakt kö

I filen Queue.java ska du göra två klasser, class ListNode och public class Queue. Det ska bli en slimmad version av kön i lärobokens avsnitt 15.2, på så sätt att
  1. konstruktorerna tas bort ur ListNode och ersätts eventuellt med en enklare konstruktor.
  2. Queue har bara har tre metoder: put(x) (motsvarar enqueue), get() (motsvarar dequeue) och isEmpty(),
  3. alla throw-satser tas bort.
Ett litet testprogram kan också få vara med i Queueklassen, till exempel
public static void main(String[] args) {
    Queue q = new Queue();
    System.out.print("Skriv några ord: ");
    while (!Mio.eoln()) 
        q.put(Mio.getWord());
    while (!q.isEmpty()) 
        System.out.print(q.get());
}

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

I filen Glosor.java ska du först skriva klassen Glosa som bara innehåller minnesutrymmena svenska och swahili. Så följer klassen Glosor med ett huvudprogram som först deklarerar ett nytt köobjekt Queue q=new Queue(); och som sedan läser glosfilen och för varje ordpar skapar ett glosobjekt med dom båda orden och puttar in det i kön.

När inläsningsslingan är klar vidtar förhörsslingan. I den får man användning av alla tre anropen q.isEmpty(), q.put(glosan) och glosan = (Glosa) q.get(). Förklara varför (Glosa) behövs i sista satsen!

java Glosor
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: <efo@nada.kth.se>
Senast ändrad 6 december 2001
Tekniskt stöd: <webmaster@nada.kth.se>