Ekle ara sil guncelle listele foksiyonlarını içerir
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct bilgi{
int numara;
char durum;
char ad[20];
char soyad[20];
char adres[30];
char tel[12];
}kayit;
FILE *dosya;
void ekle(){
if((dosya=fopen("kaynak.txt","r+"))==NULL)dosya=fopen("kaynak.txt","w");
printf("numara girin:");scanf("%d",&kayit.numara);
if(kayit.numara>0){
kayit.durum='-';
fseek(dosya,(kayit.numara-1)*sizeof(kayit),SEEK_SET);
fread(&kayit,sizeof(kayit),1,dosya);
if(kayit.durum!='+'){
printf("adi girin:");scanf("%s",&kayit.ad);
printf("soyad girin:");scanf("%s",&kayit.soyad);
printf("adres girin:");scanf("%s",&kayit.adres);
printf("telefon girin:");scanf("%s",&kayit.tel);
kayit.durum='+';
fseek(dosya,(kayit.numara-1)*sizeof(kayit),SEEK_SET);
fwrite(&kayit,sizeof(kayit),1,dosya);
fflush(dosya);
}
}
fclose(dosya);
}
void ara(){
int aranan;
printf("aranan numara girin:"); scanf("%d",&aranan);
dosya=fopen("kaynak.txt","r");
fseek(dosya,(aranan-1)*sizeof(kayit),SEEK_SET);
fread(&kayit,sizeof(kayit),1,dosya);
if(kayit.durum=='+' && kayit.numara==aranan)
printf("\nnumara:%d\nad:%s\nsoyad:%s\nadres:%s\ntelefon:%s\n",kayit.numara,kayit.ad,kayit.soyad,kayit.adres,kayit.tel);
else
printf("aranılan kayit bulunamadi:\n");
fclose(dosya);
}
void sil(){
int no,silindi=0;
printf("silinecek kayit numarasi girin:"); scanf("%d",&no);
dosya=fopen("kaynak.txt","r+");
fseek(dosya,(no-1)*sizeof(kayit),SEEK_SET);
fread(&kayit,sizeof(kayit),1,dosya);
if(kayit.durum=='+' && kayit.numara==no){
kayit.durum='-';
fseek(dosya,(no-1)*sizeof(kayit),SEEK_SET);
fwrite(&kayit,sizeof(kayit),1,dosya);
silindi=1;
}
if(silindi==0) printf("silinecek kayit bulunamadi\n");
else printf("kayit silindi\n");
fclose(dosya);
}
void liste(){
dosya=fopen("kaynak.txt","r");
while(!(feof(dosya))){
fread(&kayit,sizeof(kayit),1,dosya);
if(kayit.numara!=0)
printf("\nnumara:%d\nad:%s\nsoyad:%s\nadres:%s\ntel:%s\n",kayit.numara,kayit.ad,kayit.soyad,kayit.adres,kayit.tel);
}
fclose(dosya);
}
void duzelt(){
int no;
printf("guncellenek numara girin:"); scanf("%d",&no);
dosya=fopen("kaynak.txt","r+");
fseek(dosya,(no-1)*sizeof(kayit),SEEK_SET);
fread(&kayit,sizeof(kayit),1,dosya);
if(kayit.durum=='+' && kayit.numara==no){
printf("yeni adi girin:"); scanf("%s",&kayit.ad);
printf("yeni soyad girin:"); scanf("%s",&kayit.soyad);
printf("yani adres girin:"); scanf("%s",&kayit.adres);
printf("yani tel girin:"); scanf("%s",&kayit.tel);
fseek(dosya,(kayit.numara-1)*sizeof(kayit),SEEK_SET);
fwrite(&kayit,sizeof(kayit),1,dosya);
}
else printf("guncellenecek kayit yoktur\n");
fclose(dosya);
}
void menu(){
printf("\n\n");
printf("\t\t1- Kayit Ekle\n");
printf("\t\t2- Kayit Ara\n");
printf("\t\t3- Kayit Listele\n");
printf("\t\t4- Kayit Sil\n");
printf("\t\t5- Kayit Duzelt\n");
printf("\t\t6- Cikis\n\n");
printf("\tseciminiz -->\t(1/2/3/4/5/6)\n\n");
}
int main(){
char secim ;
do{
menu();
secim=getch();
system("cls");
switch(secim){
case '1': ekle(); break;
case '2': ara(); break;
case '3': liste(); break;
case '4': sil(); break;
case '5': duzelt();break;
case '6': exit(1);
default: printf("Yanlis secim yaptiniz:\n"); break;
}}while(secim!='6');
getch();
}