Practical 9: Implement application using suitable data structure for Railway Reservation System
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Define the node structure
typedef struct Passenger {
char name[20];
char gender[6];
int age;
struct Passenger* next;
} Passenger;
// Global variables
Passenger* start = NULL; // Head pointer to the linked list
int a[60]; // Seat numbers array
char source[20], des[20], station[20], train[20], cla[20];
int time1, time2;
// Function prototypes
void details(int k);
void add_node(char val[20], char gen[6], int age);
int seat(int p);
void bill(int y, int j);
// Main function
int main() {
int numberOfPassengers, totalBill, boardingTime1,
boardingTime2;
// Get input details
printf("Enter Source: ");
gets(source);
printf("Enter Destination: ");
gets(des);
printf("Enter Boarding Station: ");
gets(station);
printf("Enter Train Name: ");
gets(train);
printf("Enter Class: ");
gets(cla);
printf("Enter Boarding Time (HH MM): ");
scanf("%d %d", &time1, &time2);
printf("Enter Number of Passengers: ");
scanf("%d", &numberOfPassengers);
details(numberOfPassengers); // Take passenger details
seat(numberOfPassengers); // Choose seats
totalBill = 500 * numberOfPassengers; // Sample calculation for
total bill
bill(totalBill, numberOfPassengers); // Generate and print bill
return 0;
}
// Function for taking details of passengers
void details(int k) {
int i, age;
char name[20], gender[6];
for (i = 1; i <= k; i++) {
printf("Enter the %dth Passenger Name: ", i);
fflush(stdin);
gets(name);
printf("Enter the %dth Passenger Gender: ", i);
fflush(stdin);
gets(gender);
printf("Enter the %dth Passenger Age: ", i);
fflush(stdin);
scanf("%d", &age);
printf("-------------------------------------------------\n");
// Call add_node() to add the passenger to the linked list
add_node(name, gender, age);
}
}
// Function to add a node (passenger details) to the linked list
void add_node(char name[20], char gender[6], int age) {
Passenger* newPassenger =
(Passenger*)malloc(sizeof(Passenger));
strcpy(newPassenger->name, name);
strcpy(newPassenger->gender, gender);
newPassenger->age = age;
newPassenger->next = NULL;
if (start == NULL) {
start = newPassenger;
} else {
Passenger* ptr = start;
while (ptr->next != NULL) {
ptr = ptr->next;
}
ptr->next = newPassenger;
}
}
// Function for choosing seats
int seat(int p) {
int i;
printf("\t -:SEAT MATRIX:- \n");
printf("\t(U) (M) (L) (L) (U)\n\n");
printf("\t01 02 03\t04 05\n\n");
printf("\t06 07 08\t09 10\n");
printf("\t11 12 13\t14 15\n\n");
printf("\t16 17 18\t19 20\n");
printf("\t21 22 23\t24 25\n\n");
printf("\t26 27 28\t29 30\n");
printf("\t31 32 33\t34 35\n\n");
printf("\t36 37 38\t39 40\n");
printf("\t41 42 43\t44 45\n\n");
printf("\t46 47 48\t49 50\n");
printf("\t51 52 53\t54 55\n\n");
printf("\t56 57 58\t59 60\n");
printf("\nEnter Seat Numbers for %d Passengers: \n", p);
for (i = 0; i < p; i++) {
scanf("%d", &a[i]);
}
return 0;
}
// Function to print the bill and generate the receipt
void bill(int totalAmount, int numPassengers) {
int i;
Passenger* ptr = start;
for (i = 1; i <= numPassengers; i++) {
printf("\t\t%dth Passenger Name: ", i);
puts(ptr->name);
printf("\t\t%dth Passenger Gender: ", i);
puts(ptr->gender);
printf("\t\t%dth Passenger Age: %d\n\n", i, ptr->age);
ptr = ptr->next;
}
printf("\t\tSource Place: ");
puts(source);
printf("\t\tDestination Place: ");
puts(des);
printf("\t\tThe Boarding Station: ");
puts(station);
printf("\t\tTrain Name: ");
puts(train);
printf("\t\tAllocated Class: ");
puts(cla);
printf("\t\tBoarding Time: %d:%d\n", time1, time2);
printf("\t\tTotal Bill Amount: %d\n", totalAmount);
printf("\t\tAllocated Seats Are: \n");
for (i = 0; i < numPassengers; i++) {
printf("\t\t%d ", a[i]);
}
printf("\n\t\t\t\tThank You......\n");
}
Practical 9: Implement application using suitable
data structure for Railway Reservation System
Reviewed by RISHI and ARYAN
on
09:20
Rating:

No comments:
May I help you ?