// Asker Dagitim Otomasyonu | Ali AKYILDIRIM | www.aliakyildirim.com
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
// Asker Dagitim Otomasyonu | Ali AKYILDIRIM | www.aliakyildirim.com
namespace Askerr
{
public partial class Form1 : Form
{
// Asker Dagitim Otomasyonu | Ali AKYILDIRIM | www.aliakyildirim.com
// Kisiler ve Bölgeler’e Bagli Birer Dizi Olusturalim:
ArrayList kisilerDizisi = new ArrayList();
ArrayList bolgelerDizisi = new ArrayList();
// Kisiler Tablosundan, Rasgele isimler üretelim:
Random rastgeleKisi = new Random();
// Bölge’nin Baslangiç degeri 0 (Sifir) Olsun:
int bolge = 0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// AskeriEkle metodunu tanimlayalim:
AskeriEkle();
}
private void AskeriEkle()
{
// Kisiler TextBox’inda Girilen Bir Deger Varsa; Buton Tiklandiginda ListBox1’e ve Kisiler Dizisine Ekle:
if (textBox1.Text != "" || textBox1.Text != null)
{
listBox1.Items.Add(textBox1.Text);
kisilerDizisi.Add(textBox1.Text);
// TextBox1’i Temizle ve Fokus Yap:
textBox1.Clear();
textBox1.Focus();
}
}
private void button3_Click(object sender, EventArgs e)
{
try
{
// dagit() Metodunu Çalistir:
dagit();
}
catch (Exception)
{ }
}
private void dagit()
{
// Kisiler Dizisinin Eleman Sayisina ’kisi’ diyelim:
int kisi = kisilerDizisi.Count;
// For Döngüsü Olusturalim:
for (int i = 0; i
{
// Eger, Baslangiçta Tanimladigimiz ’bolge’ degiskeni ile ’bolgelerDizisi’ nin Eleman Sayilari Esitse:
if (bolge == bolgelerDizisi.Count)
{
// bolge 0 (sifir) olsun:
bolge = 0;
}
// Global’de Tanimladigimiz ’rastgeleKisi’ Degiskeni Için; Sifir’dan-Kisiler Dizisinin
// Eleman Sayisinin Bir Eksigine Kadar Rasgele Deger Üretelim ve Buna ’rasgeleKisi’ Diyelim:
int rasgeleKisi = rastgeleKisi.Next(0, kisilerDizisi.Count);
// Eslesmeler Tablosunda Kisiler Dizisindeki Rasgele Kisileri ve
// Bölgeler Dizisindeki Bölgeleri Aralarinda Tire (-) Isareti Koyarak Göster:
listBox3.Items.Add(kisilerDizisi[rasgeleKisi] + " - " + bolgelerDizisi[bolge]);
// ’bolge’ Degerini Bir Arttir:
bolge++;
// Kisiler Dizisindeki Rasgele Kisileri Temizle (Kaldir):
kisilerDizisi.RemoveAt(rasgeleKisi);
}
// ListBox’lar Bos Degilse:
int lb1 = listBox1.Items.Count;
int lb2 = listBox2.Items.Count;
if (lb1 != 0 || lb2 != 0)
{
// Dagitim Yap Butonunu "Disable" Yap:
button3.Enabled = false;
}
else
{
button3.Enabled = true;
}
}
private void button2_Click(object sender, EventArgs e)
{ BolgeyiEkle(); }
// BölgeyiEkle Fonksiyonu Olusturalim:
private void BolgeyiEkle()
{
// Bölgeler TextBox’inda Girilen Bir Deger Varsa; Buton Tiklandiginda ListBox2’ye ve Bölgeler Dizisine Ekle:
if (textBox2.Text != "")
{
listBox2.Items.Add(textBox2.Text);
bolgelerDizisi.Add(textBox2.Text);
// TextBox2’yi Temizle ve Fokus Yap:
textBox2.Clear();
textBox2.Focus();
}
}
private void button4_Click(object sender, EventArgs e)
{
// Eslesmeler Tablosunu Temizle:
listBox3.Items.Clear();
textBox1.Focus();
}
private void button5_Click(object sender, EventArgs e)
{
// Bölgeler Dizisinden Kaldir (Sil): (Bunu Yapmazsak, ListBox2’den Sildigimiz Herhangi Bir Item Için Dagit Yapinca Silnmemis Gibi Islem Görür:
bolgelerDizisi.Remove(listBox2.Text);
// Bölgeler Tablosundaki Degeri Kaldir (Sil):
listBox2.Items.Remove(listBox2.Text);
// Bölgeler TextBox’ina Odaklan:
textBox2.Focus();
}
private void button6_Click(object sender, EventArgs e)
{
// Kisiler Dizisinden Kaldir (Sil): (Bunu Yapmazsak, ListBox1’den Sildigimiz Herhangi Bir Item Için Dagit Yapinca Silnmemis Gibi Islem Görür:
kisilerDizisi.Remove(listBox1.Text);
// Kisiler Tablosundaki Degeri Kaldir (Sil):
listBox1.Items.Remove(listBox1.Text);
// Kisiler TextBox’ina Odaklan:
textBox1.Focus();
}
private void button7_Click(object sender, EventArgs e)
{
// Dagitim Yap Butonunu "Enable" Yap:
button3.Enabled = true;
// Tüm Tablolari Temizle ve Kisiler Tablosuna Odaklan:
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();
textBox1.Focus();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// Kisiler TextBox’inda yazdiktan sonra "Enter" ’a basinca Basta tanimladigimiz AskeriEkle fonksiyonunu çalistir. (Kisiler ListBox’ina Ekle)
if (e.KeyCode == Keys.Enter)
{
AskeriEkle();
// Not: Multicolumn "false" olmali:
}
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
// Bölgeler TextBox’inda yazdiktan sonra "Enter" ’a basinca Basta tanimladigimiz BolgeyiEkle fonksiyonunu çalistir. (Bölgeler ListBox’ina Ekle)
if (e.KeyCode == Keys.Enter)
{
BolgeyiEkle();
}
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Focus();
}
}
}
// Asker Dagitim Otomasyonu | Ali AKYILDIRIM | www.aliakyildirim.com