#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct int ID; char isim[15]; char soyisim[15]; Ad; typedef struct int ID; char teltip[3]; char tel[12]; Tel; typedef struct int ID; char adrestip[3]; char adres[50]; Adres; void yenikayit(); void listele(); void main() short secim; do printf ( "\n(1)yeni kayit\n(2)sorgulama \n(-1)seciminiz: "); scanf ( "%d", &secim); switch(secim) case 1 :yenikayit(); case 2 :listele(); while(secim!=-1); // main () fonksiyonu sonu void yenikayit() FILE *isrtad, *isrttel, *isrtadres, *sayi,*isrtgiris; Ad kisi; Tel telefon; Adres adresi; short evethayir=1;
short yenikayit=1; int ksayisi; char ilkkayitmi[4]; //programin ilk kez calistirildiginin kontrolu yapilir //yani ilk kayit girisi. isrtgiris = fopen("giris.txt","r"); fscanf(isrtgiris,"%s",ilkkayitmi); fclose(isrtgiris); //dosyalardaki kayit sayisi ayarlanir veya //daha once kayit yapilmis ise kayit sayisi dosyadan alinir if (!strcmpi(ilkkayitmi,"yeni")) sayi = fopen("kayitsayisi.txt","w"); ksayisi=0; //fseek (sayi, 0, SEEK_SET); //fwrite(&ksayisi, sizeof(int), 1, sayi); fprintf(sayi,"%d",ksayisi); fclose(sayi); sayi = fopen("kayitsayisi.txt","r"); //fseek (sayi, 0, SEEK_SET); //fread (&ksayisi, sizeof(int), 1, sayi); fscanf(sayi,"%d",&ksayisi); fclose(sayi); //kayit sayisina bagli olarak dosyalarin açilis formati ayarlanir if (ksayisi==0) isrtad = fopen("isimler.bin","w"); isrttel = fopen("telefon.bin","w"); isrtadres = fopen("adres.bin","w"); sayi = fopen("kayitsayisi.txt","w"); isrtad = fopen("isimler.bin","a+"); isrttel = fopen("telefon.bin","a+"); isrtadres = fopen("adres.bin","a+"); sayi = fopen("kayitsayisi.txt","w"); //kayit girisi baslar while(yenikayit==1) ksayisi++;
kisi.id = ksayisi; printf ( "\nisim: "); scanf ( "%s", kisi.isim); printf ( "soyisim: "); scanf ( "%s", kisi.soyisim); fwrite(&kisi, sizeof(ad), 1, isrtad); //telefon bilgileri alinir telefon.id = ksayisi; printf ( "%s'in ev telefonu (mevcut degilse.yok yazin):", kisi.isim); scanf ( "%s", telefon.tel); strcpy(telefon.teltip, "ev"); fwrite(&telefon,sizeof(tel), 1, isrttel); printf ( "%s\'in is telefonu (mevcut degilse.yok yazin):", kisi.isim); scanf ( "%s", telefon.tel); strcpy(telefon.teltip, "is"); fwrite(&telefon, sizeof(tel), 1, isrttel); printf("%s\'in cep telefonu (mevcut degilse.yok yazin):", kisi.isim); scanf("%s", telefon.tel); strcpy(telefon.teltip,"cep"); fwrite(&telefon, sizeof(tel), 1, isrttel); //adress bilgiler alinir adresi.id = ksayisi; printf ( "%s \'in ev adresi(mevcut degilse_yok _yazin):",kisi.isim); scanf ( "%s", adresi.adres); strcpy(adresi.adrestip, "ev"); fwrite(&adresi, sizeof(adres), 1, isrtadres); printf ( "%s\'in is adresi(mevcut degilse_yok _yazin):",kisi.isim); scanf ( "%s", adresi.adres); strcpy(adresi.adrestip, "is"); fwrite(&adresi, sizeof(adres), 1, isrtadres); printf ( "\nyeni kayit? (0/1): "); scanf ( "%d", ¥ikayit); //while sonu //kayit sayisi kayitsayisi.txt dosyasina yazilir fprintf(sayi,"%d",ksayisi);
fclose(isrtad); fclose(isrttel); fclose(isrtadres); fclose(sayi); isrtgiris = fopen("giris.txt","w"); fprintf(isrtgiris,"%s","eski"); fclose(isrtgiris); //yenikayit()fonksiyonu sonu void listele() FILE *isrtad, *isrttel, *isrtadres,*isrtsayi; Ad kisi, kayit; Tel telefon; Adres adresi; short baskalistele=1, evethayir = 1, bulundu=0; int ksayisi; int sayac = 0, sayact, sayaca; short secim; //dosyadaki kayit sayisi ogrenilir isrtsayi = fopen("kayitsayisi.txt","r"); fscanf(isrtsayi,"%d",&ksayisi); fclose(isrtsayi); isrtad = fopen("isimler.bin","r"); isrttel = fopen("telefon.bin","r"); isrtadres = fopen("adres.bin","r"); isrtsayi = fopen("kayitsayisi.txt","r"); if(isrtad==null isrttel==null isrtadres==null isrtsayi==null) printf ( "\n bir veya daha fazla hata olustu!"); exit(1); while(baskalistele==1) printf( "\n(1) tumkayitlar goster\n(2) kisi telefon bilgileri\n(3) kisinin adres bilgileri\n"); printf( "(4) kisinin adres ve telefon bilgileri\nseciminizi girin: "); scanf( "%d", &secim); switch(secim)
case 1: sayac =0; while(sayac<ksayisi) fseek(isrtad, sayac * sizeof(ad), SEEK_SET); fread(&kayit,sizeof(ad), 1, isrtad); printf ( "\n%s %s", kayit.isim, kayit.soyisim); //telefon ve adres dosyalarindan aktif kayit ile ayni id //ye sahip kayitlari ekrana yazdir sayact = 0; printf ( "\ntelefon bilgileri..."); while(sayact<ksayisi*3) fseek(isrttel, sayact * sizeof(tel),seek_set); fread(&telefon,sizeof(tel),1,isrttel); //telefon bilgisi, isimler.bin dosyasindan siradaki kisiye ait olup olmadigini test et if(kayit.id==telefon.id) printf ( "\n%5s: %-15s", telefon.teltip, telefon.tel); sayact++; sayaca=0; printf ( "\nadres bilgileri..."); while(sayaca<ksayisi*2) fseek(isrtadres, sayaca * sizeof(adres),seek_set); fread(&adresi,sizeof(adres), 1, isrtadres); dosyasindan devam kisiye ait olup olmadigini test et if(kayit.id==adresi.id) printf ( "\n%5s: %- 15s",adresi.adresTip, adresi.adres); sayaca++; sayac++; // while(sayac<ksayisi) case 2 : evethayir = 1; while(evethayir==1) printf ( "\ntelefon bilgileri alinacak kisinin, "); printf ( "\nadi ve soyadi: "); scanf ( "%s%s", kisi.isim, kisi.soyisim);
SEEK_SET); //kayit aranir bulundu =0; sayac=0; while(sayac<ksayisi) fseek(isrtad, sayac * sizeof(ad), fread(&kayit, sizeof(ad),1, isrtad); //okunan kaydin aranip kayit oldugunu test edilir if((strcmpi(kisi.isim, kayit.isim)==0) && (strcmpi(kisi.soyisim, kayit.soyisim)==0)) bulundu = 1; sayac++; //while(sayac<ksayisi) sonu kisi.isim, kisi.soyisim); sizeof(tel),seek_set); if( bulundu == 0) printf ( "\n%s %s kayitli degil\n", sayact = 0; printf ( "\ntelefon bilgileri...\n"); while(sayact<ksayisi*3) fseek(isrttel, sayact * fread(&telefon,sizeof(tel),1,isrttel); dosyasindan //devam kisiye ait olup olmadigini test et if(kayit.id==telefon.id) printf ( "\n%5s: %-15s", telefon.teltip, telefon.tel); sayact++; //while(sayact<ksayisi) sonu printf("\nyeni arama?(1/0): "); scanf("%d",&evethayir); //while(evethayir==1) sonu case 3 : evethayir = 1; while(evethayir==1)
kisinin, "); SEEK_SET); printf ( "\n adres bilgileri alinacak printf ( "\nadi ve soyadini girin: "); scanf ( "%s%s", kisi.isim, kisi.soyisim); //kayit aranir bulundu =0; sayac=0; while(sayac<ksayisi) fseek(isrtad, sayac * sizeof(ad), fread(&kayit, sizeof(ad),1, isrtad); //okunan kaydin aranip kayit oldugunu test edilir if((strcmpi(kisi.isim, kayit.isim)==0) && (strcmpi(kisi.soyisim, kayit.soyisim)==0)) bulundu = 1; sayac++; //while(sayac<ksayisi)sonu kisi.isim, kisi.soyisim); if( bulundu == 0) printf ( "\n%s %s kayitli degil\n", sayaca=0; printf ( "\nadres bilgileri...\n"); while(sayaca<ksayisi*2) fseek(isrtadres, sayaca * sizeof(adres),seek_set); fread(&adresi,sizeof(adres), 1, isrtadres); dosyasindan devam kisiye ait olup olmadigini test et if(kayit.id==adresi.id) printf ( "\n%s: %- 15s",adresi.adresTip,adresi.adres); sayaca++; printf("\nyeni arama?(1/0): "); scanf("%d",&evethayir); //while(evethayir==1) sonu case 4 : evethayir = 1; while(evethayir==1)
kisinin, "); SEEK_SET); printf ( "\n telefon bilgileri alinacak printf ( "\nadi ve soyadini girin: "); scanf ( "%s%s", kisi.isim, kisi.soyisim); //kayit aranir bulundu =0; sayac=0; while(sayac<ksayisi) fseek(isrtad, sayac * sizeof(ad), fread(&kayit, sizeof(ad),1,isrtad); //okunan kaydin aranip kayit oldugunu test edilir //if(strcmpi(kisi.isim, kayit.isim) && strcmp(kisi.soyisim, kayit.soyisim)) if((strcmpi(kisi.isim, kayit.isim)==0) && (strcmpi(kisi.soyisim, kayit.soyisim)==0)) bulundu = 1; sayac++; //while(!feof(isrtad)) sonu kisi.isim, kisi.soyisim); sizeof(tel),seek_set); if( bulundu == 0) printf ( "\n%s %s kayitli degil", sayact = 0; printf ( "\ntelefon bilgileri"); while(sayact<ksayisi*3) fseek(isrttel, sayact * fread(&telefon,sizeof(tel),1,isrttel); dosyasindan //devam kisiye ait olup olmadigini test et if(kayit.id==telefon.id) printf ( "\n%5s :%-15s", telefon.teltip, telefon.tel); sayact++; //while(!feof(isrttel)) sonu sayaca=0; printf ( "\nadres bilgileri"); while(sayaca<ksayisi*2)
fseek(isrtadres, sayaca * sizeof(adres),seek_set); fread(&adresi,sizeof(adres), 1, isrtadres); dosyasindan devam kisiye ait olup olmadigini test et if(kayit.id==adresi.id) printf ( "\n%s :%- 15s",adresi.adresTip,adresi.adres); sayaca++; // switch sonu printf("\nyeni arama?(1/0): "); scanf("%d",&evethayir); //while(evethayir==1) sonu printf ( "\n baska listeleme?(1/0): "); scanf ( "%d", &baskalistele); //while(baskalisteleme)sonu // listeleme( ) sonu