Skoytelop.java [Last ned]

import static java.lang.System.*;
import static java.lang.Double.*;
import static java.lang.Integer.*;
import static javax.swing.JOptionPane.*;
 
/*
 *  Hovedklasse for registrering av skøytetider.
 *  Programmet leser først inn antall løpere fra bruker,
 *  og deretter nr, navn og skøytetider for hver løper,
 *  før den/de med best poengsum blir skrevet ut.
 *
 */
public class Skoytelop {
 
  // Referansetabell for å ta vare på deltagere.
  private static Deltager[] løperTab;
 
  public static void main(String[] args) {
    lesInnResultat();
    double best = bestePoengsum();
    visVinnere(best);
  }
 
  private static void lesInnResultat() {
    // Les inn antall løpere
    String antTxt = showInputDialog("Antall løpere:");
    int ant = parseInt(antTxt);
 
    // Opprett deltagertabell som er akkurat stor nok
    løperTab = new Deltager[ant];
 
    // Les inn opplysninger om hver enkelt deltager,
    // og legg inn i deltagertabellen.
    for (int nr=0; nr<ant; nr++) {
      løperTab[nr] = lesDeltager();
    }
  }
 
  private static Deltager lesDeltager() {
    int nr          = parseInt(showInputDialog("Deltagernr:"));
    String navn     = showInputDialog("Navn:");
    double tid500   = parseDouble(showInputDialog("Tid 500m:"));
    double tid5000  = parseDouble(showInputDialog("Tid 5000m:"));
    double tid1500  = parseDouble(showInputDialog("Tid 1500m:"));
    double tid10000 = parseDouble(showInputDialog("Tid 10000m:"));
 
    // Opprett nytt Deltager-objekt.
    Deltager d = new Deltager(nr, navn,
      tid500, tid5000, tid1500, tid10000);
 
    return d;
  }
 
  private static double bestePoengsum() {
    double bestePoengsum = Double.MAX_VALUE;
 
    for (int nr=0; nr<løperTab.length; nr++) {
      // Sjekk om ny beste poengsum
      if (løperTab[nr].poengsum() < bestePoengsum) {
        bestePoengsum = løperTab[nr].poengsum();
      }
    }
 
    return bestePoengsum;
  }
 
  private static void visVinnere(double best) {
    String ut = "Vinnere:\n";
    for (int lnr=0; lnr<løperTab.length; lnr++) {
      // Legg til de som har best poengsum
      if (løperTab[lnr].poengsum() == best) {
        ut += løperTab[lnr].toString() + "\n";
      }
    }
 
    showMessageDialog(null, ut);
  }
 
}
Kildekode blir vist ved hjelp av GeSHi.