Vous êtes sur la page 1sur 10

#include <stdio.

h> /*KÜTÜPHANE*/

#include <conio.h> /*KÜTÜPHANE*/

#include <string.h> /*KÜTÜPHANE*/

#include <Locale.h> /*KÜTÜPHANE*/

int main(void) /*ANA FONKSİYON*/

char *gercek_sifre, parola[25] = { 0 }, ch; /*CHAR DEĞİŞKENLERİ*/

int sonuc1 = 2, i = 0; /*İNTİGER DEĞİŞKENLERİ*/

setlocale(LC_ALL, "Turkish");/*TÜRKÇE KARAKTER KULLANABİLMEMİZ İÇİN*/

gercek_sifre = "Yasin_9467"; /*GERÇEK ŞİFRE İÇİNE ATILAN CHAR DEĞİŞKENİ ( GİRİŞTE


KULLANILACAK OLAN PAROLA)*/

printf("\t\t\tHESABINIZA GİRİŞ YAPABİLMEK İÇİN \n\t\t\t LÜTFEN ŞİFRENİZİ GİRİNİZ


\n\n");/*EKRAN ÇIKTISI*/

puts(""); /*KULLANICIDAN KARAKTER ALMAMIZI SAĞLAYAN FONKSİYON*/

{ /*EKRANA YAZILACAK OLAN ŞİFREYİ GİZLEMEK İÇİN GEREKLİ ADIMLAR */

while (1) {

if (i < 0) {

i = 0;

ch = getch();

if (ch == 13)

break;

parola[i++] = ch;

ch = '*';

putch(ch);

parola[i] = '\0'; }

sonuc1 = strcmp(parola, "Yasin_9467"); /*PAROLA VE Yasin_9467 KARŞILAŞTIRIYORUZ*/


if (sonuc1 == 0) /*EĞER SONUÇ = 0 İSE ANAMENÜYE GİDECEK ( SEÇİM MENÜSÜ) */

AnaMenu();

else if (sonuc1 != 0) /*0 DEĞİLSE HATALI ŞİFRE GİRİŞİ YAPTINIZ DİYECEK */

printf(" \n HATALI ŞİFRE GİRİŞİ YAPTINIZ \n");

int SifreYenileme() /*YENİ ŞİFRE ALMAMIZA YARAYAN FONKSİYON*/

FILE *fptr, *yaz; /* DOSYA DEĞİŞKENLERİMİZ */

char sifre[20];/*CHAR DEĞİŞKENİ ALTINDA OLUŞTURULACAK */

if ((fptr = fopen("D:\\CPROJE\\sifreler.txt", "r")) == NULL) /*YAZILAN ŞİFREMİZ DOSYAMIZIN


İÇİNDE VARMI YOKMU BAKMAK İÇİN AÇIYORUZ */

return -1;

yaz = fopen("D:\\CPROJE\\sifreler.txt", "a"); /*AYNI DOSYAMIZI YENİ OLUŞTURULACAK OLAN


ŞİFREMİZİ YAZMAK İÇİN AÇIYORUZ*/

printf("\n\n YENİ ŞİFRENİZİ GİRİNİZ = "); /*EKRAN ÇIKTISI*/

scanf("%s", sifre);/*ŞİFREMİZİ KULLANICIDAN ALIYORUZ */

if (sifreSayisi(fptr, sifre) > 0) /* SİFRESAYISI FONKSİYONUNDA DÖNEN DEĞER 1 DEN BÜYÜK


MÜ ( AYNI ŞİFRE ÖNCEDEN YAZILMIŞ MI ) ? */

printf("ONCEDEN BELIRLENEN BIR SIFRE GIRDINIZ ISLEMINIZ SONLANDIRILIYOR");


/*EVETSE EKRANA BASIYORUZ*/

else if (BuyukHarfKontrol(sifre) == 0)/* YADA BÜYÜKHARFKONTROL FONSKİYONUNDA


DÖNEN DEĞER 0'A EŞİTSE (BÜYÜK HARF YOKSA ) */
{

printf("BUYUK HARF KULLANMADINIZ ISLEMINIZ SONLANDIRILIYOR"); /*EKRANA


BASTIRIYORUZ*/

else if (KucukHarfKontrol(sifre) == 0) /* YADA KÜCÜKHARFKONTROL FONKSİYONUNDA


DÖNEN DEĞER 0'A EŞİTSE(KÜCÜK HARF YOKSA )*/

printf("KUCUK HARF KULLANMADINIZ ISLEMINIZ SONLANDIRILIYOR");/*EKRANA


BASTIRIYORUZ*/

else if (KarakterKontrol(sifre) == 0) /*YADA KARAKTERKONTROL FONKSİYONUNDA DÖNEN


DEĞER 0'A EŞİTMİ (KARAKTER YOKSA )*/

printf("KARAKTER KULLANMADINIZ ISLEMINIZ SONLANDIRILIYOR"); /*EKRANA


BASTIRIYORUZ*/

else if (PesPeseKarakterKontrol(sifre) > 0)/*YADA PESPESE KULLANILAN KARAKTER SAYISI 0


DAN BÜYÜMÜ(ARKA ARKAYA KARAKTER GİRİŞİ YAPILMIŞ MI ) */

printf("PESPESE KARAKTER KULLANDINIZ ISLEMINIZ SONLANDIRILIYOR");/*EKRANA


BASTIRIYORUZ*/

/*YADA ŞİFREMİZİ ONAYLIYORUZ VE ONAYLANAN ŞİFREYİ YAZ İLE TANIMLADIĞIMIZ DOSYAYA


YAZDIRIYORUZ*/

else if (RakamKontrol(sifre) == 0)

printf("RAKAM KULLANMADINIZ ISLEMINIZ SONLANDIRILIYOR");/*EKRANA


BASTIRIYORUZ*/

else if (printf(" Şifreniz Onaylandı....") && fprintf(yaz, "%s\n", sifre));


fclose(yaz);/*YAZ DEĞİŞKENİ İLE AÇTIĞIMIZ DOSYAYI KAPATALIM*/

fclose(fptr);/*FBTR DEĞİŞKENİ İLE AÇTIĞIMIZ DOSYAYI KAPATALIM */

return 0;

/*ŞİFRE SAYISI FONKSİYONUNU AÇIYORUZ VE BU FONKSİYONDA ÖNCEDEN OLUŞTURULAN ŞİFRE


DEĞİŞKENİ İLE FBTR İSİMLİ DOSYAYI KULLANIYORUZ*/

int sifreSayisi(FILE *fptr, char sifre[])

int kacsifreVar = 0; /*KAÇTANE ŞİFRE OLDUĞUNU AKLINDA TUTAN DEĞİŞKEN*/

int i = 0;/*ŞİFRE DİZİSİNİN İÇİNDE GEZECEK*/

char temp;/*DOSYADAN O ANDA OKUNACAK OLAN KARAKTER*/

while (!feof(fptr))/*FPTR DOSYAMIZI SONUNA KADAR OKU*/

fscanf(fptr, "%c", &temp);/*O ANKİ KARAKTERİ TEMP TEĞİŞKENİNİN İÇİNE AT*/

if (sifre[i] == temp)/*EĞER ŞİFRENİN i.KARAKTERİ TEMPE EŞİTSE */

if (i == strlen(sifre) - 1)/*VE EĞER BU DEĞER ŞİFRENİN SON DEĞİŞKENİ İSE */

kacsifreVar++;/*KACSİFREVARI 1 ARTTIR*/

i = 0;

else

i++;

else

i = 0;

}
return kacsifreVar;/*FONKSİYONUMUZDA KACSİFREVAR'IN İÇİNDEKİ DEĞERİ DÖNDÜR*/

int BuyukHarfKontrol(char sifre[]) /*BÜYÜK HARF KONTROL FONKSİYONUN VE ÖNCEDEN


OLUŞTURULMUŞ KULLANILACAK OLAN ŞİFRE DEĞERİ */

int i, buyuksay = 0; /*İ VE BÜYÜK HARFLERİMİZİ SAYACAK OLAN DEĞİŞKENLERİMİZ*/

for (i = 0; i < 20; i++) { /* FOR DÖNGÜSÜNÜ İ'Yİ 0 DAN 20 OLANA KADAR ARTTIRIYORUZ */

/*YAZILAN ŞİFREMİZİN HARFLERİNİN ASCII KODLARI 64 DEN BÜYÜK VE 91 DEN


KÜÇÜKSE BÜYÜKSAYI 1 ARTTIR*/

if (sifre[i] > 64 && sifre[i] < 91)

buyuksay++;

/*DÖNGÜMÜZDE BÜYÜKSAYIN İÇİNDEKİ DEĞERİ DÖNDÜRÜYORUZ*/

return buyuksay;

int KucukHarfKontrol(char sifre[20]) /*KÜÇÜK HARF KONTROL FONKSİYONUN VE ÖNCEDEN


OLUŞTURULMUŞ KULLANILACAK OLAN ŞİFRE DEĞERİ */

int i, kucuksay = 0;/*İ VE KÜÇÜK HARFLERİMİZİ SAYACAK OLAN DEĞİŞKENLERİMİZ*/

for (i = 0; i < 20; i++) {/* FOR DÖNGÜSÜNÜ İ'Yİ 0 DAN 20 OLANA KADAR ARTTIRIYORUZ */

/*YAZILAN ŞİFREMİZİN HARFLERİNİN ASCII KODLARI 96 DAN BÜYÜK VE 123 DEN


KÜÇÜKSE KÜCÜKSAY I 1 ARTTIR*/

if (sifre[i] >= 97 && sifre[i] <= 122)

kucuksay++;

return kucuksay;/*DÖNGÜMÜZDE KÜÇÜKSAYIN İÇİNDEKİ DEĞERİ DÖNDÜRÜYORUZ*/

}
int RakamKontrol(char sifre[20])

int i, rakamsay = 0;/*İ VE RAKAMLARIMIZI SAYACAK OLAN DEĞİŞKENLERİMİZ*/

for (i = 0; i < 20; i++) {/* FOR DÖNGÜSÜNÜ İ'Yİ 0 DAN 20 OLANA KADAR
ARTTIRIYORUZ */

/*YAZILAN ŞİFREMİZİN RAKAMLARININ ASCII KODLARI 47 DEN BÜYÜK VE 57


DEN KÜÇÜKSE RAKAMSAY I 1 ARTTIR*/

if (sifre[i] >= 48 && sifre[i] <= 57)

rakamsay++;

return rakamsay;/*DÖNGÜMÜZDE RAKAMSAY'IN İÇİNDEKİ DEĞERİ


DÖNDÜRÜYORUZ*/

int KarakterKontrol(char sifre[20])/*KARAKTER KONTROL FONKSİYONUN VE ÖNCEDEN


OLUŞTURULMUŞ KULLANILACAK OLAN ŞİFRE DEĞERİ */

int i, karaktersay = 0;/*İ VE KARAKTER HARFLERİMİZİ SAYACAK OLAN DEĞİŞKENLERİMİZ*/

for (i = 0; i < 20; i++)/* FOR DÖNGÜSÜNÜ İ'Yİ 0 DAN 20 OLANA KADAR ARTTIRIYORUZ */

/*ASCII KODLARI 95 VE 91 YADA(||) 33 VE 47 || 58 VE 64 || 123 VE 126 ARASINDA


İSE KARAKTERSAY I 1 ARTTIR */

if (sifre[i] >= 91 && sifre[i] <= 95)

karaktersay++;

else if (sifre[i] >= 33 && sifre[i] <= 47)

karaktersay++;

}
else if (sifre[i] >= 58 && sifre[i] <= 64)

karaktersay++;

else if (sifre[i] >= 123 && sifre[i] <= 126)

karaktersay++;

return karaktersay;/*DÖNGÜMÜZDE KARAKTERIN İÇİNDEKİ DEĞERİ DÖNDÜRÜYORUZ*/

int PesPeseKarakterKontrol(char sifre[20]) /*PESPESE KARAKTER VARMI KONTROL FONKSİYONUN VE


ÖNCEDEN OLUŞTURULMUŞ KULLANILACAK OLAN ŞİFRE DEĞERİ */

int i = 0, pespesekarakter = 0; /*İ VE KARAKTER HARFLERİMİZİ SAYACAK OLAN


DEĞİŞKENLERİMİZ*/

for (i = 0; i < 20; i++)/* FOR DÖNGÜSÜNÜ İ'Yİ 0 DAN 20 OLANA KADAR ARTTIRIYORUZ */

{ /*EĞER DİZİMİZİN İ.VE İ+1 . ELEMANI BİRBİRİNE EŞİTSE VE 91-96 YADA 58-64 YADA 123-126
YADA 33-47

ARASINDA KARAKTER KULLANILMIŞSA PESPESEKARAKTER SAYI 1 ARTTIRIYORUZ */

if ((sifre[i] == sifre[i + 1]) && ((sifre[i] >= 91 && sifre[i] <= 96) ||

(sifre[i] >= 58 && sifre[i] <= 64) ||

(sifre[i] >= 123 && sifre[i] <= 126) ||

(sifre[i] >= 33 && sifre[i] <= 47)))

pespesekarakter++;

return pespesekarakter;/*DÖNGÜMÜZDE PESPESEKARAKTER SAYI DÖNDÜRÜYORUZ*/

int AnaMenu() /*MENÜ FONKSİYONUMUZ*/


{

char sec;

/*MENÜLERİMİZİ OLUŞTURDUK*/

printf(" \n");

printf(" MENÜ \n\n");

printf(" 1. ŞİFRE YENİLEME \n");

printf(" 2. PARA ÇEKME \n");

printf(" 3. HESAP ÖZETİ \n");

printf(" 4. ÖNCEDEN OLUŞTURULAN ŞİFRELER \n");

printf(" 5. GÜVENLİ ÇIKIŞ \n");

printf(" 6. PROGRAMI KAPAT \n");

do {

printf("\n\nYAPMAK İSTEDİĞİNİZ İŞLEMİ BELİRTİN = ");/*EKRAN ÇIKTISI*/

sec = putch(getch());/*MÜDENDEN HANGİSİNİ SEÇECEKSEK O RAKAMA BASIYORUZ*/

switch (sec)

case '1': /* SEÇİLEN DEĞER 1 İSE SİFREYENİLEME FONKSİYONUNA GİT */

SifreYenileme();

break;

case '2':/* SEÇİLEN DEĞER 2 İSE AŞAĞIDAKİLERİ EKRANA YAZ */

printf("\n\nHESABINIZDA PARA BULUNMAMAKTADIR ");

break;

case '3':/* SEÇİLEN DEĞER 3 İSE AŞAĞIDAKİLERİ EKRANA YAZ */

printf("\n\nEV KİRASI= 750 TL \n");

printf("İNTERNET = 50 TL \n");
printf("TELEFON = 80 TL \n");

printf("YASİN = 0.5 Krş\n");

break;

case '4': /* SEÇİLEN DEĞER 4 İSE... */

FILE *fp1; /*DOSYA DEĞİŞKENİ BELİRLE*/

char birkelime[100]; /*100 DİZİLİK BİR CHAR DEĞİŞKENİ*/

int c;/*İNTİGER DEĞİŞKENİ*/

fp1 = fopen("D:\\CPROJE\\sifreler.txt", "r");/*OKUMAK İÇİN


AÇILACAK OLAN ŞİFRELER TXT DOSYASI*/

do {

c = fscanf(fp1, "%s", birkelime); /* DOSYADA KELİME


OKUYALIM */

printf("\n%s\n", birkelime); /* OKUNAN KELİMEYİ EKRANA


BASALIM*/

} while (c != EOF); /* KELİMEYİ EKRANA BASMA İŞLEMİ DOSYADAKİ


SON KARAKTERE GELİNCE SONLANSIN */

fclose(fp1);/*AÇILAN DOSYAMIZI KAPATIYORUZ*/

break;

case '5':/* SEÇİLEN DEĞER 5 İSE... */

printf("\nISLEMLERINIZI SONLANDIRIYORUZ");/*EKRANA BASIYORUZ VE GUN


FONKSİYONUNA GİDİYORUZ*/

GUN();

break;

case'6': /* SEÇİLEN DEĞER 6 İSE */


printf("\nBİZİ TERCİH ETTİĞİNİZ İÇİN TEŞEKKÜR EDERİZ");/*EKRANA
BASIYORUZ*/

return 0;

break;

default:/*1-2-3-4-5-6 DIŞINDA BİR RAKAMA BASARSA KULLANICI*/

printf("\n1 ile 6 ARASINDA BİR SEÇİM YAPMAK ZORUNDASINIZ");/*EKRANA


BAS*/

} while (sec != 6);/*1 İLE 6 ARASINDA SEÇİM YAPACAK*/

/*KLAVYEDEN 15 ADET SAYI GİRMEMİZİ İSTEYECEK VE GİRİLEN HER BİR SAYIYI GÜN OLARAK
DÜŞÜNECEĞİZ

HER SAYI GİRİŞİMİZDE EKRANA İ DEĞİŞKENİ KACINCI KEZ DÖNÜYORSA i. GÜN OLARAK EKRANA
BASACAK */

/*ASLINDA KULLANICIDAN ALINAN 15 ADET SAYININ TOPLAMINI BULDURAN FONKSİYON */

/* VİSUAL STUDİO 2017' YE unistd.h KÜTÜPHANESİ BULUP İNDİREMEDİM VE DOLAYISIYLA SLEEP


FONKSİYONUNU KULLANAMADIM */

int GUN()/*GÜN FONKSİYONUMUZ*/

int top = 0, i = 1, sayi; /*İNTİGER DEĞİŞKENLERİMİZ */

printf(" \n GÜN GECMESİNİ BEKLEYİN \n");/*EKRAN ÇIKTISI*/

for (i = 0; i < 15; i++) /* i'Yİ 0DAN 15 E KADAR ALTTAKİ İŞLEMLERİ GERÇEKLEŞTİRDİKÇE
ARTTIR*/

printf("BUGUN %d GÜN", i);/*EKNRA BÜGÜN i. GÜN YAZ */

scanf("%d", &sayi);/* KULLANICIDAN SAYI AL*/

SifreYenileme();/* BURADAN ŞİFRE YENİLEME FONKSİYONUNA GİT */

Vous aimerez peut-être aussi