Ruby ile Kişi Kayıt Uygulaması

ByFelez

Uzman üye
9 Tem 2013
1,818
1,774
Yeni Yeni Ruby öğrenme Aşamasındayım.

Bu Aşama da pratik yapmak için geliştirdiğim bir proje.

Bu Proje ;

kullanıcıların kişisel bilgileri (ad, soyad, telefon numarası, e-posta vb.) ekleyebilecekleri, güncelleyebilecekleri ve silebilecekleri bir uygulama olacak.

Ruby öğrenirken fikir aldığım kıymetli dostum : @Bunjo


Programa Geçelim...

mfncxxt.PNG


lgbvy93.PNG


470b2xn.PNG


r40ed8p.PNG


bbqfi01.PNG


Kodlar ;

Ruby:
class KisiKayitProgrami
  def initialize
    @kisiler = []
  end

  def kisi_ekle(ad, soyad, telefon, email)
    kisi = { ad: ad, soyad: soyad, telefon: telefon, email: email }
    @kisiler << kisi
    puts "#{ad} #{soyad} kişisi kayıt edildi."
  end

  def kisi_guncelle(ad, soyad, yeni_telefon, yeni_email)
    kisi = kisi_bul(ad, soyad)
    if kisi
      kisi[:telefon] = yeni_telefon if yeni_telefon
      kisi[:email] = yeni_email if yeni_email
      puts "#{ad} #{soyad} kişisinin bilgileri güncellendi."
    else
      puts "#{ad} #{soyad} kişisi bulunamadı."
    end
  end

  def kisi_sil(ad, soyad)
    kisi = kisi_bul(ad, soyad)
    if kisi
      @kisiler.delete(kisi)
      puts "#{ad} #{soyad} kişisi kayıttan silindi."
    else
      puts "#{ad} #{soyad} kişisi bulunamadı."
    end
  end

  def kisileri_listele
    puts "Kişi Kayıtları:"
    @kisiler.each do |kisi|
      puts "Ad: #{kisi[:ad]}, Soyad: #{kisi[:soyad]}, Telefon: #{kisi[:telefon]}, Email: #{kisi[:email]}"
    end
  end

  private

  def kisi_bul(ad, soyad)
    @kisiler.find { |kisi| kisi[:ad] == ad && kisi[:soyad] == soyad }
  end
end

kisi_kayit_programi = KisiKayitProgrami.new

loop do
  puts "\nKişi Kayıt Programı"
  puts "1. Kişi Ekle"
  puts "2. Kişi Güncelle"
  puts "3. Kişi Sil"
  puts "4. Kişileri Listele"
  puts "5. Çıkış"

  secim = gets.chomp.to_i

  case secim
  when 1
    print "Ad: "
    ad = gets.chomp
    print "Soyad: "
    soyad = gets.chomp
    print "Telefon: "
    telefon = gets.chomp
    print "Email: "
    email = gets.chomp
    kisi_kayit_programi.kisi_ekle(ad, soyad, telefon, email)
  when 2
    print "Güncellenecek kişinin Adı: "
    ad = gets.chomp
    print "Güncellenecek kişinin Soyadı: "
    soyad = gets.chomp
    print "Yeni Telefon (Boş bırakmak için Enter): "
    yeni_telefon = gets.chomp
    print "Yeni Email (Boş bırakmak için Enter): "
    yeni_email = gets.chomp
    kisi_kayit_programi.kisi_guncelle(ad, soyad, yeni_telefon, yeni_email)
  when 3
    print "Silinecek kişinin Adı: "
    ad = gets.chomp
    print "Silinecek kişinin Soyadı: "
    soyad = gets.chomp
    kisi_kayit_programi.kisi_sil(ad, soyad)
  when 4
    kisi_kayit_programi.kisileri_listele
  when 5
    puts "Programdan çıkılıyor."
    break
  else
    puts "Geçersiz bir seçim yaptınız. Lütfen tekrar deneyin."
  end
end
 
Son düzenleme:

Bunjo

Uzman üye
14 Ara 2020
1,591
1,889
I Won
Eline sağlık felezim.
@Bunjo b-bunjo nelet oluyor.
Ruby sevgisini yayıyorum :)

Yeni Yeni Ruby öğrenme Aşamasındayım.

Bu Aşama da pratik yapmak için geliştirdiğim bir proje.

Bu Proje ;

kullanıcıların kişisel bilgileri (ad, soyad, telefon numarası, e-posta vb.) ekleyebilecekleri, güncelleyebilecekleri ve silebilecekleri bir uygulama olacak.

Ruby öğrenirken fikir aldığım kıymetli dostum : @Bunjo


Programa Geçelim...

mfncxxt.PNG


lgbvy93.PNG


470b2xn.PNG


r40ed8p.PNG


bbqfi01.PNG


Kodlar ;

Ruby:
class KisiKayitProgrami
  def initialize
    @kisiler = []
  end

  def kisi_ekle(ad, soyad, telefon, email)
    kisi = { ad: ad, soyad: soyad, telefon: telefon, email: email }
    @kisiler << kisi
    puts "#{ad} #{soyad} kişisi kayıt edildi."
  end

  def kisi_guncelle(ad, soyad, yeni_telefon, yeni_email)
    kisi = kisi_bul(ad, soyad)
    if kisi
      kisi[:telefon] = yeni_telefon if yeni_telefon
      kisi[:email] = yeni_email if yeni_email
      puts "#{ad} #{soyad} kişisinin bilgileri güncellendi."
    else
      puts "#{ad} #{soyad} kişisi bulunamadı."
    end
  end

  def kisi_sil(ad, soyad)
    kisi = kisi_bul(ad, soyad)
    if kisi
      @kisiler.delete(kisi)
      puts "#{ad} #{soyad} kişisi kayıttan silindi."
    else
      puts "#{ad} #{soyad} kişisi bulunamadı."
    end
  end

  def kisileri_listele
    puts "Kişi Kayıtları:"
    @kisiler.each do |kisi|
      puts "Ad: #{kisi[:ad]}, Soyad: #{kisi[:soyad]}, Telefon: #{kisi[:telefon]}, Email: #{kisi[:email]}"
    end
  end

  private

  def kisi_bul(ad, soyad)
    @kisiler.find { |kisi| kisi[:ad] == ad && kisi[:soyad] == soyad }
  end
end

kisi_kayit_programi = KisiKayitProgrami.new

loop do
  puts "\nKişi Kayıt Programı"
  puts "1. Kişi Ekle"
  puts "2. Kişi Güncelle"
  puts "3. Kişi Sil"
  puts "4. Kişileri Listele"
  puts "5. Çıkış"

  secim = gets.chomp.to_i

  case secim
  when 1
    print "Ad: "
    ad = gets.chomp
    print "Soyad: "
    soyad = gets.chomp
    print "Telefon: "
    telefon = gets.chomp
    print "Email: "
    email = gets.chomp
    kisi_kayit_programi.kisi_ekle(ad, soyad, telefon, email)
  when 2
    print "Güncellenecek kişinin Adı: "
    ad = gets.chomp
    print "Güncellenecek kişinin Soyadı: "
    soyad = gets.chomp
    print "Yeni Telefon (Boş bırakmak için Enter): "
    yeni_telefon = gets.chomp
    print "Yeni Email (Boş bırakmak için Enter): "
    yeni_email = gets.chomp
    kisi_kayit_programi.kisi_guncelle(ad, soyad, yeni_telefon, yeni_email)
  when 3
    print "Silinecek kişinin Adı: "
    ad = gets.chomp
    print "Silinecek kişinin Soyadı: "
    soyad = gets.chomp
    kisi_kayit_programi.kisi_sil(ad, soyad)
  when 4
    kisi_kayit_programi.kisileri_listele
  when 5
    puts "Programdan çıkılıyor."
    break
  else
    puts "Geçersiz bir seçim yaptınız. Lütfen tekrar deneyin."
  end
end
Çok güzel olmuş eline sağlık.

sana şöyle bir tüyo vereyim: def yazdir(ad, mesaj) end mesela bu fonksiyona veri gönderirken yazdir("bunjo", "merhaba123") yerine yazdir "bunjo", "merhaba123" şeklinde de yapabilirsin parantez kullanmana her zaman ihtiyaç duyulmuyor Ruby'de
 

ByFelez

Uzman üye
9 Tem 2013
1,818
1,774
Çok güzel olmuş eline sağlık.

sana şöyle bir tüyo vereyim: def yazdir(ad, mesaj) end mesela bu fonksiyona veri gönderirken yazdir("bunjo", "merhaba123") yerine yazdir "bunjo", "merhaba123" şeklinde de yapabilirsin parantez kullanmana her zaman ihtiyaç duyulmuyor Ruby'de
Teşekkür ederimm

Yeminle kesin böyledir dedim biliyon mu :D
Ama böyle kullanımda da sıkıntı olmaz herhalde değil mi ?
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.