3 Haziran 2010 Perşembe

(Dizi + Struct) Bilgi Sistemi

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>

struct kayitYapisi{
        char isim[30];
        char soyisim[40];
        char numara[15];
        char doluMu;
    };

char anaMenu(void);
void kayitEkle(struct kayitYapisi*);
void kayitSil(struct kayitYapisi* );
void kayitListele(struct kayitYapisi*);


int main()
{
    struct kayitYapisi kisi[30];
    int i;
    char karar;

    for(i=0;i<=29;i++)
    {
        kisi[i].doluMu='H';
    }

    while(1==1)
    {
        karar=anaMenu();

        switch (karar)
        {
            case '1': kayitEkle(kisi); break;
            case '2': kayitListele(kisi); break;
            case '3': kayitSil(kisi); break;
            case '4': exit(1); break;
        }
    }
}

void kayitEkle(struct kayitYapisi* insan)
{
    int i;

    for(i=0;i<30;i++)
    {
        if(insan[i].doluMu=='H')
        {
            printf("\n\tIsim Giriniz: ");
                scanf("%s",&insan[i].isim);

            printf("\n\tSoyisim Giriniz: ");
                scanf("%s",&insan[i].soyisim);

            printf("\n\tNumara Giriniz: ");
                scanf("%s",&insan[i].numara);

            insan[i].doluMu='E';

            printf("\n\n\tKayit Eklendi...");

            getch();
            return;
        }
    }
}

void kayitSil(struct kayitYapisi* insan)
{
    char tus,eminMi;
    int i;
    char isim[20];
    char numara[15];
    int silinecek=-1;

    printf("\n\t(1) Isme gore sil");
    printf("\n\t(2) Numaraya gore sil");

    do{
    tus=getch();
    }while(tus!='1'&&tus!='2');

    switch (tus)
    {
        case '1':   printf("\n\tSilmek istediginiz kisinin ismini giriniz :");
                    scanf("%s",&isim); printf("***%d***",isim);
                    break;
        case '2':   printf("\n\tSilmek istediginiz kisinin numarasini giriniz :");
                    scanf("%s",&numara);
                    break;
    }

    for(i=0;i<30;i++)
    {
        silinecek=-1;
        if(insan[i].doluMu=='E')
        {
            if(tus=='1'&&strcmp(isim,insan[i].isim)==0) //isme göre aranıyor ise
                silinecek=i;

            else if(tus=='2'&&strcmp(numara,insan[i].numara)==0)
                silinecek=i;
        }

        if(silinecek!=-1)
        {
            printf("%s\t%s\t%s",insan[i].isim,insan[i].soyisim,insan[i].numara);
            printf("\n\t\tBu kayidi silmek istediginize emin misiniz ? (E / H)");
            do{
                eminMi=getch();
                eminMi=toupper(eminMi);
            }while(eminMi!='E'&&eminMi!='H');

            if (eminMi=='E')
            {
                insan[i].doluMu='H';
                printf("\n\tKayit Silindi..");
            }

            getch();
            return;
        }
    }

    printf("\n\t\tKayit Bulunamadi..");
    getch();
    return;
}

void kayitListele(struct kayitYapisi* insan)
{
    int i;
    system("cls");
    printf("%10s%20s%20s","Isim","Soyisim","Numara");

    for(i=0;i<30;i++)
    {
        if(insan[i].doluMu=='E')
        {
            printf("\n%10s%20s%20s",insan[i].isim,insan[i].soyisim,insan[i].numara);
        }
    }
    getch();
}

char anaMenu()
{
    char tus;

    system("cls");

    puts("\t   Ana Menu");
    puts("\n\n\t(1) Kayit Ekle");
    puts("\n\t(2) Kayitlari Listele");
    puts("\n\t(3) Kayit Sil");
    puts("\n\t(4) Cikis");

    do{
        tus=getch();
    }while(tus<'1'||tus>'4');

    return tus;
}

Hiç yorum yok:

Yorum Gönder