Öğrenciler ve notları ile ilgili bir proje hakkında

ben biraz ilerledim ama kafam karıştı tam anlayamadım soruyu yardımcı olacak var mı tam olarak ne yapacağımı bilmiyorum soruyu anlamadım

Bkz: Soru Sorarken Sıkça Düşülen Hatalar #4

1 Beğeni
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
    int Ogrenci[5];
    int i;
    int ogrenciSayisi;
    printf("Kac Adet Ogrenci Girilsin?...\n");
    scanf("%u",&ogrenciSayisi);
    printf("\n");
    for (i = 0; i < ogrenciSayisi; i++)
    {
        printf("Ogrenci(%u)=", i + 1);
        scanf("%d",&Ogrenci[i]);
        printf("\n");
    }
    int ogrenciNumarasi;
    char OgrenciAdi[20];
    char OgrenciSoyadi[20];
    int quiz1;
    int quiz2;
    int vize;
    int proje;
    int final;
    int ortalama;

    int ort(quiz1,quiz2,vize,proje,final);
    {
        ortalama = ((quiz1*10)/100) + ((quiz2*10)/100) + ((vize*15)/100) + ((proje*35)/100) + ((final*30)/100);
        return ortalama;
    }
    int secim;
    printf("Hangi sirada ekrana yazilsin?\n1.Ogrenci Numarasi\n2.Ogrenci Adi\n3.Ogrenci Soyadi\n4.Ogrenci Not Ortalamasi");
    scanf("%d",&secim);

    getch();
    
    
    
    

    
    
    


}
Soru:
• Parametre olarak;
- notu girilecek öğrenci sayısı
- öğrenci numarası int
- öğrenci adı char[20]
- öğrenci soyadı char[20]
- quiz1 notu int
- quiz2 notu int
- vize notu int
- proje notu int
- final notu int
Almalıdır.
• Verileri gereğine göre tek boyutlu veya çok boyutlu dizilere kaydedilmeli,
• Alt fonksiyon kullanarak her öğrencinin not ortalamasını aşağıda verilen oranlar ile 
hesaplayıp ana fonksiyona gönderilmelidir,
- quiz1 %10
- quiz2 %10
- vize %15
- proje %35
- final %30
• Kullanıcının isteğine göre verileri aşağıdaki sırada ekrana yazdıran,
- öğrenci numarası
- öğrenci adı
- öğrenci soyadı
- öğrencinin not ortalaması
• Program, Sonlanmadan önce "çıkmak için bir tuşa basınız" diyen ve klavyeden bir tuşa 
basılana kadar bekleyen
programı yazınız.


Soru metni kotu bir dille yazildigi icin ne istendigini tam olarak anlamamakla beraber, eksik bir takim seyler goruyorum:

  • Kod modern bir C dilinde degil. Compiler hatalari ayiklanirken bozulmus gibi.
  • Hatalarla beraber uyarilara da dikkat etmek lazim. Butun uyarilari acip, bu halde uyari cikmayana kadar hata duzeltmek lazim.
  • ort fonksiyonu tanimlanmak istenmis fakat bunu engelleyen 3 hata yapilmis. Fonksiyonlar konusunu tekrar gozden gecirkmek, fonksiyon tanimlayan baska C kodlarina bakmak lazim.
  • Sorunun isteyip istemediginden emin olamadim ama bir noktada struct kullanmak isleri kolaylastirabilir.

Ayrica bu programi yazmadan once soruda istenen akis diyagramini ve algoritmayi cikartmak programi yazma islemini son derece kolaylastiracaktir.

2 Beğeni

Soruyu yazana sorular:

  • Bu cumlenin oznesi nedir?
  • 1 olmayan bir ogrenci sayisiyla beraber yollanan final notu int neyi temsil eder?
  • Ogrenci basina 8 parca bilgi olduguna gore 8 adet dizi mi kullanilmasi isteniyor?
  • Burada “gondermekten” kasit return etmek midir?
  • Kullanici istegini nasil ifade etmelidir?
  • “Bir tusa basilana kadar beklemenin” standart bir yolu olmadigina gore ENTER beklesek (getchar kullansak) olur mu?
6 Beğeni
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int secim;
int ogrenciNumarasi;
char OgrenciAdi[20];
char OgrenciSoyadi[20];
int quiz1;
int quiz2;
int vize;
int proje;
int final;
int i= 0,n;

int ortalamaBulma(int quiz1,int quiz2,int vize,int proje,int final)
{
    int ortalama;
    ortalama = ((quiz1*10)/100) + ((quiz2*10)/100) + ((vize*15)/100) + ((proje*35)/100) + ((final*30)/100);
    return ortalama;
}

int main()
{  

    printf("*************************************************\nOnemli NOT: LUTFEN TURKCE KARAKTER KULLANMAYINIZ...\n*************************************************\n");

        printf("Adinizi giriniz (En Fazla 20 Karakter):\n");
        scanf("%s",&OgrenciAdi);
        printf("\nIsminiz = %s\n", OgrenciAdi);
   
        printf("\nSoyadinizi giriniz( En Fazla 20 Karakter) : \n");
        scanf("%s",&OgrenciSoyadi);
        printf("\nSoy isminiz = %s\n",OgrenciSoyadi);


        printf("\nNumaranizi basinda 'b' olmadan giriniz : \n");
        scanf("%d",&ogrenciNumarasi);
        printf("\nNumaraniz : %d\n",ogrenciNumarasi);

        printf("\nQuiz1 notunuzu giriniz : \n");
        scanf("%d",&quiz1);
        printf("\nQuiz1 notunuz : %d\n",quiz1);

        printf("\nQuiz2 notunuzu giriniz : \n");
        scanf("%d",&quiz2);
        printf("\nQuiz2 notunuz : %d\n",quiz2);

        printf("\nVize notunuzu giriniz : \n");
        scanf("%d",&vize);
        printf("\nVize notunuz : %d\n",vize);

        printf("\nProje notunuzu giriniz : \n");
        scanf("%d",&proje);
        printf("\nProje notunuz : %d\n",proje);

        printf("\nFinal notunuzu giriniz : \n");
        scanf("%d",&final);
        printf("\nFinal notunuz : %d\n",final);


        printf("\nNot ortalamaniz = %d\n",ortalamaBulma(quiz1,quiz2,vize,proje,final));

    
    
    



  
    
    printf("\nHangi sirada ekrana yazilsin?\n1.Ogrenci Numarasi\n2.Ogrenci Adi\n3.Ogrenci Soyadi\n4.Ogrenci Not Ortalamasi\n5.Cikis yapmak icin...\n");
    do
    {
        scanf("%d",&secim);
        if (secim == 1)
        {
            printf("Ogrenci Numarasi = %d\n",ogrenciNumarasi);
        }
        else if (secim == 2)
        {
            printf("Ogrenci Adi =  %s\n",OgrenciAdi);
        }
        else if (secim == 3)
        {
            printf("Ogrenci Soyadi = %s\n",OgrenciSoyadi);
        }
        else if (secim == 4)
        {
            printf("Ogrenci Not Ortalamasi = %d\n",ortalamaBulma(quiz1,quiz2,vize,proje,final));
        }
        else if (secim == 5)
        {
            printf("Cikis Yapiliyor...");
        }
        
        
        
        
        
    } while (secim != 5);
    
   
    

  

    






















    getch();
    
    
    
    

    
    
    


}

şu an programımda hiçbir sıkıntı yok, sorunsuz calisiyor biraz gelistirdim fakat…
ben bunları 1 ogrenci icin yaptim birden cok ogrenci icin nasıl yapabilirim?

main'in icerigini birOgrencininBilgileriniGir adli bir fonksiyona tasiyip main’den bu fonksiyonu birden fazla kez cagirabilirsin.

Oncesinde global degiskenleri fonksiyonun icine alman, sonra bir sekilde “ana fonksiyona gondermen” lazim.