Bu yazımda bir dizi uygulaması gerçekleştirmek istiyorum. Şimdi basit bir uygulama olacağı için yine console üzerinde gerçekleştireceğim. Peki neler yapacağız?
10 elemanlı bir dizim olacak ve bu 10 elemanlı dizi içinde öğrenci notları saklanacak. Bu 10 notu programı çalıştırdığımda ekrana yazdıracağım. Daha sonra bu 10 notun ortalamasını yazacağım, en düşük notu yazacağım. En yüksek notu yazacağım. Daha sonra birde 10 lu aralıklar ile her not aralığından kaç tane var onu bulacağım. Yani diyelim ki 51-60 arası kaç not var, onu bulacağım. Bu işlemlerin hepsini ayrı bir sınıf içinde ve farklı metotlarda yapacağım. Yani aslında ben bu örneğimde basit dedim ama bir çok csharp yapısını bir arada kullanacağım. Hemen visual studio da yeni bir proje açıyorum. Console uygulaması açıyorum. Daha sonra Visual Studio Solution Explorer alanında proje adımda sağ tıklayıp yeni bir Class ekliyorum adını da NotDefteri verdim. Daha sonra NotDefteri sınıfım açıkken aşağıdaki kodları yazıyorum. Açıklamaları kod bloğumda veriyorum.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication22 { public class NotDefteri { //notları tutacağım int tipinde dizi oluşturuyorum. private int[] notlar; //auto-implemented property DersAdi oluşturuyorum. public string DersAdi { get; set; } //iki parametreli constructor oluşturuyorum. //auto-implemented property DersAdi ve NotlarDizisi public NotDefteri(string ad, int[] NotlarDizisi) { //DersAdi'ni ad'a set ediyorum DersAdi = ad; //NotlarDizisi çalıştırılır. notlar = NotlarDizisi; } //iki parametreli NotDefteri constructor burada sonlanıyor //Programda Hoşgeldin mesajımı buradaki MesajGoster metodum ile oluşturuyorum public void MesajGoster() { Console.WriteLine( "Not Defteri Programına Hoşgeldiniz \n{0}!\n", DersAdi); } // MesajGoster metodu sonu //Notlar üzerinde diğer işlemleri yapacğaım kodlarımı NotlariIsle metodumda yazıyorum //bu metot çalıştığında kendi içindeki metotları çağıracak ve işlemler gerçekleşecek public void NotlariIsle() { //Dizi halindeki notları listeleyeceğim metodum, sonra oluşturucam NotlariListele(); //Notların ortalamasını alacağım ve ekrana yazdıracağım metot OrtalamaAlı çağırıyorum Console.WriteLine( "\nSınıf ortalaması {0:F}", OrtalamaAl() ); //Notların minimum değerini ve maksimum değerini bulacağım metotları çağırıyorum Console.WriteLine( "En düşük not {0}\nEn yüksek not {1}\n", MinimumNot(), MaksimumNot()); //Not aralıklarındaki hangi aralıktan kaç not var göstereceğim metotu çağırıyorum NotAraliklari(); }//NotlariIsle metodunun sonu //En düşük notu bulacak metodumu yazıyorum public int MinimumNot() { //notlar dizisinin 0. indeksindeki elemanı en düşük kabul edip DusukNot değişkenime //aktarıyorum int DusukNot = notlar[ 0 ]; //Notlar dizisinde döngümü oluştuyorum foreach (int not in notlar) { //döngünün her adımındaki değeri DusukNot ile karşılaştırıyorum, //eğer o adımdaki değer DusukNot değerinden küçük ise bu sefer o adımdaki değeri //DusukNot değerine aktarıyorum if (not < DusukNot) DusukNot = not; // yeni DusukNot değerim } // foreach döngüsü sonu return DusukNot; // en düşük not değerini metot sonucu geri döndürüyorum } //MinimumNot metodu sonu //En Yüksek notu bulacak metodumu yazıyorum public int MaksimumNot() { //notlar dizisinin 0. indeksindeki elemanı en yüksek kabul edip YuksekNot değişkenime //aktarıyorum int YuksekNot = notlar[ 0 ]; //Notlar dizisinde döngümü oluştuyorum foreach (int not in notlar) { //döngünün her adımındaki değeri YuksekNot ile karşılaştırıyorum, //eğer o adımdaki değer YuksekNot değerinden büyük ise bu sefer o adımdaki değeri //YuksekNot değerine aktarıyorum if (not > YuksekNot) YuksekNot = not; // yeni YuksekNot değerim } // foreach döngüsü sonu return YuksekNot; // en yüksek not değerini metot sonucu geri döndürüyorum } //MaksimumNot metodu sonu //Dizinin ortalamasını alacak metodumu yazıyorum public double OrtalamaAl() { //Dizideki değişkenlerin toplam değerini burada tutacağım int toplam=0; //notlar dizisinde olan her bir elemanı toplam değişkeni ile topluyoruz foreach (int not in notlar) { toplam += not; } //Geriye toplam değerinin dizinin eleman sayısına bölümü sonucu elde edilen //değeri döndürüyorum return (double) toplam / notlar.Length; } //OrtalamaAl metodunun sonu //NotAraliklari metodumu burada oluşturuyorum public void NotAraliklari() { Console.WriteLine("Not Dağılımı:"); //YildizSayisi değişkenimde dizim içindeki notları inceleyerek hangi aralıkta //kaç tane not var, onu sayacağım. Daha sonra bu sayı kadar yıldız ile gösterim //yapacağım. Burada dikkat edilecek husus YildizSayisi adında int tipinde bir dizi //oluşturdum. Bu dizimin ilgili indeksinde ilgili not aralıklarını saklayacağım. int[] YildizSayisi = new int[11]; //her bir not aralığı için ilgili YildizSayisi dizisindeki elemanlardan ilgili //indeksin eleman sayısını arttırıyorum foreach (int not in notlar) { ++YildizSayisi[not / 10]; } //Not aralıklarına göre Yıldız sayısını göstereceğim döngümü oluşturuyorum for (int sayac = 0; sayac < YildizSayisi.Length; sayac++) { if (sayac == 10) { Console.Write(" 100: "); } else { Console.Write("{0:D2}-{1:D2}: ", sayac * 10, sayac * 10 + 9); } for (int yildizlar = 0; yildizlar < YildizSayisi[sayac]; yildizlar++) { Console.Write("*"); } Console.WriteLine(); } } //NotAraliklari metodumun sonu. //NotlariListele metodumu oluşturuyorum, //tüm notları öğrenci öğrenci alt alta listeleyeceğim public void NotlariListele() { Console.WriteLine("Notlar:\n"); //Her bir öğrenci notunu listeleyeceğim döngümüz. for (int ogrenci = 0; ogrenci < notlar.Length; ogrenci++) { Console.WriteLine("Öğrenci {0:0}: {1,3}", ogrenci+1, notlar[ogrenci]); } } //NotlariListele metodumun sonu } //NotDefteri sınıfımın sonu }
Sınıfı yani classı oluşturduktan sonra program.cs dosyama geri dönüyorum. NotDefteri classını kullanarak işlem yapacağım. Kodlarım aşağıdaki şekilde, açıklamalarımı da kod satırına ekliyorum.
program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication22 { class Program { static void Main(string[] args) { //Notları sakladığım tek boyutlu dizimi oluşturuyorum. int[] NotlarDizisi = { 45, 89, 90, 34, 65, 12, 78, 54, 98, 52 }; NotDefteri BizimNotlar = new NotDefteri("Notları listeleme programı", NotlarDizisi); BizimNotlar.MesajGoster(); BizimNotlar.NotlariIsle(); Console.ReadLine(); } } }
Ekran görüntümüz aşağıdaki gibi olur.
Uygulamayı aşağıdaki linkten indirebilirsiniz.
[wpdm_file id=101]
Emeğine sağlık kardeşim. Sağolasın
Bende teşekkür ederim.