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

Kurtbeyi

Misafir Editör
Katılım
5 Şubat 2022
Mesajlar
501
Tepkime puanı
44
Konum
istanbul
Cinsiyet
  1. Bay
Takım
Fenerbahçe
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;
}
 

Benzer konular

İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş