21 Haziran 2013 Cuma

Alarm Uygulaması - Csharp

Csharp'ta Alarm Uygulaması Yapılacak. Bunun için windows formumuza 3 label,3 textbox, 2 buton ve 2 timer ekliyoruz.

Çözümü:
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 uygulama8
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            txtTarih.Text = DateTime.Now.ToShortDateString();
            txtZaman.Text = DateTime.Now.ToLongTimeString();
            timer1.Enabled = false;
            timer2.Enabled = false;
            Text = "Alarm Kapalı";
            timer1.Interval = 100;
        }

        private void btnAlarmiAc_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            this.Text = "alarm açık";
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (txtTarih.Text == DateTime.Now.ToShortDateString() && txtZaman.Text == DateTime.Now.ToLongTimeString())
            {
                //timer2yi aktif yap (yanıp sönmeyi sağlayacak)
                timer2.Enabled = true;
                //Alarm metnini bildir
                MessageBox.Show(txtMesaj.Text);
            }
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            //Yazı ve zemin rengini değiştirerek
            //Yanıp sönmesini sağla
            Color c;
            c =txtMesaj.BackColor;
           txtMesaj.BackColor = txtMesaj.ForeColor;
           txtMesaj.ForeColor = c;
        }

        private void btnAlarmıKapat_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            timer2.Enabled = false;
            this.Text = "alarm kapalı";
        }
    }
}

Kod Açıklaması: 
  private void Form1_Load(object sender, EventArgs e)
        {
            txtTarih.Text = DateTime.Now.ToShortDateString();
            txtZaman.Text = DateTime.Now.ToLongTimeString();
            timer1.Enabled = false;
            timer2.Enabled = false;
            Text = "Alarm Kapalı";
            timer1.Interval = 100;
        }
Formumuz yüklendiği zaman öncelikle datetime sınıfını kullanarak bu sınıfın içinde şimdki tarihi ToShortDateString metodu ile tarihi gün,ay ve yıl olarak alıp textbox'ın içine yazdırıyoruz. ToLongTimeString metodunu kullanarak şimdki zamanı saat ve dakika olarak alıp textbox'ın içine yazdırıyoruz. Tezt dediğimiz formumuzun üstüne form 1 yerine alarm kapalı yazdırıyoruz. Bizim timer'ımız 100 milisaniyelik zaman diliminde çalışacak.

 private void btnAlarmiAc_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            this.Text = "alarm açık";
        }
Alarmı aç butonuna basmamız  ile timer1'i aktif hale getiriyoruz. Form1 yazılacak yere alarm açık yazdırıyoruz.

Timer1 peki nasıl aktif hale gelecek?
private void timer1_Tick(object sender, EventArgs e)
        {
            if (txtTarih.Text == DateTime.Now.ToShortDateString() && txtZaman.Text == DateTime.Now.ToLongTimeString())
            {
                //timer2yi aktif yap (yanıp sönmeyi sağlayacak)
                timer2.Enabled = true;
                //Alarm metnini bildir
                MessageBox.Show(txtMesaj.Text);
            }
        }
Şu kontrolu yapıyoruz eğer textbox'ın içindeki tarih bizim girdiğimiz tarih ile eşit ve zaman bizim textbox'ın içindeki saat ve dakika ile eşitse ozaman timer2 'yi aktif et ve mesaj box ile alarm mesaj kutusuna yazdığımızı ekrana mesaj ile getir.

private void timer2_Tick(object sender, EventArgs e)
        {
            //Yazı ve zemin rengini değiştirerek
            //Yanıp sönmesini sağla
            Color c;
            c =txtMesaj.BackColor;
           txtMesaj.BackColor = txtMesaj.ForeColor;
           txtMesaj.ForeColor = c;
        }
Timer2 timer1 aktif olunca aktif olacak. Ozaman textbox'ın arkaplanını koyu yapıyoruz. Böylece ordaki yazı yanıp sonen hale gelecek.

private void btnAlarmıKapat_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            timer2.Enabled = false;
            this.Text = "alarm kapalı";
        }

Alarmı kapat butonuna tıkladığımızda ise timer1 ve 2'yi kapatıyoruz. Ve form1 yazılacak yere alarm kapalı yazdırıyoruz.

Uygulamayı Buradan İndirebilirsiniz: https://hotfile.com/dl/230048774/cbbf783/uygulama8.rar.html

19 Haziran 2013 Çarşamba

String Listeleme ve Sıralama - Csharp



Öncelikle Formumuza iki tane listbox iki tane button ekliyelim. Butonlardan bir tanesi listeleme bir taneside sıralama olacak. Formumuzun üzerindeyken sağ tıklayıp view code kısmına geçip kullanacağımız diziyi public olarak tanımlarız. Sonra listeleme yapacağımız butonu çift tıklayıp burada öncelikle dizimize string değerler aktarırız. Bunu listbox’a yazdırmak için bir for döngüsü kurarız ve bu döngü dizinin eleman sayısı kadar döner.

Listeleme yaptıktan sonra sıralam işlemi yapmaya geldik. Bunun için Bir for döngüsü kurarız. Bu döngü ilk elemandan başlayıp son elemana kadar kontrol eder. Sonra bir while döngüsü kurup diziyi kontrol ederiz ve atama yapacağımız işlemi temp değişkenine atarız.

Sıralama yaptıktan sonra bunları listbox’a yazdırmak için tekrar bir for döngüsü kurarız.





Çözümü: 

public string[] dizi = new string[5];

        private void button1_Click(object sender, EventArgs e)
        {
            dizi[0] = "Mehmet";
            dizi[1] = "Zuhre";
            dizi[2] = "Kerem";
            dizi[3] = "Ayşe";
            dizi[4] = "Esra";

            int i;
            for (i = 0;i<=dizi.Length-1; i++) {

                listBox1.Items.Add(dizi[i]);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            dizi[0] = "Mehmet";
            dizi[1] = "Zuhre";
            dizi[2] = "Kerem";
            dizi[3] = "Ayşe";
            dizi[4] = "Esra";

            int i;
            for (i = 1; i <= dizi.Length - 1; i++)
            {

                int j = i;
                while (j != 0 && String.Compare(dizi[j], dizi[j - 1]) == -1)
                {
                               
                string temp = dizi[j - 1];
                dizi[j - 1] = dizi[j];
                dizi[j] = temp;
                j -= 1;
                }
               
            }
            for (int t = 0; t <= dizi.Length - 1; t++)
            {
                listBox2.Items.Add(dizi[t]);
            }
           
        }

      
    }

 

17 Haziran 2013 Pazartesi

Textbox'tan Alınan Sayı Kadar Rasgele Sayı Üretip Listbox'a Ekleme,Sırala,Silme ve Değiştirme - Csharp

Windows Formumuz Aşağıdaki Gibi Olacak;

Bu uygulamada, random sınıfını, dizileri ve listbox yapılarını kullanacağız.

Soru: Textbox'tan alınan bir sayı kadar rastgele sayılar üretilip listbox'a eklenecek. Sonra eklenen bu rastgele sayılar sıralanacak. En son Değiştir butonuna basarak bu sayılar başka rastgele sayılarla yer değiştirecek.

Çözümü:

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 uygulama6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
     public int[] uret;
     public int sayi;
     public int sayac = 0;
        private void btnUret_Click(object sender, EventArgs e)
        {
            sayi = Convert.ToInt32(textBox1.Text);
            uret = new int[sayi];
            Random rdn = new Random();
            listBox1.Items.Clear();
          
            for (int i = 0; i < sayi; i++)
            {
               uret[i]= rdn.Next(1, 1000);
               listBox1.Items.Add(uret[i]);

              
            }
            //textBox1.Text = "";
        }

        private void btnSirala_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            Array.Sort(uret);
            for (int i = 0; i < sayi; i++)
            {
                listBox1.Items.Add(uret[i]);
            }

        }

        private void btnSil_Click(object sender, EventArgs e)
        {
        
            listBox1.Items.Remove(listBox1.SelectedItem);
        }

        private void btnDegistir_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            sayi = Convert.ToInt32(textBox1.Text);
            uret = new int[sayi];
            Random rdn = new Random();
            listBox1.Items.Clear();

            for (int i = 0; i < sayi; i++)
            {
                uret[i] = rdn.Next(1, 1000);
                listBox1.Items.Add(uret[i]);


            }

         
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
Kod Açıklaması:
public int[] uret;
     public int sayi;
     public int sayac = 0;
        private void btnUret_Click(object sender, EventArgs e)
        {
            sayi = Convert.ToInt32(textBox1.Text);
            uret = new int[sayi];
            Random rdn = new Random();
            listBox1.Items.Clear();
          
            for (int i = 0; i < sayi; i++)
            {
               uret[i]= rdn.Next(1, 1000);
               listBox1.Items.Add(uret[i]);

              
            }
            //textBox1.Text = "";
        }
İlkönce textbox'a girilen değeri convert toint32 metodu kullanarak integer bir değere çevirdik ve sayi isminde bir değişkene atadık. Demekki bizim dizimizin eleman sayısı bu textbox'a girilen değer kadar olacak. Bunu şöyle yaptık;    uret = new int[sayi]; Bundan sonra random sınıfını kullanarak bir nesne ürettik. Listbox'ımıza bu üretilecek sayıları eklemeden önce; listBox1.Items.Clear(); listbox'a bulunan verileri(items) clear metodu kullanarak temizledik. Belki daha önceden veri eklenmiştir. Veya ratgele sayı ürettik bir defa üret butonuna bastığımızda eger daha önce verileri varsa onların üzerine ekleyecek. O yüzden işi sağlama aldık önceden veri olsada olmasada verileri temizledik. Gelelim artık ürettiğimiz sayıları bir diziye atıyalım sonra bu dizinin elemanlarını listbox'a eklemiş olacağız. Bunları yapmak için bir for döngüsü kuruyoruz. Bizim döngümüz textbox'a girilen sayı kadar döngümüz dönecek. uret[i]= rdn.Next(1, 1000); rnd diye bir nesne yaratmıştık. bu nesne 1,1000 arsında bir sayı üretecek ve bu sayı bizim dizimizin i. elemanına eklenecek. Döngüde 3. defa dönüyor. ozaman üretilen sayı dizimizin[3] 3 nolu indeksine ekleniyor. Şimdi sıra dizimizdeki i. elemanının tuttuğu sayıyı listbox'a eklemeye geldi. listBox1.Items.Add(uret[i]); bu kod ile dizinin i. elemanının tuttuğu sayıyı listbox'ın itemlerina verilerine add metodu ile ekleniyor.

Sırala Butonuna basılınca veriler sıralanacak;

            listBox1.Items.Clear();
            Array.Sort(uret);
            for (int i = 0; i < sayi; i++)
            {
                listBox1.Items.Add(uret[i]);
            }
Sıralanırken önceki verilerin üzerine sıralı verileri eklememek ve son sıralanmış halini eklemek için öncelikle listbox'ta olan itemleri temizliyoruz. Bunu clear metodu ile yapıyoruz. listBox1.Items.Clear();
Şimdi bizim dizimiz rastgele sayıları adı üstünde rastgele üretildiği sıra ile tutuyor. Bunları düzenli hale getirmek çok kolay. Array sınıfında sort diye bir metod var. Bu metod dizinin içindeki elemanları sıralı hale getiriyor.  Kullanımı şu şekildedir: Array.Sort(uret); array.sort(dizimizin ismi)
peki sıralanmış haldeki dizinin elemanlarını yeniden listbox'a ekliyelim. Bunun için yine for döngüsü kullanıyoruz. For döngüsü yine textbox'a girilen sayının değeri kadar yani bu aynı zamanda dizimizin eleman sayısına eşittir. DÖngü her döndüğünde listbox'ın itemlarina dizinin[i] elamanın değerini add metodu ile ekliyoruz.

Şimdi seçtiğimiz bir veriyi listbox'tan silmeye geldi.
listBox1.Items.Remove(listBox1.SelectedItem); Evet kod çok kısa :) burada diyorki listbox'ta seçili olan item yani veriyi nerden atacak. Yine listbox'ın itemlerinda remove çıkaracağız sileceğiz.

Değiştirme yapacağımız zaman aslında bir nevi yeniden rastgele sayı üretmiş olacağız. Üret butonundaki kodların ve mantığın aynısı :)

Uygulamayı Buradan indirebilirsiniz: https://hotfile.com/dl/229152034/6913280/uygulama6.rar.html


Google PageRank Checker Powered by  MyPagerank.Net