Ana içeriğe atla

Otomat Makinesi Programı

* Otomat Makinesi Programı

***Bu programlama projesi kapsamında fonksiyonlar, göstergeler ve diziler kullanılmalıdır.

Programın Gereksinimleri

  • programın arayüzü kullanışlı olacak (ürün isimlerinin görsel olarak iyi listelenmesi)
  • farklı kategoride ürünler, ürün numaraları ve fiyatlari listelenecek (içecek, yiyecek, v.b.). Bu bilgiler 2-boyutlu dizide tutulacak
  • para girişi fonksiyonu (sadece 5, 10, 25, 50 kuruş ve 1 TL girişi yapılabilir)
  • önce para girişi yapılacak sonra ürün seçilecek
  • para iade fonksiyonu (sadece 5, 10, 25, 50 kuruş ve 1 TL şeklinde iade yapılacak)
  • ürün seçme fonksiyonu
  • eğer seçilen ürünün ücreti giriş yapılan paradan yüksekse uyarı mesajı gösterilecek
  • arıza bildirme fonksiyonu (ürünün verilmemesi, para iadesi yapılmaması, paranın okunmaması, v.b.)
  • admin özelliği: makinedeki paralarin çekilmesi (şifre belirlenecek)
  • admin ozelligi: ürünlerin fiyatlarinin güncellenmesi

/*Lütfen kopyala yapıştır yapmak yerine kodları kendiniz yazınız. Bilerek yorum satırları eklemedim. Programı çalıştırarak mantığını kavramaya çalışınız. Ancak böyle sağlıklı bir şekilde öğrenebilirsiniz.*/ #include <stdio.h> #include <stdlib.h> /*Kasaya giriş için para girişine 7319 yazılması lazım, otomatta ayrı olarak admin girişi diye bir yer oluşturmadım, normal kullanıcıların göremeyeceği şekilde sadece yetkililer bildiği taktirde giriş yapılacak*/ float kasa=0; float urun[7][2]={{7,1},{7,3},{7,1.75},{7,0.75},{7,2},{7,1.50},{7,1.25}}; int sor(); int menu(); int adminmenu(); int gunceldurum(); void islem(float miktar, int *birlira, int *ellikurus, int *yirmibeskurus, int *onkurus, float *beskurus); void islem(float miktar, int *birlira, int *ellikurus, int *yirmibeskurus, int *onkurus, float *beskurus){ *birlira=miktar/1.00; *ellikurus=(miktar-(*birlira*1.00))/0.50; *yirmibeskurus=(miktar-(*birlira*1.00)-(*ellikurus*0.50))/0.25; *onkurus=(miktar-(*birlira*1.00)-(*ellikurus*0.50)-(*yirmibeskurus*0.25))/0.10; *beskurus=(miktar-(*birlira*1.00)-(*ellikurus*0.50)-(*yirmibeskurus*0.25)-(*onkurus*0.10))/0.05; } int main() { system("color 4f"); system("cls"); menu(); return 0; } int sor(){ char cevap,enter; printf("\n\t\t\tBaska bir islem yapmak istiyor musunuz?(E/H): "); scanf("%c%c",&enter,&cevap); if(cevap=='E' || cevap=='e'){ main(); }else if(cevap=='H' || cevap=='h'){ printf("\n\t\t\tYine bekleriz!"); }else{ printf("\n\t\t\tLutfen gecerli bir karakter girin!\n"); sor(); } } int adminpanel(){ system("cls"); int tercih, secim, yeniadet; float yenifiyat; gunceldurum(); printf("\n\t\t\tKasadaki para: %.2f\n\n\t\t\t1-Para Cek\n\t\t\t2-Urun Adedi Guncelle\n\t\t\t3-Urun Fiyati Guncelle\n\t\t\t\n\t\t\t0-Cikis\n\n\t\t\tYapmak istediginiz islemi seciniz: ",kasa); scanf("%d",&tercih); if(tercih==1){ float paracek; printf("\t\t\tCekmek istediginiz miktari giriniz: "); scanf("%f",¶cek); if(paracek>kasa){ printf("\n\t\t\tLutfen kasayi tekrar kontrol ediniz!\n"); adminpanel(); }else{ kasa=kasa-paracek; printf("\n\t\t\tIslem basarili!\n"); printf("\n\t\t\tKasadaki para: %.2f\n",kasa); sor(); } }else if(tercih==2){ printf("\n\t\t\tAdedini guncellemek istediginiz urunu seciniz: "); scanf("%d",&secim); printf("\t\t\tEklemek istediginiz urun miktarini giriniz: "); scanf("%d",¥iadet); if(secim>=1 && secim<=7){ if(secim==1 && yeniadet>0){ urun[0][0]=urun[0][0]+yeniadet; gunceldurum(); sor(); }else if(secim==1 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); }if(secim==2 && yeniadet>0){ urun[1][0]=urun[1][0]+yeniadet; gunceldurum(); sor(); }else if(secim==2 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); }if(secim==3 && yeniadet>0){ urun[2][0]=urun[2][0]+yeniadet; gunceldurum(); sor(); }else if(secim==3 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); }if(secim==4 && yeniadet>0){ urun[3][0]=urun[3][0]+yeniadet; gunceldurum(); sor(); }else if(secim==4 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); }if(secim==5 && yeniadet>0){ urun[4][0]=urun[4][0]+yeniadet; gunceldurum(); sor(); }else if(secim==5 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); }if(secim==6 && yeniadet>0){ urun[5][0]=urun[5][0]+yeniadet; gunceldurum(); sor(); }else if(secim==6 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); }if(secim==7 && yeniadet>0){ urun[6][0]=urun[6][0]+yeniadet; gunceldurum(); sor(); }else if(secim==7 && yeniadet<=0){ printf("\n\t\t\tAdet miktari sifirdan buyuk olmalidir!"); sleep(3); adminpanel(); } } else{ printf("\n\t\t\tLutfen seciminizi kontrol ediniz!\n"); sleep(3); adminpanel(); } }else if(tercih==3){ printf("\n\t\t\tFiyatini guncellemek istediginiz urunu seciniz: "); scanf("%d",&secim); printf("\t\t\tYeni fiyat miktarini giriniz: "); scanf("%f",¥ifiyat); if(secim>=1 && secim<=7){ if(secim==1 && yenifiyat>0){ urun[0][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==1 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); }if(secim==2 && yenifiyat>0){ urun[1][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==2 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); }if(secim==3 && yenifiyat>0){ urun[2][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==3 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); }if(secim==4 && yenifiyat>0){ urun[3][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==4 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); }if(secim==5 && yenifiyat>0){ urun[4][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==5 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); }if(secim==6 && yenifiyat>0){ urun[5][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==6 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); }if(secim==7 && yenifiyat>0){ urun[6][1]=yenifiyat; gunceldurum(); sor(); }else if(secim==7 && yenifiyat<=0){ printf("\n\t\t\tBedavaya sattirmiyoruz!"); sleep(3); adminpanel(); } } else{ printf("\n\t\t\tLutfen seciminizi kontrol ediniz!\n"); sleep(3); adminpanel(); } }else if(tercih==0){ exit(0); }else{ printf("\n\t\t\tLutfen seciminizi kontrol ediniz!\n"); sleep(3); adminpanel(); } } int menu(){ gunceldurum(); float girilenpara, miktar, beskurus; int secim, birlira, ellikurus, yirmibeskurus, onkurus; printf("\n\t\t\tPara girisi: "); scanf("%f",&girilenpara); if(girilenpara==7319){ adminpanel(); }else{ printf("\t\t\tSeciminizi yapiniz: "); scanf("%d",&secim); if(secim>=1 && secim<=7){ if(secim==1 && girilenpara>=urun[0][1] && urun[0][0]>0){ miktar=girilenpara-urun[0][1]; kasa=kasa+urun[0][1]; urun[0][0]=urun[0][0]-1; }else if(girilenpara=urun[1][1] && urun[1][0]>0){ miktar=girilenpara-urun[1][1]; kasa=kasa+urun[1][1]; urun[1][0]=urun[1][0]-1; }else if(girilenpara=urun[2][1] && urun[2][0]>0){ miktar=girilenpara-urun[2][1]; kasa=kasa+urun[2][1]; urun[2][0]=urun[2][0]-1; }else if(girilenpara=urun[3][1] && urun[3][0]>0){ miktar=girilenpara-urun[3][1]; kasa=kasa+urun[3][1]; urun[3][0]=urun[3][0]-1; }else if(girilenpara=urun[4][1] && urun[4][0]>0){ miktar=girilenpara-urun[4][1]; kasa=kasa+urun[4][1]; urun[4][0]=urun[4][0]-1; }else if(girilenpara=urun[5][1] && urun[5][0]>0){ miktar=girilenpara-urun[5][1]; kasa=kasa+urun[5][1]; urun[5][0]=urun[5][0]-1; }else if(girilenpara=urun[6][1] && urun[6][0]>0){ miktar=girilenpara-urun[6][1]; kasa=kasa+urun[6][1]; urun[6][0]=urun[6][0]-1; }else if(girilenpara7){ printf("\t\t\tLutfen seciminizi kontrol ediniz!\n"); printf("\t\t\tIade edilen para: %.2fTL\n", girilenpara); sleep(3); main(); } } int gunceldurum(){ system("cls"); printf("\n\t\t\t\t OTOMAT \t\n"); printf("\t\t\t|\t\t MENU"); printf("\t\t\t|\n"); printf("\t\t\t|---------------------------------------|\n"); printf("\t\t\t|1-Su [Kalan %.f] (%.2fTL) ",urun[0][0],urun[0][1]); printf("\t|\n"); printf("\t\t\t|2-Kola [Kalan %.f] (%.2fTL) ",urun[1][0],urun[1][1]); printf("\t|\n"); printf("\t\t\t|3-Meyve Suyu [Kalan %.f] (%.2fTL)",urun[2][0],urun[2][1]); printf("\t|\n"); printf("\t\t\t|4-Cubuk Kraker [Kalan %.f] (%.2fTL)",urun[3][0],urun[3][1]); printf("\t|\n"); printf("\t\t\t|5-Biskuvi [Kalan %.f] (%.2fTL)",urun[4][0],urun[4][1]); printf("\t|\n"); printf("\t\t\t|6-Cikolata [Kalan %.f] (%.2fTL)",urun[5][0],urun[5][1]); printf("\t|\n"); printf("\t\t\t|7-Gofret [Kalan %.f] (%.2fTL)",urun[6][0],urun[6][1]); printf("\t|\n"); printf("\t\t\t|---------------------------------------|\n"); }

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!

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ı...