C Programlama Tarih Zaman Komutları Yardım ?
-
mevcut programla ugrasıyorum takıldıgım bır yer oldu yardımcı olursanız sevınırım
Amac= Arac kıralanıyor ama aracın ne zaman kıralandıgı cıkmıyor
Algorıtması ise soyle = arac kıralanıyor ve belırtılen plaka kodu yazılınca kıradan gerı donuyor
ıste bu sure zarfı ne kadar onu cıkarmak ıstıyorum programı yazıyorum gerekırse setupunuda koyabılırım
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <string.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
FILE *f1,*f2; int secim=0; int i; int silsaydir; int kontrolcu; int durum; int tur;
char dizi[50];
char kontrol[60]; char numara[10];
struct kiralanmamis_araclar{
char No[10];
char Marka[15];
char Model[15];
char yil[6];
char oturma_kapasitesi[4];
};
struct kiralanmamis_araclar x;
printf("1.Yeni Bir Arac Ekle\n");
printf("2.Arac Sil\n");
printf("3.Arac Bilgilerini Goster\n");
printf("4.Arac Kiralama\n");
printf("5.Arac Iadesi\n");
printf("6.Cikis\n");
while(secim!=6)
{
if((f1=fopen("araba.txt","r+"))==NULL)
{
if((f1=fopen("araba.txt","w+"))==NULL)
{
printf("Dosya Acilamadi"); return 0;
}
}
printf("\n");
printf("Secimini Giriniz: ");
scanf("%d",&secim);
for(i=0;i<10;i++)
numara[i]='\0';
for(i=0;i<60;i++)
kontrol[i]='\0';
for(i=0;i<10;i++)
x.No[i]='\0';
for(i=0;i<15;i++)
x.Marka[i]='\0';
for(i=0;i<15;i++)
x.Model[i]='\0';
for(i=0;i<6;i++)
x.yil[i]='\0';
for(i=0;i<4;i++)
x.oturma_kapasitesi[i]='\0';
if(secim ==1)
{
printf("Aracin Nosunu Giriniz:");
scanf("%s",&x.No);
printf("Aracin Markasini Giriniz:");
scanf("%s",&x.Marka);
printf("Aracin Modelini Giriniz:");
scanf("%s",&x.Model);
printf("Aracin Yilini Giriniz:");
scanf("%s",&x.yil);
printf("Aracin Kapasitesini Giriniz:");
scanf("%s",&x.oturma_kapasitesi);
fseek(f1,0,SEEK_END);
fwrite(&x,sizeof(x),1,f1);
fputc('\n',f1);
fclose(f1);
}
if(secim==2)
{
printf("Silinecek Aracin No'sunu Giriniz:");
scanf("%s",numara);
kontrolcu=0;
for(i=0;i<10;i++)
{
if(numara[i]=='\0')
break;
else
kontrolcu++;
}
tur=0;
fseek(f1,0,SEEK_SET);
while(!feof(f1))
{
tur++;
silsaydir=0;
fgets(dizi,60,f1);
for(i=0;i<kontrolcu;i++)
{
if(numara[i]==dizi[i])
silsaydir++;
}
if((silsaydir==kontrolcu)&&(dizi[49]!='X')&&(dizi[49]!='K'))
{durum=1; break;}
else
durum=0;
}
if(durum==1)
{
fseek(f1,((tur*sizeof(x))-1)+(tur)+(tur-2),SEEK_SET);
putc('X',f1);
printf("Kayit Silinmistir\n");
fclose(f1);
}
else
{
printf("Girilen Kayit Numarasina Ait Kiralanmamis Bir Arac Yoktur\n");
}
}
if(secim==3)
{
printf("ARAC NO MARKA MODEL YIL KP DURUM\n");
printf("\n");
fseek(f1,0,SEEK_SET);
while(!feof(f1))
{
fgets(kontrol,60,f1);
if(kontrol[49]!='X')
{
for(i=0;i<50;i++)
{
printf("%c",kontrol[i]);}
printf("\n");
for(i=0;i<60;i++)
kontrol[i]=32;
}
}
fclose(f1);
}
if(secim==4)
{
printf("Kiralanacak Aracin No'sunu Giriniz:");
scanf("%s",numara);
kontrolcu=0;
for(i=0;i<10;i++)
{
if(numara[i]=='\0')
break;
else
kontrolcu++;
}
tur=0;
fseek(f1,0,SEEK_SET);
while(!feof(f1))
{
tur++;
silsaydir=0;
fgets(dizi,60,f1);
for(i=0;i<kontrolcu;i++)
{
if(numara[i]==dizi[i])
silsaydir++;
}
if((silsaydir==kontrolcu)&&(dizi[49]!='X'))
{durum=1; break;}
else
durum=0;
}
if(durum==1)
{
fseek(f1,((tur*sizeof(x))-1)+(tur)+(tur-2),SEEK_SET);
putc('K',f1);
printf("Arac Kiralanmistir\n");
fclose(f1);
}
else
{
printf("Girilen Kayit Numarasina Ait Kiralanmamis Bir Arac Yoktur\n");
}
}
if(secim==5)
{
printf("Kiradan Dönen Aracin No'sunu Giriniz:");
scanf("%s",numara);
kontrolcu=0;
for(i=0;i<10;i++)
{
if(numara[i]=='\0')
break;
else
kontrolcu++;
}
tur=0;
fseek(f1,0,SEEK_SET);
while(!feof(f1))
{
tur++;
silsaydir=0;
fgets(dizi,60,f1);
for(i=0;i<kontrolcu;i++)
{
if(numara[i]==dizi[i])
silsaydir++;
}
if((silsaydir==kontrolcu)&&(dizi[49]=='K'))
{durum=1; break;}
else
durum=0;
}
if(durum==1)
{
fseek(f1,((tur*sizeof(x))-1)+(tur)+(tur-2),SEEK_SET);
putc(' ',f1);
printf("Arac Kiradan Donmustur\n");
fclose(f1);
}
else
{
printf("Girilen Kayit Numarasina Ait Kiralanmis Bir Arac Yoktur\n");
}
}
}
printf("Iyi Gunler");
getche();
return 0; -
up
-
oncelikle bir diziyi sifirlamak icin memset fonksiyonunu kullanabilirsin.
ve eger her secimin islemini ayri bi fonksiyona yaptirirsan kodun daha anlasilir olur. duz yazi gibi yazicaksan c'yi kullanmanin amaci kalmaz.;)
ornegin
.
.
.switch(secim)
{
case 1:
OnSecim1();
break;
}
.
.
.void OnSecim1(void)
{
//secim1de isletilicek kodlar.
}
