Sözlük c programlama modüler programlama. Dosyaları ayrı ayrı ekliyorum ayrı ayrı isim verip kaydedip çalıştırabilirsiniz.
Main.c
#include<stdio.h>
#include<stdlib.h>
#include"sozluk.h"
int main(int argc, char *argv[])
{
sozlukislemleri();
return 0;
}
//////////
sozluk.h
#ifndef _SOZLUK_H
#define _SOZLUK_H
typedef struct sozluk
{
char turkce[20],ingilizce[20];
}sozluk;
void kelimeekle();
void turkceingilizce();
void ingilizceturkce();
void kelimebul();
void kelimelistele();
void kelimesil();
int menu();
void sozlukislemleri();
#endif
/////////////
sozluk.c
#include"sozluk.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
sozluk soz;
void kelimeekle()
{
system("cls");
printf("Kelime Ekleme..\n\n");
printf("Turkce Kelime: "); scanf(" %[^\n]s",soz.turkce);
printf("Ingilizce Kelime: "); scanf(" %[^\n]s",soz.ingilizce);
strlwr(soz.turkce);
strlwr(soz.ingilizce);
FILE *ptr=fopen("sozluk.dat","a+b");
fwrite(&soz,sizeof(sozluk),1,ptr);
fclose(ptr);
printf("Kelime Kaydi tamam \n");
}
///////////////
void kelimebul()
{
system("cls");
int secim;
printf("Kelime Bul..\n\n");
printf("1- Turkce - Ingilizce\n");
printf("2- Ingilizce - Turkce \n");
printf("0- Ana Menuye Don \n");
printf("Seciminiz : "); scanf("%d",&secim);
if(secim == 1)
{
turkceingilizce();
}
else if(secim == 2)
{
ingilizceturkce();
}
else if(secim == 0)
{
printf("Ana menuye yonlendiriliyor\n");
}
else
{
printf("Yanlis secim yaptiniz");
}
}
void turkceingilizce()
{
system("cls");
printf("Turkce - Ingilizce Kelime Bulma\n\n");
char kelime[20];
printf("Turkce Kelime: "); scanf(" %[^\n]s",kelime);
strlwr(kelime);
int durum=0;
FILE *ptr=fopen("sozluk.dat","r+b");
while(fread(&soz,sizeof(sozluk),1,ptr) != NULL)
{
if(strcmp(kelime,soz.turkce)== 0)
{
system("cls");
printf("\n\t%-20s%-20s",soz.turkce,soz.ingilizce);
durum=1;
break;
}
}
fclose(ptr);
if(durum == 0)
{
printf("\nAranan Kelime Bulunamadi \n");
}
}
/////////////
void ingilizceturkce()
{
system("cls");
printf("Ingilizce - Turkce Kelime Bulma\n\n");
char kelime[20];
printf("Ingilizce Kelime: "); scanf(" %[^\n]s",kelime);
strlwr(kelime);
int durum=0;
FILE *ptr=fopen("sozluk.dat","r+b");
while(fread(&soz,sizeof(sozluk),1,ptr) != NULL)
{
if(strcmp(kelime,soz.ingilizce)== 0)
{
system("cls");
printf("\n\t%-20s%-20s",soz.ingilizce,soz.turkce);
durum=1;
break;
}
}
fclose(ptr);
if(durum == 0)
{
printf("\nAranan Kelime Bulunamadi \n");
}
}
//////////////////
void kelimelistele()
{
system("cls");
printf("Kelime Listele..\n\n");
int sayac=0;
printf("%-10s%-20s%-20s\n","SIRA NO","TURKCE","INGILIZCE");
FILE *ptr=fopen("sozluk.dat","r+b");
while(fread(&soz,sizeof(sozluk),1,ptr) != NULL)
{
sayac++;
printf("%-10d%-20s%-20s\n",sayac,soz.turkce,soz.ingilizce);
}
fclose(ptr);
if(sayac == 0)
{
printf("\nKelime kaydi yok \n");
}
else
{
printf("\n\n%d adet kelime bulundu.\n\n",sayac);
}
}
//////////////
void kelimesil()
{
system("cls");
printf("Kelime Listele..\n\n");
int sayac=0,numara;
printf("%-10s%-20s%-20s\n","SIRA NO","TURKCE","INGILIZCE");
FILE *ptr=fopen("sozluk.dat","r+b");
while(fread(&soz,sizeof(sozluk),1,ptr) != NULL)
{
sayac++;
printf("%-10d%-20s%-20s\n",sayac,soz.turkce,soz.ingilizce);
}
if(sayac == 0)
{
printf("\nKelime kaydi yok \n");
}
else
{
printf("\nSilmek istediginiz kelime numarasi giriniz : "); scanf("%d", &numara);
if(numara <=0 || numara > sayac)
{
printf("Hatali numara girdiniz..");
}
else
{
sayac=0;
rewind(ptr);
FILE *yedekptr = fopen("yedek.dat","w+b");
while(fread(&soz,sizeof(sozluk),1,ptr) != NULL)
{
sayac++;
if(numara != sayac)
{
fwrite(&soz,sizeof(sozluk),1,yedekptr);
}
}
fclose(ptr);
fclose(yedekptr);
remove("sozluk.dat");
rename("yedek.dat","sozluk.dat");
printf("\n%d Numarali kayit silidi \n",numara);
}
}
fclose(ptr);
}
/////////////
int sozlukmenu()
{
int secim;
printf("\n\n\t TURKCE-INGILIZCE SOZLUK PROGRAMI\n\n");
printf("\n\t\t1- Kelime Ekle\n");
printf("\n\t\t2- Kelime Bul\n");
printf("\n\t\t3- Kelime Listele\n");
printf("\n\t\t4- Kelime Sil\n");
printf("\n\t\t0- Programi Kapat\n");
printf("\n\t\tSeciminiz : "); scanf("%d",&secim);
system("cls");
return secim;
}
//////////////
void sozlukislemleri()
{
int secim = sozlukmenu();
while(secim != 0)
{
switch(secim)
{
case 1: kelimeekle(); break;
case 2: kelimebul(); break;
case 3: kelimelistele();break;
case 4: kelimesil(); break;
case 0: break;
default: printf("Hatali secim yaptiniz! \n"); break;
}
secim = sozlukmenu();
}
}
Hiç yorum yok:
Yorum Gönder
Her yorum bilgidir. Araştırmaya devam...