Innleveringsfrist for 2. obligatoriske oppgave mandag 6. oktober kl.15.
Besvarelser kan leveres av grupper på inntil 3 studenter. For å få godkjent innleveringen, kreves det at det leveres kjørbare programmer som oppfyller spesifikasjonene i oppgavene. Filene med programmenes kildekode sendes på e-post på følgende måte:
skal brukeren få beskjed om gjetningen er større enn eller mindre enn det ukjente
tallet, som i følgende eksempel:
Så skal ny innlesing foretas. Slik skal det fortsette inntil spilleren har gjettet riktig.
Da skal det gis beskjed om dette sammen med antall gjetninger som ble foretatt, som i følgende eksempel:
Deretter skal spilleren bli spurt om hun ønsker flere runder, ved at det vises en slik boks:
En slik boks får du vist ved å bruke følgende kode:
String[] alternativ = { "Ja", "Nei"};
int svar = JOptionPane.showOptionDialog( null,
"Vil du prøve en runde til ?",
"Gratulerer!", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, alternativ,
alternativ[ 0 ] );
Heltallsverdien som blir returnert fra boksen vil være en av følgende, avhengig
av hvilken knapp det ble klikket på for å gi svar:
JOptionPane.YES_OPTION, JOptionPane.NO_OPTION, JOptionPane.CLOSED_OPTION
Disse verdiene må det testes på for å kunne avgjøre om det skal foretas en ny runde,
eller om spillet skal avsluttes. Dersom spilleren svarer Ja for å ta en ny runde, skal
programmet trekke et nytt, ukjent tall som det nå skal gjettes på, og tellevariabelen
for antall gjetninger skal nullstilles. Ønsker spilleren å avslutte spillet, skal
programmet avslutte etter at følgende hilsen er vist:
Programmet skal organiseres i form av klassene Tallspill og Tallspilltest
som er skissert nedenfor.
import javax.swing.*;
public class Tallspill
{
< Nødvendige datafelt. >
public int nyttTall()
{
< Trekker og returnerer et slumptall mellom 0 og 200. >
}
public void visMelding(String melding)
{
< Viser parameterens innhold i en meldingsboks. >
}
private void forLite( int tall )
{
< Viser melding om at parameterens verdi er for
lite tall og ber spilleren prøve igjen. >
}
private void forStort( int tall )
{
< Viser melding om at parameterens verdi er for
stort tall og ber spilleren prøve igjen. >
}
public void avsluttRunde( int antall, int gjetning )
{
< Viser melding om at det ble gjettet riktig
og antall gjetninger som ble brukt.
Parametrene gir opplysninger om dette. >
}
public void kjørSpill()
{
< Kjører en spillrunde ved å trekke et tall,
nullstille tellevariabel, innhente gjentatte
gjetninger fra bruker inntil det gjettes riktig.
Når det skjer, avsluttes runden med passe
meldinger til spilleren. >
}
}
import javax.swing.*;
public class Tallspilltest
{
< Driverklasse som oppretter et Tallspill-objekt
og kjører spillet gjentatte runder inntil
brukeren velger å avslutte. >
}
Programmet skal lages etter følgende skisse:
< Nødvendige import-setninger >
public class UnikeTall
{
< Deklarasjon av array for lagring av tilfeldige heltall
og andre nødvendige variabler og/eller konstanter. >
< Konstruktør som mottar arrayens lengde som parameter og
oppretter arrayen. >
< Metode som skal undersøke om et gitt tall finnes i arrayen fra før.
Tallet det letes etter skal mottas som parameter.
Metoden skal returnere true hvis tallet finnes i arrayen.
Hvis ikke skal metoden returnere false. >
< Metode som skal fylle arrayen med tilfeldige tall mellom 100 og 1000,
begge grenser inkludert. Metoden skal gjøre dette på en måte
som sikrer at alle tallene er forskjellige. Metoden skal ikke ha
parametre og heller ikke returnere noen verdi. >
< Metode som finner og returnerer det minste tallet i arrayen. >
< Metode som finner og returnerer det største tallet i arrayen. >
< Metode som beregner og returnerer den gjennomstnittlige verdien
(double-verdi) av tallene i arrayen. >
< Metode som returnerer den heltallsverdien som ligger nærmest
gjennomsnittverdien. Hint! Her kan du bruke Math.abs(...) som
returnerer absoluttverdien til uttrykket mellom parentesene. >
< Metode som viser tallene i arrayen i et tekstområde, som mottas
som parameter. I tillegg skal det, i tekstområdet, skrives ut
opplysninger om hvilket tall som er minst, hvilket som er størst,
hva som er gjennomsnittsverdien, og hvilken heltallsverdi som
er nærmest gjennomnittet, jfr bildet over. Gjennomsnittverdien
skal skrives ut med en desimal. Legg inn mellomrom mellom tallene
og skriv ut et passende antall tall per linje. >
}
}
Pass på følgende: public eller private).UnikeTall og få vist bildet over på skjermen.

toUpperCase() eller toLowerCase().
String s = "Eksempel"; s.toUpperCase() gir "EKSEMPEL" s.toLowerCase() gir "eksempel"Hint 2: