Arkadaşlar kodların tamamı aşağıdadır...
ek olarak, proje kaynak dosyasınız yanına "otomobiller.txt" isminde bir metin dosyası
oluşturarak otomobile ait numara, marka, model, fiyat
bilgilerini birer tab boşluk vererek kaydedin, program çalışacaktır...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Kisi {
char ad[20], soyad[20], tel[20], adres[20], id[20] , parola[20], parolaTekrar[20] ;
};
struct Oto {
int numara;
char marka[20], model[20] ;
int fiyat;
};
void aracKirala( struct Kisi k1 )
{
struct Oto o1;
char tarih[20];
int numara, toplamUcret, gunSayisi;
int sonuc=0;
printf("mevcut arac bilgileri \n\n") ;
printf("%s\t%s\t%s\n", "SIRANO", "MARKA", "MODEL", "FIYAT" ) ;
FILE *ptr = fopen("otomobiller.txt", "r") ;
if( ptr!=NULL )
{
while ( ( fscanf(ptr, "%d\t%s\t%s\t%d\n", &o1.numara, o1.marka, o1.model, &o1.fiyat ) ) != EOF )
{
printf("%d\t%s\t%s\t%d\n", o1.numara, o1.marka, o1.model, o1.fiyat ) ;
}
rewind(ptr) ;
printf("kiralamak istediginiz aracin numarasini girin : ") ; scanf("%d", &numara) ;
while ( ( fscanf(ptr, "%d\t%s\t%s\t%d\n", &o1.numara, o1.marka, o1.model, &o1.fiyat ) ) != EOF )
{
if( numara == o1.numara )
{
printf("sectiginiz aracin bilgileri : %d\t%s\t%s\t%d\n", o1.numara, o1.marka, o1.model, o1.fiyat ) ;
sonuc =1;
fclose(ptr) ;
break;
}
}
if( sonuc ==1 )
{
printf("kiralama tarihi : ") ; scanf("%s", tarih) ;
printf("kiralama gun sayisi : ") ; scanf("%d", &gunSayisi) ;
toplamUcret = gunSayisi * o1.fiyat ;
printf("\n kiralama on sosmeniz basariyla gerceklestirildi \n") ;
printf("toplam ucret olan %d TL yi asagidaki IBAN numarasina yatirmaniz halinde \n", toplamUcret) ;
printf("oto kiralama sozlesmeniz kesinlesmis olacaktir \n") ;
FILE *ptr2= fopen( "kiralananAraclar.txt", "a+") ;
if( ptr2!= NULL )
{
fprintf ( ptr2, "\n\n****************************************** \n" ) ;
fprintf(ptr2, "kisi bilgileri : %s\t%s\t%s\t%s\n", k1.ad, k1.soyad, k1.tel, k1.adres ) ;
fprintf(ptr2, "arac bilgileri : %d\t%s\t%s\n", o1.numara, o1.marka, o1.model ) ;
fprintf(ptr2, "kiralama tarihi: %s\n", tarih ) ;
fprintf(ptr2, "ucret bilgileri: %d X %d = %d ", gunSayisi, o1.fiyat, toplamUcret ) ;
fclose(ptr2) ;
}
}
else
{
system("cls") ;
printf("hatali secim yaptiniz \n ") ;
aracKirala(k1) ;
}
}
}
void giris()
{
char id[20], parola[20] ;
int static adet= 0;
int sonuc= 0;
struct Kisi k1;
printf("giris ekrani \n ");
printf("kullanici adi ( ID ) : "); scanf("%s", id) ;
printf("parola : ") ;
char ch;
int i=0;
ch= getch() ;
while( ch!= 13 )
{
parola[i] = ch;
printf(" * ") ;
ch= getch();
i++;
}
parola[i] = '\0' ;
FILE *ptr= fopen( "musteriBilgileri.dat", "r+" ) ;
if( ptr!=NULL )
{
while( ( fread( &k1, sizeof(struct Kisi), 1, ptr ) ) !=NULL )
{
if( strcmp( id, k1.id ) ==0 && strcmp( parola, k1.parola ) ==0 )
{
system("cls") ;
printf("\ngiris basarili \n\n") ;
printf("hos geldiniz %s %s \n\n", k1.ad, strupr(k1.soyad ) ) ;
fclose(ptr) ;
sonuc= 1;
break;
}
}
}
if( sonuc==0 )
{
system("cls") ;
printf("\nhatali kullani adi veya parola \n") ;
adet++;
if( adet==3 )
{
printf("\nCok fazla deneme yaptiniz, ana menuye yonlendiriliyorsunuz \n") ;
adet=0;
return 0;
}
giris();
}
else
{
aracKirala(k1);
}
}
void yeniKayit()
{
struct Kisi k1;
printf("\nyeni kayit ekrani, \n\n") ;
printf("ad : ") ; scanf(" %[^\n]s", k1.ad) ;
printf("soyad : ") ; scanf(" %[^\n]s", k1.soyad) ;
printf("GSM : ") ; scanf(" %[^\n]s", k1.tel) ;
printf("adres : ") ; scanf(" %[^\n]s", k1.adres) ;
printf("ID : ") ; scanf(" %[^\n]s", k1.id) ;
printf("parola (en az 8 karakter) : ") ;
char ch;
int i=0;
ch= getch() ;
while( ch!= 13 )
{
k1.parola[i] = ch;
printf(" * ") ;
ch= getch();
i++;
}
k1.parola[i] = '\0' ;
printf("\nparola tekrari : ") ;
i=0;
ch= getch() ;
while( ch!= 13 )
{
k1.parolaTekrar[i] = ch;
printf(" * ") ;
ch= getch();
i++;
}
k1.parolaTekrar[i] = '\0' ;
if( strcmp( k1.parola, k1.parolaTekrar ) ==0 && strlen(k1.parola) >=8 )
{
FILE *ptr= fopen( "musteriBilgileri.dat", "a+b" ) ;
if( ptr!=NULL )
{
fwrite( &k1, sizeof(struct Kisi), 1, ptr ) ;
fclose(ptr) ;
system("cls") ;
printf("\nkayit islemi basarili \n") ;
}
}
else
{
printf("\nparola kayit isleminizde hata var !!! \n") ;
yeniKayit();
}
}
int menu ()
{
int secim;
printf("\nOTO KIRALAMA UYGULAMASI \n\n") ;
printf("1- giris \n") ;
printf("2- yeni kayit \n") ;
printf("3- cikis \n") ;
printf("seciminiz : ") ; scanf("%d", &secim );
return secim;
}
int main()
{
int secim= menu();
while (secim != 3 )
{
switch( secim )
{
case 1: giris(); break;
case 2: yeniKayit(); break;
case 3: printf("cikis yaptiniz \n") ; break;
default : printf("hatali secim yaptiniz \n") ;
}
secim = menu();
}
return 0;
}
Hiç yorum yok:
Yorum Gönder
Her yorum bilgidir. Araştırmaya devam...