Hallo Community, ich lerne derzeit Fachinformatiker für Systemintegration. In der Berufsschule haben nur nun die Aufgabe bekommen einen "EAN-Scanner" zu programmieren. Folgendes soll verwendet werden, eine Klasse "EAN" und in der Klasse die Methoden "calcPruefziffer (ean12[] :byte):byte" und "praseEan (ean12 : String):byte". (Noch keine Main Methode vorhanden)
Aufgabenstellung des Lehrers:
Hier der bisherige Java-Code (noch nicht vollständig aber es hapert ja momentan schon am compilieren :bahnhof
Ich erwarte hier nun keinesfalls dass meine Hausaufgaben von den anderen erledigt werden. Ich will nur lediglich wissen, warum ich das Byte Array nicht mit 3 multiplizieren kann. Ich wäre sehr froh, wenn mir hierbei jemand helfen könnte.
Aufgabenstellung des Lehrers:
Berechnung der Prüfziffer:
Die zwölf Ziffern der Artikelnummer werden von links nach rechts addiert. Vor der Addition werden die Ziffern an den geraden Stellen mit 3 multipliziert. Die Summer wird durch 10 dividiert. Der Rest wird als ganze Zahl von 10 subtrahiert. Die Einerstelle der Differenz ist die Prüfziffer.
calcPruefziffer(...)
Diese Methode berechnet die Prüfziffe. Die 12 Ziffern der EAN werden als Byte-Array an die Methode übergeben. Die berechnete Prüfziffer wird an den Aufrufer der Methode zurückgegeben.
Hinweis: Die ersten 12 Ziffern der EAN Nummer werden als Byte-Array übergeben. Die ermittelte Prüfziffer ist der Rückgabewert der Methode.
parseEan(...)
Diese Methode wandelt einen 12-stelligen EAN-String in ein Byte-Array um. Der EAN-String wird der Methode als Parameter übergebe. Die Methode wandelt jedes einzelne Zeichen des EAN-Strings in eine Zahl von Type Byte um. Die so umgewandelten Zahlen werden in ein Array gespeichert und dann an den Aufrufer der Methode zurückgegeben.
Hier der bisherige Java-Code (noch nicht vollständig aber es hapert ja momentan schon am compilieren :bahnhof
Java:
public class EAN {
public byte calcPruefziffer (byte ean12[]){
ean12 = new byte[12];
int sum;
for (int i = 0; i < 12; i++)
//Vor der Addition werden die Ziffern an den geraden Indexstellen mit 3 multipliziert
{
if (ean12[i] % 2 == 0){
ean12[i] = (ean12[i]*3);
}
}
//Addition
sum = ean12[0] + ean12[1] + ean12[2] + ean12[3] + ean12[4] + ean12[5] + ean12[6] +
ean12[7] + ean12[8] + ean12[9] + ean12[10] + ean12[11];
//Die Summe wird durch 10 dividiert
sum = sum / 10;
//Der Rest wird als ganze Zahl von 10 subrahiert.
sum = 10 - sum;
//Einerstelle aus der Variable extrahieren
sum = sum % 10;
}
public byte parseEan(String ean12) {
}
}
Ich erwarte hier nun keinesfalls dass meine Hausaufgaben von den anderen erledigt werden. Ich will nur lediglich wissen, warum ich das Byte Array nicht mit 3 multiplizieren kann. Ich wäre sehr froh, wenn mir hierbei jemand helfen könnte.