Open In App

Tourism Management System in C/C++

Last Updated : 06 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

The Tourism Management System is implemented by C programming. It is as same as one can see while going for online booking. Here, the underlying idea is to present users with two choices International or India Tour packages. Then according to the choice, the available packages will be displayed.  The next step is to mention the total number of passengers and all the necessary details of the passengers. The total amount will be evaluated and a receipt will be generated on the screen.

Approach:

  • A structure is implemented for taking the details of the passengers like name, gender, and age.
  • Six functions– void details(), void add_node(char, char, int), void receipt(), void heading(), void inter(), void india() are created to handle different functionality.
  • The heading() function is declared that will make the heading of the portal.
  • The system(“cls”) is used to clear our screen.
  • Three elements are added in the structure like two strings one for taking passenger name and gender, and one integer for taking passenger age. Also, the structure pointer will be used that will help to link the next node of another passenger. It is similar to a linked list.
  • Some character arrays are defined and some integer arrays as globally.
  • The user has to give choice for International or Indian Tour packages.
  • If the user choose International tour packages then inter() function will be called. Here, the user has to choose certain packages from a list.
  • If the user choose the India tour package then india() function will be called. Here, the user has to choose certain packages from a list.
  • The details() function will be called to take the number of passengers.
  • A for loop will be executed to take details of each passenger. Then the taken details will be sent to the add_node() function.
  • In the add_node function, every detail will store into a node for each passenger. This node will link each other. This is based on the linked list concept.
  • At last, the receipt() function will be called, which will display all the necessary details.

Source Code: Below is the implementation of the above approach

C




// C program to implement
// 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;
 
// Declaring Function Used
// In This Program
void heading();
void details();
void inter();
void india();
void receipt();
 
// Global variables
int k, amount;
char type[60], place[30], date[20];
 
// Driver Code
void main()
{
    int a;
 
    // Calling heading() function
    heading();
 
    // Taking Choice From User
    printf("\t\t\t\t1. International "
           "Tour Packages\n");
    printf("\t\t\t\t2. India Tour Packages\n");
    printf("\t\t\t\tEnter Choice: ");
    scanf("%d", &a);
    switch (a) {
    // Calling inter() function
    case 1:
        inter();
        break;
 
    // Calling india() function
    case 2:
        india();
        break;
 
    default:
        printf("Enter Right Choice...");
        break;
    }
 
    // Calling details() function
    details();
 
    // Calling receipt() function
    receipt();
}
 
// Function To Take Package
// Choice From India
void india()
{
    int a;
 
    // Clearing Screen
    system("cls");
 
    // Calling heading() function
    heading();
    strcpy(type, "India Tour Package");
    printf("\t\t\t\t1. Shimla Tour Packages    "
           "6 Days 7 Nights (18880/-)\n");
    printf("\t\t\t\t2. Kashmir Tour Packages "
           "5 Days 4 Nights (35500/-)\n");
    printf("\t\t\t\t3. Kolkata Tour Packages "
           "11 Days 10 Nights (10000/-)\n");
    printf("\t\t\t\tEnter Choice: ");
    scanf("%d", &a);
    if (a == 1) {
        strcpy(place, "Shimla Tour");
        amount = 18880;
    }
    else if (a == 2) {
        strcpy(place, "Kashmir Tour");
        amount = 35500;
    }
    else if (a == 3) {
        strcpy(place, "Kolkata Tour");
        amount = 10000;
    }
    else
        printf("Enter Correct Choice...");
}
 
// Function To Take Package Choice
// From International
void inter()
{
    int a;
 
    // Clearing Screen
    system("cls");
 
    // Calling heading() function
    heading();
    strcpy(type, "International Tour Package");
    printf("\t\t\t\t1. England Tour Packages "
           "6 Days 7 Nights (28880/-)\n");
    printf("\t\t\t\t2. Thailand Tour Packages "
           "5 Days 4 Nights (15500/-)\n");
    printf("\t\t\t\t3. New York Tour Packages "
           "11 Days 10 Nights (567800/-)\n");
    printf("\t\t\t\tEnter Choice: ");
    scanf("%d", &a);
    if (a == 1) {
        strcpy(place, "England Tour");
        amount = 28880;
    }
    else if (a == 2) {
        strcpy(place, "Thailand Tour");
        amount = 15500;
    }
    else if (a == 3) {
        strcpy(place, "New York Tour");
        amount = 567800;
    }
    else
        printf("Enter Correct Choice...");
}
 
// Function To Take Passenger Details
void details()
{
    int i, a;
    char val[20], gen[6];
 
    // Clearing Screen
    system("cls");
 
    // Calling heading() function
    heading();
    printf("\t\t\t\tEnter Number Of "
           "Passengers: ");
    scanf("%d", &k);
    printf("\t\t\t\tEnter Date "
           "(DD/MM/YY): ");
    fflush(stdin);
    gets(date);
    for (i = 1; i <= k; i++) {
        system("cls");
        heading();
        printf("\t\t\t\tEnter The %dth "
               "Passenger Name: ",
               i);
        fflush(stdin);
        gets(val);
        printf("\t\t\t\tEnter The %dth "
               "Passenger Gender: ",
               i);
        fflush(stdin);
        gets(gen);
        printf("\t\t\t\tEnter 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 Printing Receipt
void receipt()
{
    int i, b;
    Node* ptr = start;
    system("cls");
    heading();
    printf("\n\t\t\t\t**Take Screenshot "
           "For Further Use**\n");
    for (i = 1; i <= k; i++) {
        printf("\t\t\t\t%dst Passenger "
               "Name: ",
               i);
        puts(ptr->name);
        printf("\t\t\t\t%dst Passenger "
               "Gender: ",
               i);
        puts(ptr->gen);
        printf("\t\t\t\t%dst Passenger "
               "Age: %d\n\n",
               i, ptr->age);
        ptr = ptr->link;
    }
    printf("\t\t\t\tSelected Type: ");
    puts(type);
    printf("\t\t\t\tPackage: ");
    puts(place);
    printf("\t\t\t\tDate: ");
    puts(date);
    b = amount * k;
    printf("\t\t\t\tTotal Amount: %d", b);
    printf("\n\t\t\t\t**Thank You For "
           "registration**");
}
 
// Function For Printing Heading
// Of Portal
void heading()
{
    printf("\t\t\t\t***Tourism Package "
           "Management System***\n");
    printf("\t\t\t***Vaccination Certificate "
           "Is Necessary For Travel Purpose***\n\n");
}


Output:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads