c de yazılmış çok güzel dosyalama prog. - C - C++ Webmaster bilgi bankası, knowledge base Webmaster Araçları

AnaSayfa > C - C++ > c de yazılmış çok güzel dosyalama prog.
Kategori: C - C++
Gönderen: Admin
Tarih: 2008-11-11
Puan: 8   Puan:8 | Katılımcı:1 | Katılımcı : 1
Okunma: 4044
  
 
1 puan 2 puan 3 puan 4 puan 5 puan 6 puan 7 puan 8 puan 9 puan 10 puan

/*
Onur KARABAĞ
BİLGİSAYAR MÜH.
FATİH ÜNV.
onurkarabag@mynet.com


*/
#include<stdio.h>
#include<stdlib.h>

int menu();
void add();
void remove();
void info();
void rent();
void retun();

struct available_cars {
int ID;
char Make[15];
char Model[15];
int year;
int num_of_seats;
};

struct rented_cars {
int ID;
char Make[15];
char Model[15];
int year;
int num_of_seats;
char rented_date[10];
char return_date[10];
};

FILE *available, *rented;

int main()
{
int a, option;

struct available_cars info1={0, "", "", 0, 0};

struct rented_cars info2={0, "", "", 0, 0, "", ""};

if (( available=fopen( "Available Cars.dat", "rb+" )) == NULL)
{
if(( available=fopen("Available Cars.dat", "wb"))!= NULL)
{
printf("\n.::. The file [ -Available Cars- ] was created in your system .::.");

for(a=1; a<=50; a++)
fwrite(&info1, sizeof(struct available_cars), 1, available);
}

else
printf("\n\aThe system is unable to create the file \"Available Cars\" !");
}

if(( rented=fopen("Rented Cars.dat", "rb+")) == NULL)
{
if(( rented=fopen("Rented Cars.dat", "wb")) != NULL)
{
printf("\n\n.::. The file [ -Rented Cars- ] was created in your system .::.");

for(a=1; a<=50; a++)
fwrite(&info2, sizeof(struct rented_cars), 1, rented);
}

else
printf("\n\aThe system is unable to create the file \"Rented Cars\"!");
}

fclose(available);
fclose(rented);

if (( available=fopen( "Available Cars.dat", "rb+" )) == NULL)
{
printf("\nThe file 'Available Cars' could not be opened");
}

if (( rented=fopen( "Rented Cars.dat", "rb+" )) == NULL)
{
printf("\nThe file 'Rented Cars' could not be opened");
}

option=menu();

while(option!=6)
{
switch(option)
{
case 1:
add();
break;

case 2:
remove();
break;

case 3:
info();
break;

case 4:
rent();
break;

case 5:
retun();
break;

default:
;
}

option=menu();
}

fclose(available);
fclose(rented);
printf("\n---------------------------------------------------------");
printf("\n! Your data was saved succesfully! DO NOT WORRY! Goodby !");
printf("\n---------------------------------------------------------\n\n");
system("PAUSE");
return 0;
}

int menu()
{
int a;

printf("\n\n***************************************\n"
"\n* 1. Add a New Vehicle *\n"
"\n* 2. Remove an Existing Vehicle *\n"
"\n* 3. Vehicle information *\n"
"\n* 4. Rent a Vehicle *\n"
"\n* 5. Return a Vehicle *\n"
"\n* 6. Exit *\n"
"\n*************************************** ");

printf("\n\nEnter your option:");
scanf("%d", &a);

if(a<0 || a>6)
printf("\n\n\aInvalid option! please re-try!");

return a;
}

void add()
{
int id;
struct available_cars add_car;

printf("\n\nEnter Car's ID > 0 [-1 to end]: ");
scanf("%d", &id);

while(id>0)
{
fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);

fread(&add_car, sizeof(struct available_cars), 1, available);

if(add_car.ID!=0)
{
while(add_car.ID!=0)
{
printf("\n\a.::ID already exists or is out of bound! please re-enter ID [-1 to end]:");
scanf("%d", &id);

if(id == -1)
return;

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);
fread(&add_car, sizeof(struct available_cars), 1, available);
}
}

printf("\n\nEnter Car's Make, Model, Number of Seats and Year : ");
scanf("%s %s %d %d",add_car.Make, add_car.Model, &add_car.num_of_seats, &add_car.year);

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);

add_car.ID=id;

fwrite(&add_car, sizeof(struct available_cars), 1, available);

printf("\n\nEnter Car's ID > 0 [-1 to end]: ");
scanf("%d", &id);
}
}

void remove()
{
int delt;
struct available_cars del={0, "", "", 0, 0};
struct available_cars empty={0, "", "", 0, 0};

printf("\nEnter the Car's ID to Delete [-1 to end]: ");
scanf("%d", &delt);

if(delt == -1)
return;

fseek(available, (delt - 1) * sizeof(struct available_cars), SEEK_SET);
fread(∅, sizeof(struct available_cars), 1, available);

if(empty.ID==0 || delt<=0)
{
while(empty.ID==0 || delt<=0)
{
printf("\n\a.::Car ID # %d does not exist! please re-try: ", delt);
scanf("%d", &delt);

if(delt == -1)
return;

fseek(available, (delt - 1) * sizeof(struct available_cars), SEEK_SET);
fread(∅, sizeof(struct available_cars), 1, available);
}
}

printf("\nAre you sure you want to delete Car ID # %d [y/n]: ", delt);

if((getchar())== 'Y' || (getchar())== 'y')
{
fseek(available, (delt - 1) * sizeof(struct available_cars), SEEK_SET);
fwrite(&del, sizeof(struct available_cars), 1, available);
}

printf("\nDo you want to continue Deleting other Cars? [y/n]: ");

if((getchar())== 'Y' || (getchar())== 'y' )
remove();

}

void info()
{
int check=0;
struct available_cars car_info1;
struct rented_cars car_info2;

printf("\n\n A V A I L A B L E C A R S");
printf("\n***********************************\n");

printf("\n\n I D M A K E M O D E L S E A T S Y E A R ");
printf("\n--------------------------------------------------------------------\n");

rewind(available);
fread(&car_info1, sizeof(struct available_cars), 1, available);

while(!feof(available))
{
if(car_info1.ID!=0)
printf("\n %-12d %-15s %-18s %-12d %-14d\n", car_info1.ID, car_info1.Make, car_info1.Model, car_info1.num_of_seats, car_info1.year);

fread(&car_info1, sizeof(struct available_cars), 1, available);
}

rewind(available);

while(!feof(available))
{
fread(&car_info1, sizeof(struct available_cars), 1, available);

if(car_info1.ID!=0)
check++;
}

if(check==0)
printf("\n %3s %12s %16s %15s %13s", "...", "...", "...", "...", "...");



printf("\n");

printf("\n\n R E N T E D C A R S");
printf("\n******************************\n");

printf("\n\n ID MAKE MODEL SEATS YEAR RENTED DATE RETURN DATE");
printf("\n-------------------------------------------------------------------------------\n");

rewind(rented);
fread(&car_info2, sizeof(struct rented_cars), 1, rented);

while(!feof(rented))
{
if(car_info2.ID!=0)
printf("\n %-5d %-11s %-13s %-8d %-11d %-14s %-16s", car_info2.ID, car_info2.Make, car_info2.Model, car_info2.num_of_seats,
car_info2.year, car_info2.rented_date, car_info2.return_date);

fread(&car_info2, sizeof(struct rented_cars), 1, rented);
}

rewind(rented);

check=0;

while(!feof(rented))
{
fread(&car_info2, sizeof(struct rented_cars), 1, rented);

if(car_info2.ID!=0)
check++;
}

if(check==0)
printf("%3s %6s %12s %11s %10s %11s %15s", "..", "...", "...", "...", "...", "...", "...");

printf("\n");

}

void rent()
{
int id;
struct available_cars empty = {0, "", "", 0, 0};
struct available_cars info1;
struct rented_cars info2;

printf("\nEnter the Car's ID to rent [-1 to end]:");
scanf("%d", &id);

if(id == -1)
return;

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);
fread(&info1, sizeof(struct available_cars), 1, available);

if(info1.ID==0 || info1.ID!=id)
{
while(info1.ID==0 || info1.ID!=id)
{
printf("\n\a.::.Car ID # %d does not exist in the available cars list!.::.\n\nPlease re-try [-1 to end]: ", id);
scanf("%d", &id);

if(id == -1)
return;

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);
fread(&info1, sizeof(struct available_cars), 1, available);
}
}

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);
fread(&info2, sizeof(struct rented_cars), 1, available);

printf("\nEnter the rented date and the return date [dd/mm/yyyy]:");
scanf("%s %s", info2.rented_date, info2.return_date);

fseek(rented, (id - 1) * sizeof(struct rented_cars), SEEK_SET);
fwrite(&info2, sizeof(struct rented_cars), 1, rented);

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);
fwrite(∅, sizeof(struct available_cars), 1, available);

printf("\nDo you want to continue renting other Car's? [y/n]:");

if((getchar())== 'Y' || (getchar())== 'y' )
rent();

}

void retun()
{
int id;
struct rented_cars empty = {0, "", "", 0, 0, "", ""};
struct available_cars info1;
struct rented_cars info2;

printf("\nEnter the Car's ID to return [-1 to end]:");
scanf("%d", &id);

if(id == -1)
return;

fseek(rented, (id - 1) * sizeof(struct rented_cars), SEEK_SET);
fread(&info2, sizeof(struct rented_cars), 1, rented);

if(info2.ID==0 || info2.ID!=id)
{
while(info2.ID==0 || info2.ID!= id)
{
printf("\n\a.::.Car ID # %d does not exist in the rented cars list!.::.\n\nPlease re-try [-1 to end]: ", id);
scanf("%d", &id);

if(id == -1)
return;

fseek(rented, (id - 1) * sizeof(struct rented_cars), SEEK_SET);
fread(&info2, sizeof(struct rented_cars), 1, rented);
}
}

fseek(rented, (id - 1) * sizeof(struct rented_cars), SEEK_SET);
fread(&info1, sizeof(struct available_cars), 1, rented);

fseek(available, (id - 1) * sizeof(struct available_cars), SEEK_SET);
fwrite(&info1, sizeof(struct available_cars), 1, available);

fseek(rented, (id - 1) * sizeof(struct rented_cars), SEEK_SET);
fwrite(∅, sizeof(struct rented_cars), 1, rented);

printf("\nDo you want to continue returning other Car's? [y/n]:");

if((getchar())== 'Y' || (getchar())== 'y' )
retun();

}




Yorumlar
Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin!
Yorum Ekleme Aparatı
Yorum Eklemek için lütfen sol menuden giris yapınız..
Toplam 0 yorum listelendi.