C# – Ajanda Yazılımı – Personel Girişi ve FileStream Dosya İşlemleri

NYP ilkeleri ile geliştirilecek personel bilgilerini tutan bir Ajanda yazılımı tasarlamanız istenmektedir. Bu amaçla kullanılmak üzere aşağıda verilen Form tasarımlarını yapmalıdır. Ayrıca personel bilgilerine erişmek ve sorgulama işlemlerinde kullanmak üzere Personel.cs ve Ajanda.csisminde iki sınıf tasarlanacaktır. Girilen kayıtlar dosyaya kaydedilecek ve program kapatıldığında bilgi kaybı olmayacaktır. Program yeniden çalıştırıldığında veriler dosyadan okunacak ve çalışmaya devam edecektir. Veri tabanı kullanılması istenmemektedir.

Program çalıştırıldığında ilk olarak Login Penceresi gelecek ve Kullanıcı Adı – Şifre eşleşmelerini “users.txt” dosyasından kontrol edilecek. Yetkili bilinen bir kullanıcı ise Login formu gizlenecek; Ana Form açılacak.

Ana Formun Menustrip kontrolünde Görünüm sekmesinden yeni veri kaydı yapılacak olan Personel Kayıt Ekranına ve Arama Ekranlarına erişim sağlanacaktır.

Tasarlanacak Personel sınıfı için;

a)Personel bilgilerinin ( Ad, Soyad, Doğum Tarihi, Meslek, Cinsiyet, Medeni durum ve maaş ) ve sorgulama metotlarının kodlanacağı bir sınıf tasarlayın. Tüm alanlar için uygun veri türlerini belirleyin.

b)Sınıftaki tüm değişkenler için property tanımlamalarını yapın.

c)Personel adını ve soyadını parametre olarak alan bir kurucu metot tanımlayın.

d)Yaş adında bir sadece get bloğu olan bir property tanımlayın. Bu property için doğum_tarihi değişkenine bağlı olarak personelin yaşını geri dönderecek şekilde kodlamasını yapın.

e)Cinsiyet ve Medeni Durum alanları için enum tanımları yapın.

f)ZamYap, KalanGünSayısı, DosyadanOku, DosyayaYaz isimlerinde 4 metot tasarlamanız gerekmektedir:

ZamYap Metodu: Parametre olarak verilen miktar kadar personelin maaş değişkeninin değerini günceller.

KalanGünSayısı Metodu: 57 yaş baz alınarak personelin emekliliğine kalan gün sayısını hesaplar ve geri dönüş değeri olarak verir.

DosyadanOku Metodu: Belirli bir konumda tutulan “data.txt” isimli dosyadan kayıtların tamamını okur ve her biri için Personel nesnesi oluşturur. Bunları Personel tipinde bir diziye yerleştirip ve bu diziyi geri dönüş değeri olarak verir. Amacı program başlangıcında kayıtların okunmasıdır.

i.Birinci yöntem olarak; burada henüz bilmediğiniz (!) Generic List yapılarını araştırıp kullanabilirsiniz.

Örnek: List<Personel> liste = new List<Personel>();

ii.İkinci bir yöntem olarak; dosyanın ilk satırında toplam kayıt sayısını tutarak kaç elemanlı bir dizi oluşturacağınızı bilebilirsiniz.

Örnek:Personel[] kayıt= new Personel[1000];

iii.Bu biçimlendirmeyi okumak için String sınıfının Split metodundan faydalanabilirsiniz.

DosyayaYaz Metodu: Personel kayıt listesini parametre olarak alır ve “data.txt”isimli dosyaya aşağıdaki biçimlendirmeye uygun şekilde herbir satıra bir kayıt olacak biçimde dosyayı oluşturur.

Örnek Kayıt Biçimlendirmesi şu şekilde olmalıdır:

ad | soyad | dogum_tarihi | meslek | cinsiyet | medeni_durum | maas | email | adres | telefonlar

Burada telefonlar ajanda nesnesinden alınacağı için birden fazla olabilir:

telefonlar : telAdı1,telNo1 + telAdı2,telNo2 + telAdı3,telNo3

Bu biçimlendirmeyi oluşturmak için String sınıfının Join metodundan faydalanabilirsiniz.

Bir personelin birden fazla telefon bilgisi (ev, iş, GSM, GSM2, vb.) olabilir. Bu nedenle telefonları tutmak amacıyla Ajanda.cs isminde bir sınıf tasarlamanız istenmektedir. Ajanda sınıfında telefonAdı ve telefonNo isimli uygun türlerde iki değişken tanımlamasını ve bu değişkenlerin property tanımlamalarını yapınız. Ayrıca uygun bir kurucu metot tanımlayınız.

Örnek:telefonAdı = ev , telefonNo = 332 223 33 36

Daha sonra Personel sınıfı içinde bir Ajanda dizisi oluşturun ve o personele ait telefonları bu diziye ekleyin. (Not:Ajanda dizisini generic list olarak veya 10 elemanlı bir dizi olarak oluşturabilirsiniz. )

DİKKAT EDİLMESİ GEREKENLER

1.Ana Form MdiParent olarak, diğerleri child formlar olarak çalışacaktır.

2.Sınıflar için yukarıda tanımlayacağınız metot ve değişkenlerin tamamı form arayüzünde kullanılmayacak olabilir. Önemli olan sizden istenilenlerin eksiksiz yapılmasıdır.

3.Personel Kayıt işlemi aşağıda tasarımı görülen form üzerinden yapılacaktır. Bu esnada tasarlanacak olan Personel ve Ajanda sınıflarının kullanılması zorunludur. Sınıflar kullanılmadan yapılan ödevler bütünüyle geçersiz sayılacaktır.

4.Personel Kayıt Arama Ekranında personel adına göre arama işlemi yapılacak; ilk bulunan kayıt bilgileri yeni bir FormKayıt Penceresi içinde gösterilecektir.

5.30.05.2019 Perşembe günü ders saatinde şahsen yapılacaktır. Kontrole gelmeyenlerin ödevleri geçersiz sayılacaktır.

6.Dosya adı: öğrenci_numarası.rar şeklinde olmalıdır.

Kodlar : https://github.com/eraykisabacak/Ajanda-Yaz-l-m-

Java’da Methodlar Yardımı ile Hesap Makinesi Yapımı Kodları

Bu makalemizde methodlar yardımı ile hesap makinesi yapacağız.

Öncelikle 2 tane sayı alalım bu int değişkeninde olsun ve bunların isimleri sayi1 ve sayi2 olsun. Daha sonra kullanıcıdan sayılarımızı almamız için scanner sınıfını ekleyelim.

Daha sonra ise kullanıcıya bir metin yazalım. Burada 1 Toplama 2 Çıkartma 3 Çarpma 4 Bölme diye bir metin yazdıralım.Daha sonra kullanıcıdan bir tane işlem isteyelim. Daha sonra ise girdiği işlemi kontrol etmek için bir if else yazalım. Burada her işlem için öncelikle sayilar metoduna gidecek ve orada 2 tane sayı isteyecektir. Daha sonra ise her if else de hangi işleme gidecekse oraya gönderecektir ve sonucu ekrana yazdıracaktır.

Kodları alt tarafta bulabilirsiniz.

Kodlar:
https://github.com/eraykisabacak/java-hesap-makinesi

C# ile 5’e Bölünen 7’ye Bölünemeyen Sayıları Bulan Program

Merhaba arkadaşlar bugün sizlere C#’da 5’e bölünen 7’ye bölünemeyen sayıları bulmaya çalışacağız.

Öncelikle 2 tane textbox koyalım. Daha sonra sayıları eklemek için listbox ekleyelim.

Daha sonra ise kod tarafına geçelim. Burada öncelikle textboxtaki sayıları değişkene ekleyelim.

Sonra bir döngü ile bütün sayıları alalım ve if yardımı ile 5 ile bölünenleri bulalım içerisinede 7’ye bölünemeyenleri bulalım. Listbox’a ekleyelim. Daha detaylı bakmak için kodları alt tarafta bulabilirsiniz.

Kodlar:
https://github.com/eraykisabacak/csharp/tree/master/5e%20Bolunen%207ye%20Bolunmeyen%20Sayilar

C# ile Basit Hesap Makinesi Yapımı

Merhabalar bu yazımız da basit düzey de nasıl yapacağımızı göstereceğim.

İlk öncelikle 2 tane textbox koyalım ve 1 tanede button koyalım. Sonuçlarını yazdırmak içinde 1 tane label koyalım ve 4 tane radiobuttonu koyalım.

Daha sonra kod tarafına geçelim ve öncelikle 2 tane double sayı1 sayi2 tanımlayalım. Buradaki önemli nokta double olması çünkü 2 sayıya bölündüğünde virgülden sonraki görebilmemiz içindir.

Bu sayıları alırken textbox’daki text alalım ve convert ile double’a dönüştürelim. Daha sonra ise radiobuttonlarının hangisinin işaretlendiğini anlamak için checked ile kontrolümüzü yapalım.

Daha sonra ise if’lerin içine toplama çıkartma çarpma bölme olarak yapalım.

Böylelikle basit bir hesap makinesi yapmış oluyoruz. Kodları alt taraftaki github linkinden bulabilirsiniz.

Kodlar :
https://github.com/eraykisabacak/csharp/tree/master/HesapMakinesi

C# ile Form Ekran Tasarımı

Merhaba arkadaşlar bugün sizlerle beraber örnek bir tane form tasarımını sizlerle paylaşacağım.

Kodlar:
https://github.com/eraykisabacak/csharp/tree/master/UygulamaDesign1

C# ile Formu Hareket Ettirme Sağ Sol Yukarı Aşağı

Merhabalar bu yazımda C# ile form ekranını yukarı aşağı sağ sol olmak üzere 4 tarafa buttonlar ile nasıl hareket ettirileceğinin kodunu sizlerle paylaşacağım.

Öncelikle programıma 4 adet buton ekliyoruz. Daha sonra butonların üzerine çift tıklayarak tıklandığında ne olması gerektiğini içerisine yazıyoruz.

Burada öncelikle isterseniz butonları isimlerini değiştirebilirsiniz. Ben değiştirdim. Sonra 2. form ekliyoruz. Daha sonra 1. form açıldığında load yerine yani yüklendiğinde 2.formun açılmasını istiyoruz. En üstte ise bunu tanımlıyoruz nesne olarak. Daha sonra yukarı butonu için form2 yani fr2’ye top -25 ekleyerek yukarı gitmesini sağlıyoruz. Daha sonra sol için left -25 sağ için left +25 ve aşağı için top +25 eklemesi yaparak her tıklandığında bunu arttırıyoruz.

Kodların Tamamı :
https://github.com/eraykisabacak/csharp/tree/master/Sag_Sol_Yukari_Asagi/Sag_Sol_Yukari_Asagi

C# ile Bir Formdan Diğer Forma Bilgi Aktarma

Bu yazımızda C# ile Form1’den Form2’ye nasıl bilgileri değerleri aktarabileceğimizi göstereceğim.

Öncelikle 1 tane textbox koyuyoruz. Daha sonra 1 tane de buton koyuyoruz.

Daha sonra butona çift tıklayarak butona tıklandığında neler olması istediğimizi buraya yazıyoruz.

Burada öncelikle form2’yi projenin Solution Explorer kısmından Add diyerek 1 tane Windows Form oluşturuyoruz. Sonra bu oluşturduğumuz yeni forma 1 tane label ekliyoruz. Daha sonra geri gelerek butona bastığımızda ne olacak olan button1_click geliyoruz. Buraya öncelikle form2 nesnesini oluşturuyoruz. Daha sonra textbox’dan almış olduğumuz değeri form2 nesnesinin label’ına eşitliyoruz ve form2’yi show ediyoruz. Yani form2’yi ekrana getirmiş oluyoruz.

Kodları Aşağıda bulabilirsiniz.

Github : https://github.com/eraykisabacak/csharp/tree/master/Diger_Forma_Bilgi_Aktarma

Java Dili ile Dizilerle Sorular | 6

Sorumuz:

  1. Diziyi rastgele elemanlarla doldurunuz. (Dizinin boyutu 10 olarak tanımlansın fakat diziye 5 tane eleman eklensin) (elemanEkle)
  2. Dizi elemanlarını listeleyen kodu yazınız.(listele)
  3. Dizinin en küçük elemanını bulunuz ve yazdırınız. (enKüçükElemanBul)
  4. Var olan bu diziyi sıralı bir dizi haline getiriniz. Bu sirali tamsayı dizisi üzerinde;
  • Kullanıcı bize bir sayi veriyor ve bu sayiyi diziden silmemizi istiyor. Silme islemini yaptiktan sonra, bosalan dizi elemanının yerini, o elamanin sagindakileri, sola kaydirarak doldurmak istiyoruz. Böylelikle dizimizde bosluk kalmayacak ve yine sıralı olacaktır. (Aynı elemandan birden fazla var ise ilk bulunan eleman silinsin). Bu islemi yapan metodu yazınız. (elemanSil)
  • Ayrıca kullanıcı tarafından belirlenen bir elemanı diziye ekleyen bir metot yazınız. Bu durumda da dizi elemanları sağa kayacaktır. (yeniElemanEkle)

Kodlar : https://github.com/eraykisabacak/Java-Dili-ile-Dizilerle-Sorular-6/blob/master/src/diziler.java

Java Erişim Belirleyicileri

Java’da erişim belirleyiciler bir değişkenin veya bir metodun nerede ulaşılabileceğini nereden ulaşılamayacağını belirler.

Java’da erişim belirleyiciler daha çok nesneye yönelik programlama önemli konulardan bir tanesidir. Erişim belirleyicilerinin 4 tane farklı farklı özelliklere sahip olan erişim belirleyici vardır. Bunlar;

  1. Public
  2. Private
  3. Protected
  4. Default

Bu erişim belirleyicilerini bir tablodan anlatmak gerekirse şöyle bir tablo ortaya çıkacaktır.

Erişim BelirleyicilerAynı Paketteki Tüm SınıflardaAynı Paketteki Kalıtılmış SınıflarFarklı Paketlerdeki Tüm SınıflarFarklı Paketlerdeki Kalıtılmış Sınıflar
PublicEvetEvet Evet Evet
PrivateHayır Hayır Hayır Hayır
ProtectedEvetEvetHayırEvet
DefaultEvetEvetHayırHayır

1.Public

Tüm sınıflardan ve farklı paketlerden erişilebilen erişim belirleyicisidir.

2.Private

Bu erişim belirleyicinin sadece kendi sınıfının içinde erişilebilir. Aynı pakette olan diğer sınıflardan da erişilemez veya farklı paketlerden hiç bir türlü erişilemez.

3.Protected

Sadece kendi paketinde olan sınıflardan veya kalıtılmış olan sınıflardan protected değişkenine veya metoduna ulaşılabilir.

4.Default

Eğer herhangi bir erişim belirleyici yazılmış ise Java otomatik olarak bu erişim belirleyicisini atacaktır. Diğer bir adıda friendly’dir. Aynı paketteki sınıflar ulaşabilir.

Eğer bu erişim belirleyicilerini nerede kullanılıyor gibi bir soru sorarsanız bunlar nesneye yönelik programlama da ilk girişidir. Hangi değişkenin veya metodun nereye ulaşabileceğini bunlar sınırlama yaparlar. Nesneye yönelik programlamada birçok farklı konu vardır. Bunlar;

Constructor

Overloaded

Overriding

Inheritance

Abstraction

Encapsulation

Polymorphism

Interface

Bunlar nesneye yönelik programlamanın konularıdır. Diğer makalelerimizden görebilirsiniz.

C Dili ile Dizi Programalama Sorusu | 3

Merhaba arkadaşlar C dili ile dizi programlama sorumuz var.Basit bir sorumuz var.

Sorumuz:

n elemanlı bir dizinin en büyük ve en küçük elemanları arasındaki farkı bulan bir C programı yazınız.

Öncelikle dizi adında bir int dizi tanımlıyoruz ve içine değerleri atıyoruz.Daha sonra eleman sayısını bulmak için sizeof dizi / sizeof *dizi yapıyoruz.Daha sonra ben orada kontrol yapmıştım dizinin boyutunu alıyor mu diye sizde yapabilirsiniz.Daha sonra döngü için i = 0 ve en büyük en küçük adında 2 değişken oluşturuyoruz ve bu değişkenlere dizinin ilk değerini atıyoruz.

Buradaki önemli nokta burasıdır.Eğer 0 değeri atarsanız dizide 0’dan küçükte eleman olabilir.Onun için dizinin ilk elemanını alması daha iyidir.Daha sonra for döngüsü ile dizinin eleman sayısına kadar gidecek.For döngüsüne girdiğinde ilk if de en büyük değeri kontrol edecek 2. if de en küçük olanı kontrol edecek.

Daha sonra for dan çıkacak, en büyük ve en küçük sayıları bastıracak daha sonra en büyük ile en küçük arasındaki farkı bastıracaktır.