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.
64 lines
1.8 KiB
Plaintext
64 lines
1.8 KiB
Plaintext
using System;
|
|
|
|
namespace ConsoleApplication9
|
|
{
|
|
class BanknotePruefen
|
|
{
|
|
// Helferfunktion zur Berechnung der Quersumme
|
|
public static int QuerSumme(int zahl)
|
|
{
|
|
int querSumme = 0;
|
|
do
|
|
{
|
|
querSumme += zahl % 10;
|
|
zahl /= 10;
|
|
} while (zahl > 0);
|
|
|
|
return querSumme;
|
|
}
|
|
|
|
public int pruefeSeriennummer(string seriennummer)
|
|
{
|
|
// Buchstaben durch Zahl ersetzen (Grundlage: ASCII zuordnung)
|
|
char[] seriennummerChar = seriennummer.ToCharArray(0, 12);
|
|
|
|
int positionszahl = (int)seriennummerChar[0] - 64;
|
|
int q1 = QuerSumme(positionszahl);
|
|
int q2 = 0;
|
|
for (int i = 1; i <= 10; i++) {
|
|
q2 += ((int)seriennummerChar[i]-48);
|
|
}
|
|
int quersumme = (int)q1 + (int)q2;
|
|
|
|
int subtrahend = (quersumme % 9);
|
|
int result = 8 - subtrahend;
|
|
if (result == 0) result = 9;
|
|
|
|
if (result.Equals((int)seriennummerChar[11] - 48))
|
|
{
|
|
int pruefziffer = ((int)seriennummerChar[11] - 48);
|
|
Console.WriteLine("Die Prüfziffer {0} konnte validiert werden.", pruefziffer);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
BanknotePruefen bp = new BanknotePruefen();
|
|
|
|
string seriennummer = Console.ReadLine();
|
|
int erg = bp.pruefeSeriennummer(seriennummer);
|
|
|
|
Console.WriteLine("Das Programm lieferte die Prüfziffer " + erg + " zurück.");
|
|
|
|
// Konsolenfenster offen halten
|
|
Console.WriteLine("Druecken Sie zum Beenden eine beliebige Taste");
|
|
Console.ReadKey();
|
|
}
|
|
}
|
|
}
|