C# calcolatrice

di il
4 risposte

C# calcolatrice

Sto lavorando a questo programma in c# con gui in cui si presenta una calcolatrice con i 5 comandi default. L'unico problema è che in output mi risulti sempre 0, ho provato a modificare il programma ma niente, in teoria dovrebbe funzionare in pratica no. Non riesco ad identificare il problema sembra come se non ci fosse.

La variabile stringa serve a separare i singoli valori compresi gli operandi, per poi inserirli in una lista di stringhe. Tutte le operazioni verrano svolte invece una volta premuto il pulsante uguale che trasformerà la lista in un array e in base al suo contenuto provvederà a operare 2 valori alla volta.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Data;
using System.Diagnostics.Eventing.Reader;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace CalcolatriceGUI
{
    public partial class Form1 : Form
    {
        private int somma = 0;
        string stringa = "";
        List<string> listaStringhe = new List<string>();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text += "1";
            stringa += "1";
        }
        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text += "2";
            stringa += "2";
        }
        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text += "3";
            stringa += "3";
        }
        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text += "4";
            stringa += "4";
        }
        private void button5_Click(object sender, EventArgs e)
        {
            textBox1.Text += "5";
            stringa += "5";
        }
        private void button6_Click(object sender, EventArgs e)
        {
            textBox1.Text += "6";
            stringa += "6";
        }
        private void button7_Click(object sender, EventArgs e)
        {
            textBox1.Text += "7";
            stringa += "7";
        }
        private void button8_Click(object sender, EventArgs e)
        {
            textBox1.Text += "8";
            stringa += "8";
        }
        private void button9_Click(object sender, EventArgs e)
        {
            textBox1.Text += "9";
            stringa += "9";
        }
        private void button0_Click(object sender, EventArgs e)
        {
            textBox1.Text += "0";
            stringa += "0";
        }
        private void buttonPiu_Click(object sender, EventArgs e)
        {
            textBox1.Text += "+";
            listaStringhe.Add(stringa);
            listaStringhe.Add("+");
            stringa = "";
        }
        private void buttonMeno_Click(object sender, EventArgs e)
        {
            textBox1.Text += "-";
            listaStringhe.Add(stringa);
            listaStringhe.Add("-");
            stringa = "";
        }
        private void buttonPer_Click(object sender, EventArgs e)
        {
            textBox1.Text += "x";
            listaStringhe.Add(stringa);
            listaStringhe.Add("x");
            stringa = "";
        }
        private void buttonDivis_Click(object sender, EventArgs e)
        {
            textBox1.Text += "/";
            listaStringhe.Add(stringa);
            listaStringhe.Add("/");
            stringa = "";
        }
        private void buttonUguale_Click(object sender, EventArgs e)
        {
            listaStringhe.Add(stringa);
            int temp1, temp2;
            string[] arraystringhe = listaStringhe.ToArray();
            for(int i = 0; i < arraystringhe.Length; i++)
            {
                if (arraystringhe[i] == "+")
                {
                    temp1 = int.Parse(arraystringhe[i + 1]);
                    temp2 = int.Parse(arraystringhe[i - 1]);
                    somma = temp2 + temp1;
                    arraystringhe[i+1] = somma.ToString();
                }
                if (arraystringhe[i] == "-")
                {
                    temp1 = Int32.Parse(arraystringhe[i + 1]);
                    temp2 = Int32.Parse(arraystringhe[i - 1]);
                    somma = temp2 - temp1;
                    arraystringhe[i + 1] = somma.ToString();
                }
                if (arraystringhe[i] == "+")
                {
                    temp1 = Int32.Parse(arraystringhe[i + 1]);
                    temp2 = Int32.Parse(arraystringhe[i - 1]);
                    somma = temp2 * temp1;
                    arraystringhe[i + 1] = somma.ToString();
                }
                if (arraystringhe[i] == "+")
                {
                    temp1 = Int32.Parse(arraystringhe[i + 1]);
                    temp2 = Int32.Parse(arraystringhe[i - 1]);
                    somma = temp2 / temp1;
                    arraystringhe[i + 1] = somma.ToString();
                }

            }

            textBox1.Text = arraystringhe[arraystringhe.Length-1];
        }
        private void buttonCanc_Click(object sender, EventArgs e)
        {
            string temp1 = textBox1.Text.ToString();
            string temp2 = temp.Remove(temp.Length-1,1);
            textBox1.Text = temp2;
        }
    }
}

4 Risposte

  • Re: C# calcolatrice

    Occhio… Nelle if del butto = controlli I caratteri + - + +  

    P.S. questa è la sezione per C/C++ non per C#

  • Re: C# calcolatrice

    Grazie comunque non ho trovato la sezione per C# come non avevo notato l’errore ??

  • Re: C# calcolatrice

    C#

    https://www.iprogrammatori.it/forum-programmazione/csharp/

  • Re: C# calcolatrice

    Ho sistemato io nella sezione corretta 

Devi accedere o registrarti per scrivere nel forum
4 risposte