Untitled
unknown
plain_text
2 years ago
21 kB
4
Indexable
Never
using System; using System.Linq; namespace OtoGaleri02 { internal class Program { static Galeri G034 = new Galeri(); static Araba A034 = new Araba(); static void Main(string[] args) { Uygulama(); } static void Uygulama() { SahteVeriGir(); Menu(); while (true) { string secim = SecimAl(); switch (secim) { case "1": case "K": ArabaKirala(); break; case "2": case "T": ArabaTeslimAl(); break; case "3": case "R": ArabalarıListele(DURUM.Kirada);//KiradakiArabalarıListele(); break; case "4": case "M": ArabalarıListele(DURUM.Galeride);//GaleridekiArabalarıListele(); break; case "5": case "A": ArabalarıListele(DURUM.Kirada); ArabalarıListele(DURUM.Galeride);//TümArabalarıListele(); break; case "6": case "I": KiralamaIptali(); break; case "7": case "Y": ArabaEkle(); break; case "8": case "S": ArabaSil(); break; case "9": case "G": BilgileriGoster(); break; } } } static void SahteVeriGir() { G034.ArabaEkle("23FGY256", "FORD", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY257", "RENAULT", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY258", "TOYOTA", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY259", "TESLA", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY260", "FERRARI", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY261", "AUDI", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY262", "VOLVO", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY263", "FIAT", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY264", "RANGE ROVER", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY265", "LAMBORGHINI", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY266", "MAZDA", 520f, ARABATIPI.SUV); G034.ArabaEkle("23FGY267", "SKODA", 520f, ARABATIPI.SUV); } static void Menu() { Console.WriteLine("Galeri Otomasyon"); Console.WriteLine("1- Araba Kirala(K)"); Console.WriteLine("2- Araba Teslim Al(T)"); Console.WriteLine("3- Kiradaki Arabaları Listele(R)"); Console.WriteLine("4- Galerideki Arabaları Listele(M)"); Console.WriteLine("5- Tüm Arabaları Listele(A)"); Console.WriteLine("6- Kiralama İptali(I)"); Console.WriteLine("7- Araba Ekle(Y)"); Console.WriteLine("8- Araba Sil(S)"); Console.WriteLine("9- Bilgileri Göster(G)"); } static string SecimAl() { Console.WriteLine(); string karakterler = "123456789KTRMAIYSG"; while (true) { Console.Write("Seçiminiz:"); string secim = Console.ReadLine().ToUpper(); if (karakterler.IndexOf(secim) > -1 && secim.Length == 1) //IndexOf() => Reports the zero-based index of the first occurrence of the specified string in this instance. { return secim; } else { Console.WriteLine("Hatalı giriş yaptınız. Lütfen tekrar deneyin.2222"); } } } static void ArabaEkle() { Console.WriteLine("-Araba Ekle-"); string temp = G034.PlakaKontrol("Plaka: "); string plaka = G034.PlakaKontrol2(temp, "Aynı plakada araba mevcut. Girdiğiniz plakayı kontrol edin."); string marka = G034.MarkaKontrol("Marka: "); int kbedel = G034.BedelKontrol("Kiralama Bedeli: "); ARABATIPI aTip = G034.ArabaTipiSecimi(); G034.ArabaEkle(plaka, marka, kbedel, aTip); Console.WriteLine("Araba başarılı bir şekilde eklendi."); } static void ArabaSil() { Console.WriteLine("-Araba Sil -"); string temp = G034.PlakaKontrol("Silmek istediğiniz arabanın plakasını giriniz: "); string plaka = G034.PlakaKontrol3(temp); G034.ArabaSil(plaka); Console.WriteLine(); Console.WriteLine("Araba silindi."); Console.WriteLine(); } static void ArabaKirala() //ulaşılamayan koda bak (G034) { Console.WriteLine("-Araba Kirala-"); string plaka = G034.PlakaKontrol("Kiralanacak arabanın plakası: "); int output, sure; while (true) { Console.Write("Kiralama süresi: "); string giris = Console.ReadLine(); if (!int.TryParse(giris, out output)) { Console.WriteLine("Hatalı giriş yaptınız. Lütfen tekrar deneyin."); } else { sure = output; } // galeride bu plakada bir araç var mı kontrol edilmeli. Yoksa uyarı mesajı çıkmalı. // araba kirada mı yoksa galeride mi kontrol edilmeli . Yoksa uyaru mesajı çıkmalı. // ok ise "34US2342 Plakalı araba 7 saatliğine kiralandı." gibi bir mesaj çıkmalı } G034.ArabaKiralama(plaka, sure); } static string ArabaTeslimAl() //ulaşılamayan koda bak (G034) { Console.WriteLine("-Araba Teslim Al-"); Console.Write("Teslim edilecek arabanın plakası:"); string plaka = Console.ReadLine(); while (true) { if (plaka.Length != 8) { Console.WriteLine("Bu şekilde plaka girişi yapamazsınız. Tekrar deneyin."); } else { return plaka; } } G034.ArabaTeslimAlim(plaka); } static void KiralamaIptali() { Console.WriteLine("-Kiralama İptali-"); string temp = G034.PlakaKontrol("Kiralaması iptal edilecek arabanın plakası: "); string plaka = G034.PlakaKontrol2(temp, "Hatalı giriş yapıldı. Araba zaten galeride."); G034.KiralamaIptal(plaka); Console.WriteLine(); Console.WriteLine("İptal gerçekleştirildi."); Console.WriteLine(); } static void ArabalarıListele(DURUM durum) { string baslik = string.Empty; string liste = G034.ArabalarListele(durum); switch (durum) { case DURUM.Kirada: baslik = "Kiradaki"; break; case DURUM.Galeride: baslik = "Galerideki"; break; } Console.WriteLine(baslik + " Arabalar-"); Console.WriteLine("Plaka" + "Marka".PadRight(12) + "K.Bedeli".PadRight(14) + "Araba Tipi".PadRight(16) + "K.Sayısı".PadRight(16) + "Durum".PadRight(8)); Console.WriteLine("----------------------------------------------------------------------------------"); Console.WriteLine(liste); } static void BilgileriGoster() // 2 item daha eklemek gerekiyor. { Console.WriteLine("-Galeri Bilgileri -"); Console.WriteLine("Toplam araba sayısı: " + G034.Arabalar.Count()); Console.WriteLine("Kiradaki araba sayısı: " + G034.ArabalarListele(DURUM.Kirada).Count()); Console.WriteLine("Bekleyen araba sayısı: " + G034.ArabalarListele(DURUM.Galeride).Count()); Console.WriteLine("Toplam araba kiralama süresi: " + A034.ToplamKiralanmaSuresi); Console.WriteLine("Toplam araba kiralama adedi: " + A034.KiralamaSayisi); Console.WriteLine("Ciro: " + G034.Ciro); } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OtoGaleri02 { internal class Araba { public List<int> KiralanmaSureleri = new List<int>(); public string Plaka; public string Marka; public float KiralamaBedeli; public ARABATIPI ArabaTipi; public DURUM Durum; public Araba(string plaka, string marka, float k_bedeli, ARABATIPI a_Tipi) { this.Plaka = plaka; this.Marka = marka; this.KiralamaBedeli = k_bedeli; this.ArabaTipi = a_Tipi; } public Araba() { this.Durum = DURUM.Galeride; } public Araba(string plaka) { this.Plaka = plaka; } public int KiralamaSayisi { get { return KiralanmaSureleri.Count; } } public int ToplamKiralanmaSuresi { get { int toplam = 0; foreach (int sure in KiralanmaSureleri) { toplam += sure; } return toplam; } } } public enum ARABATIPI { Empty, SUV, Hatchback, Sedan } public enum DURUM { Kirada, Galeride } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Net.Mime.MediaTypeNames; namespace OtoGaleri02 { internal class Galeri { public List<Araba> Arabalar = new List<Araba>(); public void ArabaEkle (string plaka, string marka, float kbedel, ARABATIPI aTip) { Araba a = new Araba(plaka, marka, kbedel, aTip); this.Arabalar.Add(a); } public void ArabaKiralama(string plaka, int sure) { Araba a = null; foreach (Araba item in Arabalar) { if (item.Plaka == plaka) { a = item; } } if (a!= null) { a.Durum = DURUM.Kirada; a.KiralanmaSureleri.Add(sure); } } public void ArabaTeslimAlim(string plaka) { Araba a = null; foreach (Araba item in Arabalar) { if (item.Plaka == plaka) { a = item; } } if (a != null) { a.Durum = DURUM.Galeride; } } public string PlakaKontrol(string text) { do { Console.Write(text); string plaka = Console.ReadLine().ToUpper(); int ilkİkiKarakter; int sonDortKarakter; int ortadakiKarakter; bool sayiMi = int.TryParse(plaka.Substring(0, 2), out ilkİkiKarakter); //baştaki iki karakter sayı DEĞİLSE hata versin diye. bool sayiMi2 = int.TryParse(plaka.Substring(4, 4), out sonDortKarakter); //sondaki iki karakter sayı DEĞİLSE hata versin diye. bool sayiMi3 = int.TryParse(plaka.Substring(2,2), out ortadakiKarakter); // ortadaki iki karakter sayıysa hata versin diye. if (plaka.Length != 8 || !sayiMi || !sayiMi2 || sayiMi3) { Console.WriteLine("Bu şekilde plaka girişi yapamazsınız. Tekrar deneyin."); } else { return plaka; } } while (true); } public string PlakaKontrol2(string plaka, string hataMesaji) { do { foreach (Araba araba in Arabalar) { if (araba.Plaka == plaka) { Console.WriteLine(hataMesaji); } else { return plaka; } } } while (true); } public string PlakaKontrol3(string plaka) { do { foreach (Araba araba in Arabalar) { if (araba.Plaka != plaka) { Console.WriteLine("Galeriye ait bu plaka bir araba yok."); } else { return plaka; } } } while (true); } public string MarkaKontrol(string text) { do { Console.Write(text); string temp = Console.ReadLine(); temp = temp[0].ToString().ToUpper() + temp.Substring(1).ToLower(); int temp2; string marka; if (int.TryParse(temp, out temp2)) { Console.WriteLine("Giriş tanımlanamadı. Tekrar deneyin."); } else { marka = temp; return marka; } } while (true); //bool isIntString = marka.All(char.IsDigit); //if (isIntString) //{ // Console.WriteLine("Giriş tanımlanamadı. Tekrar deneyin."); //} //else //{ // return marka; //} } public ARABATIPI ArabaTipiSecimi() { Console.WriteLine("Araba Tipleri: "); Console.WriteLine(" - SUV için 1 "); Console.WriteLine(" - Hatchback için 2 "); Console.WriteLine(" - Sedan için 3 "); do { Console.Write("Araba Tipi: "); string secim = Console.ReadLine(); ARABATIPI aTip; if (secim == "1") { return aTip = ARABATIPI.SUV; } else if (secim == "2") { return aTip = ARABATIPI.Hatchback; } else if (secim == "3") { return aTip = ARABATIPI.Sedan; } else { Console.WriteLine("Giriş tanımlanamadı. Tekrar deneyin. "); // hata verirse tekrar araba tipini sorsun } } while (true); } //kullanılmayan variable gösteriyor. Buna bak. public int BedelKontrol(string text) { do { Console.Write(text); string bedel = Console.ReadLine(); int kbedel; if (int.TryParse(bedel, out kbedel)) { return kbedel; } else { Console.WriteLine("Giriş tanımlanamadı. Tekrar deneyin."); } } while (true); } public void ArabaSil(string plaka) { Araba a = null; foreach (Araba araba in Arabalar) { if (araba.Plaka == plaka) { a = araba; } } if(a!= null) { if (a.Durum == DURUM.Kirada) { Console.WriteLine("Araba kirada olduğu için silme işlemi gerçekleştirilemedi."); } else if (a.Durum != DURUM.Kirada) { Arabalar.Remove(a); } } } public void KiralamaIptal(string plaka) // =>>>> buraya süre bilgisi de eklemek gerekmez mi ? Ama süre bilgisini nereden bulacağız ? { Araba a = null; foreach (Araba araba in Arabalar) { if (araba.Plaka == plaka) { a = araba; } } if (a != null) { if (a.Durum == DURUM.Kirada) { a.Durum = DURUM.Galeride; } } //public void KiralanmisArabalar() //{ // foreach (Araba item in Arabalar) // { // if (item.Durum == DURUM.Kirada) // { // Console.WriteLine(item.Plaka + item.Marka.PadRight(12) + item.KiralamaBedeli.ToString().PadRight(14) + item.ArabaTipi.ToString().PadRight(16) + item.KiralamaSayisi.ToString().PadRight(16) + item.Durum.ToString().PadRight(8)); // } // } //} //public string KiralanmisArabalar() //{ // string arabaListesi = string.Empty; // foreach (Araba item in Arabalar) // { // if (item.Durum == DURUM.Kirada) // { // arabaListesi += (item.Plaka + item.Marka.PadRight(12) + item.KiralamaBedeli.ToString().PadRight(14) + item.ArabaTipi.ToString().PadRight(16) + item.KiralamaSayisi.ToString().PadRight(16) + item.Durum.ToString().PadRight(8) + Environment.NewLine); // } // } // return arabaListesi; //} //public void GaleridekiArabalar() //{ // foreach (Araba item in Arabalar) // { // if (item.Durum == DURUM.Galeride) // { // Console.WriteLine(item.Plaka + item.Marka.PadRight(12) + item.KiralamaBedeli.ToString().PadRight(14) + item.ArabaTipi.ToString().PadRight(16) + item.KiralamaSayisi.ToString().PadRight(16) + item.Durum.ToString().PadRight(8)); // } // } //} } public string ArabalarListele(DURUM durum) { string arabaListesi = string.Empty; foreach (Araba araba in Arabalar) { if (araba.Durum == durum) { arabaListesi += (araba.Plaka + araba.Marka.PadRight(12) + araba.KiralamaBedeli.ToString().PadRight(14) + araba.ArabaTipi.ToString().PadRight(16) + araba.KiralamaSayisi.ToString().PadRight(16) + araba.Durum.ToString().PadRight(8) + Environment.NewLine); } } return arabaListesi; } public float Ciro // "return" doğru veriyi mi geri döndürüyor ? YANİ => Hesaplanan meblağ mı yoksa 0 mı döndürüyor ? Kontrol et! { get { float ciro = 0; foreach (Araba araba in Arabalar) { if (araba.Durum == DURUM.Kirada) { ciro += araba.KiralamaBedeli; } } return ciro; } } } }