#include <stdio.h>#include <stdlib.h>//Fonksiyonlarından yapabimemiz için gerekli kütüphaneler eklendiint main()//main fonksiyonunun başlangıcı{char Arac_tipi; //Gerekli değişkenler tanımlandı.int Giris_gun,Giris_ay,Giris_saat,Giris_dakika;int Cikis_gun,Cikis_ay,Cikis_saat,Cikis_dakika;int Giris_birim_ucret=5,Gun_birim_ucret=20,Saat_birim_ucret=1; //Bazılarına ilk değer atamaları yapılması gerekti.int giris_dakikasi=0,bekleme_dakikasi=0,cikis_dakikasi=0; //Değer kontrolü ve hesaplamalar için.int Fark_gun,Fark_saat,Fark_dakika;int Toplam_ucret=0;//Kullanıcıdan Araç Tipini girmesini istedik.Ve girilen değer alındı.printf("Arac tipini giriniz[b/B:binek, o/O:minibus/otobus, t/T:kamyon/tir]:n\n");fflush(stdin); //tampon bellegi temizlemek icin cagirildiscanf("%c",&Arac_tipi);printf("Giris gun, ay, saat ve dakikasini aralarinda bosluk birakarak giriniz:n\n");scanf("%d %d %d %d",&Giris_gun,&Giris_ay,&Giris_saat,&Giris_dakika);//Giriş zamanı ile ilgili veriler girildi.printf("Cikis gun, ay, saat ve dakikasini aralarinda bosluk birakarak giriniz:n\n");scanf("%d %d %d %d",&Cikis_gun,&Cikis_ay,&Cikis_saat,&Cikis_dakika);//Çıkış zamanı ile ilgili veriler girildi.//---------------------------------------------------------------------giris_dakikasi= Giris_gun*1440+Giris_saat*60+Giris_dakika;//Girilen değerlerin hepsi dakikaya dönüştürüldü.Ve toplandı.//if((Giris_ay==1)) yani; Ocak ayındaysa zaten ilk ay olduğu için dakika eklenmez//Ocak:O Şubat:Ş Mart:M Nisan:N Mayıs:M Haziran:H Temmuz:T Ağustos:A Eylül:E Ekim:E Kasım:K Aralık ayına gerek yok.//Konular (while,switch/case) henüz işlenmediği için bu şekilde if yapımasından puan kırılmayacağı söylendiği için bu şekilde tasarlanmıştır.if((Giris_ay==2)) {giris_dakikasi+=31*1440; }//Şubat ayındaysa Ocak dakikaları eklenir.if((Giris_ay==3)) {giris_dakikasi+=59*1440; }//Mart ayındaysa O+Ş dakikaları eklenir.if((Giris_ay==4)) {giris_dakikasi+=90*1440; }//Nisan ayındaysa O+Ş+M dakikaları eklenir.if((Giris_ay==5)) {giris_dakikasi+=120*1440;}//Mayıs ayındaysa O+Ş+M+N dakikaları eklenir.if((Giris_ay==6)) {giris_dakikasi+=151*1440;}//Haziran ayındaysa O+Ş+M+N+M dakikaları eklenir.if((Giris_ay==7)) {giris_dakikasi+=181*1440;}//Temmuz ayındaysa O+Ş+M+N+M+H dakikaları eklenir.if((Giris_ay==8)) {giris_dakikasi+=212*1440;}//Ağustos ayındaysa O+Ş+M+N+M+H+T dakikaları eklenir.if((Giris_ay==9)) {giris_dakikasi+=243*1440;}//Eylül ayındaysa O+Ş+M+N+M+H+T+A dakikaları eklenir.if((Giris_ay==10)){giris_dakikasi+=273*1440;}//Ekim ayındaysa O+Ş+M+N+M+H+T+A+E dakikaları eklenir.if((Giris_ay==11)){giris_dakikasi+=304*1440;}//Kasım ayındaysa O+Ş+M+N+M+H+T+A+E+E dakikaları eklenir.if((Giris_ay==12)){giris_dakikasi+=334*1440;}//Aralık ayındaysa O+Ş+M+N+M+H+T+A+E+E+K dakikaları eklenir.//----------------Giriş anının dakika formatı bulundu----------------------------------------------------cikis_dakikasi= Cikis_gun*1440+Cikis_saat*60+Cikis_dakika;//Girilen değerlerin hepsi dakikaya dönüştürüldü.Ve toplandı.//if((Giris_ay==1)) yani; Ocak ayındaysa zaten ilk ay olduğu için dakika eklenmez//Ocak:O Şubat:Ş Mart:M Nisan:N Mayıs:M Haziran:H Temmuz:T Ağustos:A Eylül:E Ekim:E Kasım:K Aralık ayına gerek yok.if((Cikis_ay==2)) {cikis_dakikasi+=31*1440; }//Şubat ayındaysa Ocak dakikaları eklenir.if((Cikis_ay==3)) {cikis_dakikasi+=59*1440; }//Mart ayındaysa O+Ş dakikaları eklenir.if((Cikis_ay==4)) {cikis_dakikasi+=90*1440; }//Nisan ayındaysa O+Ş+M dakikaları eklenir.if((Cikis_ay==5)) {cikis_dakikasi+=120*1440;}//Mayıs ayındaysa O+Ş+M+N dakikaları eklenir.if((Cikis_ay==6)) {cikis_dakikasi+=151*1440;}//Haziran ayındaysa O+Ş+M+N+M dakikaları eklenir.if((Cikis_ay==7)) {cikis_dakikasi+=181*1440;}//Temmuz ayındaysa O+Ş+M+N+M+H dakikaları eklenir.if((Cikis_ay==8)) {cikis_dakikasi+=212*1440;}//Ağustos ayındaysa O+Ş+M+N+M+H+T dakikaları eklenir.if((Cikis_ay==9)) {cikis_dakikasi+=243*1440;}//Eylül ayındaysa O+Ş+M+N+M+H+T+A dakikaları eklenir.if((Cikis_ay==10)){cikis_dakikasi+=273*1440;}//Ekim ayındaysa O+Ş+M+N+M+H+T+A+E dakikaları eklenir.if((Cikis_ay==11)){cikis_dakikasi+=304*1440;}//Kasım ayındaysa O+Ş+M+N+M+H+T+A+E+E dakikaları eklenir.if((Cikis_ay==12)){cikis_dakikasi+=334*1440;}//Aralık ayındaysa O+Ş+M+N+M+H+T+A+E+E+K dakikaları eklenir.//-----------------Çıkış anının dakika formatı bulundu----------------------------------------------------bekleme_dakikasi = cikis_dakikasi-giris_dakikasi; //Bekleme süressinin kaç dakika olduğu bulunur.Fark_gun=bekleme_dakikasi/1440 ; //Dakika formatındaki sürenin kaç günü içerdiği bulunur.Fark_saat=(bekleme_dakikasi%1440)/60 ; //Dakika formatındaki sürenin kaç saati içerdiği bulunur.Fark_dakika=(bekleme_dakikasi%1440)%60 ;//Dakika formatindaki sürenin 0-60 dakika aralığındaki değeri bulunur.printf("Otoparkta kaldiginiz sure:n"); //Otoparkta kalınan süre ekrana bastırılır.printf("%d gun %d saat %d dakika n",Fark_gun,Fark_saat,Fark_dakika);if((Arac_tipi=='b')||(Arac_tipi=='B')) //Araç Tipi Binekse{Toplam_ucret = Giris_birim_ucret*1 + Fark_gun*Gun_birim_ucret*1 + Fark_saat*Saat_birim_ucret*1 ;//1 birim ücret alınacağı için sabit değerleri göstermelik olarak 1 ile çarpıldı.Toplam ücret hesaplandı.if(Fark_dakika<20)//Dakika dilimi kontrolü yapılır.Dakika dilimi 20'den azsa fazlalık zaman ücrete tabi tutulmaz.printf("Odemeniz gereken ucret: %dn",Toplam_ucret);//Ve toplam ücret ekrana bastırılır.else{Toplam_ucret+=Saat_birim_ucret;//20'den küçük değilse fazlalık zaman 1 saatlik ücret olarak tahsis edilir.printf("Odemeniz gereken ucret: %dn",Toplam_ucret);// Ve toplam ücret ekrana bastırılır.}//else sonu}//if((Arac_tipi=='b')||(Arac_tipi=='B')) sonuelse{ if((Arac_tipi=='o')||(Arac_tipi=='O')){//Araç Tipi minibüs/Otobüs iseToplam_ucret = Giris_birim_ucret*2 + Fark_gun*Gun_birim_ucret*2 + Fark_saat*Saat_birim_ucret*2 ;//2 birim ücret alınacağı için sabit değerler 2 ile çarpıldı.Toplam ücret hesaplandı.if(Fark_dakika<20)//Dakika dilimi kontrolü yapılır.Dakika dilimi 20'den azsa fazlalık zaman ücrete tabi tutulmaz.printf("Odemeniz gereken ucret: %dn",Toplam_ucret);//Ve toplam ücret ekrana bastırılır.else{Toplam_ucret+=2*Saat_birim_ucret;//20'den küçük değilse fazlalık zaman 1 saatlik ücret olarak tahsis edilir.printf("Odemeniz gereken ucret: %dn",Toplam_ucret);//Ve toplam ücret ekrana bastırılır.}//else sonu}//if((Arac_tipi=='o')||(Arac_tipi=='O')) sonuelse{//Hatali giriş söz konusu olmadığı için zaten geriye kamyon/tır Araç Tipi kaldığı için kontrole(if/else'e)gerek yoktur.Toplam_ucret = Giris_birim_ucret*3 + Fark_gun*Gun_birim_ucret*3 + Fark_saat*Saat_birim_ucret*3 ;//3 birim ücret alınacağı için sabit değerler 3 ile çarpıldı.Toplam ücret hesaplandı.if(Fark_dakika<20)//Dakika dilimi kontrolü yapılır.Dakika dilimi 20'den azsa fazlalık zaman ücrete tabi tutulmaz.printf("Odemeniz gereken ucret: %dn",Toplam_ucret);//Ve toplam ücret ekrana bastırılır.else{Toplam_ucret+=3*Saat_birim_ucret;//20'den küçük değilse fazlalık zaman 1 saatlik ücret olarak tahsis edilir.printf("Odemeniz gereken ucret: %dn",Toplam_ucret);//Ve toplam ücret ekrana bastırılır.}//else sonu}//else sonu} //else{ if((Arac_tipi=='o')||(Arac_tipi=='O')) sonugetchar();getchar();return 0;}//main fonksiyonunun sonu
Hiç yorum yok:
Yorum Gönder