Özet: Öğrenci Verisi Struct'ı
Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 43 / 63.
Görev
KolayBir öğrenci yönetim sistemi ile struct kullanımının tam iş akışını gösteren bir C programı oluşturun. Programınız şunları yapmalıdır:
- Aşağıdaki üyelere sahip
Studentadında birstructtanımlayın:- Öğrencinin kimlik numarasını saklamak için bir tam sayı
id - Öğrencinin notunu saklamak için bir ondalıklı sayı
grade
- Öğrencinin kimlik numarasını saklamak için bir tam sayı
- Ana fonksiyonda,
student1adında birStudentdeğişkeni oluşturun scanfkullanarak öğrencinin kimliğini ve notunu girdiden okuyun:- ID için bir tam sayı okuyun ve bunu
student1.idiçinde saklayın - Not için bir ondalıklı sayı okuyun ve bunu
student1.gradeiçinde saklayın
- ID için bir tam sayı okuyun ve bunu
- Girdiyi okuduktan sonra aşağıdaki doğrulama ve hesaplamaları gerçekleştirin:
- Eğer not 100.0'dan büyükse, 100.0 olarak ayarlayın
- Eğer not 0.0'dan küçükse, 0.0 olarak ayarlayın
- Mevcut nota (doğrulamadan sonra) 5.0 ekleyerek bir bonus notu hesaplayın
- Eğer bonus notu 100.0'ı aşarsa, bonus notunu 100.0 olarak ayarlayın
- Öğrenci bilgilerini tam olarak şu formatta yazdırın:
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- Not durumu şu şekilde belirlenmelidir:
- Eğer orijinal not 90.0 veya üzerindeyse:
Excellent - Eğer orijinal not 80.0 ile 89.9 arasındaysa:
Good - Eğer orijinal not 70.0 ile 79.9 arasındaysa:
Average - Eğer orijinal not 70.0'ın altındaysa:
Needs Improvement
- Eğer orijinal not 90.0 veya üzerindeyse:
Bu meydan okuma; struct tanımı, değişken oluşturma, nokta operatörünü kullanarak üye erişimi, scanf ile girdi işleme ve veri doğrulama ile işleme için koşullu mantık anlayışınızı test eder. Pratik bir senaryoda struct'larla çalışmanın tam iş akışını uygulayacaksınız.
Kendin dene
#include <stdio.h>
// TODO: Burada Student yapısını (struct) tanımlayın
int main() {
// TODO: student1 adında bir Student değişkeni oluşturun
// Girdiyi oku
int id;
float grade;
scanf("%d", &id);
scanf("%f", &grade);
// TODO: Girdi değerlerini yapı (struct) üyelerine kaydedin
// TODO: Not doğrulama ve bonus hesaplamasını uygulayın
// TODO: Not durumunu belirleyin
// Sonuçları yazdır
printf("Student Information:\n");
printf("ID: %d\n", /* TODO: öğrenci ID'sini yazdır */);
printf("Original Grade: %.1f\n", /* TODO: orijinal notu yazdır */);
printf("Bonus Grade: %.1f\n", /* TODO: bonus notu yazdır */);
printf("Grade Status: %s\n", /* TODO: not durumunu yazdır */);
return 0;
}Logic & Flow bölümündeki tüm dersler
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma7Yapılar (structs)
Struct Nedir?Struct TanımlamaStruct Değişkenleri OluşturmaStruct Üyelerine ErişmeStruct BaşlatmaÖzet: Öğrenci Verisi Struct'ı2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String Fonksiyonları