示例#1
0
        // Sefer listesinin sonuna sefer ekler.
        public void SeferEkle(int koltukSayi, string guzergah, string otobus_adi, string plaka, string kaptan, DateTime tarih, int Koltukfiyat)
        {
            KoltukList <T> k       = new KoltukList <T>();
            SeferNode      current = Shead;
            SeferNode      newNode = new SeferNode();

            int sonsefer = 1;

            if (current == null)
            {
                newNode.sefer_n    = 1;
                newNode.guzergah   = guzergah;
                newNode.otobus_adi = otobus_adi;
                newNode.plaka      = plaka;
                newNode.kaptan     = kaptan;
                newNode.seferTarih = tarih;
                //newNode.next = null;

                Console.Write("\n- Sefer " + newNode.sefer_n + " Güzergah: " + newNode.guzergah + " " + newNode.otobus_adi + " Plaka: " + newNode.plaka + " Kaptan: " + newNode.kaptan + " Sefer Saati: " + newNode.seferTarih + " " + newNode.seferTarih.DayOfWeek + " \n");
                newNode.Khead = k.KoltukEkle(koltukSayi, Koltukfiyat);
                //newNode.Khead.KoltukEkle(koltukSayi);
                //for (int i = 1; i <= koltukSayi; i++)
                //{
                //    // Koltuk sayısı kadar koltuk ekliyoruz
                //    newNode.koltuklar.KoltukEkle(i);
                //}

                Shead = newNode;
            }
            else if (current != null)
            {
                sonsefer = 2;
                while (current.next != null)
                {
                    current = current.next;
                    sonsefer++;
                }

                newNode.sefer_n    = sonsefer;
                newNode.guzergah   = guzergah;
                newNode.otobus_adi = otobus_adi;
                newNode.plaka      = plaka;
                newNode.kaptan     = kaptan;
                newNode.seferTarih = tarih;
                Console.Write("\n- Sefer " + newNode.sefer_n + " Güzergah: " + newNode.guzergah + " " + newNode.otobus_adi + " Plaka: " + newNode.plaka + " Kaptan: " + newNode.kaptan + " Sefer Saati: " + newNode.seferTarih + " " + newNode.seferTarih.DayOfWeek + "\n");


                newNode.Khead = k.KoltukEkle(koltukSayi, Koltukfiyat);

                //for (int i = 1; i <= koltukSayi; i++)
                //{
                //    // Koltuk sayısı kadar koltuk ekliyoruz
                //    newNode.koltuklar.KoltukEkle(i);
                //}

                // YEni node liste sonuna ekliyoruz
                current.next = newNode;
            }
        }
示例#2
0
        public void SatisIptal(int seferNo, int koltukNo)
        {
            SeferNode current = Shead;

            KoltukList <T> .KoltukNode Kcurrent = Shead.Khead;

            KoltukList <T> .KoltukNode K = new KoltukList <T> .KoltukNode();

            SeferNode arananSefer = SeferBul(seferNo);

            K.yolcu_adi    = "";
            K.yolcu_soyadi = "";
            K.cinsiyet     = "";
            K.koltuk_durum = "Boş";

            // Seferleri sırayla gezme
            while (current.next != null)
            {
                // Satılan koltuk ilk seferden ise
                if (Shead.sefer_n == arananSefer.sefer_n)
                {
                    while (Kcurrent.next != null)
                    {
                        // İlk sefer İlk koltuk ** Çalışıyor **
                        if (Shead.Khead.koltuk_n == koltukNo)
                        {
                            // Koltuk Bilgileri sıfırlanıcak
                            K.koltuk_n = Shead.Khead.koltuk_n;

                            K.koltuk_fiyat = Shead.Khead.koltuk_fiyat;

                            K.next      = Shead.Khead.next;
                            Shead.Khead = K;
                            break;
                        }
                        // Son koltuğu bulduk  ** Çalışıyor **
                        else if (Kcurrent.next.next == null)
                        {
                            K.koltuk_n     = Kcurrent.next.koltuk_n;
                            K.koltuk_fiyat = Kcurrent.koltuk_fiyat;

                            K.next        = Kcurrent.next.next;
                            Kcurrent.next = K;
                            break;
                        }
                        // ilk sefer aradaki koltuktan koltuk satma
                        else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next != null)
                        {
                            K.koltuk_n     = Kcurrent.next.koltuk_n;
                            K.koltuk_fiyat = Kcurrent.koltuk_fiyat;

                            K.next        = Kcurrent.next.next;
                            Kcurrent.next = K;
                            break;
                        }
                        Kcurrent = Kcurrent.next;
                    }
                }

                // Herhangi seferden koltuk satılırsa
                else if (current.next.sefer_n == arananSefer.sefer_n && current.next.next != null)
                {
                    current = current.next;

                    // Seçilen seferin ilk Koltuğunu atadık
                    Kcurrent = current.Khead;

                    while (Kcurrent.next != null /*&& Kcurrent.next.next != null*/)
                    {
                        //  İlk koltuk ** çalışıyor **
                        if (current.Khead.koltuk_n == koltukNo)
                        {
                            K.koltuk_n     = current.Khead.koltuk_n;
                            K.koltuk_fiyat = current.Khead.koltuk_fiyat;

                            K.next        = current.Khead.next;
                            current.Khead = K;
                        }
                        // Son koltuğu bulduk  ** çalışıyor **
                        else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next == null)
                        {
                            K.koltuk_n     = Kcurrent.next.koltuk_n;
                            K.koltuk_fiyat = Kcurrent.koltuk_fiyat;

                            K.next        = null;
                            Kcurrent.next = K;
                            break;
                        }
                        // aradaki koltuktan koltuk satma ** çalışıyor **
                        else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next != null)
                        {
                            K.koltuk_n     = Kcurrent.next.koltuk_n;
                            K.koltuk_fiyat = Kcurrent.koltuk_fiyat;

                            K.next        = Kcurrent.next.next;
                            Kcurrent.next = K;
                            break;
                        }


                        Kcurrent = Kcurrent.next;
                    }
                }

                current = current.next;
            }

            // Satılan koltuk son seferden ise
            if (current != null && current.sefer_n == seferNo)
            {
                //Seçilen seferin ilk Koltuğunu atadık
                Kcurrent = current.Khead;

                while (Kcurrent.next != null)
                {
                    //  İlk koltuk ** çalışıyor **
                    if (current.Khead.koltuk_n == koltukNo)
                    {
                        K.koltuk_n     = current.Khead.koltuk_n;
                        K.koltuk_fiyat = current.Khead.koltuk_fiyat;

                        K.next        = current.Khead.next;
                        current.Khead = K;
                    }

                    // Son koltuğu bulduk  ** çalışıyor **
                    else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next == null)
                    {
                        K.koltuk_n     = Kcurrent.next.koltuk_n;
                        K.koltuk_fiyat = Kcurrent.koltuk_fiyat;

                        K.next        = null;
                        Kcurrent.next = K;
                        break;
                    }
                    // aradaki koltuktan koltuk satma ** çalışıyor **
                    else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next != null)
                    {
                        K.koltuk_n     = Kcurrent.next.koltuk_n;
                        K.koltuk_fiyat = Kcurrent.koltuk_fiyat;

                        K.next        = Kcurrent.next.next;
                        Kcurrent.next = K;
                        break;
                    }

                    Kcurrent = Kcurrent.next;
                }
            }
        }