⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
⭐ Buraya kendi metin reklamınızı vererek binlerce kişiye ulaşın! ⭐
Sponsor Görsel 2
SponsorSponsor

C Programlama Dili Dosya Ve Struct Yapısı Ile Öğrenci Kayıt Sistemi

C Programlama Dili Dosya ve Struct Yapısı ile Öğrenci Kayıt Sistemi
PHP Kod:
#include <stdio.h>//kütüphane ekleniyor
#include <windows.h>//kütüphane ekleniyor
#include <locale.h>//kütüphane ekleniyor

struct OGRENCI {//ogrenci struct yapısı tanımlanıyor
    char isim[15];//struct yapısı değişkenleri
    int vize;//struct yapısı değişkenleri
    int final;//struct yapısı değişkenleri
    char bolum[15];//struct yapısı değişkenleri
}kisi[10],yedek[10],silinecek[10];//struct yapısına kişi ve yedek isimleri veriliyor

void kayit_ekle();//fonksiyonlar tanımlanıyor
void ara_bul();//fonksiyonlar tanımlanıyor
void listele();//fonksiyonlar tanımlanıyor
void bul_degistir();//fonksiyonlar tanımlanıyor
void kayit_sil();//fonksiyonlar tanımlanıyor
char menu();//fonksiyonlar tanımlanıyor
int sayac;//global bir sayac eklendi kişi syısını bulmak için

main()
{
//ana fonksiyon
    setlocale(LC_ALL,"Turkish"); // Türkçe Dil Desteği Ekleniyor
    char secim;//secim adında bir değişen tanımlanıyor
    do{
        secim=menu();//menuden gelen tuş algılanıyor
        switch(secim)//menuden gelen veriyi karşılaştırmaya sokuyor
        {
           case '1':kayit_ekle();break;//menuden gelen veri 1 ise kayıt ekleme fonksiyonu çağırılıyor
           case '2':listele();break;//menuden gelen veri 2 ise listeleme fonksiyonu çağırılıyor
           case '3':ara_bul();break;//menuden gelen veri 3 ise arabul fonksiyonu çağırılıyor
           case '4':bul_degistir();break;//menuden gelen veri 4 ise buldegistir fonksiyonu çağırılıyor
           case '5':kayit_sil();break;//menuden gelen veri 5 ise kayıt silfonksiyonu çağırılıyor

        }
    }while(secim<='5' && secim>='1');//karşılaştırma menuden gelen verilerin 1 ile 5 arasında ise

    }//ana fonksiyon sonu
char menu(){//menu fonksiyonu
    char tus;//tus adında char tipinde değişken tanımlanıyor
    printf("1-kayit ekle\n2-listele\n3-arabul\n4-buldegistir\n5-sil\n");//manu seçenekleri ekrana yazdırılıyor
    tus=getch();//kullanıcının girdiği tuş algılanıyor
    return tus;//menu fonksiyonunun çağırıldığı yere kullanıcının girdiği tuş döndürülüyor
}//menu fonksiyonu sonu
void kayit_ekle(){//kayıt ekleme fonksiyonu
    char tus2;//tus2 adında char tipinde değişken tanımlanıyor
    FILE *dosya;//file tipinde bir dosya adında bir pointer tanımlanıyor
    dosya=fopen("a.txt","w");//dosya önceki verilerin üstüne yazmak için açılıyor

    do{
        printf("%d.kişi adi giriniz",sayac+1);//kullanıcıdan isim isteniyor
        scanf("%s",kisi[sayac].isim);//kullanıcını girdiği veri struct yapısına aktarılıyor
        fflush(stdin);//veri değişkene aktarıldıktan sonra gerekli alan boşaltılıyor
        printf("%d.kişinin bölüm giriniz",sayac+1);//kullanıcıdan bölüm isteniyor
        scanf("%s",kisi[sayac].bolum);//kullanıcını girdiği veri struct yapısına aktarılıyor
        fflush(stdin);//veri değişkene aktarıldıktan sonra gerekli alan boşaltılıyor
        printf("%d.kişi vizesi giriniz",sayac+1);//kullanıcıdan vize isteniyor
        scanf("%d",&kisi[sayac].vize);//kullanıcını girdiği veri struct yapısına aktarılıyor
        fflush(stdin);//veri değişkene aktarıldıktan sonra gerekli alan boşaltılıyor
        printf("%d.kişi finali giriniz",sayac+1);//kullanıcıdan final isteniyor
        scanf("%d",&kisi[sayac].final);//kullanıcını girdiği veri struct yapısına aktarılıyor
        fflush(stdin);//veri değişkene aktarıldıktan sonra gerekli alan boşaltılıyor
        printf("yeni kayit için e basin ve menüye dönmek için herhangi bir tusa basin");//veriler girildikten sonra kullanıcıdan yeni veri girmek istermisiniz diye soruluyor
        tus2=getch();//kullanıcının girdiği karakter tus2 değişkenine aktarılıyor

        fprintf(dosya,"%s\t%s\t%d\t%d\n",kisi[sayac].isim,kisi[sayac].bolum,kisi[sayac].vize,kisi[sayac].final);//veriler dosyaya yazılıyor
        sayac++;//whileiçin sayac 1 arttırılıyor
    }while(tus2=='e' || tus2=='E');//eğer kullanıcı devam etmek isterse tekrar dön
    fclose(dosya);//dosya kapatılıyor
}//kayıt ekleme fonksiyonusonu
void listele(){//listele fonksiyonu
    FILE *dosya;//file tipinde bir dosya adında bir pointer tanımlanıyor
    dosya=fopen("a.txt","r");//dosya önceki verileri okumak için açılıyor
    int a=0,i;//değişkenler tanımlanıyor
    while(!feof(dosya)){//dosya sonuna kadar dön
        fscanf(dosya,"%s%s%d%d",yedek[a].isim,yedek[a].bolum,&yedek[a].vize,&yedek[a].final);//veriler dosyadan okunuyor
        a++;      //while için a arttırılıyor
    }//dosya sonuna kadar dön sonu
    for(i=0;i<(a-1);i++)//yedek yapısının sonuna kadar dönülüyor
        printf("%d\t%s\t%s\t%d\t%d\n",i+1,yedek[i].isim,yedek[i].bolum,yedek[i].vize,yedek[i].final);//okunan veriler ekrana yazılıyor
    fclose(dosya);//dosya kapatılıyor
}//listele fonksiyonu sonu
void ara_bul(){//arabul fonksiyonu
    char kelime[150];//kelima adında char tipinde bir değişken tanımlanıyor
    printf("Aranacak Kelimeyi girin");//kullanıcıdan aranacak veri isteniyor
    scanf("%s",&kelime);//girilen veri kelime değişkenine aktarılıyor
    FILE *dosya;//file tipinde bir dosya adında bir pointer tanımlanıyor
    dosya=fopen("a.txt","r");//dosya önceki verileri okumak için açılıyor
    int a=0,i;//değişkenler tanımlanıyor döngüler için
    while(!feof(dosya)){//dosya sonuna kadar dön
        fscanf(dosya,"%s%s%d%d",yedek[a].isim,yedek[a].bolum,&yedek[a].vize,&yedek[a].final);//dosyadan veriler okunup yedek yapısına aktarılıyor
        a++;     //while için a 1 arttırılıyor
    }//dosya sonuna kadar dön sonu
    for(i=0;i<(a-1);i++){//yedek yapısının sonuna kadar dönülüyor
        if(strcmp(kelime,yedek[i].isim)==0)
        {//eğer aranan kelime yedek yapısının ismine eşit ise aşağıdakileri yap
            printf("%d\t%s\t%s\t%d\t%d\n",i+1,yedek[i].isim,yedek[i].bolum,yedek[i].vize,yedek[i].final);//veriler ekrana yadırılıyor
        }//eğer aranan kelime yedek yapısının ismine eşit ise aşağıdakileri yap sonu
    }//yedek yapısının sonuna kadar dönülüyorsonu
    fclose(dosya);//dosya kapatılıyor
}//arabul fonksiyonu sonu
void bul_degistir(){//bul değişrtir fonksiyonu
    char kelime[150];
    printf("Degisecek Kisiyi girin");//degisecek kisi kulanıcıdan alınıyor
    scanf("%s",&kelime);//kullanıcının girdiği veri kelime değişkenine atanıyor
    FILE *dosya;//file tipinde bir dosya pointerı tanımlanıyor
    dosya=fopen("a.txt","r");//a.txt dosyası sadece okunmak için yazılıyor
    int a=0,i;//kullanılacak değişkenler tanımlanıyor
    while(!feof(dosya)){//dosya sonuna kadar dönülüyor başlangıç
        fscanf(dosya,"%s%s%d%d",yedek[a].isim,yedek[a].bolum,&yedek[a].vize,&yedek[a].final);//dosyadan alınan veriler yedek yapısına aktarılıyor
        a++;     //yedek değişkenini her seferinde farklı gelmesi için a her seferinde arttırılıyor
    }//dosya sonuna kadar dönülüyor sonu
    for(i=0;i<(a-1);i++){//yedek yapısına alınan verilerin işleme sokulması
        if(strcmp(kelime,yedek[i].isim)==0)//eğer değişecek kelime yedek yapısının ismine eşit ise aşağıdakileri yap
        {
            printf("%dninci kişinin adını giriniz",i+1);//kullanıcıdan yeni isim isteniyor
            scanf("%s",yedek[i].isim);//isim yedek yapısının değişecek kısmına atanıyor
            fflush(stdin);//değişkene aktarıldıktan sonra o kısım boşaltılıyor
            printf("%dninci kişinin bölümünü giriniz",i+1);//kullanıcıdan yeni bölüm isteniyor
            scanf("%s",yedek[i].bolum);//bölüm yedek yapısının değişecek kısmına atanıyor
            fflush(stdin);//değişkene aktarıldıktan sonra o kısım boşaltılıyor
            printf("%dninci kişinin vizesini giriniz",i+1);//kullanıcıdan yeni vize isteniyor
            scanf("%d",&yedek[i].vize); //vize yedek yapısının değişecek kısmına atanıyor
            fflush(stdin);//değişkene aktarıldıktan sonra o kısım boşaltılıyor
            printf("%dninci kişinin Finalini giriniz",i+1);//kullanıcıdan yeni final isteniyor
            scanf("%d",&yedek[i].final);//final yedek yapısının değişecek kısmına atanıyor
            fflush(stdin);//değişkene aktarıldıktan sonra o kısım boşaltılıyor

        }
    }//yedek yapısına alınan verilerin işleme sokulması sonu
    fclose(dosya);//dosya sadece okunmak için açılan dosya kapatılıyor

//şimdi bu kısımda değiştirilen yedek yapısını a.txtnin üzerine yazarak bul değiştir örneğimizi bitireceğiz
    FILE *dosya2;//file tipinde bir dosya2 pointerı tanımlanıyor
    dosya2=fopen("a.txt","w");//a.txt dosyası önceki veriler silinecek şekilde açılıyor
    int i2;//integer tipinde for döngüsü için i2 değişkeni oluşturuluyor
    for(i2=0;i2<(a-1);i2++){//yine yedek değişkeninin sonuna kadar dönülüyor
        fprintf(dosya2,"%s\t%s\t%d\t%d\n",yedek[i2].isim,yedek[i2].bolum,yedek[i2].vize,yedek[i2].final);
    }//yedek değişkeninin sonuna kadar dönme sonu
    fclose(dosya2);//açılan dosya kapatılıyor
}//bul değiştir fonksiyonu sonu


void kayit_sil(){//kayit sil fonksiyonu
    char kelime[150];
    printf("Silinecek Kişiyi girin");//silinecek kişi kulanıcıdan alınıyor
    scanf("%s",&kelime);//kullanıcının girdiği veri kelime değişkenine atanıyor
    FILE *dosya;//file tipinde bir dosya pointerı tanımlanıyor
    dosya=fopen("a.txt","r");//a.txt dosyası sadece okunmak için yazılıyor
    int a=0,i=0,kacinci;//kullanılacak değişkenler tanımlanıyor
    while(!feof(dosya)){//dosya sonuna kadar dönülüyor başlangıç
        fscanf(dosya,"%s%s%d%d",yedek[a].isim,yedek[a].bolum,&yedek[a].vize,&yedek[a].final);//dosyadan alınan veriler yedek yapısına aktarılıyor
        a++;     //yedek değişkenini her seferinde farklı gelmesi için a her seferinde arttırılıyor
    }//dosya sonuna kadar dönülüyor sonu

    for(i=0;i<(a-1);i++){//yedek yapısına alınan verilerin işleme sokulması
        if(strcmp(kelime,yedek[i].isim)==0)//eğer silinmesi gereken kişi adı yedek yapısının ismine eşit ise aşağıdakileri yap
        {       
            kacinci
=i;//aranan verinin kaçıncı olduğu bulunuyor
        }//eğer silinmesi gereken kişi adı yedek yapısının ismine eşit ise aşağıdakileri yapsonu

    }//yedek yapısına alınan verilerin işleme sokulması sonu
    for(i=0;i<(kacinci);i++){//verinin bulunduğu yere kadar dön
        strcpy(silinecek[i].isim,yedek[i].isim);
        //kacıncıya kadar olan kısımlar silinen yapısına aktarılıyor
        strcpy(silinecek[i].bolum,yedek[i].bolum);
        //kacıncıya kadar olan kısımlar silinen yapısına aktarılıyor
        silinecek[i].vize=yedek[i].vize;
        //kacıncıya kadar olan kısımlar silinen yapısına aktarılıyor
        silinecek[i].final=yedek[i].final;
        //kacıncıya kadar olan kısımlar silinen yapısına aktarılıyor
    }
    //verinin bulunduğu yere kadar dön sonu
    for(i=(kacinci+1);i<=(a-1);i++){//silinen veriden sonrakini silinecek kısmına ata
        strcpy(silinecek[i-1].isim,yedek[i].isim);//kacıncıdan sonra olan kısımlar silinen yapısına aktarılıyor
        strcpy(silinecek[i-1].bolum,yedek[i].bolum);//kacıncıdan sonra  olan kısımlar silinen yapısına aktarılıyor
        silinecek[i-1].vize=yedek[i].vize;//kacıncıdan sonra  olan kısımlar silinen yapısına aktarılıyor
        silinecek[i-1].final=yedek[i].final;//kacıncıdan sonra  olan kısımlar silinen yapısına aktarılıyor
    }//silinen veriden sonrakini silinecek kısmına ata sonu


    fclose(dosya);//dosya sadece okunmak için açılan dosya kapatılıyor

    //şimdi bu kısımda değiştirilen yedek yapısını a.txtnin üzerine yazarak bul değiştir örneğimizi bitireceğiz
    FILE *dosya2;//file tipinde bir dosya2 pointerı tanımlanıyor
    dosya2=fopen("a.txt","w");//a.txt dosyası önceki veriler silinecek şekilde açılıyor
    int i2;//integer tipinde for döngüsü için i2 değişkeni oluşturuluyor
    for(i2=0;i2<(a-1);i2++){//yine silinecek değişkeninin sonuna kadar dönülüyor
        fprintf(dosya2,"%s\t%s\t%d\t%d\n",silinecek[i2].isim,silinecek[i2].bolum,silinecek[i2].vize,silinecek[i2].final);
    }//silinecek değişkeninin sonuna kadar dönme sonu
    fclose(dosya2);//açılan dosya kapatılıyor

}//kayitsil fonksiyonu sonu 
Cevapla
RE: C Programlama Dili Dosya ve Struct Yapısı ile Öğrenci Kayıt Sistemi
Teşekkrüelr
Cevapla
RE: C Programlama Dili Dosya ve Struct Yapısı ile Öğrenci Kayıt Sistemi
Teşekkürler
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Konuyu Okuyanlar: 1 Ziyaretçi
Task