Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

C de Telefon Rehberi Uygulaması,İsim Soyisim ve Telefon Bilgisi kaydetme,arama yapma

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Kod:
#include <stdio.h>
#include <string.h>
#include <conio.h>

struct kayit{
  char isim[16];
  char soyisim[21];
  char tel[11];
};

**** menuHazirla();
int telefonEkle();
int telefonlariListele();
int aramaYap(char *);

**** menuHazirla(){
  printf("--------------------------------------\n");
  printf("*                                    *\n");
  printf("*          telefon defteri           *\n");
  printf("*            programi !              *\n");
  printf("*                                    *\n");
  printf("*                                    *\n");
  printf("*        1. Telefon Ekle             *\n");
  printf("*        2. Telefonlari Listele      *\n");
  printf("*        3. Arama Yap                *\n");
  printf("*        4. Cikis                    *\n");
  printf("*                                    *\n");
  printf("--------------------------------------\n");
}

int telefonEkle(){

  struct kayit yeniKayit;
  FILE *ptVeritabani;

  // dosyaya ac:
  if((ptVeritabani=fopen("telefonVeritabani.txt","a"))==NULL){
    return -1;
  }
  printf("\n\n");
  printf("isim giriniz(max 15 karakter): ");
  scanf("%s",yeniKayit.isim);

  printf("soyisim giriniz(max 20 karakter): ");
  scanf("%s",yeniKayit.soyisim);

  printf("telefon numarasini giriniz(max 10 karakter): ");
  scanf("%s",yeniKayit.tel);

  fprintf(ptVeritabani, "\n%s\t%s\t%s", yeniKayit.isim, yeniKayit.soyisim, yeniKayit.tel);

  fclose(ptVeritabani);
  return 0;
}


int telefonlariListele(){

  // dosyadaki tum telefonlari listele
  // dosyaya ac:
  FILE *ptVeritabani;
  struct kayit aktifKayit;
  if((ptVeritabani=fopen("telefonVeritabani.txt","r"))==NULL){
    return -1;
  }

  printf("\n\nisim\t\t\tsoyisim\t\t\ttel\n");
  printf("----\t\t\t-----\t\t\t---\n\n");
  // dosya sonuna kadar tum verileri oku:

  while(!feof(ptVeritabani)){
    fscanf(ptVeritabani,"%s%s%s",&aktifKayit.isim, &aktifKayit.soyisim, &aktifKayit.tel);
    printf("%s\t\t\t",aktifKayit.isim);
    printf("%s\t\t\t",aktifKayit.soyisim);
    printf("%s\n",aktifKayit.tel);
  }

  fclose(ptVeritabani);
  return 0;
}

int aramaYap(char *arananIsim){

  // dosyadaki tum telefonlarini ara
  // dosyaya ac:
  FILE *ptVeritabani;
  struct kayit aktifKayit;
  int bulunan=0;

  if((ptVeritabani=fopen("telefonVeritabani.txt","r"))==NULL){
    return -1;
  }

  // dosya sonuna kadar tum verileri oku:
  while(!feof(ptVeritabani)){
    fscanf(ptVeritabani,"%s%s%s",&aktifKayit.isim, &aktifKayit.soyisim,&aktifKayit.tel);

    if(!strcmp(arananIsim, aktifKayit.isim)){ // bbulundu!
      printf("%s\t\t\t",aktifKayit.isim);
      printf("%s\t\t\t",aktifKayit.soyisim);
      printf("%s\n",aktifKayit.tel);
      bulunan++;
    }
  }

  fclose(ptVeritabani);
  return bulunan;
}

int main(){
  char secim='0';
  char aranacakIsim[16];
  int numaraAra=-1;

  // menu hazirla:
  menuHazirla();

  do{
    printf("\n\nseciminiz: ");
    secim = putch(getch());

    switch (secim){
      case '1':
        if (telefonEkle()==0){ // geri bildirim:
          printf("\ntelefon numarasi basariyla eklendi.");
        }else{
          printf("\nHATA: telefon numarasi eklenemedi!");
        }
        break;
      case '2':
        if (telefonlariListele()==0){ // geri bildirim:
          printf("\ntelefonlar basariyla listelendi.");
        }else{
          printf("\nHATA: telefon numaralari listelenemedi!");
        }
        break;
      case '3':
        printf("\naranacak ismi giriniz(max 15 karakter):");
        scanf("%s",aranacakIsim);

        numaraAra = aramaYap(aranacakIsim);
        if (numaraAra == 0){ // geri bildirim:
          printf("\naranan isim kayitlarda bulunamadi.");
        }else {
          if(numaraAra > 0)
            printf("\ntoplam %d kayit bulundu.",numaraAra);
          else
            printf("\nHATA: numara aranamadi!");
        }
        break;
      case '4':
       
        return 0;
        break;
      default:
        printf("\nlutfen 1-4 arasinda bir secim yapiniz.");

    }
  }while(secim!=4);

  return 0;
}
 
Üst Alt