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_e00/swahili 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,
  2. Queue 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) {
    System.out.print("Skriv några ord: ");
    while (!Mio.Eoln()) 
	put(Mio.GetWord());
    while (!isEmpty()) 
	System.out.print(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 .................


Sidansvarig: <efo@nada.kth.se>
Senast ändrad 27 oktober 2000
Tekniskt stöd: <webmaster@nada.kth.se>