Merhaba herkese! 👋 Ben Gazi Üniversitesi Bilgisayar Mühendisliği öğrencisiyim. C programlama dersinde öğrendiğim teorik bilgileri (struct yapıları, pointerlar ve dosya işlemleri) pekiştirmek için kendime bir proje geliştirdim.
Bugün sizlerle yazdığım Öğrenci Not Hesaplama ve Kayıt Sistemi'ni ve bu süreçte neler öğrendiğimi paylaşmak istiyorum.
Proje Ne Yapıyor? Bu program, basitçe bir öğretmenin veya öğrencinin işini kolaylaştırmayı hedefliyor.
Öğrenci bilgilerini alıyor.
Vize ve final notlarını girmenizi istiyor.
Tüm bu verileri bir .txt dosyasına kaydederek verilerin kaybolmamasını sağlıyor.
Neler Kullandım? Bu projeyi geliştirirken C dilinin şu özelliklerinden faydalandım:
Structs (Yapılar): Öğrenci verilerini (Ad, Numara, Notlar) tek bir çatı altında tutmak için.
File I/O (Dosya İşlemleri): Verileri kalıcı hale getirmek için fopen, fprintf gibi fonksiyonlar.
Algoritmalar: Veri girişi ve dosya yazdırma formatlaması.
İşte Kodum :
#include <stdio.h>
#include <stdlib.h>
struct ogrenci {
char name[20];
int vize;
int final;
};
int main(void) {
FILE *belge;
int i;
// Dosyayı ekleme (append) modunda açıyoruz
belge = fopen("notlar.txt", "a");
if (belge == NULL) {
printf("Error opening file");
return 1; // Hata durumunda programı durdurmak iyi bir pratiktir
}
struct ogrenci sinif[3] = {};
for (i = 0; i < 3; i++) {
printf("Ogrenci adini giriniz: ");
scanf("%s", sinif[i].name);
printf("Ogrenci vize giriniz: ");
scanf("%d", &sinif[i].vize);
printf("Ogrenci final giriniz: ");
scanf("%d", &sinif[i].final);
printf("-----------------------\n"); // Görsel ayrım için
}
for (i = 0; i < 3; i++) {
// Dosyaya düzenli yazdırma işlemi
fprintf(belge, "%-10s // %-10d // %-10d\n", sinif[i].name, sinif[i].vize, sinif[i].final);
}
fclose(belge);
printf("Veriler basariyla kaydedildi.\n");
return 0;
}
💡 Zorlandığım Noktalar ve Gelişim Süreci
Açıkçası bu projeye başlarken struct (yapı) ve dosya oluşturma konularında biraz zorlandım. Teorik olarak bilsem de kodlamaya gelince kafam karışıyordu.
Ancak pes etmek yerine örnek yapa yapa ve bolca hata alarak mantığın oturduğunu fark ettim. Şu an verileri yapısal olarak tutup dosyaya kaydetmek çok daha mantıklı geliyor. Eğer siz de bu konularda zorlanıyorsanız, sadece kod yazmaya devam edin! 🚀
Umarım Beğenirsiniz... :)
Top comments (0)