C# İle Çocuklar İçin Matematik Dört İşlem Uygulamaları
Bu uygulama 6 ile 10 yaş arasındaki çocukların matematik dersinden toplama, çıkarma, çarpma ve bölme işlemlerini geliştirmek için kolay, orta ve zor aşamalarından oluşan bir, iki ve üç basamaklı sayılar ile işlemler yapmasını sağlayan bir C# Form uygulamasıdır.
Kullanıcı öncelikle sol tarafta bulunan işlemler menüsünden hangi işlemi yapacaksa o işlemi seçer. Daha sonra seçmiş olduğu işlem için bir, iki ya da üç basamaklı olan seçeneklerden birini seçer. Seçme işlemi yapıldıktan sonra rastgele sayılar oluşturmak için ilgili butona tıklayarak rastgele sayılar oluşturur. Oluşturulan sayılar ekranda hangi işlem türü seçilmiş ise o formatta ekranda görünür. Kullanıcı işlemin sonucunu hesaplar ve sonuç kutusuna yazarak sonucu kontrol eder. Doğru sonuç bulunmuş ise Sonuç doğru, bulunamamış ise Sonuç yanlış yazarak doğru sonucu gösterir.
Program sınırlı olarak değil de istenilen kadar sayıda yani sınırsız olarak işlem yapar. Kullanıcı devam etmek istediği sürece yeni sayılar oluşturur ve sonucunu hesaplayabilir.
Toplama İşlemi:
1 Basamaklı Toplama İşlemi:
Kullanıcı 1 basamaklı toplama işlemini seçtiğinde program rast gele bir basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı toplama işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir.
2 Basamaklı Toplama İşlemi:
Kullanıcı 2 basamaklı toplama işlemini seçtiğinde program rast gele iki basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı toplama işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir.
3 Basamaklı Toplama İşlemi:
Kullanıcı 3 basamaklı toplama işlemini seçtiğinde program rast gele üç basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı toplama işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir.
Çıkarma İşlemi:
1 Basamaklı Çıkarma İşlemi:
Kullanıcı 1 basamaklı çıkarma işlemini seçtiğinde program rast gele bir basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı çıkarma işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir. Eksi sonuç çıkmaması için her zaman birinci sayı büyük olarak üretilir.
2 Basamaklı Çıkarma İşlemi:
Kullanıcı 2 basamaklı çıkarma işlemini seçtiğinde program rast gele iki basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı çıkarma işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir. Eksi sonuç çıkmaması için her zaman birinci sayı büyük olarak üretilir.
3 Basamaklı Çıkarma İşlemi:
Kullanıcı 3 basamaklı çıkarma işlemini seçtiğinde program rast gele üç basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı çıkarma işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir. Eksi sonuç çıkmaması için her zaman birinci sayı büyük olarak üretilir.
Çarpma İşlemi:
1 Basamaklı Çarpma İşlemi:
Kullanıcı 1 basamaklı çarpma işlemini seçtiğinde program rast gele bir basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı çarpma işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir.
2 Basamaklı Çarpma İşlemi:
Kullanıcı 2 basamaklı çarpma işlemini seçtiğinde program rast gele iki basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı çarpma işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir.
3 Basamaklı Çarpma İşlemi:
Kullanıcı 3 basamaklı çarpma işlemini seçtiğinde program rast gele üç basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı çarpma işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir.
Bölme İşlemi:
1 Basamaklı Bölme İşlemi:
Kullanıcı 1 basamaklı bölme işlemini seçtiğinde program rast gele bir basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı bölme işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir. Bölme işleminde kalan sayı da ayrıca gösterilir. Sonuç 1’den küçük olmaması için her zaman birinci sayı büyük olarak üretilir.
2 Basamaklı Bölme İşlemi:
Kullanıcı 2 basamaklı bölme işlemini seçtiğinde program rast gele iki basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı bölme işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir. Bölme işleminde kalan sayı da ayrıca gösterilir. Sonuç 1’den küçük olmaması için her zaman birinci sayı büyük olarak üretilir.
3 Basamaklı Bölme İşlemi:
Kullanıcı 3 basamaklı bölme işlemini seçtiğinde program rast gele üç basamaklı iki tane sayı üretir ve ekranda gösterir. Kullanıcı bölme işleminin sonucunu girdiğinde, eğer sonuç doğru ise Sonuç Doğru, eğer sonuç yanlış ise Sonuç Yanlış şeklinde mesaj gösterir ve aynı zamanda doğru sonucun da ne olduğunu gösterir. Bölme işleminde kalan sayı da ayrıca gösterilir. Sonuç 1’den küçük olmaması için her zaman birinci sayı büyük olarak üretilir.
Programın Aşamaları:
Program başlatıldığında kullanıcının adının girilmesini isteyen bir karşılama ekranı gelir. Kullanıcı adını girmediği takdirde uygulamaya devam edemez.
Kullanıcı ismini girdiğinde uygulama başlatılır ve kişinin adını kullanarak Hoş geldiniz isim Başarılar şeklinde karşılama yapılır ve uygulama başlatılır. Soldaki menüde yapmak istediği işlemi seçerek devam eder.
Kullanıcı soldaki menüden herhangi bir işlem türü seçmezse Soldaki menüden bir işlem seçiniz şeklinde uyarı mesajı verir.
Soldaki menüden örnek olarak toplama işlemi ve iki basamaklı seçilirse ana ekrandaki buton üzerine toplama işlemi için sayı üretme butonu oluşur ve sayıların görünümü toplama formatına uygun olarak gelir.
Sayı üretme butonuna tıkladığımızda seçilen basamak sayısı kadar basamaklı rastgele sayılar üretilir ve ekranda yerlerine yazılır ve bu alanlara el ile sayı yazılamaz. Sadece rastgele sayıları program otomatik üretir. Sonuç yazılmadan ya da sayı yerine başka karakter yazıldığında uyarı mesajı verir.
El ile girilen sonuç yanlış ise sonuç yanlış şeklinde uyarı mesajı verir ve aynı zamanda doğru sonu gösterir.
Girilen işlem sonucu doğru ise Sonuç doğru şeklinde mesaj verir.
Çıkarma işleminde sonucun negatif çıkmaması için program her zaman birinci sayıyı büyük sayı olarak üretir. Böylece sonuç çocukların işlem kapasitesine de uygun olarak her zaman pozitif çıkar.
Bölme işleminde yine çıkarma işleminde olduğu gibi birinci sayı her zaman ikinci sayıdan büyük olarak üretilir. Böylece sonuç her zaman en az 1 olarak çıkar. Aynı zamanda bölme işleminde işlemin kalanı da ayrıca hesaplanır ve ekranda gösterilir.
Sonuç doğru ise ekranda ayrıca Doğru sonuç gösterilmez ama bölme işleminden kalan sonuç yeniden ekranda gösterilir.
Programın C# kodları:
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; using Microsoft.VisualBasic; namespace CocuklarIcinMatematikDortIslemUygulama { public partial class Form1 : Form { int sayi1, sayi2, sonuc; double kontrol; public Form1() { InitializeComponent(); } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (treeView1.SelectedNode.Name == "Node4") // 1 Basamaklı Toplama { label2.Text = "+"; button1.Text = "1 Basamaklı Toplama İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node7") // 2 Basamaklı Toplama { label2.Text = "+"; button1.Text = "2 Basamaklı Toplama İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node8") // 3 Basamaklı Toplama { label2.Text = "+"; button1.Text = "3 Basamaklı Toplama İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node9") // 1 Basamaklı Çıkarma { label2.Text = "-"; button1.Text = "1 Basamaklı Çıkarma İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node10") // 2 Basamaklı Çıkarma { label2.Text = "-"; button1.Text = "2 Basamaklı Çıkarma İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node11") // 3 Basamaklı Çıkarma { label2.Text = "-"; button1.Text = "3 Basamaklı Çıkarma İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node12") // 1 Basamaklı Çarpma { label2.Text = "*"; button1.Text = "1 Basamaklı Çarpma İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node13") // 2 Basamaklı Çarpma { label2.Text = "*"; button1.Text = "2 Basamaklı Çarpma İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node14") // 3 Basamaklı Çarpma { label2.Text = "*"; button1.Text = "3 Basamaklı Çarpma İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = false; label11.Visible = false; } if (treeView1.SelectedNode.Name == "Node15") // 1 Basamaklı Bölme { label2.Text = "/"; button1.Text = "1 Basamaklı Bölme İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = true; label11.Visible = true; } if (treeView1.SelectedNode.Name == "Node16") // 2 Basamaklı Bölme { label2.Text = "/"; button1.Text = "2 Basamaklı Bölme İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = true; label11.Visible = true; } if (treeView1.SelectedNode.Name == "Node17") // 3 Basamaklı Bölme { label2.Text = "/"; button1.Text = "3 Basamaklı Bölme İşlemi Üret"; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; label10.Visible = true; label11.Visible = true; } } private void button1_Click(object sender, EventArgs e) // Rastgele sayı üretme ve ekrana yazdırma bölümü { label6.Text = ""; label6.BackColor = Color.Yellow; if ((treeView1.SelectedNode.Name == "Node4") || (treeView1.SelectedNode.Name == "Node7") || (treeView1.SelectedNode.Name == "Node8") || (treeView1.SelectedNode.Name == "Node9") || (treeView1.SelectedNode.Name == "Node10") || (treeView1.SelectedNode.Name == "Node11") || (treeView1.SelectedNode.Name == "Node12") || (treeView1.SelectedNode.Name == "Node13") || (treeView1.SelectedNode.Name == "Node14") || (treeView1.SelectedNode.Name == "Node15") || (treeView1.SelectedNode.Name == "Node16") || (treeView1.SelectedNode.Name == "Node17")) { if ((treeView1.SelectedNode.Name == "Node4") || (treeView1.SelectedNode.Name == "Node9") || (treeView1.SelectedNode.Name == "Node12") || (treeView1.SelectedNode.Name == "Node15")) { // 1 Basamaklı rastgele sayı üretme ve ekrana yazdırma bölümü Random rnd = new Random(); sayi1 = rnd.Next(1, 9); sayi2 = rnd.Next(1, 9); if (sayi1 > sayi2) { textBox1.Text = sayi1.ToString(); textBox2.Text = sayi2.ToString(); } else { textBox1.Text = sayi2.ToString(); textBox2.Text = sayi1.ToString(); } } if ((treeView1.SelectedNode.Name == "Node7") || (treeView1.SelectedNode.Name == "Node10") || (treeView1.SelectedNode.Name == "Node13") || (treeView1.SelectedNode.Name == "Node16")) { // 2 Basamaklı rastgele sayı üretme ve ekrana yazdırma bölümü Random rnd = new Random(); sayi1 = rnd.Next(10, 99); sayi2 = rnd.Next(10, 99); if (sayi1 > sayi2) { textBox1.Text = sayi1.ToString(); textBox2.Text = sayi2.ToString(); } else { textBox1.Text = sayi2.ToString(); textBox2.Text = sayi1.ToString(); } } if ((treeView1.SelectedNode.Name == "Node8") || (treeView1.SelectedNode.Name == "Node11") || (treeView1.SelectedNode.Name == "Node14") || (treeView1.SelectedNode.Name == "Node17")) { // 3 Basamaklı rastgele sayı üretme ve ekrana yazdırma bölümü Random rnd = new Random(); sayi1 = rnd.Next(100, 999); sayi2 = rnd.Next(100, 999); if (sayi1 > sayi2) { textBox1.Text = sayi1.ToString(); textBox2.Text = sayi2.ToString(); } else { textBox1.Text = sayi2.ToString(); textBox2.Text = sayi1.ToString(); } } } else { MessageBox.Show("Lütfen Soldaki Menüden Bir İşlem Seçiniz"); } } private void button2_Click_1(object sender, EventArgs e) // Sonuç hesaplama bölümü { int i; if ((textBox1.Text != "") || (textBox2.Text != "")) { if (int.TryParse(textBox3.Text, out i)) // Girilen ifadenin rakam olup olmadığını kontrol ediyor. { if ((treeView1.SelectedNode.Name == "Node4") || (treeView1.SelectedNode.Name == "Node7") || (treeView1.SelectedNode.Name == "Node8")) { sonuc = sayi1 + sayi2; kontrol = Convert.ToDouble(textBox3.Text); } if ((treeView1.SelectedNode.Name == "Node9") || (treeView1.SelectedNode.Name == "Node10") || (treeView1.SelectedNode.Name == "Node11")) { if (sayi1 > sayi2) { sonuc = sayi1 - sayi2; kontrol = Convert.ToDouble(textBox3.Text); } else { sonuc = sayi2 - sayi1; kontrol = Convert.ToDouble(textBox3.Text); } } if ((treeView1.SelectedNode.Name == "Node12") || (treeView1.SelectedNode.Name == "Node13") || (treeView1.SelectedNode.Name == "Node14")) { sonuc = sayi1 * sayi2; kontrol = Convert.ToDouble(textBox3.Text); } if ((treeView1.SelectedNode.Name == "Node15") || (treeView1.SelectedNode.Name == "Node16") || (treeView1.SelectedNode.Name == "Node17")) { if (sayi1 > sayi2) { sonuc = sayi1 / sayi2; kontrol = Convert.ToInt16(textBox3.Text); label11.Text = (sayi1 % sayi2).ToString(); } else { sonuc = sayi2 / sayi1; kontrol = Convert.ToInt16(textBox3.Text); label11.Text = (sayi2 % sayi1).ToString(); } } if (sonuc == kontrol) { label6.Text = "Sonuç Doğru"; label6.BackColor = Color.Green; label12.Visible = false; } else { label6.Text = "Sonuç Yanlış"; label6.BackColor = Color.Red; label12.Visible = true; label12.Text = "Sonuç: "+sonuc.ToString(); } } else { MessageBox.Show("Lütfen sonuç rakamını yazınız."); } } else { MessageBox.Show("Lütfen Önce Rastgele Sayıları Üretin!"); } } private void button2_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { treeView1.Visible = false; button1.Visible = false; panel2.Visible = false; panel3.Visible = false; label6.Text = ""; label10.Visible = false; label11.Visible = false; label12.Visible = false; //giris f2 = new giris(); //f2.MdiParent = this.ParentForm; // this: f1'in ana formu //f2.Show(); } private void button3_Click(object sender, EventArgs e) { if (textBox4.Text == "") { MessageBox.Show("Lütfen Adınızı Giriniz..."); } else { treeView1.Visible = true; button1.Visible = true; panel2.Visible = true; panel3.Visible = true; textBox4.Visible = false; button3.Visible = false; label8.ForeColor = Color.Red; label8.Text = "Hoşgelgin " + textBox4.Text + " Başarılar..."; } } } }
sds
<< Önceki Yazı
Sonraki Yazı >>