class PruefZiffer          // fuer Kreditkartennummer  
{     SimpleInput in;      // Das Objekt der Klasse SimpleInput deklarieren.
      int[]       ziffer;  // Feld fuer die Ziffern der Kreditkartennummer 
                           // deklarieren

  public PruefZiffer()
  { in     = new SimpleInput(); // Das Objekt der Klasse SimpleInput erzeugen. 
    ziffer = new int[16];   // Das Array erzeugen.
  }
  public int ungeradenSumme()
  { int summe=0;
    for (int i = 1; i <= 15; i = i + 2)
         summe = summe + (ziffer[i] * 2) / 10 + (ziffer[i] * 2) % 10;
    return summe;
  } // ungeradenSumme

  public int geradenSumme()
  { int summe=0;
    for (int i = 2; i <= 15; i = i + 2)
         summe = summe + ziffer[i];
    return summe;
  } // geradenSumme

  public int pruefZiffer()
  { int pruefsumme = geradenSumme() + ungeradenSumme();
    int naechsterZehner;
    if ((pruefsumme % 10) == 0)
           return 0;
    else { naechsterZehner = ((pruefsumme / 10) + 1) * 10;
           return naechsterZehner - pruefsumme;
         }
  } // pruefZiffer


  public void action()
  { String eingabe;
    do 
    {   eingabe = in.getString("Geben Sie die ersten 15 Ziffern einer " +
                               "Kreditkartennummer ein: ");
    } while (eingabe.length()!=15);
    
    for (int i = 1; i <= 15; i++)
    {  ziffer[i] = (int)eingabe.charAt(i-1)-48; // Ziffern zeichenweise auslesen.
    }
    
    System.out.println("Die 16. Ziffer (Pruefziffer) ist " + pruefZiffer() + ".");
    System.out.print("Die vollstaendige Kreditkartennummer ist ");
    for (int i=1; i<=15; i++) 
         System.out.print(ziffer[i]);
    System.out.println(pruefZiffer() + ".");
  } // action
}  // class PruefZiffer
