Reklam gösterimini engelleyici yazılım kullandığınızı görüyoruz.
Sitemizin ayakta kalıp sizlere hizmet edebilmek için en büyük gelir kaynağı sayfamızda gösterilen reklamlardır.
Reklam gösterimde bizim sayfamıza ayrıcalık tanıyarak ayakta kalmamıza destek olmak ister misiniz ?

C Programlama Dosya Kullanarak Öğrenci Kayıt Sistemi

Konu

#1
Son Düzenleme: 29-08-2019, Saat: 18:47, Düzenleyen: Kirito.
İçinde Bulunanlar : Kayıt Ekleme - Kayıt Silme - Kayıt Bulma - Kayıt Düzeltme - Kayıt Silme

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
#2
Eywallah


REHAREIZ Since 2 0 1 4 - 2 0 1 8
Eski Bir Efsanenin yarim kalmis hikayesi
Ben Şeytan Değilim Ama Şeytanın Benden Ögreneceği Çok Şey Var !
Cevapla


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

Yorum yapmak için üye olmanız gerekiyor

ya da

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
C Programlama Bir Dosyada Bulunan Harf'i Değiştirme M.A - Burkay 3 1,004 16-09-2019, Saat: 16:29
Son Yorum: feza
C Programlama Dili Basit Banka Sistemi M.A - Burkay 4 1,138 02-08-2018, Saat: 11:41
Son Yorum: ` ripeNess
C Programlama Bir Dosyada Bir Harf'in Sayısını Bulma Örneği M.A - Burkay 2 701 02-08-2018, Saat: 11:37
Son Yorum: Emre Özdemir
C Programlama Bir Dosya'nın İçeriğini Başka Bir Dosyaya Aktarma M.A - Burkay 2 674 02-08-2018, Saat: 11:37
Son Yorum: Emre Özdemir
C Programlama Bir Dosya'da Bulunan Harfler Sayıları Ve Çoktan Aza Sıralanması M.A - Burkay 2 735 02-08-2018, Saat: 11:37
Son Yorum: Emre Özdemir

Task