Programmering H2014 — uke 44

Oppgave - Kodebrikke

Du skal lage en liten kodebrikke, ikke ulik den enkelte banker bruker for å genere engangskoder:

Hver gang brukeren klikker på "Ny kode" skal det komme en unik, ubrukt 6-sifret kode i det øverste tekstfeltet. Knappen "Vis brukte koder" og det nederste tekstfeltet er bare tatt med for å teste ut applikasjonen.

Programmet består av klassene KodeGenerator, KodeGeneratorVindu og Kodebrikke som inneholder main-metoden.
Nedefor ser du en skisse av programmet. Din oppgave blir å erstatte pseudo-koden med java-instruksjoner slik at kodebrikken virker som den skal.

// KodeGenerator.java
<  import-setninger  >

public class KodeGenerator
{
	private Random r = new Random();
	private int[] kodeArray;
	private int nyKodeindeks= 0;   // Indeksen til første ubrukte kode,
	                               // tilsvarer samtidig antall brukte koder.
    public KodeGenerator(int antall)
    {
	  <  Oppretter kodeArray med det antall elementer parameteren antall angir.
         og fyller den med unike kode, se neste metode. >
    }

    private void genererKoder()
    {
	  <  Fyller  kodeArray med tilfeldige, 6-sifrede tall, der alle tallene
	     er forskjellige .
	     NB! Det laveste mulige tallet skal være 100000, og det høyeste 999999.  >
    }

    private boolean finnes(int n, int antall)
    {
	  <  Undersøker om den innkomne parameteren n finnes blant de antall
	     første elementene (f.o.m indeks 0) i kodeArray. Hvis så er tilfelle
         skal metoden returnere true, i motsatt fall skal den returnere false.  >
    }

    public int nyKode()
    {
	  <  Metoden skal returnere en ubrukt kode. Hvis det ikke er flere ubrukte
	     koder igjen skal metoden returnere -1. Tips! Bruk variabele nyKodeindeks.  >
    }

    public void visBrukteKoder(JTextArea tekst)
    {
	  <  Skriver alle brukte koder i tekstområdet tekst.  >
    }

} // end of class KodeGenerator


// KodeGeneratorVindu.java
<  import-setninger  >

public class KodeGeneratorVindu <  Arver JFrame og implementerer ActionListener  >
{
    <  Deklarerer grafiske komponenter og et KodeGenerator-objekt.  >

    public  KodeGeneratorVindu()
    {
      <  Oppretter KodeGenerator-objektet.
         Bygger opp brukergrensesnittet slik det er vist på bildet over.
         Knytter knappene til lytte-objektet.  >
    }

    public void nyKode()
    {
       <  Viser en ny, ubrukt kode i tekstfeltet for ny kode.  >
    }

    public void visBrukteKoder()
    {
      <  Viser brukte koder i tekstområdet.  >
    }


     <  Metode som fanger opp hendelsene, dvs klikkene på knappene,
        og som sørger for at riktig operasjon blir utført.
        NB! Det er denne metoden som gjør klassen til en lytteklasse!  >

} // end of class KodeGeneratorVindu


// Kodebrikke.java
public class Kodebrikke
{
   <  Klassen skal innholde en main-metode som starter programmet. >
}

Lykke til!

Løsningsforslag
KodeGenerator.java
KodeGeneratorVindu.java
Kodebrikke.java