C ile öğrenci defteri

Bu kodda dosyalama yöntemi ile bir öğrenci defteri oluşturduk. Öğrenci, ders ve not bilgisi ekliye biliyoruz, listeleme ve silme işlemlerini yapıyoruz.

Kod biraz uzun umarım anlayabilirsiniz..

Arayüz


Source Cod

#include <stdio.h>
#include <stdlib.h>
struct ogrenci{
char ad[10];
char soyad[10];
char no[10];
};
struct ders{
char ders[10];
char derskodu[10];
};
struct Not{
char ogrno[5];
char dersno[10];
char notekle[5];
};
void menu();
int ogrenciekleme();
int notekleme();
int dersekleme();
int listeleme();
int ogrencisil();
int derssil();
void menu()
{
    printf("1.Ogrenci ekle\n");
    printf("2.Ders ekle\n");
    printf("3.Not ekle\n");
    printf("4.Listeleme\n");
    printf("5.Ders silme\n");
    printf("6.Ogrenci silme\n");
    printf("7.Cikis");
}
int main()
{
char secim='0';
int numara=-1;
menu();
do{
printf("\nSeciminiz:");
secim=putch(getch());
switch(secim)
{
    case '1':
    if(ogrenciekleme()==0)
    {
     printf("\nOgrenci basariyla eklendi.");
    }else {
    printf("\n Hata ekelenemedi!");
    } break;
    case '2':
    if(dersekleme()==0)
    {
        printf("\nBasariyla eklendi!");
    }else{
    printf("Ekelenemedi!");}
    break;
    case '3':
    if(notekleme()==0)
      printf("Basariyla eklendi\n");
      else
        {
      printf("Eklenemedi\n");}
      break;
    case '4':
    if(listeleme()==0)
        printf("Basariyla listelendi!");
    else{
    printf("listelenemedi!");}
    break;
    case '5':
        if(derssil()==0){
            printf("Basariyla silindi!"); }
        else{
            printf("Silinemedi!");
        }
    break;
    case '6':
    if(ogrencisil()==0){
        printf("Basariyla silindi!");
    }
            else{
            printf("Silinemedi!");
        }
    break;
    case '7':
       printf("Programi kullandiginiz icin tesekkurler!");
        exit(1);
    default:
printf("\nHatali secim!!");
}
}while(secim!=7);
return 0;
}
int ogrenciekleme()
{
    struct ogrenci kayit;
    FILE *pt;
    int i=0,a=1;
    char gecici[10],ad[10],soyad[10];
if((pt=fopen("ogrenci.txt","a+"))==NULL)
    {
return -1;
}
  while(!feof(pt))
  {
    i++;
    fscanf(pt,"%s%s%s",gecici,ad,soyad);
  }
printf("\n%d.Ogrencinin Numarasini giriniz(Max. 9karakterli):",i);
scanf("%s",kayit.no);
if(strcmp(gecici,kayit.no)==0)
{
    printf("Bu numarada ogrenci bulunmaktadir!!!");
    return (-1);
}
fprintf(pt,"\n%s\t",kayit.no);
printf("\n%d.Ogrencinin Isim giriniz(Max. 9karakterli):",i);
scanf("%s",kayit.ad);
fprintf(pt,"%s\t",kayit.ad);
printf("\n%d.Ogrencinin Soyisim giriniz(Max. 9karakterli):",i);
scanf("%s",kayit.soyad);
fprintf(pt,"%s",kayit.soyad);
fclose(pt);
a++;
return 0;
}
int dersekleme()
{
    struct ders yeni;
    FILE *pt;
    char gecici[10],ders[10];
    int i=0;
  if((pt=fopen("ders.txt","a+"))==NULL)
 {
     printf("Dosya acilamadi");
     return(-1);
 }
  while(!feof(pt))
  {
    i++;
    fscanf(pt,"%s%s",gecici,ders);
  }
 printf("\n%d.Dersin kodunu giriniz(Max. 9karakterli):",i);
 scanf("%s",yeni.derskodu);
 if(strcmp(gecici,yeni.derskodu)==0)
 {
     printf("Bu ders bulunmaktadir!!");
     return -1;
 }
 fprintf(pt,"\n%s\t",yeni.derskodu);
 printf("\n%d.Dersin adini giriniz(Max. 9karakterli):",i);
 scanf("%s",yeni.ders);
 fprintf(pt,"%s",yeni.ders);
 fclose(pt);
 return 0;
}
int notekleme()
{
    FILE *pt;
    FILE *dp;
    FILE *bp;
    int no=1,i=0,a=0;
    struct ogrenci aktif;
    struct ders canli;
    struct Not yaz;
    if((dp=fopen("ogrenci.txt","r"))==NULL)
       {
           puts("Acilamadi!!");
           return (-1);
       }
     if((pt=fopen("ders.txt","r"))==NULL)
       {
           puts("Acilamadi!!");
           return (-1);
       }
   printf("\nNumara\tAd\tSoyad\t\t\n");
     while(!feof(dp))
    {
        fscanf(dp,"%s%s%s",aktif.no,aktif.ad,aktif.soyad);
        printf("%d.%s\t",no,aktif.no);
        printf("%s\t\t",aktif.ad);
        printf("%s\t\t\n",aktif.soyad);
        no++;
    }
    fclose(dp);
    no=1;
    printf("\nKac nolu ogrenciye not girilicek:");
    scanf("%s",&yaz.ogrno);
    printf("\nDerskodu\t\tDers\n");
    while(!feof(pt))
    {
        fscanf(pt,"%s%s",canli.derskodu,canli.ders);
        printf("%d.\t%s\t\t",no,canli.derskodu);
        printf("%s\t\t\n",canli.ders);
        no++;
    }
    fclose(pt);
    puts("Not girilecek olan dersin kodunu giriniz:");
    scanf("%s",&yaz.dersno);
  printf("Ders notunu giriniz:");
   scanf("%s",&yaz.notekle);
   if((bp=fopen("not.txt","a+"))==NULL)
       {
           puts("Acilamadi!!");
           return (-1);
       }
   fprintf(bp,"\n%s\t%s\t%s",yaz.ogrno,yaz.dersno,yaz.notekle);
   fclose(bp);
  return 0;
 }
int derssil()
{  FILE *pt,*dt,*dp;
    struct ders canli;
    char aranacak[15];
    dp=fopen("ders.txt","r");
    puts("\nDerskodu\t\tDers\n");
    while(!feof(dp))
    {
        fscanf(dp,"%s%s",canli.derskodu,canli.ders);
        printf("%s\t",canli.derskodu);
        printf("%s\n",canli.ders);
    }
        fclose(dp);
        puts("Silinecek dersin kodunu giriniz:");
        scanf("%s",&aranacak);
    pt=fopen("ders.txt","r");
    dt=fopen("ders1.txt","w");
    while(!feof(pt))
    {
         fscanf(pt,"%s%s",canli.derskodu,canli.ders);
         if(strcmp(canli.derskodu,aranacak)==0)
         {
           fscanf(pt,"%s%s",canli.derskodu,canli.ders);
         }
         fprintf(dt,"\n%s\t%s",canli.derskodu,canli.ders);
    }
    fclose(pt);
    fclose(dt);
    remove("ders.txt");
    rename("ders1.txt","ders.txt");
    return 0;
}
int ogrencisil()
{
    FILE *pt,*dp,*dt,*Not2,*Not1;
    struct ogrenci aktif;
    struct Not oku;
    struct ogrenci canli;
    char aranacak[15];
    dp=fopen("ogrenci.txt","r");
    printf("\nNumara\t\tAd\t\tSoyad\t\t\n");
     while(!feof(dp))
    {
        fscanf(dp,"%s%s%s",canli.no,canli.ad,canli.soyad);
        printf("%s\t\t%s\t\t%s\t\t\n",canli.no,canli.ad,canli.soyad);
    }
    fclose(dp);
    puts("Silinecek ogrencinin sirasini giriniz");
    scanf("%s",&aranacak);
    pt=fopen("ogrenci.txt","r");
    dt=fopen("ogrenci1.txt","w");
    while(!feof(pt))
    {
        fscanf(pt,"%s%s%s",aktif.no,aktif.ad,aktif.soyad);
        if(strcmp(aktif.no,aranacak)==0)
        {
            fscanf(pt,"%s%s%s",aktif.no,aktif.ad,aktif.soyad);
        }
        fprintf(dt,"\n%s\t%s\t%s",aktif.no,aktif.ad,aktif.soyad);
    }
    Not1=fopen("not.txt","r");
    Not2=fopen("not1.txt","w");
    while(!feof(pt))
    {
        fscanf(Not1,"%s%s%s",oku.ogrno,oku.dersno,oku.notekle);
        if(strstr(oku.ogrno,aranacak))
        {
            fscanf(Not1,"%s%s%s",oku.ogrno,oku.dersno,oku.notekle);
        }
        if(!strstr(oku.ogrno,aranacak))
        {
            fprintf(Not2,"\n%s\t%s\t%s",oku.ogrno,oku.dersno,oku.notekle);
        }
    }
    fclose(Not1);
    fclose(Not2);
    fclose(dt);
    fclose(pt);
    remove("ogrenci.txt"); //dosya siliniyor...
    rename("ogrenci1.txt","ogrenci.txt"); //dosyanin adi degistiriliyor...
    remove("not.txt");
    rename("not1.txt","not.txt");
    return 0;
}
int listeleme()
{
    FILE *ders,*puan,*ogr;
    struct ogrenci canli;
    struct ders kanli;
    struct Not aktif;
    int i=0;
    if((ogr=fopen("ogrenci.txt","r"))==NULL)
    {
        return (-1);
    }
    if((ders=fopen("ders.txt","r"))==NULL)
    {
        return (-1);
    }
    if((puan=fopen("not.txt","r"))==NULL)
    {
        return (-1);
    }
  puts("\nOgr.No\tAd\t\Soyad");
  while(!feof(ogr))
  {
      fscanf(ogr,"%s%s%s",&canli.no,&canli.ad,&canli.soyad);
      i++;
      printf("%d.%s\t%s\t%s\n",i,canli.no,canli.ad,canli.soyad);
  }
  fclose(ogr);
  i=0;
  puts("Ders No\tDers");
  while(!feof(ders))
  {
      fscanf(ders,"%s%s",kanli.derskodu,kanli.ders);
      i++;
      printf("%d.%s\t%s\n",i,kanli.derskodu,kanli.ders);
  }
  fclose(ders);
  i=0;
  puts("Ogr No\tDers kodu\tPuan");
  while(!feof(puan))
  {
      fscanf(puan,"%s%s%s",aktif.ogrno,aktif.dersno,aktif.notekle);
      i++;
      printf("%d.%s\t%s\t%s\n",i,aktif.ogrno,aktif.dersno,aktif.notekle);
  }
  fclose(puan);
 return 0;
}





Furkan Kaan IŞIK

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.

0 yorum: