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); } }
public Müsteri(int mID, Zaman z) { this.MüşteriID = mID; this.zaman = z; }
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; } } }