C++ ile Öğrenci Otomasyonu

Visual Studio ortamında C++ dili ile ufak çaplı bir öğrenci otomasyonu yapacağız.

Merhaba Arkadaşlar,

Visual Studio C++ ile bizden istenen kurallar çerçevesinde bir Öğrenci otomasyon programı yapacağız.

Yazılması istenen program; klavyeden başlangıçta 1 kereliğine hocadan vize ve final notlarının oranlarını ve devamsızlık sınır gününü isteyecektir daha sonra sırayla her öğrenciye (1. Öğrenci…. 2. Öğrenci… ) ait vize, final notları ve öğrencinin devamsızlık günleri girilmesini isteyecektir.

Her girdi tamamlandığında o öğrencinin harf notu ekrana basılıp geçip kaldığı bildirilecektir. Bu işlem her hangi bir öğrencinin vize notu için ‐1 girilmesine kadar devam edecek, vize notu ‐1 girildiğinde program sonlanacaktır.

Aşağıda verilen kurallar göz önüne alınarak öğrencinin başarı ortalaması, aşağıda belirtilen harf notuna çevrilecek ve dersten geçip kaldığı çıktısı bildirilecektir.

KURALLAR:

1‐ Vize notunun başarı notuna oranı %20'nin altında ve %35'in üstünde olamaz.
2‐ Final notunun başarı notundaki oranı ile vize notunun başarı notuna oranları toplamda %100 olmalıdır.
3‐ Devamsızlık gün sayısı 15 günden az 30 günden fazla olamaz. Devamsızlığı aşan öğrenciler “FF” ile kalır.
4‐ Bir öğrencinin final notu 50 den az olursa başarı notu “FF” dir. Final notu 50 nin üstündeki notlarda başarı notu hesaplanır.

DEĞERLENDİRME

1. Kurala baktığımız zaman vize notunun %35'i finalin ise %65'i alınacak ve finale girme hakkı kazanabilmek için 100 puanlık bir vizeden minimum 58 alınmalı.

2. Vize*0.35 + final*0.65 == 100 şeklinde sahte kodunu oluşturdum.

3. Tek bir if içinde 2 sorgu kullanacağız ve mantıksal veya (||) ya da mantıksal && kullanacağız.

4. If - else if döngüleri ile alınan notun aralıgını kontrol ettireceğiz.

Kodlarımızı yazalım;


#include <stdio.h>

#include <conio.h>



int main()

{

    int vize, final, devamsizlik;

    float ortalama;

    int i=1;

    do

    {

            printf("%d. ogrencinin Vize notunu giriniz: ",i);

            scanf("%d", &vize);



            if (vize == -1){printf("Program kapaniyor.."); break;}



            float vizeBasari = (vize * 0.35);



            if (vizeBasari < 20 || vizeBasari > 35){ printf("Bu ogrenci Basarisiz..\n\n"); i++;}

            else

            {

                printf("%d. ogrencinin Final notunu giriniz: ",i);

                scanf("%d", &final);



                float finalBasari = (final * 0.65);



                printf("%d. ogrencinin devamsiz gun sayisini giriniz: ",i);

                scanf("%d", &devamsizlik);



                

                if(devamsizlik < 15 || devamsizlik > 30) // devamsızlık şartı

                {

                    printf("%d. ogrenci devamsizliktan KALDI !!\n\n", i);

                }

                else

                {

                        ortalama = vizeBasari + finalBasari;



                        if(0 <= ortalama && ortalama <= 44) printf("Ogrencinin basari harf notu FF.. Ogrenci KALDI\n\n");

                        else if(45 <= ortalama && ortalama <= 54) printf("Ogrencinin basari harf notu DD.. Ogrenci GECTI\n\n");

                        else if(55 <= ortalama && ortalama <= 69) printf("Ogrencinin basari harf notu CC.. Ogrenci GECTI\n\n");

                        else if(70 <= ortalama && ortalama <= 84) printf("Ogrencinin basari harf notu BB.. Ogrenci GECTI\n\n");

                        else if(85 <= ortalama && ortalama <= 100) printf("Ogrencinin basari harf notu AA.. Ogrenci GECTI\n\n");

                        else if (ortalama > 100) printf("100 den buyuk ortalama olmaz.. hata olustu!\n\n");

                }

                i++; // sıradaki öğrenciye geçer.

            }

    }

    while(vize != -1); // vize -1 girilene kadar kayda devam eder.





getch();

return 0;

}



Programın ekran çıktısı aşağıdadır;

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git