C# programok ismertetése érdeklődőknek kezdőktől haladókig

C# MŰHELY

C# MŰHELY

ÖRÖKLÉS. Kalkulátor

2021. december 02. - Benkő Tiborné

Írjunk programot, amely örökléssel oldja meg a kalkulátor működését a négy alapművelet mellett hatványoz és gyököt von, valamint mértani és számtani közepet is számol.

A feladat megoldása: 

                      class Kalkulátor
        {
            // adatmezők deklarációja
            protected double szám1, szám2, ered;
            protected char művjel;

            // paraméteres konstruktor
            public Kalkulátor(double sz1, double sz2, char mjel)
            {
                szám1 = sz1; szám2 = sz2; művjel = mjel;
                ered = 0;
            }

            // Metódusok
            public virtual void Művelet()
            {
                switch (művjel)
                {
                    case '+': ered = szám1 + szám2; break;
                    case '-': ered = szám1 - szám2; break;
                    case '*': ered = szám1 * szám2; break;
                    case '/': ered = szám1 / szám2; break;
                   
                }
            }

            // Visszaadja az ered tartalmát
            public double Ered
            {
                 get
                {
                     return ered;
                }
            }
        }

        class UjKalkulátor : Kalkulátor
        { 
            private double ered2, ered3;
            public UjKalkulátor(double sz1, double sz2, char mjel)
                               :base(sz1, sz2, mjel)
            {
                 ered2 = 0; ered3=0;
            }

           // Metódusok
            public override void Művelet()
            {
                switch (művjel)
                {
                    case '+': ered = szám1 + szám2; break;
                    case '-': ered = szám1 - szám2; break;
                    case '*': ered = szám1 * szám2; break;
                    case '/': ered = szám1 / szám2; break;
                    //  a szám1-et a szam2-edik hatványra emel
                    case '^': ered = Math.Pow(szám1,szám2); break;
                    // a szám1-et a szám2-edik gyökét számítja ki
                    case '~': ered = Math.Pow(szám1,1.0/szám2);
                              break;

                 }
            }

            public void MértaniKözép()
            {
                 ered2 = Math.Pow((szám1*szám2),1.0/2.0);
            }
            public void SzámtaniKözép()
            {
                 ered3 = (szám1+szám2)/2.0;
            }

            public double Ered2
            {
                get
                {
                    return ered2;
                }
            }
            public double Ered3
            {
                get
                {
                    return ered3;
                }
            }
        }

        private void Művelet_Click(object sender, EventArgs e)
        {
            double a, b;
            char műv;
            
int hiba;
            if (textBox1.Text != "" && textBox2.Text != ""
                && textBox3.Text != "")
            {
                a = Double.Parse(textBox1.Text);
                b = Double.Parse(textBox2.Text);
                műv = Char.Parse(textBox3.Text);
                hiba = 0;
                if (műv == '/' && b == 0)
                {
                     MessageBox.Show("0 az osztandó értéke!");
                }
                else
                {
                     switch (műv)
                     {
                        case '+': textBox7.Text = "Összeadás"; break;
                        case '-': textBox7.Text = "Kivonás"; break;
                        case '*': textBox7.Text = "Szorzás"; break;
                        case '/': textBox7.Text = "Osztás"; break;
                        case '^': textBox7.Text = "Hatványozás";
                                  break;
                        case '~': textBox7.Text = "Gyökvonás"; break;
                        default: hiba = 1;
                            MessageBox.Show("Hibás a műveleti jel!",
                                            "Hibajelzés!"); break;
                    }

                    if (hiba == 0);
                    {
                        UjKalkulátor k1 = new UjKalkulátor(a,b,műv);

                        k1.Művelet();
                        textBox4.Text = k1.Ered.ToString();
                        k1.SzámtaniKözép();
                        textBox5.Text = k1.Ered3.ToString();
                        k1.MértaniKözép();
                        textBox6.Text = k1.Ered2.ToString();
                    }
                }
            }
       }

       private void textBox1_TextChanged(object sender, EventArgs e)
       {
            textBox4.Text = ""; textBox5.Text = "";
            textBox6.Text = ""; textBox7.Text = "";
       }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
             textBox4.Text = ""; textBox5.Text = "";
             textBox6.Text = ""; textBox7.Text = "";
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {
             textBox4.Text = ""; textBox5.Text = "";
             textBox6.Text = ""; textBox7.Text = "";
        } 

A program futási eredményei:

 

     

    

 

A bejegyzés trackback címe:

https://csharp-muhely.blog.hu/api/trackback/id/tr416765058

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása