コード例 #1
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 // Başvuran bilgilerini silmek istediğinde bilgilerinin bulunduğu düğümü silmek zor olacağından onun yerine bilgilerini boşaltıyoruz, pratikte aynı iş.
 public static void PreorderBilgileriSil(Basvuran dugum, int basvuranno, string ad)
 {
     if (dugum != null)
     {
         if (!dugum.bosmu)
         {
             if (dugum.ad == ad && dugum.basvuranNo == basvuranno)
             {
                 dugum.bosmu                                = true;
                 dugum.ad                                   = "";
                 dugum.adres                                = "";
                 dugum.tel                                  = 0;
                 dugum.mail                                 = "";
                 dugum.dt                                   = DateTime.MinValue;
                 dugum.ydil                                 = "";
                 dugum.ehliyet                              = "";
                 dugum.isDeneyimi.isyeriad                  = "";
                 dugum.isDeneyimi.sag.isyeriadres           = "";
                 dugum.isDeneyimi.sag.sag.pozisyon          = "";
                 dugum.isDeneyimi.sag.sag.sag.calismasuresi = 0;
                 dugum.egitimDurumu.okulAd                  = "";
                 dugum.egitimDurumu.enAzLisans              = false;
                 dugum.egitimDurumu.sag.bolum               = "";
                 dugum.egitimDurumu.sag.sag.baslangic       = DateTime.MinValue;
                 dugum.egitimDurumu.sag.sag.bitis           = DateTime.MinValue;
                 dugum.egitimDurumu.sag.sag.sag.notort      = 0;
             }
             PreorderBilgileriSil(dugum.sol, basvuranno, ad);
             PreorderBilgileriSil(dugum.sag, basvuranno, ad);
         }
     }
 }
コード例 #2
0
 public static void BasvuranlariDepola(Basvuran dugum, TumBasvuranlar tumBasvuranlar, bool boolean)
 {
     if (dugum != null)
     {
         if (tumBasvuranlar.ad == null)
         {
             if (!dugum.bosmu)
             {
                 tumBasvuranlar.bosmu        = dugum.bosmu;
                 tumBasvuranlar.basvuranNo   = dugum.basvuranNo;
                 tumBasvuranlar.ad           = dugum.ad;
                 tumBasvuranlar.adres        = dugum.adres;
                 tumBasvuranlar.tel          = dugum.tel;
                 tumBasvuranlar.mail         = dugum.mail;
                 tumBasvuranlar.dt           = dugum.dt;
                 tumBasvuranlar.ydil         = dugum.ydil;
                 tumBasvuranlar.ehliyet      = dugum.ehliyet;
                 tumBasvuranlar.isDeneyimi   = dugum.isDeneyimi;
                 tumBasvuranlar.egitimDurumu = dugum.egitimDurumu;
                 tumBasvuranlar.sag          = new TumBasvuranlar();
                 BasvuranlariDepola(dugum.sol, Başvurular.tumBasvuranlar, true);
                 BasvuranlariDepola(dugum.sag, Başvurular.tumBasvuranlar, true);
             }
             else
             {
                 BasvuranlariDepola(dugum.sol, Başvurular.tumBasvuranlar, true);
                 BasvuranlariDepola(dugum.sag, Başvurular.tumBasvuranlar, true);
             }
         }
         else
         {
             BasvuranlariDepola(dugum, tumBasvuranlar.sag, true);
         }
     }
 }
コード例 #3
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 // Başvuran kişinin bilgilerini görebilmesi için başka sınıftaki değişkenlere atama yapıldığı yer.
 // Bilgilerini görmek istediğinde buradaki fonksiyon çalışıyor.
 public static void PreorderBilgiCek(Basvuran dugum, string ad)
 {
     if (dugum != null)
     {
         if (!dugum.bosmu)
         {
             if (dugum.ad == ad)
             {
                 BasvuranBilgileri.basvuranNo   = dugum.basvuranNo;
                 BasvuranBilgileri.ad           = dugum.ad;
                 BasvuranBilgileri.adres        = dugum.adres;
                 BasvuranBilgileri.tel          = dugum.tel;
                 BasvuranBilgileri.mail         = dugum.mail;
                 BasvuranBilgileri.dt           = dugum.dt;
                 BasvuranBilgileri.ydil         = dugum.ydil;
                 BasvuranBilgileri.ehliyet      = dugum.ehliyet;
                 BasvuranBilgileri.isDeneyimi   = dugum.isDeneyimi;
                 BasvuranBilgileri.egitimDurumu = dugum.egitimDurumu;
             }
             PreorderBilgiCek(dugum.sol, ad);
             PreorderBilgiCek(dugum.sag, ad);
         }
         else
         {
             PreorderBilgiCek(dugum.sol, ad);
             PreorderBilgiCek(dugum.sag, ad);
         }
     }
 }
コード例 #4
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 public static void PreorderAgaciDosyayaYaz(Basvuran dugum)
 {
     if (dugum != null)
     {
         using (StreamWriter sw = File.AppendText(Form1.dosyaYolu))
         {
             sw.WriteLine(dugum.basvuranNo.ToString());
             sw.WriteLine(dugum.bosmu.ToString());
             sw.WriteLine(dugum.ad);
             sw.WriteLine(dugum.adres);
             sw.WriteLine(dugum.tel.ToString());
             sw.WriteLine(dugum.mail);
             sw.WriteLine(dugum.dt.ToString());
             sw.WriteLine(dugum.ydil);
             sw.WriteLine(dugum.ehliyet);
             sw.WriteLine(dugum.isDeneyimi.isyeriad);
             sw.WriteLine(dugum.isDeneyimi.sag.isyeriadres);
             sw.WriteLine(dugum.isDeneyimi.sag.sag.pozisyon);
             sw.WriteLine(dugum.isDeneyimi.sag.sag.sag.calismasuresi.ToString());
             sw.WriteLine(dugum.egitimDurumu.okulAd);
             sw.WriteLine(dugum.egitimDurumu.sag.bolum);
             sw.WriteLine(dugum.egitimDurumu.sag.sag.baslangic.ToString());
             sw.WriteLine(dugum.egitimDurumu.sag.sag.bitis.ToString());
             sw.WriteLine(dugum.egitimDurumu.sag.sag.sag.notort.ToString());
             sw.WriteLine(dugum.egitimDurumu.enAzLisans.ToString());
             sw.WriteLine("///////////////////////////////////");
         }
         PreorderAgaciDosyayaYaz(dugum.sol);
         PreorderAgaciDosyayaYaz(dugum.sag);
     }
 }
コード例 #5
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 public static void PreorderGiris(Basvuran dugum, string ad, string tel) // Girilen giriş bilgileri doğru mu diye PreOrder gezintisiyle kontrol ediliyor
 {
     if (dugum != null)                                                  // Gezintide denk geline düğüm tamamen boş mu değil mi (Üzerinde kontrol yapabilir miyiz?)
     {
         if (!dugum.bosmu)                                               // İçindeki bilgiler bir kullanıcıya aitti de kullanıcının isteği üzerine silinmiş mi?
         {
             //girilen bilgiler doğruysa giriş bu komut çağrıldığı yere geri döndüğünde true yaptığı bool sayesinde giriş işlemi yapılacak
             if (dugum.ad == ad && dugum.tel.ToString() == tel)
             {
                 Giris.girisYap = true;
             }
             PreorderGiris(dugum.sol, ad, tel);
             PreorderGiris(dugum.sag, ad, tel);
         }
     }
 }
コード例 #6
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 public static void PreorderEkle(int basvuranNo, string ad, string adres, double tel, string mail,
                                 DateTime dt, string ydil, string ehliyet, string isyeriad, string isyeriadres,
                                 string pozisyon, int calismasuresi, string okulAd, string bolum,
                                 DateTime baslangic, DateTime bitis, double notort, bool enAzLisans)
 {
     /*En tepedeki kök boşsa direkt başvuran bilgisini ekle. Kök doluysa yeni başvurana belirlenen başvuranNo kökten büyük-küçük ise ona göre gezin, boş bulunan düğüme
      * yerleştir.
      */
     if (Başvurular.kok == null)
     {
         //Gelen bilgilerden direkt olarak kökü doldur.
         Başvurular.kok = new Basvuran(basvuranNo, ad, adres, tel, mail, dt, ydil, ehliyet, isyeriad, isyeriadres, pozisyon, calismasuresi, okulAd, bolum, baslangic, bitis, notort, enAzLisans);
         tumBasvuranlar = new TumBasvuranlar();
         MessageBox.Show(kok.basvuranNo + " - " + kok.ad);
     }
     else
     {
         // Kök boş değil dolayısıyla gezinti işlemi başlanacak ve uygun olan boş dala yeni düğüm eklenecek.
         Basvuran eklenecek = new Basvuran(basvuranNo, ad, adres, tel, mail, dt, ydil, ehliyet, isyeriad, isyeriadres, pozisyon, calismasuresi, okulAd, bolum, baslangic, bitis, notort, enAzLisans);
         PreorderEkle(kok, eklenecek, kok, false);
     }
 }
コード例 #7
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 // Başvuran kişi bilgilerini güncellemek istediği zaman öncelikle gezinerek ağaçtaki yeri bulunuyor, sonrasında bilgileri güncelleniyor.
 public static void PreorderGuncelle(Basvuran dugum, int basvuranno, string ad, string adres, double tel, string mail,
                                     DateTime dt, string ydil, string ehliyet, string isyeriad, string isyeriadres,
                                     string pozisyon, int calismasuresi, string okulAd, string bolum,
                                     DateTime baslangic, DateTime bitis, double notort, bool enAzLisans)
 {
     if (dugum != null)
     {
         if (!dugum.bosmu)
         {
             if (dugum.ad == ad && dugum.basvuranNo == basvuranno)
             {
                 dugum.ad                                   = BasvuranBilgileri.ad;
                 dugum.adres                                = adres;
                 dugum.tel                                  = tel;
                 dugum.mail                                 = mail;
                 dugum.dt                                   = dt;
                 dugum.ydil                                 = ydil;
                 dugum.ehliyet                              = ehliyet;
                 dugum.isDeneyimi.isyeriad                  = isyeriad;
                 dugum.isDeneyimi.sag.isyeriadres           = isyeriadres;
                 dugum.isDeneyimi.sag.sag.pozisyon          = pozisyon;
                 dugum.isDeneyimi.sag.sag.sag.calismasuresi = calismasuresi;
                 dugum.egitimDurumu.okulAd                  = okulAd;
                 dugum.egitimDurumu.enAzLisans              = enAzLisans;
                 dugum.egitimDurumu.sag.bolum               = bolum;
                 dugum.egitimDurumu.sag.sag.baslangic       = baslangic;
                 dugum.egitimDurumu.sag.sag.bitis           = bitis;
                 dugum.egitimDurumu.sag.sag.sag.notort      = notort;
             }
             PreorderGuncelle(dugum.sol, basvuranno, ad, adres, tel, mail, dt, ydil, ehliyet, isyeriad, isyeriadres, pozisyon, calismasuresi, okulAd, bolum,
                              baslangic, bitis, notort, enAzLisans);
             PreorderGuncelle(dugum.sag, basvuranno, ad, adres, tel, mail, dt, ydil, ehliyet, isyeriad, isyeriadres, pozisyon, calismasuresi, okulAd, bolum,
                              baslangic, bitis, notort, enAzLisans);
         }
     }
 }
コード例 #8
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
 public static void PreorderEkle(Basvuran yKok, Basvuran eklenecek, Basvuran ebeveyn, bool solsag) //false sol, true sag ve bool gönderilmesinin sebebi ebeveyn düğümün ne tarafına ekleneceğini bilmek için
 {
     if (yKok != null)                                                                             //Gezinti sırasında denk geldiğimiz düğümün tamamen boş olmadığından emin oluyoruz ki kontrol sırasında program çökmesin
     {
         if (!yKok.bosmu)                                                                          // Gezinti sırasında denk geldiğimiz düğümün içindeki bilgilerin silinip silinmediğine bakıyoruz boş değilse gezintiye devam
         {
             if (eklenecek.basvuranNo <= yKok.basvuranNo)
             {
                 PreorderEkle(yKok.sol, eklenecek, yKok, false); //yKok gezintide denk gelinen düğüm olduğundan ebeveyn olarak onu gönderiyoruz
             }
             else
             {
                 PreorderEkle(yKok.sag, eklenecek, yKok, true); //yKok gezintide denk gelinen düğüm olduğundan ebeveyn olarak onu gönderiyoruz
             }
         }
         else // Düğüm boş gözüküyorsa ama null değilse sağında ve solunda da null olmayan kök varsa diye bulunduğumuz düğümden aşağısını ekliyoruz
         {
             try
             {
                 if (yKok.sol != null || yKok.sag != null)
                 {
                     eklenecek.sol = yKok.sol;
                     eklenecek.sag = yKok.sag;
                 }
             }
             catch (Exception)
             { }
             eklenecek.basvuranNo = yKok.basvuranNo; //Boşaltılmış düğümde hali hazırda basvuranno bulunduğu için onun değişmediğinden emin oluyoruz
             yKok.ad           = eklenecek.ad;       // birisi bilgilerini sildiği için bu düğüm boş kaldığından bilgileri değiştiriyoruz
             yKok.adres        = eklenecek.adres;
             yKok.tel          = eklenecek.tel;
             yKok.mail         = eklenecek.mail;
             yKok.dt           = eklenecek.dt;
             yKok.ydil         = eklenecek.ydil;
             yKok.ehliyet      = eklenecek.ehliyet;
             yKok.isDeneyimi   = eklenecek.isDeneyimi;
             yKok.egitimDurumu = eklenecek.egitimDurumu;
             yKok.bosmu        = false;
             //MessageBox.Show(yKok.basvuranNo + " - " + yKok.ad);
         }
     }
     else // Gezinti sırasında denk gelinen düğüme daha önce hiç bir düğüm eklenmediyse program buraya geliyor
     {
         try
         {
             if (yKok != null)
             {
                 if (yKok.sol != null || yKok.sag != null) //mevcut null düğümün solu sağı da null ama önlem amaçlı yine de eşitliyoruz.
                 {
                     eklenecek.sol = yKok.sol;
                     eklenecek.sag = yKok.sag;
                 }
             }
         }
         catch (Exception)
         { }
         yKok = eklenecek;
         if (solsag) //Bulunduğumuz null düğüm bir üst düğümün solu mu sağı mı ona bakıp ekleme işlemini yapıyoruz.
         {
             ebeveyn.sag = eklenecek;
         }
         else
         {
             ebeveyn.sol = eklenecek;
         }
         //MessageBox.Show(yKok.basvuranNo + " - " + yKok.ad);
     }
 }
コード例 #9
0
ファイル: Başvurular.cs プロジェクト: ozerhasan/IK-Yonetimi
        public static StreamReader sr;               //Dosyadan veri akışı

        public static void PreorderAgaciDosyadanOku()
        {
            int      basvuranNo;
            bool     bosmu;
            string   ad;
            string   adres;
            double   tel;
            string   mail;
            DateTime dt;
            string   ydil;
            string   ehliyet;
            string   isyeriad;
            string   isyeriadres;
            string   pozisyon;
            int      calismasuresi;
            string   okulAd;
            string   bolum;
            DateTime baslangic;
            DateTime bitis;
            double   notort;
            bool     enAzLisans;

            if (Başvurular.kok == null)
            {
                basvuranNo    = Convert.ToInt32(sr.ReadLine());
                bosmu         = Convert.ToBoolean(sr.ReadLine());
                ad            = sr.ReadLine();
                adres         = sr.ReadLine();
                tel           = Convert.ToDouble(sr.ReadLine());
                mail          = sr.ReadLine();
                dt            = Convert.ToDateTime(sr.ReadLine());
                ydil          = sr.ReadLine();
                ehliyet       = sr.ReadLine();
                isyeriad      = sr.ReadLine();
                isyeriadres   = sr.ReadLine();
                pozisyon      = sr.ReadLine();
                calismasuresi = Convert.ToInt32(sr.ReadLine());
                okulAd        = sr.ReadLine();
                bolum         = sr.ReadLine();
                baslangic     = Convert.ToDateTime(sr.ReadLine());
                bitis         = Convert.ToDateTime(sr.ReadLine());
                notort        = Convert.ToDouble(sr.ReadLine());
                enAzLisans    = Convert.ToBoolean(sr.ReadLine());

                //Gelen bilgilerden direkt olarak kökü doldur.
                Başvurular.kok = new Basvuran(basvuranNo, ad, adres, tel, mail, dt,
                                              ydil, ehliyet, isyeriad, isyeriadres, pozisyon, calismasuresi,
                                              okulAd, bolum, baslangic, bitis, notort, enAzLisans);
                tumBasvuranlar = new TumBasvuranlar();
                MessageBox.Show(kok.basvuranNo + " - " + kok.ad);
            }
            else
            {
                basvuranNo    = Convert.ToInt32(sr.ReadLine());
                bosmu         = Convert.ToBoolean(sr.ReadLine());
                ad            = sr.ReadLine();
                adres         = sr.ReadLine();
                tel           = Convert.ToDouble(sr.ReadLine());
                mail          = sr.ReadLine();
                dt            = Convert.ToDateTime(sr.ReadLine());
                ydil          = sr.ReadLine();
                ehliyet       = sr.ReadLine();
                isyeriad      = sr.ReadLine();
                isyeriadres   = sr.ReadLine();
                pozisyon      = sr.ReadLine();
                calismasuresi = Convert.ToInt32(sr.ReadLine());
                okulAd        = sr.ReadLine();
                bolum         = sr.ReadLine();
                baslangic     = Convert.ToDateTime(sr.ReadLine());
                bitis         = Convert.ToDateTime(sr.ReadLine());
                notort        = Convert.ToDouble(sr.ReadLine());
                enAzLisans    = Convert.ToBoolean(sr.ReadLine());

                //Kök boş değil dolayısıyla gezinti işlemi başlanacak ve uygun olan boş dala yeni düğüm eklenecek.
                if (basvuranNo != 0)
                {
                    Basvuran eklenecek = new Basvuran(basvuranNo, ad, adres, tel, mail, dt, ydil, ehliyet, isyeriad, isyeriadres, pozisyon, calismasuresi, okulAd, bolum, baslangic, bitis, notort, enAzLisans);
                    PreorderEkle(kok, eklenecek, kok, false);
                }
            }
        }