El sistema de reserva de boletos de tren se implementa mediante programación en C. Es lo mismo que uno puede ver mientras buscamos la reserva de boletos en línea. La siguiente serie de pasos se siguen al reservar un boleto de tren en este software:
- El primer paso es proporcionar el número total de pasajeros y enviar todos los detalles necesarios de los pasajeros.
- El siguiente paso es ingresar el origen y el destino.
- Aparecerá una lista de trenes disponibles. Entre ellos, el usuario tiene que elegir uno.
- Se evaluará el valor del boleto. El sistema le pedirá que ingrese la opción de asiento mostrando la array de asientos. Por último, se generará un recibo en la pantalla.
Acercarse:
- El primer paso es implementar una estructura para tomar los detalles de los pasajeros, como nombre, sexo y edad.
- Se definen cinco funciones void details(int), void add_node(char, char, int), int seat(int), int cal(int, int, int), void bill(int, int) para trabajar sin problemas.
- Hay tres elementos en la estructura como dos strings, una para tomar el nombre y el sexo del pasajero y un número entero para tomar la edad del pasajero. Además, se utilizará un puntero de estructura que ayuda a vincular el siguiente Node de otro pasajero. Es similar a la lista enlazada .
- Las arrays de caracteres se definen y algunas arrays de enteros se definen globalmente.
- Tome el número de pasajeros como entrada y estos detalles se envían a la función de detalles() .
- Ejecute un ciclo for para tomar los detalles de cada pasajero. Los detalles ingresados por el usuario se enviarán a la función add_node().
- En la función add_node, cada detalle se almacenará en un Node para cada pasajero. Estos Nodes se vincularán entre sí. Esto se basa en el concepto de lista enlazada.
- Tome la entrada para el lugar de origen, el lugar de destino y le dará algunas opciones de trenes disponibles. Basado en eso, el usuario tiene que dar una opción. Luego llame a la función cal() .
- En la función cal() , el usuario tiene que dar una opción para dormir o clase ac. Si el usuario elige la clase ac, se abrirán otras tres opciones en las que el usuario tiene que dar otra opción en función de que el sistema agregará un 18% GST sobre el monto y hará el monto total.
- Llame a la función seat() donde se le dará una array de asiento al usuario y el usuario tiene que elegir un asiento igual al número de pasajeros.
- Por último, llame a la función bill() donde se mostrará el monto total de la factura con todos los detalles necesarios.
A continuación se muestra la implementación del enfoque anterior:
C
// C program for the above approach #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // Defining Structure typedef struct mynode { char name[20]; char gen[6]; int age; struct mynode* link; } Node; Node* start = NULL; void details(int); int seat(int); int cal(int, int, int); void bill(int, int); // Global variables char source[20], des[20], train[40]; char station[40], cla[40]; int time1, time2, a[55]; // Driver Code void main() { int i, j, a1, a2, b, c, int x = 0, d, e, r; char o; printf("Enter Number Of Passengers: "); fflush(stdin); scanf("%d", &j); // Calling details() function with // argument number of passenger details(j); printf("Enter The Source Place: "); fflush(stdin); gets(source); printf("Enter The Destination Place: "); gets(des); printf("\t\tThe Following Trains " "Are Available.....\n"); printf("\t\t1. Rajdhani Express.." ".......10:00 " "a.m........Sealdah Station\n"); printf("\t\t2. Satabdi Express..." ".......05:00 " "p.m........Howrah Station\n"); printf("\t\t3. Humsafar Express..." ".......11:00 " "p.m........Kolkata Chitpur" " Station\n"); printf("\t\t4. Garib-Rath Express" ".........05:00 " "p.m........Sealdah Station\n"); printf("\t\t5. Duronto Express..." ".........07:00 " "a.m.........Santraganchi" "Station\n"); scanf("%d", &i); do { switch (i) { case 1: { strcpy(train, "Rajdhani Express"); strcpy(station, "Sealdah Station"); time1 = 10; time2 = 00; a1 = 2099; a2 = 1560; // Calling cal() function // with the three argument // and return value d = cal(a1, a2, j); printf("Total Bill Amount:" " %d\n", d); }; break; case 2: { strcpy(train, "Satabdi Express"); strcpy(station, "Howrah Station"); time1 = 05; time2 = 00; a1 = 1801; a2 = 981; // Calling cal() function with // three argument & return value d = cal(a1, a2, j); printf("Total Bill Amount:" "%d\n", d); }; break; case 3: { strcpy(train, "Humsafar Express"); strcpy(station, "Kolkata Chitpur Express"); time1 = 11; time2 = 00; a1 = 2199; a2 = 1780; // Calling cal() function with // three argument & return value d = cal(a1, a2, j); printf("Total Bill Amount: %d\n", d); }; break; case 4: { strcpy(train, "Garib-Rath Express"); strcpy(station, "Sealdah Station"); time1 = 05; time2 = 00; a1 = 1759; a2 = 1200; // Calling cal() function with // three argument & return value d = cal(a1, a2, j); printf("Total Bill Amount: %d\n", d); }; break; case 5: { strcpy(train, "Duronto Express"); strcpy(station, "Santraganchi Station"); time1 = 07; time2 = 00; a1 = 2205; a2 = 1905; // Calling cal() function with // three argument & return value d = cal(a1, a2, j); printf("Total Bill Amount: %d\n", d); }; break; default: printf("Enter Correct choice.....\n"); x = 1; break; } } while (x); printf("Now Book Your Seats......\n"); // Calling seat() function with number // of passenger seat(j); // Calling bill() function with // the number of passenger // and amount argument bill(d, j); } // Function for calculation of amount int cal(int y1, int y2, int h) { int b, c, i, t, r, n; printf("\t\tEnter Your Choice......\n"); printf("\t\t1. Slepper Class....\n"); printf("\t\t2. A.C Class.......\n"); scanf("%d", &i); switch (i) { case 1: { strcpy(cla, "Slepper Class"); b = y2 * h; c = b + (b * 0.18); } break; case 2: { printf("\t\tEnter Your Choice....\n"); printf("\t\t1. 3A Class....\n"); printf("\t\t2. 2A Class....\n"); printf("\t\t3. 1st Class A.C.....\n"); scanf("%d", &n); switch (n) { case 1: { strcpy(cla, "3A Class"); b = y1 * h; c = b + (b * 0.18); } break; case 2: { strcpy(cla, "2A Class"); b = (y1 + 1000) * h; c = b + (b * 0.18); } break; case 3: { strcpy(cla, "1st Class A.C."); b = (y1 + 5000) * h; c = b + (b * 0.18); } break; default: { printf("\t\tEnter Right Choice......\n"); } } } break; default: { printf("\t\tEnter Right Choice......\n"); } } return c; } // Function for taking details // of passengers void details(int k) { int i, a; char val[20], gen[6]; for (i = 1; i <= k; i++) { printf("Enter The %dth Passenger Name: ", i); fflush(stdin); gets(val); printf("Enter The %dth Passenger Gender: ", i); fflush(stdin); gets(gen); printf("Enter The %dth Passenger Age: ", i); fflush(stdin); scanf("%d", &a); // Calling add_node() function add_node(val, gen, a); } } // Function to add details in node // for each passengers void add_node(char lol[20], char der[6], int b) { Node *newptr = NULL, *ptr; newptr = (Node*)malloc(sizeof(Node)); strcpy(newptr->name, lol); strcpy(newptr->gen, der); newptr->age = b; newptr->link = NULL; if (start == NULL) start = newptr; else { ptr = start; while (ptr->link != NULL) ptr = ptr->link; ptr->link = newptr; } } // 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("\tEnter Seat Numbers: \n"); for (i = 0; i < p; i++) scanf("%d", &a[i]); } // Function for printing receipt void bill(int y, int j) { int i; Node* ptr = start; for (i = 1; i <= j; i++) { printf("\t\t\%dst Passenger Name: ", i); puts(ptr->name); printf("\t\t%dst Passenger Gender: ", i); puts(ptr->gen); printf("\t\t%dst Passenger Age: %d\n\n", i, ptr->age); ptr = ptr->link; } printf("\t\tSource Place: "); puts(source); printf("\t\tDestination Place: "); puts(des); printf("\t\tThe Boarding Station: "); puts(station); printf("\t\tTrain Is: "); puts(train); printf("\t\tAllocated Class: "); puts(cla); printf("\t\tBoarding Time: %d:%d\n", time1, time2); printf("\t\tTotal Bill Amount: %d\n", y); printf("\t\tAllocated Seats Are: \n"); for (i = 0; i < j; i++) { printf("\t\t%d ", a[i]); } printf("\n"); printf("\t\t\t\tThank You......\n"); }
Producción:
Publicación traducida automáticamente
Artículo escrito por sounetraghosal2000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA