C# Hilfe gesucht

[xFx] TDK

Enthusiast
Thread Starter
Mitglied seit
12.10.2006
Beiträge
859
So hi erstmal,
ich hab nen kleines Programm gemacht, welches den Notendurchschnitt ausrechnen sollte, das Problem ist ich hab ne format exception drin und wenn eine zeile falsch ausgefüllt wird, macht es nicht weiter und nimmt nur die ersten variablen. bitte sagt mal nichts gegen die sinnhaftigkeit oder so, der code könnte viel einfacher gemacht werden, aber ich bin noch am lernen (und so für alles offen!!)
danke schonmal
der code:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Notendurchschnittsrechner
{
    public partial class Form1 : Form
    {
        double durch;
        double n1 = 0;
        double n2 = 0;
        double n3 = 0;
        double n4 = 0;
        double n5 = 0;
        double n6 = 0;
        double n7 = 0;
        double n8 = 0;
        double n9 = 0;
        double n10 = 0;
        double n11 = 0;
        double n12 = 0;
        double n13 = 0;
        double n14 = 0;
        double n15 = 0;
        double n16 = 0;
        double n17 = 0;
        double n18 = 0;
        double n19 = 0;
        double n20 = 0;
        double n21 = 0;
        double n22 = 0;
        double n23 = 0;
        double n24 = 0;
        double durchrech = 24;

        public static double Schau(double a, double durchrech)
        {
            if(a == 0)
            {
                durchrech--;
            }
            return durchrech;
            
        }
        

        public Form1()
        {
            InitializeComponent();
        }

        private void buttonBerech_Click(object sender, EventArgs e)
        {
            try
            {
                
                n1 = Convert.ToDouble(textBoxNote1.Text);
                n2 = Convert.ToDouble(textBoxNote2.Text);
                n3 = Convert.ToDouble(textBoxNote3.Text);
                n4 = Convert.ToDouble(textBoxNote4.Text);
                n5 = Convert.ToDouble(textBoxNote5.Text);
                n6 = Convert.ToDouble(textBoxNote6.Text);
                n7 = Convert.ToDouble(textBoxNote7.Text);
                n8 = Convert.ToDouble(textBoxNote8.Text);
                n9 = Convert.ToDouble(textBoxNote9.Text);
                n10 = Convert.ToDouble(textBoxNote10.Text);
                n11 = Convert.ToDouble(textBoxNote11.Text);
                n12 = Convert.ToDouble(textBoxNote12.Text);
                n13 = Convert.ToDouble(textBoxNote13.Text);
                n14 = Convert.ToDouble(textBoxNote14.Text);
                n15 = Convert.ToDouble(textBoxNote15.Text);
                n16 = Convert.ToDouble(textBoxNote16.Text);
                n17 = Convert.ToDouble(textBoxNote17.Text);
                n18 = Convert.ToDouble(textBoxNote18.Text);
                n19 = Convert.ToDouble(textBoxNote19.Text);
                n20 = Convert.ToDouble(textBoxNote20.Text);
                n21 = Convert.ToDouble(textBoxNote21.Text);
                n22 = Convert.ToDouble(textBoxNote22.Text);
                n23 = Convert.ToDouble(textBoxNote23.Text);
                n24 = Convert.ToDouble(textBoxNote24.Text);
                
            }
            catch (FormatException)
            {
                 
                
            }
            durchrech = Schau(n1, durchrech);
            durchrech = Schau(n2, durchrech);
            durchrech = Schau(n3, durchrech);
            durchrech = Schau(n4, durchrech);
            durchrech = Schau(n5, durchrech);
            durchrech = Schau(n6, durchrech);
            durchrech = Schau(n7, durchrech);
            durchrech = Schau(n8, durchrech);
            durchrech = Schau(n9, durchrech);
            durchrech = Schau(n10, durchrech);
            durchrech = Schau(n11, durchrech);
            durchrech = Schau(n12, durchrech);
            durchrech = Schau(n13, durchrech);
            durchrech = Schau(n14, durchrech);
            durchrech = Schau(n15, durchrech);
            durchrech = Schau(n16, durchrech);
            durchrech = Schau(n17, durchrech);
            durchrech = Schau(n18, durchrech);
            durchrech = Schau(n19, durchrech);
            durchrech = Schau(n20, durchrech);
            durchrech = Schau(n21, durchrech);
            durchrech = Schau(n22, durchrech);
            durchrech = Schau(n23, durchrech);
            durchrech = Schau(n24, durchrech);

            durch = (n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10 + n11 + n12 + n13 + n14 + n15 + n16 + n17 + n18 + n19 + n20 + n21 + n22 + n23 + n24 + 0.00) / durchrech;
            labelNote.Text = "" + durch;
            n1 = 0;
            n2 = 0;
            n3 = 0;
            n4 = 0;
            n5 = 0;
            n6 = 0;
            n7 = 0;
            n8 = 0;
            n9 = 0;
            n10 = 0;
            n11 = 0;
            n12 = 0;
            n13 = 0;
            n14 = 0;
            n15 = 0;
            n16 = 0;
            n17 = 0;
            n18 = 0;
            n19 = 0;
            n20 = 0;
            n21 = 0;
            n22 = 0;
            n23 = 0;
            n24 = 0;
            durchrech = 24;
        }

        private void textBox8_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wo genau liegt jetz dein Problem? kannst du bitte etwas genauer beschreiben was du vorhast und an was es hapert!? Ist wirklich nicht sehr schön der code.. ^^
 
jo ich weiß mir wäre aber nicht eingefallen wie ich es sonst machen sollte^^.
Also es ist so. es sind verschiedene Textboxen da. wenn jetzt nicht nach der reihe ausgefüllt wird, sondern eine ausgelasen wird, nimmt er die zahlen nicht mehr, weil er bei der "FormatException" den fehler hat und dann die restlichen nx variablen nicht mehr einliest. hab das problem z.z. so gelöst, das er jede variable einzeln mit einer "FormatException" einließt. Der code wird dadurch aber nicht unbedingt schöner^^.
 
Hallo,
hier mal ein Bsp. um auf einen ButtonClick alle Eingabefelder (TextBoxes) innerhalb eines Forms auf eine validate Dateneingabe (integer) zu überprüfen. Es wird zunächst für jede Textbox geprüft, ob überhaupt eine Eingabe vorgenommen wurde und dann mit TryParse geprüft, ob es sich um einen Integer wert handelt.

Code:
private void btnValidate_Click(object sender, EventArgs e)
      {
            foreach (Control ctrl in this.Controls)
            {
                if (ctrl.GetType() == typeof(TextBox))
                {
                    if (!string.IsNullOrEmpty(ctrl.Text))
                    {
                        Double result;
                        if (!Double.TryParse(ctrl.Text, System.Globalization.NumberStyles.Integer,
                            System.Globalization.CultureInfo.CurrentCulture, out result))
                        {
                            MessageBox.Show(this, string.Format("Input argument '{0}' not valid", ctrl.Text), "Error");
                            ctrl.Select();
                        }
                    }
                    else
                        MessageBox.Show(this, string.Format("Please check req. field: {0}", ctrl.Name), "Warning");
                }
            }
        }

MfG
stn_
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh