Oppgaver uke 9

 

Oppgave 1:
Vi skal lage et program med kaffedrikkere (tr?d), en barista (tr?d), og ett bord (monitor). Bordet kan ha uendelig mange kaffer p? seg. 
  1. Lag klassen Barista som er en tr?d. Alle har et array med ulike kaffedrikkerprivate final String[] drikker = {"Americano", "Café au lait", "Caffè latte", "Caffè mocca", "Espresso", "Cortado"};
    I tillegg tar Baristaen inn et bord (Som du skal lage i oppgave E) som vedkommende kan servere kaffen p?, og en id.  
  2. Implementer metoden run() til barista. Hver barista lager 10 kaffer, og disse drikkene skal velges tilfeldig fra liste drikker (TIPS: bruk java.util.Random for ? f? et tall mellom 0 og lengden til drikker). Baristaen skal sa skrive ut sin id og hvilken drikke som blir laget. F?r vedkommende servere kaffen p? bordet. N?r 10 kaffer er servert skal baristaen sende inn at det er “tomt”
  3. Lag klassen Kaffedrikker som er en tr?d.  Kaffedrikker skal ta inn et  bord vedkommende kan hente kaffe fra, og en id.
  4. Implementer metode run i Kaffedrikke. Denne skal ha en teller som teller antall kaffer som kaffedrikkeren f?r drukket.  S? lenge kaffedrikeren f?r beskjed om at det ikke er tomt skal vedkommende printe sin id og hvilken kaffe som ble drukket. N?r det ikke er flere kaffer for kaffedrikkeren ? drikke skal vedkommende printe sin id og hvor mange kaffekopper som ble drukket.
  5. Lag klassen Bord. Lag en metode som serverer kaffe (legger de til i bordet), husk at det kan v?re uendelig mange kaffer p? bordet om gang. Lag ogs? en metode hentKaffe som henter en kaffe fra bordet s? lenge det er en kaffe der, og signaliserer til Kaffedrikker n?r det er tomt.
  6. Lag klasseen Hovedprogram som lager et Bord, 2 baristaer og 10 kaffedrikkere. Test gjerne med ulike verdier for ? se hvordan programmet oppf?rer seg) 
Oppgave 2:

Vi tenker oss en brusautomat (v?r monitor) som inneholder et gitt antall brusbokser. Videre har vi kunder (tr?der) som fors?ker ? ta brusbokser ut av automaten. Vi har ogs? én person (tr?d) som er ansvarlig for ? fylle opp automaten n?r den er tom. PS: husk at du m? bruke locks der det passer seg (kun en tr?d kan endre p? en verdi om gangen).

  1. Brusautomaten v?r har en metode refill (som den som er ansvarlig for ? fylle opp brusautomaten bruker). Metoden skal fylle opp brusatomaten til dens kapasitet. Men dette kan kun gj?res n?r den er tom. Derfor m? denne metoden vente (tips Condition) til det er tomt i brusautomaten. N?r brusmaskinen blir fylt opp skal det printes en liten beskjed som gir sier nettopp dette  
  2. Brusautomat skal ha metoden kjopBrus, denne metoden skal la de som kaller p? den ta seg en brus (dette gj?res ved ? senke antall brus som er i brusmaskinen). S? lenge det ikke er noen brus i maskinen m? man st? ? vente (tips Condition). N?r man f?r kj?pt en brus skal det printes ut en beskjed om nettopp dette.
  3.  Lag klassen MaskinFyller, denne personen pr?ver ? fylle opp maskinen hvert 5 sekund
  4. Lag klassen BrusDrikker, hver brus drikker venter mellom 0-3 sekunder f?r den tar en ny brus (Dette kan gj?res ved bruk av random)). BrusDrikker skal ogs? ta inn et random tall mellom 5-15 som er antall brus de har planer om ? drikke
Publisert 27. mars 2023 09:56 - Sist endret 12. apr. 2023 19:31