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

63 lines
1.8 KiB

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();
}
}
}