Beispiel #1
0
 public void normalKiralama(string ad, int ID, TreeNode localRoot) // Normal bisiklet kiralamak isteyenler için kullanılan metot
 {
     if (localRoot != null)
     {
         if (ad == localRoot.data.getDurakAdi())
         {
             int     st    = r.Next(25);
             int     dk    = r.Next(61);
             Zaman   zaman = new Zaman(st, dk);
             Müsteri mu    = new Müsteri(ID, zaman);
             localRoot.data.getList().Add(mu);
             localRoot.data.setBosPark(localRoot.data.getBosPark() + 1);
             localRoot.data.setNormal(localRoot.data.getNormal() - 1);
             return;
         }
         normalKiralama(ad, ID, localRoot.leftChild);
         normalKiralama(ad, ID, localRoot.rightChild);
     }
 }
Beispiel #2
0
 public Müsteri(int mID, Zaman z)
 {
     this.MüşteriID = mID;
     this.zaman     = z;
 }
Beispiel #3
0
        static void Main(string[] args)
        {
            // 1.a
            String[]     duraklar = { "İnciraltı, 28, 2, 10", "Sahilevleri, 8, 1, 11", "Doğal Yaşam Parkı, 17, 1, 6",
                                      "Bostanlı İskele, 7, 0, 5", "Buz Pisti , 11, 0, 9",  "Hasanağa Parkı, 7, 0, 5",
                                      "Alsancak İskele, 8, 5, 3", "Fuar Montrö, 8, 7, 1",  "Karataş, 7, 0, 8" };
            List <Durak> durakNesneler = new List <Durak>();

            foreach (string durak in duraklar) //duraklar arrayinden bilgileri çekip istenen random müşteri bilgileri tutuldu.
            {
                string[]       splitNesne       = durak.Split(",");
                List <Müsteri> müşteriler       = new List <Müsteri>(20);
                int            randomMusteriSay = r.Next(1, 10);
                if (randomMusteriSay > (Int32.Parse(splitNesne[2]) + Int32.Parse(splitNesne[3])))
                {
                    randomMusteriSay = Int32.Parse(splitNesne[2]) + Int32.Parse(splitNesne[3]);
                }

                for (int j = 0; j < randomMusteriSay; j++)
                {
                    int     müsID = r.Next(1, 21);
                    int     s     = r.Next(1, 25);
                    int     d     = r.Next(1, 61);
                    Zaman   zmn   = new Zaman(s, d); // Zaman sınıfından obje yaratıldı
                    Müsteri m     = new Müsteri(müsID, zmn);
                    müşteriler.Add(m);
                }

                durakNesneler.Add(new Durak(splitNesne[0], Int32.Parse(splitNesne[1]), Int32.Parse(splitNesne[2]), Int32.Parse(splitNesne[3]), müşteriler));
                // Veriler listeye gönderildi
            }
            DurakAğacı bt = new DurakAğacı();

            foreach (Durak x in durakNesneler) //Oluşturduğumuz Generic ile tüm nesneleri burdan ağaca attık
            {
                bt.insert(x);
            }

            bt.updateTree(bt.getRoot());
            // 1.b
            Console.WriteLine("Ağacın Derinliği: " + bt.getMaxDepth(bt.getRoot()));
            Console.WriteLine();
            Console.WriteLine("Ağaçtaki Tüm Bilgiler; ");
            Console.WriteLine();
            bt.preOrder(bt.getRoot());

            // 1.c
            Console.WriteLine("Kiralama bilgilerini görmek istediğiniz Müşteri ID: ");
            int mID = Convert.ToInt32(Console.ReadLine());

            bt.getMüşteriInfo(mID, bt.getRoot());

            // 1.d
            Console.WriteLine("Normal bisiklet kiralama;");
            Console.WriteLine("Müşteri ID: ");
            int id = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Durak adı: ");
            string da = Console.ReadLine();

            bt.normalKiralama(da, id, bt.getRoot());

            // 2.a
            Hashtable hash = new Hashtable();

            foreach (string s in duraklar) // Duraklar listesinden gerekli bilgiler çekilip key- value olarak hash'e aktarıldı
            {
                string[] keysNvalues    = s.Split(",");
                int[]    durakBilgileri = { Convert.ToInt32(keysNvalues[1]), Convert.ToInt32(keysNvalues[2]), Convert.ToInt32(keysNvalues[3]) };
                hash.Add(keysNvalues[0], durakBilgileri);
            }


            // 2.b
            foreach (string str in duraklar) // Boş park sayısı 5ten büyük olan parklar için güncelleme yapıldı
            {
                string[] keysNvalues = str.Split(",");
                if (Convert.ToInt32(keysNvalues[1]) > 5)
                {
                    int a = Convert.ToInt32(keysNvalues[3]);
                    a += 5;
                    keysNvalues[3] = Convert.ToString(a);
                    int[] durakBilgileri = { Convert.ToInt32(keysNvalues[1]), Convert.ToInt32(keysNvalues[2]), Convert.ToInt32(keysNvalues[3]) };
                    hash[keysNvalues[0]] = durakBilgileri;
                }
            }
        }