AutomatApp.java [Last ned]

import java.util.Scanner;
import static java.lang.System.*;
 
 
/* 
 * Brukergrensesnitt (tekstlig) for automaten.
 * 
 */
public class AutomatApp {
 
  public static String[] produktNavn = { "Brus", "Kaffe", "Sjokolade" };
 
  private static Automat automat;
 
  // For å lese tall fra tastaturet (standard innputt)
  private static Scanner leser = new Scanner(in);
  // Evt. System.in i stedet for in uten statisk import.
 
 
  public static void main(String[] args) {
    // Oppretter automaten og fyller den med mynter og produkt
    automat = new Automat();
 
    boolean skruddPå = true;
    while (skruddPå) {
      visMelding();
 
      boolean flereMynter = true;
      boolean ok = true;
 
      // Les inn mynter
      int tall = 0;
      while (flereMynter) {
        tall = leser.nextInt();
        ok = automat.leggPå(tall);
        if (!ok)
          flereMynter = false;
      }
 
      // Les inn produkt
      while (!ok) {
        if (tall == -1 || tall == -2 || tall == -3) {
          String p = produktNavn[-tall-1];
          ok = automat.velgProdukt(p);
        }
        else {
          out.println( "Automaten avslutter..." );
          System.exit(-1);
        }
      }
 
      visResultat();
    }
  }
 
 
  private static void visMelding() {
    String melding = 
      "Brus: 12kr, kaffe: 5kr og sjokolade: 8kr.\n"
    + "Legg på mynter (1, 5, 10 og 20), og velg produkt\n"
    + "(-1 for brus, -2 for kaffe og -3 for sjokolade):\n"
    + "Avslutt med ulovlig produkt/mynt\n";
 
    out.println(melding);
  }
 
 
  private static void visResultat() {
    // Skriv ut informasjon om nåværende bestilling
    out.println( "Beløp lagt på: " + automat.sumLagtPå() );
    out.println( "Valgt produkt: " + automat.valgtProdukt() );
 
    // Gi ut produkt og vekslepenger
    out.println( automat.statusmelding() );
    out.println( "Vekslepenger:" );
    out.println( "Antall 20-kroner: " + automat.vekslepenger(20) );
    out.println( "Antall 10-kroner: " + automat.vekslepenger(10) );
    out.println( "Antall  5-kroner: " + automat.vekslepenger( 5) );
    out.println( "Antall  1-kroner: " + automat.vekslepenger( 1) );
 
    // Skriv ut informasjon om innholdet i automaten - ved testing:
    // out.println( automat.toString() );
  }
 
}
 
Kildekode blir vist ved hjelp av GeSHi.