C# hesap makinesi önceki sonuçtan devam etme sorunu

raltahook07

Kilopat
Katılım
1 Ocak 2016
Mesajlar
28
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Ödev için hesap makinesi yaptım fakat bir işlem yaptıktan sonra tekrar sayı seçersem önceki sonucun yanında devam ediyor.
Örnek 5+5=10 yapıyorsa 6 ve her hangi bir şeyi toplamaya çalıştığımda 106 oluyor sıfırlayamıyorum.
Hangi kodla bunu yapabilirim?
 
Son düzenleyen: Moderatör:
Ben iOS için yapmıştım.
Basit ama istediğiniz sonuca ulaşıyorsunuz.
Hemen anlatayım.

Sayı tuşuna basılınca ekran label ine sayıyı gösteriyor sayı varsa da yanına ekleyip gösteriyor: label.text = label.text + basılanSayi
Daha sonra işlem tuşuna basılınca sayi1'e ekrandaki sayıyı alıyor. sayi1 = label.text şeklinde. İşlemide tutuyorsunuz.
Daha sonra 2. Sayı yukarıdaki gibi alınıp eşittir e basılınca 2. Sayı yine yukarıdaki gibi kaydediliyor ve basılan işleme göre sonuç çıkıyor.
Çıkan sonuçla işlem için işlem tuşlarına basılınca sayı1 i tutacağı için devam ediyor.

İlkokulda yapmıştım. Sanırım yanlışlıkla keşvetmiştim sonuçtan devam ediyor ama bilerek yapmadım diye sevinmiştim özledim o günleri bak şimdi :ROFL:
 
Kodları paylaşır mısınız?
İlk okulda yapmıştım çok geçmesede kodları bulabileceğimi sanmıyorum.
2 sene önceye kadar yaptığım şeyleri siliyordum :) ama artık GitHub'a atıyorum.

Aslında kolay isterseniz yapabilirsiniz rahatça.
Siz yazın yapamadığınız yere bakalım.

Kısaca:
Sayı tuşları fonksiyonu:
Ekrandaki sayıyı al(sayı yoksa boş gelecek o nedenle sorun yok) tuşun değerini ekle ve ekrana yaz.

İşlem tuşları fonksiyonu:
Ekrandaki sayıyı al Sayi1'e ata.
Seçilen işlemi bir değişkene atayabilirsiniz yeterki unutmayın :)

Eşittir tuşu fonksiyonu:
Sayi1 ile seçilen işleme göre işleme tut sonra sonucu ekrana yaz.

Birde ekranı temizle tuşu koyarsanız kolaylık olsun :ROFL:

İyi çalışmalar.

Değişkeni işlemi yaparken tekrar sıfırlamanız gerek.
İkinci işlemde mi ?
İşlemi tutan değişkeni diyorsanız tabiki yani eğer işlem tuşu şu şekilde yazılırsa :
islem = islemtus.text
islem in önceki tuttuğu değer kaybolacaktır sıfırlanır zaten. (y)
Buranın emojilerini özlemişim :ROFL:
 
Label değil textbox kullandım sonuç için kodlar bu.
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        double x, y;
        string z;
        private void Form1_Load(object sender, EventArgs e)
        {

            z = " ";
        }

        private void tus2_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "2";
            else
                textBox1.Text = textBox1.Text + "2";
        }

        private void tus3_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "3";
            else
                textBox1.Text = textBox1.Text + "3";
        }

        private void tus4_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "4";
            else
                textBox1.Text = textBox1.Text + "4";
        }

        private void tus5_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "5";
            else
                textBox1.Text = textBox1.Text + "5";
        }

        private void tus6_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "6";
            else
                textBox1.Text = textBox1.Text + "6";
        }

        private void tus7_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "7";
            else
                textBox1.Text = textBox1.Text + "7";
        }

        private void tus8_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "8";
            else
                textBox1.Text = textBox1.Text + "8";
        }

        private void tus9_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "9";
            else
                textBox1.Text = textBox1.Text + "9";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "";
            else
                textBox1.Text = textBox1.Text + "0";
        }

        private void button1_Click(object sender, EventArgs e)
        {

            x = Convert.ToDouble(textBox1.Text);
            z = "+";
            textBox1.Text = " ";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            x = Convert.ToDouble(textBox1.Text);
            z = "-";
            textBox1.Text = " ";
        }

        private void button3_Click(object sender, EventArgs e)
        {
            x = Convert.ToDouble(textBox1.Text);
            z = "/";
            textBox1.Text = " ";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            x = Convert.ToDouble(textBox1.Text);
            z = "*";
            textBox1.Text = " ";
        }

        private void return1_Click(object sender, EventArgs e)
        {

            y = Convert.ToDouble(textBox1.Text);
            if (z == "+")
            {
                textBox1.Text = Convert.ToString(x + y);
            }
            if (z == "-")
            {
                textBox1.Text = Convert.ToString(x - y);
            }
            if (z == "*")
            {
                textBox1.Text = Convert.ToString(x * y);
            }
            if (z == "/")
            {
                textBox1.Text = Convert.ToString(x / y);
            }
        }

        private void button8_Click(object sender, EventArgs e)
        {

            x = 0;
            y = 0;
            z = "";
            textBox1.Text = "0";
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button6_Click(object sender, EventArgs e)
        {
          
            
        }
        private void tus1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
                textBox1.Text = "1";
            else
                textBox1.Text = textBox1.Text + "1";
        }
    }
}

Dediklerinizden hiç bir şey anlamadım kendimi aptal hissettim.
 
Arkadaşlar değişkenin türünü String veya benzeri bir tür seçerseniz bilgisayar veri sayı olarak görmez. İnteger olarak tanımlamalısınız ki rakamları aritmetik olarak toplayabilsin.

Kod:
kasa=kasa + Convert.Toint32(textBox1.Text);
Gibi bir yapı kullanman gerek ki ; Çıkan sayı üzerinden de işlem yapabilesin.

Direkt olarak Windows'un hesap makinesi mantığında bir program istiyorsan internette kodları zaten mevcut, bulmana yardımcı oluruz.
 
Sorunu anlamadınız galiba işlem önceki sonuçtan devam ediyo ama önceki sonuçtan sonra her hangi bir sayıya tıkladığım zaman o sonuç gitmiyor üstüne yazıyor. Mesela önceki sonuç 10 ise ben 30 yazmak istersem 10 silinmek yerine 1030 oluyor.
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı