0% found this document useful (0 votes)
14 views4 pages

Project 4

Uploaded by

Ayush Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views4 pages

Project 4

Uploaded by

Ayush Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

#include <stdio.

h>
#include <stdlib.h>
#include <string.h>

struct Train
{
char train_name[100] = {0};
int train_number;
char departure_station[50];
char arrival_station[50];
int total_seats;
int booked_seats;
};

struct Passenger
{
char name[50];
int passenger_id;
int booked_train_number;
int seat_number;
};

int new_train (struct Train *tr) {


printf("Enter train name:");
scanf("%s", tr->train_name);
printf("Enter train number:");
scanf("%d", &tr->train_number);
printf("Enter departure station:");
scanf("%s", tr->departure_station);
printf("Enter arrival station:");
scanf("%s", tr->arrival_station);
printf("Enter total seats:");
scanf("%d", &tr->total_seats);

printf("\nTrain added Successfully!\n");


return 0;
}

int new_passenger (struct Passenger *pr) {

printf ("Enter passenger name:");


scanf("%s", pr->name);
printf("Enter passenger id:");
scanf("%d", &pr->passenger_id);
return 0;
}

int book_ticket(struct Passenger *tk) {


printf("Enter passenger ID:");
scanf("%d", &tk->passenger_id);
printf ("Enter train number to book:");
scanf("%d", &tk->booked_train_number);
printf("\nTicket booked successfully!");
}

void save_trains(struct Train *trains, int train_count) {


FILE *file = fopen("trains.dat", "wb");
if (file == NULL) {
printf("Error opening file to save data.\n");
return;
} else {
fwrite(&train_count, sizeof(int), 1, file);
fwrite(trains, sizeof(struct Train), train_count, file);
fclose(file);
printf("Data saved successfully.\n");
}
}

int load_trains(struct Train *trains) {


FILE *file = fopen("trains.dat", "rb"); // Open file in binary read mode
if (file == NULL) {
printf("No saved data found.\n");
return 0;
} else {
int train_count;
fread(&train_count, sizeof(int), 1, file); // Load the train count
fread(trains, sizeof(struct Train), train_count, file); // Load the
train data
fclose(file);
printf("Data loaded successfully.\n");
return train_count;
}
}

int main() {
int choice;

printf("Railway Managment System\n");


printf ("1.Add New Train\n");
printf ("2.Register New Passenger\n");
printf ("3.Book a Ticket\n");
printf ("4.Cancel a Ticket\n");
printf ("5.Search for Trains\n");
printf ("6.Display Train Schedule\n");
printf ("7.Save Data to File\n");
printf ("8.Load Data from File\n");
printf ("9.View Booking Statistics\n");
printf ("10.Exit\n");
scanf ("%d", &choice);

int i = 0, j = 0, n = 0;
struct Train trains[100];
struct Passenger passengers[1000];
struct Passenger tickets[10000];

switch (choice) {
case 1:
if (i<100) {
new_train (&trains[i]);
i++;
save_trains (trains, i);
}
else
printf("Trains limit exceeded,cannot add more train");
break;

case 2:
if (j<1000) {
new_passenger(&passengers[j]);
j++;
}
else
printf("Passenger limit exceeded, cannot add more");
break;

case 3:
if (n<10000) {
book_ticket(&tickets[n]);
n++;
}
else
printf("No seats available to book");

break;

case 4:

break;

case 5:
int p;
printf("Enter train sequence:");
scanf("%d", &p);
for(int i = 0; i < 100; i++) {
if(p == i+1)
load_trains(&trains);
printf("%s", trains[i].train_name);
}
break;

case 6:

break;

case 7:

break;

case 8:

break;

case 9:

break;

case 10:

break;

default:
printf("Invalid choice. Please try again.\n");

}
return 0;
}

You might also like