Buyrun arkadaslar buda c ıle yazılmıs basıt bır otopark programı
#include<stdio.h>
main()
{
int ay_giris,gun_giris,saat_giris,dakika_giris,ay_cikis,gun_cikis,saat_cikis,dakika_cikis,dakika_son,ara_sonuc,saat_son,ara_sonuc4,ara_sonuc2,ara_sonuc3,gun_son,fiyat,son_fiyat,onemsiz;
char arac_turu;
printf("ARACINIZIN TURUNU GIRINIZ.[BINEK ICIN B/b,OTOBUS MINUBUS ICIN O/o,TIR ICIN T/t]\n");
scanf("%c",&arac_turu);
printf("GIRIS gun,ay,saat ve dakikayi aralarina bosluk koyarak yaziniz.\n");
scanf("%d%d%d%d", &gun_giris, &ay_giris, &saat_giris, &dakika_giris);
printf("CIKIS gun,ay,saat ve dakikayi aralarina bosluk koyarak yaziniz.\n");
scanf("%d%d%d%d", &gun_cikis, &ay_cikis, &saat_cikis, &dakika_cikis);
/*buraya kadar ki kısımda kullanıcının girmesi gereken bütün integerları tanımlayıp işleme geçiyorum.*/
if(dakika_giris>dakika_cikis){
dakika_son=dakika_cikis+60-dakika_giris;
ara_sonuc=saat_cikis-1;
}
else {
dakika_son=dakika_cikis-dakika_giris;
ara_sonuc=saat_cikis;
}
if(ara_sonuc<saat_giris){
saat_son=ara_sonuc+24-saat_giris;
ara_sonuc2=gun_cikis-1;
}
else{
saat_son=saat_cikis-saat_giris;
ara_sonuc2=gun_cikis;
}
/*Switch e geçmeden saatin ve dakikanın son halini almış bulunuyorum.Altta görünen iki switch ile de giriş ve çıkış günleri arasındaki farkı alıcam.Yıl belirtmediğimiz için
girilen tarihler aynı yılda olmak zorunda.O yüzden gün farklarını bulmak için,belirtilen tarihlerin arkalarında kalan ayları hesaplıyıp birbirinden çıkarırsam gün farkını elde ederim.*/
switch(ay_giris){
case 1: ara_sonuc3=gun_giris;break;
case 2: ara_sonuc3= gun_giris+31;break;
case 3: ara_sonuc3= gun_giris+59;break;
case 4: ara_sonuc3= gun_giris+90;break;
case 5: ara_sonuc3= gun_giris+120;break;
case 6: ara_sonuc3= gun_giris+151;break;
case 7: ara_sonuc3= gun_giris+181;break;
case 8: ara_sonuc3= gun_giris+212;break;
case 9: ara_sonuc3= gun_giris+243;break;
case 10: ara_sonuc3= gun_giris+273;break;
case 11: ara_sonuc3= gun_giris+304;break;
case 12: ara_sonuc3= gun_giris+334;break;
}
switch(ay_cikis){
case 1: ara_sonuc4=ara_sonuc2;break;
case 2: ara_sonuc4= ara_sonuc2+31;break;
case 3: ara_sonuc4= ara_sonuc2+59;break;
case 4: ara_sonuc4= ara_sonuc2+90;break;
case 5: ara_sonuc4= ara_sonuc2+120;break;
case 6: ara_sonuc4= ara_sonuc2+151;break;
case 7: ara_sonuc4= ara_sonuc2+181;break;
case 8: ara_sonuc4= ara_sonuc2+212;break;
case 9: ara_sonuc4= ara_sonuc2+243;break;
case 10: ara_sonuc4=ara_sonuc2+273;break;
case 11: ara_sonuc4=ara_sonuc2+304;break;
case 12: ara_sonuc4=ara_sonuc2+334;break;
}
gun_son=ara_sonuc4-ara_sonuc3;
/*Gün,saat ve dakika farklarını elde ettiğim için artık tutan miktarı hesaplıyabilirim.Verilen kurallara göre formul yazılırsa,bulunan sayıda aracın türüne göre
olan katsayıyla çarpılırsa sonuç gelicektir.*/
if(dakika_son<20)
fiyat=saat_son+gun_son*20+5;
else
if(saat_son==23)
fiyat=(gun_son+1)*20+5;
else
fiyat=saat_son+1+gun_son*20+5;
switch(arac_turu){
case 'O': case 'o': son_fiyat=fiyat*2;break;
case 'B': case 'b': son_fiyat=fiyat;break;
case 'T': case 't': son_fiyat=fiyat*3;break;
}
printf("OTOPARKTA KALDIGINIZ SURE :\n%d gun %d saat %d dakika\n",gun_son,saat_son,dakika_son);
printf("ODEMENIZ GEREKEN MIKTAR :\n%d TL",son_fiyat);
/*Alttaki scanf i koymamamın tek nedeni programın kendini,sonucu bulduktan sonra kapatmaması içindir..*/
scanf("%d",&onemsiz);
}