C# Liste metodunu kullanmadan kalan veya geçen öğrencilerini listelemek

Arkadaşlar c# uygulaması yapıyorum pythondan sonra c# geçtim. Takıldıgım bır yer oldu ben bir öğrenci otomasyonu yapıyorum fakat liste kullanmayacağım. Kalan öğrenciler ve geçen öğrenciler var
daha sonrasında menu bölümü var 1,kalan ogrenci 2. geçen öğrenci 3. hepsi

Sorun şu;kalan ogrencılerı cagırdıgımda en son girdiğim öğrenciyi çağırıyor
Liste kullanmadan girdiğim kalan öğrencileri görmek istiyorum varmı bir yolu teşekkürler Kodlarımı paylaşıyorum

namespace Ogrenci_Otomasyonu
{
    internal class Program
    {
        static void Main(string[] args)
        {
        BAS:
            Console.Clear();
            int sinif_sayi = 0, vize_not = 0, final_not = 0, sinif_sayac = 0, odev_not = 0, ogrenci_numara = 0, ogrenci_not = 0, sinif_iki_sayac = 0;
            int gecen_sayac = 0, kalan_sayac = 0;
            string ogrenci_isim = "", ogrenci_soyisim = "", kalan_ogrenci = "", gecen_ogrenci = "";
            char islemTur, secim;

            Console.WriteLine("Sınıf mevcudunuz");
            try
            {
                sinif_sayi = Convert.ToInt32(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("Lütfen Rakam Giriniz (Devam Etmek İçin Enter Tuşuna   Basınız");
                Console.ReadLine();
                goto BAS;

            }
            try
            {
                for (int i = 0; i < sinif_sayi; i++)
                {
                    Console.WriteLine("Öğrencinin adı: ");
                    ogrenci_isim = Convert.ToString(Console.ReadLine());
                    Console.WriteLine("Öğrencinin soyismi: ");
                    ogrenci_soyisim = Convert.ToString(Console.ReadLine());
                    Console.WriteLine("Öğrencinin numarası: ");
                    ogrenci_numara = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Öğrencinin ödev notu: ");
                    odev_not = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Öğrencinin vize notu: ");
                    vize_not = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Öğrencinin final notu: ");
                    final_not = Convert.ToInt32(Console.ReadLine());

                    sinif_sayac += 1;

                }
            }
            catch
            {
                Console.WriteLine("Lütfen Rakam Giriniz (Devam Etmek İçin Enter Tuşuna   Basınız");
                Console.ReadLine();
                goto BAS;
            }

            ogrenci_not = Convert.ToInt32(vize_not * 0.4 + final_not * 0.6 + odev_not * 0.2);
            for (int i = 0; i < sinif_sayi; i++)
            {




                sinif_iki_sayac += 1;
                if (ogrenci_not >= 50)
                {

                    gecen_ogrenci = " İsmi: " + ogrenci_isim + "\n Soyismi: " + ogrenci_soyisim + "\n Numarası: " + ogrenci_numara;

                    gecen_sayac += 1;

                }
                else
                {
                    //Console.WriteLine(ogrenci_isim, ogrenci_soyisim);
                    kalan_ogrenci = " İsmi: " + ogrenci_isim + "\n Soyismi: " + ogrenci_soyisim + "\n Numarası: " + ogrenci_numara;
                    kalan_sayac += 1;

                }
            }






        menu:
            Console.WriteLine("1.Kalan Öğrenci");
            Console.WriteLine("2. Geçen Öğrenci");
            Console.WriteLine("3. Hepsi");

            Console.WriteLine("Lütfen bir işlem seçiniz");
            islemTur = Convert.ToChar(Console.ReadLine());

            if (islemTur == '1')
            {


                Console.WriteLine(kalan_ogrenci);
                Console.WriteLine("Menü bölümünü tekrar görmek ister misiniz= E/H");
                secim = Convert.ToChar(Console.ReadLine());
                if (secim == 'e' || secim == 'e')
                {

                    goto menu;

                }





            }
            else if (islemTur == '2')
            {
                Console.WriteLine(gecen_ogrenci);
                Console.WriteLine("Menü bölümünü tekrar görmek ister misiniz= E/H");
                secim = Convert.ToChar(Console.ReadLine());
                if (secim == 'e' || secim == 'e')
                {
                    goto menu;

                }

            }
            else if (islemTur == '3')
            {
                Console.WriteLine(gecen_ogrenci + " " + kalan_ogrenci);
            }

            Console.ReadLine();



        }

    }
}

c# bilgim 0 sadece dediğinden mantık yürüterek şunu anladım. 3 tane öğrenci var diyelim. ekrana 1.öğrenciyi basıyor. sonra 1.öğrenciyi silip 2.öğrenciyi ekrana bastığı için sonuncuyu görüyosun. c# bilmediğim için koduda okuyamadım. bu gui bi program mı ? tkinter biliyosan ondan örnek vereyim sen c# a göre yazarsın.

yani liste kullanmadan verileri alt alta yazdırma. belkide yanlış anladım dediğini :smiley:

from tkinter import *

root = Tk()

list = ["ayşe", "fatma", "hayriye"]

for i in list:

    label = Label(root, text=i)
    label.pack()

root.mainloop()

şaun dikkatimi çekti liste derken neyi kast ettin ? array(dizi) mi ?

Liste yerine veritabanında saklayabilirsiniz ama verileri tekrar tekrar çekmek zorunda kalırsınız.

Tam olarak nasıl bir kod yazmaya çalışıyorsunuz ?

Ogrenciler nerede tutulacak?

Bu her seferinde bir onceki ogrenci_isim’in ustune yaziyor. Bir yere kopyalanmadigi surece, son ogrenci disinda hic bir seyi tutmak mumkun degil.

bir yolu yokmu bunun peki liste veya veritabanı kullanmadan

hocam söylediklerinizi biliyorum fakat bu şekilde yapmam gerektiği için böyle yazdım
Liste,veritabanı,dosya yok

ama burda liste var ayşe fatma hayriye

ilk başta gui program yapıyosun sandım. listeyi de list widget gibi bişey düşündüğüm için öyle bi örnek yaptım. sonradan anladım terminal üzerinde çalışacak bi program olduğunu. sen ne yapmak istediğini kısaca anlatır mısın ? c# dan bişey anlamıyorum. koduda çalıştıramadım zaten :smiley:

senin yazdığın kod bu demi ? python karşılığı yani? inputa bişeyler yazıp print ediyosun ?

for i in range(3):
    x = input("yazbel: ")

    print(x);

Tamam liste yok, veritabanı yok, dosya yok.

Bari array(dizi) kullansak?

Yapıyı bir array içinde kullanmayı düşündünüz mü?

c# - Array of structs example - Stack Overflow

Kelime oyunu yaptık ama neyse, ha array, ha liste.

evet hocam aynen öyle

teşekkürler semtex kardeşim

Isimleri oyle olmayan ama ayni sekilde calisan seyler var. Niye liste kullanmiyorsun ki?

bkz: Soru Sorarken Sıkça Düşülen Hatalar #8

1 Beğeni

kullanmamaya yemin etmiş olabilir hocam. başka bi açıklaması yok :smiley:

liste olmadan yaptım ama