#include<stdio.h>
#include<conio.h>
#include<Windows.h>
#include <time.h>
#define A 3// name a constant
struct book
{
char name[20];
int ID_card;
int contact_number;
int dd;
int mm;
int yy;
long int booking_ID ;
} customer_records[A];
void main()
{
void Display_reservation();
void reservation();
void cancelation();//prototype
int ch= 0;
do
{
system ("cls");
printf("\n \n \t **Welcome to ballroom reservation system** ");
Sleep(1000);
printf("\n \n \n \t \t 1.Reservation \n \n \t \t 2.Cancelation \n \n \t \t 3.Display Reservations \n \n \t \t 4.Exit system \n \n \t \t \t Enter your choice_: ");
scanf("%d" , &ch);
// Displaying the main menu
switch (ch)
{
default:
printf(" \n \n \t Please enter the right selection");
Sleep(1500);
break;
case 1:
reservation(); /// calling the function
break;
case 2 :
cancelation();
break;
case 3:
Display_reservation();
break;
case 4 :
system("cls");
printf(" \n \n \t \t Exiting the system");
Sleep(1300);
return;
}
} while (ch != 5);
}
void reservation()
{
int ctr=0 ;
char banana;
static int id = 1000;
FILE *Reservee;
system ("cls");
Reservee = fopen("newrecords.txt", "w+");
if (Reservee == NULL) // opening hte file in writing mode
{
printf("Error in opening output file %s","newrecords.txt");
}
for (ctr=0 ; ctr < A ; )
{
do{
system("cls");
customer_records[ctr].booking_ID=id;
printf("\n\n your booking ID is %d" ,customer_records[ctr].booking_ID); fflush(stdin);
printf(" \n \n \t Enter your name please:");
scanf("%s",&customer_records[ctr].name); fflush(stdin);
system ("cls");
printf("\n \n \t Please enter your ID card number:");
scanf( "%d" , &customer_records[ctr].ID_card); fflush(stdin);
system("cls");
printf("\n \n \t Please enter your Contact number:");
scanf( "%d" , &customer_records[ctr].contact_number); fflush(stdin);
system("cls");
printf ("\n\n Enter Date on which you want to book Ballroom in following format \n yyyy-mm-dd :");
scanf ( "%d-%d-%d", &customer_records[ctr].yy ,&customer_records[ctr].mm ,&customer_records[ctr].dd); fflush(stdin);
fprintf(Reservee,"\n %d\t%s\t%d\t%d\t%d\t%d\t%d\t",customer_records[ctr].booking_ID,customer_records[ctr].name,customer_records[ctr].ID_card,customer_records[ctr].contact_number,customer_records[ctr].yy ,customer_records[ctr].mm ,customer_records[ctr].dd);
if(customer_records[ctr].yy>= 2017 && customer_records[ctr].yy<= 2018)
{
if(customer_records[ctr].mm>=01 && customer_records[ctr].mm<=12)
{
//check days
if((customer_records[ctr].dd>=1 && customer_records[ctr].dd<=31) && (customer_records[ctr].mm==1 || customer_records[ctr].mm==3 || customer_records[ctr].mm==5 || customer_records[ctr].mm==7 || customer_records[ctr].mm==8 || customer_records[ctr].mm==10 || customer_records[ctr].mm==12))
printf("\n Date is entered.\n");
else
if((customer_records[ctr].dd>=1 && customer_records[ctr].dd<=30) && (customer_records[ctr].mm==4 || customer_records[ctr].mm==6 || customer_records[ctr].mm==9 || customer_records[ctr].mm==11))
printf(" \n Date is entered.\n");
else
if((customer_records[ctr].dd>=1 && customer_records[ctr].dd<=28) && (customer_records[ctr].mm==2))
printf(" \n Date is entered.\n");
else
if(customer_records[ctr].dd==29 && customer_records[ctr].mm==2 && (customer_records[ctr].yy%400==0 ||(customer_records[ctr].yy%4==0 && customer_records[ctr].yy%100!=0)))
printf(" \n Date is entered.\n");
else
{
printf(" \n Day is invalid.\n");
break;
}
}
else
{
printf(" \n Month is not valid.\n");
break;
}
}
else
{
printf(" \n Year is not valid.\n");
break;
}
printf ("\n \n Do you want to continue your booking reservation?");
scanf("%c", &banana);
id++;
ctr++;
}while(banana == 'y' || banana == 'Y');
break;
fclose(Reservee);
getch();
}
system("cls");
printf(" \n \n \t \t \t **taking you back to main menu**");
}
void Display_reservation()
{
FILE *Reservee = fopen("newrecords.txt", "r");
int ctr;
system("cls");
if(Reservee==NULL)
{
printf("\n \n Error in opening file");
}
else
for (ctr = 0; ctr < A; ctr++)
{
fscanf(Reservee,"%d\t%s\t%d\t%d\t%d\t%d\t%d\n",&customer_records[ctr].booking_ID,&customer_records[ctr].name,&customer_records[ctr].ID_card,&customer_records[ctr].contact_number,&customer_records[ctr].yy ,&customer_records[ctr].mm ,&customer_records[ctr].dd); fflush(stdin);
printf("\n Booking ID:%d\t Name %s\t Cust ID%d\t Contact: %d\t Date:%d-%d-%d\n",customer_records[ctr].booking_ID,customer_records[ctr].name,customer_records[ctr].ID_card,customer_records[ctr].contact_number,customer_records[ctr].yy ,customer_records[ctr].mm ,customer_records[ctr].dd);
Sleep(1500);
getch();
} fclose(Reservee);
}
void cancelation()
{
FILE *Reservee, *Reservee1;
int n;
Reservee = fopen("newecords.txt","r");
Reservee1 = fopen("modifiedrecords.","w");
int ctr;
printf("\nEnter ID of employee to delete ");
scanf("%d",&n);
for(ctr=0 ;ctr<A ; ctr++)
{
while (!feof(Reservee))
{
fscanf(Reservee,"%d\t%s\t%d\t%d\t%d\t%d\t%d\n",&customer_records[ctr].booking_ID,&customer_records[ctr].name,&customer_records[ctr].ID_card,&customer_records[ctr].contact_number,&customer_records[ctr].yy ,&customer_records[ctr].mm ,&customer_records[ctr].dd); fflush(stdin);
if(customer_records[ctr].booking_ID!=n)
{
fprintf(Reservee1,"\n %d\t%s\t%d\t%d\t%d\t%d\t%d\t",customer_records[ctr].booking_ID,customer_records[ctr].name,customer_records[ctr].ID_card,customer_records[ctr].contact_number,customer_records[ctr].yy ,customer_records[ctr].mm ,customer_records[ctr].dd);
}
}
fclose(Reservee);
fclose(Reservee1);
remove("newrecords.txt");
rename("modifiedrecords.txt","newrecords.txt");
}
}
Usman_11 0 Newbie Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.