Portokostenrechner

hi ich programmiere im mom ein Programm zur Berechnung der Portokosten in C#.
Das Problem das ich habe ist, das ich nicht weiß wie ich die Kosten unterscheiden kann, denn bei den meisten briefsorten sind die maßen gleich und sie unterscheiden sich nur durch gewicht oder kleinere Abweichungen der Länge, Breite und Höhe.

Bisher bin ich soweit:

Code:
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int laenge, breite, höhe, gewicht, porto, flaechgew;

                laenge = Convert.ToInt32(textBox1.Text);
                breite = Convert.ToInt32(textBox2.Text);
                höhe = Convert.ToInt32(textBox3.Text);
                gewicht = Convert.ToInt32(textBox4.Text);
                flaechgew = Convert.ToInt32(textBox5.Text);
               

                if (laenge < 100)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (breite < 70)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (höhe > 150)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (gewicht > 2000)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (flaechgew < 150)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (laenge > 600)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (breite > 300)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (flaechgew > 500)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (laenge > 353)
                {
                    textBox6.Text = Convert.ToString(porto);
                }
            }
            catch
            {
                MessageBox.Show("Konvertierungsfehler", "Achtung", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

EDIT:
Maße der einzelnen Sorten:

L=Länge; B= Breite; H=Höhe; G= Gewicht; P= Porto

Postkarte

L=140-235mm
B=90-125mm
H=---------
G= Flächengewicht 150-500 g/qm
P=0,45?



Standartbrief

L=140-235mm
B=90-125mm
H=bis 5mm
G=bis 20 g
P=0,55g



Kompaktbrief

L=100-235mm
B=70-125mm
H=bis 10mm
G=bis 50 g
P= 0,90?



Großbrief

L=100-353mm
B=70-250mm
H=bis 20mm
G=bis 500 g
P= 1,45?



Maxibrief

L=100-353mm
B=70-250mm
H=bis 50mm
G=bis 1000g
P= 2,20?



Päckchen

L= bis 600mm
B= bis 300mm
H= bis 150mm
G= bis 2000g
P= 3,90?



Danke schonmal im vorraus
 
IF Abfrage mit mehreren Bedingungen?

Code:
If (laenge = 100 && breite = 150 &&  gewicht = 35)
 
Code:
If (laenge = 100 && breite = 150 &&  gewicht = 35)
ist falsch (würd ich mal behaupten)
wenn dann schon
Code:
If (laenge == 100 && breite == 150 &&  gewicht == 35)


Gruß odigo
 
ist falsch (würd ich mal behaupten) wenn dann schon
schon möglich (also bei c++ wäre es definitiv falsch)

es geht ja nur ums Prinzip. Erst hatte ich auch "AND" anstatt der "&&" geschrieben. Ich glaube eben, der wusste einfach nicht, dass man mehrere Bedinungen in einem If Statemant angeben kann. :)

EDIT:
Habe die Syntax kurz nachgeschlagen, ist gleich wie bei c++.
 
habe ich auch gerade gemerkt^^
An sich ist das ja auch richtig aber ich will ja das er wie zum Beispiel hier:
postkarte 140-235mm länge; 90-125mm breite; KEINE Höhe; 15-500g/qm flächengewicht;
wenn diese intervalle alle zutreffen das er dann die 45 cent ausgibt

EDIT:
@ 90nop

ich wusste es schon aber ich habe die sache falsch angegangen
 
wo ist jetzt dein Problem? Das ist eine einzige IF Abfrage... oder ich verstehe dich falsch:
Code:
If (len >= 140 && len <= 235 && width >= 90 && width <= 125 && weight  >= 15 && weight <= 500)
 
danke das habe ich gesucht. Bin leider nicht selbst drauf gekommen aber großes DANKESCHÖN

EDIT:

Habe es fertiggestellt

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Portokostenrechner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int laenge, breite, höhe, gewicht, flaechgew;

                laenge = Convert.ToInt32(textBox1.Text);
                breite = Convert.ToInt32(textBox2.Text);
                höhe = Convert.ToInt32(textBox3.Text);
                gewicht = Convert.ToInt32(textBox4.Text);
                flaechgew = Convert.ToInt32(textBox5.Text);


                if (laenge < 100)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (breite < 70)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (höhe > 150)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (gewicht > 2000)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
             
                if (laenge > 600)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (breite > 300)
                {
                    MessageBox.Show("Keine bekannten Maße", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (laenge >= 140 && laenge <= 235 && breite >= 90 && breite <= 125 && höhe >=1 && höhe <= 5 && gewicht >= 1 && gewicht <= 20 && flaechgew == 0)
                {
                    textBox6.Text = Convert.ToString("0,55 Euro");
                }

                if (laenge >= 140 && laenge <= 235 && breite >= 90 && breite <= 125 && höhe == 0 && gewicht == 0 && flaechgew >= 150 && flaechgew <= 500)
                {
                    textBox6.Text = Convert.ToString("0,45Euro");
                }
                
                if ( laenge >= 100 && laenge <= 235 && breite >=70 && breite <= 125 && höhe >= 1 && höhe <= 10 && gewicht >= 1 && gewicht <= 50 && flaechgew ==0)
                {
                    textBox6.Text = Convert.ToString("0,90 Euro");
                }

                if ( laenge >= 100 && laenge <= 353 && breite >= 70 && breite <= 250 && höhe >= 1 && höhe <= 20 && gewicht >= 1 && gewicht <= 500 && flaechgew ==0)
                {
                    textBox6.Text = Convert.ToString("1,45 Euro");
                }
                if (laenge >= 100 && laenge<= 353  && breite >= 70 && breite <= 250 && höhe >= 1 && höhe <= 50 && gewicht >= 1 && gewicht <= 1000 && flaechgew==0)
                {
                    textBox6.Text=Convert.ToString("2,20 Euro");
                }

                if (laenge >= 1 && laenge <= 600 && breite >= 1 && breite <= 300 && höhe >= 1 && höhe <= 150 && gewicht >= 1 && gewicht <= 2000 && flaechgew == 0)
                {
                    textBox6.Text = Convert.ToString("3,90 Euro");
                }
            }
           
            catch
            {
                MessageBox.Show("Konvertierungsfehler", "Achtung", MessageBoxButtons.OK, MessageBoxIcon.Error);
            } 
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hiermit beenden sie den Portorechner", "Danke für die Benutzung", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Application.Exit();
        }

        
    }
}
 
Sind für diese Probleme nicht extra CASE Abfragen eingeführt worden?
(Habe keine Ahnung von c & Konsorten, denke mal das gibts nicht nur in php?)
 
Zurück
Oben