C# :: Aufgabe #294 :: Lösung #1

4 Lösungen Lösungen öffentlich
#294

Berechnen der Prüfziffer einer EAN- Nummer

Anfänger - C# von JKooP - 29.03.2020 um 13:53 Uhr
Schreibe ein Programm mit dem man sowohl die Prüfziffer einer EAN- Nummer (Europäische Artikel- Nummerierung) berechnen als auch überprüfen kann.

Die EAN- Nummer besteht aus 13 Ziffern, wobei es sich bei der letzten Ziffer um die Prüfziffer handelt.

Beispiel für eine EAN: 978381582086[?]

Die Prüfziffer wird berechnet, indem man die ersten 12 Ziffern von links beginnend abwechselnd mit 1 und 3 multipliziert und anschließend die Produkte summiert.

Die Differenz zum nächsten Vielfachen von 10 ist die Prüfziffer.

Ist die Summe durch 10 teilbar, ist die Prüfziffer die Ziffer 0.

9·1 + 7·3 + 8·1 + 3·3 + 8·1 + 1·3 + 5·1 + 8·3 + 2·1 + 0·3 + 8·1 + 6·3
= 9 + 21 + 8 + 9 + 8 + 3 + 5 + 24 + 2 + 0 + 8 + 18 = 115
115 + 5 = 120 ⇒ Prüfziffer: 5

Viel Spaß
#1
vote_ok
von Waldgeist (2310 Punkte) - 08.04.2020 um 14:41 Uhr
Hallo,

mir mein Lösungsvorschlag.

Quellcode ausblenden C#-Code
using System;
using System.Windows;

namespace EAN_Prüfsumme
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void ButtonBerechne_Click(object sender, RoutedEventArgs e)
        {
            int prüfsumme = 0;
            string c;
            int zahl = 0;
            int summe = 0;
            string eingabe = TextBoxEingabe.Text;
            if (eingabe.Length != 12)
            {
                TextBoxAusgabe.Text = "Falsche Eingabe";
            }
            else
            {
                for (int i = 1; i < eingabe.Length + 1; i++)
                {
                    if (i % 2 == 0)
                    {
                        c = eingabe[i - 1].ToString();
                        zahl = (Convert.ToInt32(c)) * 3;
                        TextBoxAusgabe.Text = c.ToString();
                    }
                    else
                    {
                        c = eingabe[i - 1].ToString();
                        zahl = (Convert.ToInt32(c));
                        TextBoxAusgabe.Text = c.ToString();
                    }
                    summe = summe + zahl;
                }

                if (summe % 10 == 0)
                {
                    prüfsumme = 0;
                }
                else
                {
                    while (summe % 10 != 0)
                    {
                        summe++;
                        prüfsumme++;
                    }
                }
            }
            TextBoxAusgabe.Text = prüfsumme.ToString();
        }
    }
}



hier der XAML Code

Quellcode ausblenden C#-Code
<Window x:Class="EAN_Prüfsumme.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:EAN_Prüfsumme"
        mc:Ignorable="d"
        Title="EAN Prüfsumme" Height="321" Width="355">
    <Grid>
        <TextBox x:Name="TextBoxEingabe" HorizontalAlignment="Left" Height="28" Margin="39,63,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="265" />
        <Button x:Name="ButtonBerechne" Content="Berechne Prüfsumme" HorizontalAlignment="Left" Height="37" Margin="39,108,0,0" VerticalAlignment="Top" Width="265" Click="ButtonBerechne_Click" />
        <TextBox x:Name="TextBoxAusgabe" HorizontalAlignment="Left" Height="29" Margin="39,198,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="265" />
        <Label Content="Bitte eine EAN Nummer (12-stellig) eingeben:" HorizontalAlignment="Left" Height="42" Margin="39,21,0,0" VerticalAlignment="Top" Width="529" />
        <Label Content="Prufsumme" HorizontalAlignment="Left" Height="30" Margin="39,168,0,0" VerticalAlignment="Top" Width="265" />
    </Grid>
</Window>

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2090851

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.