#include <stdio.h>
#include <stdlib.h>
//Fonksiyonlarından yapabimemiz için gerekli kütüphaneler eklendi
int
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 cagirildi
scanf
(
"%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')) sonu
else
{
if
((Arac_tipi==
'o'
)||(Arac_tipi==
'O'
)){
//Araç Tipi minibüs/Otobüs ise
Toplam_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')) sonu
else
{
//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')) sonu
getchar
();
getchar
();
return
0;
}
//main fonksiyonunun sonu
Hiç yorum yok:
Yorum Gönder