You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.8 KiB
Java

package com.company.pruefnummern;
import java.util.Scanner;
public class BundeswehrPruefnummern {
public static void main(String[] args){
Eingabe();
}
public static void Eingabe(){
Scanner scanner = new Scanner(System.in);
System.out.println("Bitte geben sie die Personennummer ein: ");
String personennummer = scanner.nextLine().replace("-", "");
////Überprüfung der länge
while (personennummer.length() != 11 && personennummer.substring(5, 6) != "[A, B, C, D-Z]") {
System.out.println("Die Nummer muss 11 Stellen lang sein oder dem Syntax entsprechen. Bitte erneut eingeben");
personennummer = scanner.nextLine().replace("-", "");
}
String[] eingabe = new String[11];
for(int g = 0; g < 11; g++){
eingabe[g] = personennummer.substring(g, (g+1));
}
int prueziffer = Algorithmus(eingabe);
Ausgabe(prueziffer);
}
public static int Algorithmus(String Eingabe[]){
String[] geburtsname = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
String[] geburtsnameValue = {"12", "14", "16", "18", "20", "22", "24", "26", "28", "6", "8", "10", "12", "14", "16", "18", "20", "22", "4", "6", "8", "10", "12", "14", "16", "18"};
int[] gewichtung = {2, 3, 4, 5, 6, 7, 1, 6, 7, 2, 3};
//// Umwandlung des Buchstabens in eine Zahl
for(int i = 0; i < 26; i++ ){
if(Eingabe[6].equals(geburtsname[i])){
Eingabe[6] = geburtsnameValue[i];
}
}
int[] INTeingabe = new int[11];
for(int i = 0;i < Eingabe.length;i++)
{
INTeingabe[i] = Integer.parseInt(Eingabe[i]);
}
//// Gewichtung und Summierung
int summe = 0;
int[] nummern = new int[11];
for (int j = 0; j < 11; j++){
nummern[j] = INTeingabe[j]*gewichtung[j];
summe = summe+nummern[j];
}
//// Ermittlung der Prüfnummer
int prueziffer = 0;
int mod = summe%11;
int Differenz = 11-mod;
if(Differenz == 10){
return(prueziffer);
}else if(Differenz == 11){
prueziffer = 1;
}else{
prueziffer = mod;
}
////
return(prueziffer);
}
public static void Ausgabe(int p){
Scanner scanner = new Scanner(System.in);
System.out.println("Die Prüfziffer lautet: "+p);
System.out.println("Wollen Sie eine weitere Personennummer pruefen? Wenn ja bitte mit y bestätigen. Wenn nich kann das Programm mit n beendet werden.");
String weiter = scanner.nextLine().replace("-", "");
if(weiter.equals("y")) {
Eingabe();
}
}
}