Ana içeriğe atla

ATM Projesi

* Proje
Bu projede aşağıdaki ATM ile ilgili listelenen işlevleri fonksiyonları kullanarak uygulayınız.
  • Kullanıcıya Menünün Gösterilmesi
  • Hesap Bilgileri Gösterme (Gösterilecek bilgileri siz belirleyeceksiniz: Ad, Soyad, IBAN, Sube, Banka adı, v.b.)
  • Bakiye Sorgulama
  • Para Çekme
  • Para Yatırma
  • Para Gönderme (5% komisyon)
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <math.h>
#include <conio.h>
#include <locale.h>
#include <unistd.h> // Sleep fonksiyonu için bu kütüphaneyi tanımladık

struct banka /* tüm fonksiyonlarda verilere erişebilmek için Struct yapısı oluşturduk. */
{
	char ad[30];
	char soyad[30];
	char CepTel[30];
	char Iban[30];
	char Dogum_tarihi[30];
	char kizlik_soyadi[30];
	char e_posta[30];
	float bakiye1;	
}banka={"Yusuf","XXX","5313313131","TR77777777777777","07.03.2000","AAAAAA","yusufxxx@gmail.com",27300}; /* Struct yapısına veriler girdik*/
void menu();
void bakiye_sorgula(float bakiye);
int para_cekme(float bakiye);
int para_yatirma(float bakiye);
int para_gonderme(float bakiye);
void hesap_bilgisi(char ad[20], char soyad[20],char CepTel[10],char Iban[26],char Dogum_tarihi[10],char kizlik_soyadi[20],char e_posta[BUFSIZ],float bakiye);


main()
{
	
	system("color 3e"); 
	system("cls"); 
	menu();	
	
	}	
			
	void menu(){
		printf("\n Yusuf XXX");
	char islem; 
	int secim;		
	printf("\n\t\t\t   VEFA BANKASINA HOSGELDINIZ.\t\n");
	
	printf("\t\t\t|\t     MENU");
	printf("\t\t|\n"),
	printf("\t\t\t|-------------------------------|\n");
	printf("\t\t\t|1-Hesap Bilgilerini Goster");
	printf("\t|\n");
	printf("\t\t\t|2-Bakiye Sorgulama"); 
	printf("\t\t|\n");
	printf("\t\t\t|3-Para Cekme");
	printf("\t\t\t|\n");
	printf("\t\t\t|4-Para Yatirma");
	printf("\t\t\t|\n");
	printf("\t\t\t|5-Para Gonderme");
	printf("\t\t|\n");
	printf("\t\t\t|7-Cikis");
	printf("\t\t\t|\n"),
	printf("\t\t\t|-------------------------------|\n");
	printf("\t\t\tYapmak istediginiz islemi seciniz:");
	
	scanf("%d",&secim);

	if(secim==1)
	{
		hesap_bilgisi(banka.ad,banka.soyad,banka.CepTel,banka.Iban,banka.Dogum_tarihi,banka.kizlik_soyadi,banka.e_posta,banka.bakiye1); /*Struct yapılarındaki verileri okumak için
		dizilerin başına " banka. " eklendi. */
	}
	else if(secim==3)
	{
		
		 banka.bakiye1=para_cekme(banka.bakiye1);
		
		main();
	}
	else if(secim==2)
	{
		bakiye_sorgula(banka.bakiye1);
		
	}
	else if(secim==4)
	{
		banka.bakiye1=para_yatirma(banka.bakiye1);
		main();
	}
	else if(secim==5)
	{
		banka.bakiye1=para_gonderme(banka.bakiye1);
		main();
	}
	else if(secim==7)
	{
		exit(1);
	}
	else
	{
		
	}
}


void bakiye_sorgula(float bakiye)
{
	char devam;
	printf("Musterinin Toplam Bakiyesi: %5.2f \n",bakiye);
	while(1){
	
	printf("\n Menuye donmek icin D/d tusuna basiniz.\n");
		devam=getche();
		if((tolower(devam)=='d' )) 
		{
		
		main();
		}
		else
		{
			printf("Hatali Islem Yaptiniz.Menuye Yonlendiriliyorsunuz.");
			sleep(5); /*Programı 5 saniye durduruyor. Üstteki Hatalı işlem yaptınız yazısını göstermek için bu kodu kullandık.Kullanmasaydık maine hemen dönecekti
			 ve system(cls) kodundan dolayı Hatalı işlem yaptınız yazısı görünmeyecekti.*/
			main();
		}
		}
	
}

int para_cekme(float bakiye)
{
	char devam;
	float miktar;
while(1){
	printf("Su an ki Bakiyeniz:%5.2f\n",bakiye);
	printf("Cekmek istediginiz bakiye miktarini giriniz:\n");
	scanf("%f",&miktar);
	float hesaplama=bakiye-miktar;
	printf("Paraniz basariyla cekilmistir.\n");
	printf("Su an ki Bakiyeniz:%5.2f\n",hesaplama);
	

	printf("\n Menuye donmek icin D/d tusuna basiniz.\n");
		devam=getche();
		if((tolower(devam)=='d' ))
		{	
		return hesaplama;		
		}
		else
		{
			printf("Hatali Islem Yaptiniz.Menuye Yonlendiriliyorsunuz.");
			sleep(5);/*Programı 5 saniye durduruyor. Üstteki Hatalı işlem yaptınız yazısını göstermek için bu kodu kullandık.Kullanmasaydık maine hemen dönecekti
			 ve system(cls) kodundan dolayı Hatalı işlem yaptınız yazısı görünmeyecekti.*/
			main();
		}
		}
}
	

int para_yatirma(float bakiye)
{
		
	char devam;
	float miktar, hesaplama;
	while(1)
	{
	printf("Su an ki Bakiyeniz:%5.2f\n",bakiye);
	printf("Yatirmak istediginiz bakiye miktarini giriniz:\n");
	scanf("%f",&miktar);
	hesaplama=bakiye+miktar;
	printf("Paraniz basariyla yatirilmistir.\n");
	printf("Su an ki Bakiyeniz:%5.2f\n",hesaplama);
	

	printf("\n Menuye donmek icin D/d tusuna basiniz.\n");
		devam=getche();
		if((tolower(devam)=='d' )) 
		{	
		return hesaplama;		
		}
		else
		{
			printf("Hatali Islem Yaptiniz.Menuye Yonlendiriliyorsunuz.");
			sleep(5);/*Programı 5 saniye durduruyor. Üstteki Hatalı işlem yaptınız yazısını göstermek için bu kodu kullandık.Kullanmasaydık maine hemen dönecekti
			 ve system(cls) kodundan dolayı Hatalı işlem yaptınız yazısı görünmeyecekti.*/
			main();
	}
	}
	}

int para_gonderme(float bakiye)

{
	char Iban2[30];
	char CepTel2[30];
	char devam;
	char devam2;
	float miktar, hesaplama;
	while(1)
	{
	printf("Su an ki Bakiyeniz:%5.2f\n",bakiye);

	printf("Gondermek istediginiz hesabin IBAN numarasini giriniz:\n");
	fflush(stdin); /* Gets komutunu kullandığımızda kaynaklanan , veriyi almadan direk atlatığından dolayı 
	 Internetten araştırdığımda gets(); komutundan once fflush(); yazdığımızda sorun olmadığından kullandım.*/
	gets(Iban2);
	geri: 
	printf("\nGondermek istediginiz bakiye miktarini giriniz:\n");
	scanf("%f",&miktar);
	bakiye=bakiye-miktar;
	hesaplama=bakiye-((bakiye*5)/100); /*komisyon alıyoruz*/
	
	printf("Gondermek Istediginiz\n---> IBAN:%s\n--->Telefon Numaraniz:%s\n",Iban2,banka.CepTel);
	
	printf("---->Islemi onaylamak icin E/e tusuna basiniz.\n");	
	printf("---->Para miktarini duzeltmek icin G/g tusuna basiniz\n");
	printf("---->Islemden vazgecmek icin V/v tusuna basiniz\n");
	devam=getche();
	if((tolower(devam)=='e' ))
	{
	printf("Paraniz basariyla gonderilmistir.\n");
	printf("Su an ki Bakiyeniz:%5.2f\n",hesaplama);
	

	printf("\n Menuye donmek icin D/d tusuna basiniz.\n");
		devam2=getche();
		if((tolower(devam2)=='d' ))
		{	
		return hesaplama;		
		}
		else
		{
			printf("Hatali Islem Yaptiniz.Menuye Yonlendiriliyorsunuz.");
			sleep(5);/*Programı 5 saniye durduruyor. Üstteki Hatalı işlem yaptınız yazısını göstermek için bu kodu kullandık.Kullanmasaydık maine hemen dönecekti
			 ve system(cls) kodundan dolayı Hatalı işlem yaptınız yazısı görünmeyecekti.*/
			main();
		}	
	}
	
	if((tolower(devam)=='g' ))
	{
		goto geri; 
	}
	if((tolower(devam)=='v' ))
	{
		main();
	}
	
	
}
}



void hesap_bilgisi(char ad[20], char soyad[20],char CepTel[10],char Iban[26],char Dogum_tarihi[10],char kizlik_soyadi[20],char e_posta[BUFSIZ],float bakiye)
{
	char devam;
	while(1){	
	printf("Musteri Bilgileri: Ad:%s \tSoyad:%s\tCep:%s\tIBAN:%s\tDogum Tarihi:%s\tAnne Kizlik Soyadi:%s\tE-Postasi:%s\tBakiyesi:%5.2f\t\n ",ad,soyad,CepTel,Iban,Dogum_tarihi,kizlik_soyadi,e_posta,bakiye);
	
	
	printf("\n Menuye donmek icin D/d tusuna basiniz.\n");
	
		
		devam=getche();
		if((tolower(devam)=='d' )) 
		{
		
		main();	
		}
		else
		{
			printf("Hatali Islem Yaptiniz.Menuye Yonlendiriliyorsunuz.");
			sleep(5);/*Programı 5 saniye durduruyor. Üstteki Hatalı işlem yaptınız yazısını göstermek için bu kodu kullandık.Kullanmasaydık maine hemen dönecekti
			 ve system(cls) kodundan dolayı Hatalı işlem yaptınız yazısı görünmeyecekti.*/
			main();
		}
		}
}

Bu blogdaki popüler yayınlar

C Programlama Dili ile Dizi Kullanarak Hesaplama Yapmak

Tekrardan merhabalar, örnek programları ve kodları rastgele zorluk seviyesiyle paylaşmaya başlıyorum. Öncelikle C programlama dili ile ilgili örnek paylaşacağım ve bunlardan ilki  Satır ve Sütun Oluşturarak Satıra Bağlı Sütun Girdilerini Hesaplayan Program . Bağlantıya tıklayarak ilgili sayfaya gidebilir ve örnek programın kaynak kodlarına ulaşabilirsiniz. Bu programda kullanıcıdan satır ve sütun miktarını girdi olarak alıyoruz. Örnek olarak 2 ve ardından tekrar 2 girdisini aldık. Her biri 2 sütuna sahip 2 satır oluşturmuş olduk. Ardından sütun elemanlarını bulunduğu satıra bağlı olarak topladık. Her satırı tek tek ele alarak topladıktan sonra ise tüm sütun elemanlarını toplayan programı yaptık. İyi öğrenmeler!

C ve Arduino Kullanarak Butonlar ile Belirli Sesleri Oynatma

 Merhabalar, başlıkta C diyorum ama ham C değil, Arduino IDE'si biraz farklı fakat kodlarda anlaşılmayan hiçbir şey yok, yorumlarda da yeterince belirttim. E hani kodlar diyorsanız sizi  Arduino Kullanarak Butonlar ile Belirli Sesleri Oynatma  bağlantısına yönlendireyim hemen. Mantık basit, hangi pine basıldığında hangi sesin çalmasını istiyorsanız bağladığınız SD kart içerisindeki parçanın ismini belirtiyorsunuz. Ve ta da bu projede yer alan kodları isterseniz bilgilendirici bir robot için isterseniz launchpad üretmek için kulanabilirsiniz. Normalinden tek farkı ses paketlerini manuel olarak ayarlamak olacaktır. He bir de ışıksız... Neyse konudan fazla kopmadan bu projede ne yaptığımızı söyleyeyim. Elimizde 13 adet buton var ve bir butona bastığımızda o butona tanımladığımız ses oynatılacak. Ta ki ses sonlanana veya başka bir butona basana kadar. Bakın burası önemli! Bir butona bastıktan sonra ses çalmaya başladığında başka bir butona basarsanız şu anda oynatılan ses dur...

Kruskal Algoritması Kullanılan Bir Python Projesi

  Eveeet arkadaşlar işler ciddiye binmeye başladı. Bunu yapana kadar canım çıkmıştı. Bana en zor gelen ikinci projedir kendileri. Birincisi veri madenciliği dersiyle alakalı gerçekten bunalıma sokan öldüren bitiren bir projeydi. Her neyse nedir bu kruskal algoritması python projesi falan burada biraz bahsedeyim. Kruskal algoritması noktalar arasında en kısa mesafeyi bulan bir algoritma. 3 nokta ele alalım ve bunlar A, B, C olsun. A ve B arası 2 birim, B ve C arası 3 birim, A ve C arası 1 birim olsun. Bu bağlamda A noktasından başlarsak tüm noktalara gidecek şekilde en kısa yol nasıl belirlenir sorusuna bu algoritmayla cevap verebiliriz. Bizde de projeden bu isteniyor, bir nokta belirtip o noktadan başlamak fakat ben onu yapabildim mi? Hayır galiba pek hatırlamıyorum, siz uyguladığınızda bakarsınız ben şimdi tekrar bakmaya üşendim. Ama yüksek ihtimalle belirtilen bir noktadan başlayarak değil de direkt tüm noktalardan en mantıklı ve kısa olanını alacak şekilde yaptım. Her neyse lafı...