Öğrenci Not Dağılımı Uygulaması

11 Mart 2011 by B.Selçuk ÖKSÜZ
Leave a reply »
WP Greet Box icon
Merhaba! Selcukoksuz.com adresine hoş geldiniz. Eğer yeni iseniz ve içeriğimizi takip etmek isterseniz RSS Abonesi Olabilirsiniz.
Mailinize onay mesajı gönderilecektir. Cevaplamayı unutmayınız.

uygulamalarımız tüm hızı ile devam ediyor. Bu uygulamamızı açıklayayım biraz. Bu uygulamamız da kullanıcıdan sınıf mevcudu sayısını alıyoruz. Aldığımız öğrenci sayısı kadar değer üreterek dizimize atıyoruz. Dizimi ise bir boyutlu. dizi[aralık] şeklinde. dizi[0-9] arası değer alabiliyor ve bu değerler 0-10,11-20,21-22,…,91-100 şeklinde ki 10 aralığı ifade ediyor. Önce diziye değerleri atıyoruz ve hangi aralığa kaç öğrenci notu geldi saydırıyoruz. Sonrasında da bunları ekrana yazdırıyoruz bir döngü içerisinde.

Bu arada uygulamaları paylaşıyorum ama hiç cevap yada ses çıkmıyor. İşe mi yaramıyor yaptığım yoksa direk copy-paste mi çalışılıyor. Arkadaşlar sıkıntılı yerler varsa sorabilirsiniz. Blog üzerinde sorularınıza çok hızlı bir şekilde cevap vermeye çalışırım.

Yukarıda uygulamanın örnek bir görüntüsü mevcut. Programın ne yaptığını biraz daha net anlatabilmek adına yardımcı olacaktır. Aşağıda kodlar arasında detaylı açıklamalarda mevcuttur. İsterseniz kodların altında ki linkten uygulama dosyasını da indirebilirsiniz.

Uygulamanın aşağıda ikinci bir versiyonunu daha yayınladım Döngülerin içerisinde ki mantığı değiştirerek daha kısa bir uygulamamız oldu. İncelemeyi unutmayın.

Uygulama: Öğrenci not dağılımını hesaplayan uygulama

Amaç: Random sayılar,switch yapısı, IF-Else if-If yapısı uygulamaları

Dil: C++

Program: DevC++

Kodlar:

//Öğrenci not dağılımını hesaplayan c uygulaması
#include <stdio.h>
#include <conio.h>
#include <time.h>//Random için eklendi
#include <stdlib.h>

void calcStudent(int student);//Öğrenci notlarını random veren ve araığını tespit eden fonksiyon
void myMenu(void);

int main()
{
    myMenu();
    int studentNum;//Toplam öğrenci sayısı
    printf("Sinifta kac ogrenci mevcudu olacak = ");
    scanf("%d",&studentNum);

    srand(time(NULL));//ramdom sayı üreteci
    printf("\n\n%d ogreci icin not dagalimleri asagidaki gibidir:\n\n",studentNum);
    calcStudent(studentNum);//fonksiyon çağrılıyor
    printf("\n\n");
    system("pause");
}

void calcStudent(int student)
{
     int i,score;//sayaç,o anki öğrencinin notu
     int scores[10]={0};//notlar dizisi, ilk değerler sıfır

     for(i=1;i<=student;i++)//Notlandırma sistemi
     {
            score=(rand()%100)+1;

            if ((score>=0) && (score<=10))
                  scores[0]++;
            else if ((score>=11) && (score<=20))
                  scores[1]++;
            else if ((score>=21) && (score<=30))
                  scores[2]++;
            else if ((score>=31) && (score<=40))
                  scores[3]++;
            else if ((score>=41) && (score<=50))
                  scores[4]++;
            else if ((score>=51) && (score<=60))
                  scores[5]++;
            else if ((score>=61) && (score<=70))
                  scores[6]++;
            else if ((score>=71) && (score<=80))
                  scores[7]++;
            else if ((score>=81) && (score<=90))
                  scores[8]++;
            else if ((score>=91) && (score<=100))
                  scores[9]++;
            else
                  printf("Hatalı not girişi oldu\n\n");
     }

         int j=0;
         for(j=0;j<10;j++)//Ekrana yazdırma sistemi
         {
             switch(j)
             {
                 case 0:
                      printf("0-10 ");
                      break;
                 case 1:
                      printf("11-20 ");
                      break;
                 case 2:
                      printf("21-30 ");
                      break;
                 case 3:
                      printf("31-40 ");
                      break;
                 case 4:
                      printf("41-50 ");
                      break;
                 case 5:
                      printf("51-60 ");
                      break;
                 case 6:
                      printf("61-70 ");
                      break;
                 case 7:
                      printf("71-80 ");
                      break;
                 case 8:
                      printf("81-90 ");
                      break;
                 case 9:
                      printf("91-100 ");
                      break;
                 default:
                      printf("notlamada bir sorun oldu");
               }
               printf("arasi not alan ogrenci sayisi %d\n",scores[j]);
         }
}
void myMenu(void)
{
    printf("\t_________________________________________________________\n\n");
	printf("\t                     blog.selcukoksuz.com                \n");
	printf("\t\t\tProgramlama 2 Dersi Uygulamalari        \n");
	printf("\t\t     Ogrenci Not Dagilimi Hesaplayan Uygulama    \n\n");
    printf("\t_________________________________________________________\n\n");
}

/*Bu kodlama B.Selçuk ÖKSÜZ tarafından hazırlanmıştır.
Kodlar hakkında yada programlama hakkında düşünce ve görüşlerinizi

http://blog.selcukoksuz.com adresi altında iletebilirsiniz.

Facebook sayfası:
http://facebook.com/TurkiyeninMuhendisleri
*/

Öğrenci not dağılımı hesaplayan C++ uygulama dosyasını indir.

Güncelleme 11.03.2011

Arkadaşlar yukarıda ki kodlama açık oldu ama çok uzun bir yapı kurduk. Aşağıda ki şekilde sistemimizi daha kısa bir şekilde de yazabiliriz.

//Öğrenci not dağılımını hesaplayan hesaplayan c uygulaması
#include <stdio.h>
#include <conio.h>
#include <time.h>//Random için eklendi
#include <stdlib.h>
#define range 10//Not Aralıkları

void calcStudent(int student);//Öğrenci notlarını random veren ve araığını tespit eden fonksiyon
void myMenu(void);

int main()
{
    myMenu();   
    int studentNum;//Toplam öğrenci sayısı
    printf("Sinifta kac ogrenci mevcudu olacak = ");
    scanf("%d",&studentNum);

    srand(time(NULL));//ramdom sayı üreteci 
    printf("\n\n%d ogreci icin not dagalimleri asagidaki gibidir:\n\n",studentNum);

    calcStudent(studentNum);//fonksiyon çağrılıyor
    printf("\n\n");   
    system("pause");        
}

void calcStudent(int student)
{
     int i,j,score;//sayaçlar,o anki öğrencinin notu
     int scores[range]={0}; //notlar dizisi, ilk değerler sıfır

     for(i=0;i<student;i++)//Notlandırma sistemi
     {
            score=(rand()%101);
            for (j=0;j<range;j++)//Notları aralıklara dağıtıyoruz
            {            
                if ((score>=j*10+1)&&(score<=j*10+10))
                     scores[j]++;
            }                                                                                                                                                 
     }

         printf("Aralik \t\tOgrenci Sayisi\n______\t\t______________\n\n");

         for(j=0;j<10;j++)//Notları Yazdırıyoruz
              printf("%d ile %d arasi \t %d\n",j*10+1,j*10+10,scores[j]);         
}

void myMenu(void)
{
    printf("\t_________________________________________________________\n\n");
	printf("\t                     blog.selcukoksuz.com                \n");
	printf("\t\t\tProgramlama 2 Dersi Uygulamalari        \n");
	printf("\t\t     Ogrenci Not Dagilimi Hesaplayan Uygulama    \n\n");
    printf("\t_________________________________________________________\n\n");     
}

/*Bu kodlama B.Selçuk ÖKSÜZ tarafından hazırlanmıştır. 
Kodlar hakkında yada programlama hakkında düşünce ve görüşlerinizi

http://blog.selcukoksuz.com adresi altında iletebilirsiniz.

Facebook sayfası:
http://facebook.com/TurkiyeninMuhendisleri
*/

Yazar Hakkında

Bilgisayarla yaşamayı bir tarz olarak benimsemiş, teknoloji ile tamamen içli dışlı bir; web tasarımcı, yazılımcı, donanımcı, blog yazarı ve bilgisayar mühendisidir.

B.Selçuk ÖKSÜZ
B.Selçuk ÖKSÜZ kullanıcısının tüm yazıları.

Arama Sorguları

  • 100 üzerinden not hesaplama (123)
  • 100 üzerinden notlar (102)
  • not dağılımı (44)
  • 100 üzerinden not dağılımı (11)
Advertisement

Bu Yazıyı Beğendiniz Mi?

7

7 comments

  1. Turgut Özatlar dedi ki:

    c++ da t dagılımının nasıl yazıldıgını bılıyormusun selcuk ?

  2. Eren Eylikler dedi ki:

    İyi olmuş her 2 şeklini de görmüş olur herkes 😉

  3. Eren Eylikler dedi ki:

    Siteye doğru kopyalıyorum fakat ne hikmetse kendi kafasına göre değiştiriyor kodu 🙂 şurdan çekebilirsin.

  4. Eren Eylikler dedi ki:

    #include
    #include
    #include
    #include
    #define N 100
    #define araliksayisi 10

    int main()
    {
    int toplam[araliksayisi]={0};
    int i,j;
    int notu;
    srand(time(NULL));
    for (i=0;i<N;i++)
    {
    notu=rand()%101;
    for (j=0;jj*10+1)&&(notu<=j*10+10))
    toplam[j]++;
    }
    }

    // n tane not uretildi ve hangi araliklarda oldugu belirlenerek
    // o araliktaki ogrenci sayisi artirildi

    printf("Aralik \t Ogrenci Sayisi\n");
    for(j=0;j<araliksayisi;j++)
    printf("%d – %d \t %d \n",j*10+1,j*10+10,toplam[j]);

    getch();
    }

    • 2. for döngüsünde sistemi anladım sanki ama, j nin artış miktarı girilmemiş. Acaba kodu yanlış mı kopyaladın. Kontrol edebilir misin? 2. for ta bir hata var.

Bir Cevap Yazın

Sizin Yorumunuz Nedir?

%d blogcu bunu beğendi:
Gizlilik Hakları