// C program to implement
// the above approach
#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 \t 1. International " "Tour Packages\n " ) ;
printf ( "\t \t \t \t 2. India Tour Packages\n " ) ; printf ( "\t \t \t \t Enter Choice: " ) ; 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
// Calling heading() function
heading( ) ;
strcpy ( type
, "India Tour Package" ) ; printf ( "\t \t \t \t 1. Shimla Tour Packages " "6 Days 7 Nights (18880/-)\n " ) ;
printf ( "\t \t \t \t 2. Kashmir Tour Packages " "5 Days 4 Nights (35500/-)\n " ) ;
printf ( "\t \t \t \t 3. Kolkata Tour Packages " "11 Days 10 Nights (10000/-)\n " ) ;
printf ( "\t \t \t \t Enter Choice: " ) ; if ( a == 1 ) {
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
// Calling heading() function
heading( ) ;
strcpy ( type
, "International Tour Package" ) ; printf ( "\t \t \t \t 1. England Tour Packages " "6 Days 7 Nights (28880/-)\n " ) ;
printf ( "\t \t \t \t 2. Thailand Tour Packages " "5 Days 4 Nights (15500/-)\n " ) ;
printf ( "\t \t \t \t 3. New York Tour Packages " "11 Days 10 Nights (567800/-)\n " ) ;
printf ( "\t \t \t \t Enter Choice: " ) ; 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
// Calling heading() function
heading( ) ;
printf ( "\t \t \t \t Enter Number Of " "Passengers: " ) ;
"(DD/MM/YY): " ) ;
for ( i = 1 ; i <= k; i++ ) {
heading( ) ;
printf ( "\t \t \t \t Enter The %dth " "Passenger Name: " ,
i) ;
printf ( "\t \t \t \t Enter The %dth " "Passenger Gender: " ,
i) ;
printf ( "\t \t \t \t Enter The %dth " "Passenger Age: " ,
i) ;
// 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
) ) ; 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;
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) ;
printf ( "\t \t \t \t %dst Passenger " "Gender: " ,
i) ;
printf ( "\t \t \t \t %dst Passenger " "Age: %d\n \n " ,
i, ptr-> age) ;
ptr = ptr-> link;
}
printf ( "\t \t \t \t Selected Type: " ) ; b = amount * k;
printf ( "\t \t \t \t Total 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 " ) ;
}
Ly8gQyBwcm9ncmFtIHRvIGltcGxlbWVudAovLyB0aGUgYWJvdmUgYXBwcm9hY2gKCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgovLyBEZWZpbmluZyBTdHJ1Y3R1cmUKdHlwZWRlZiBzdHJ1Y3QgbXlub2RlIHsKICAgIGNoYXIgbmFtZVsyMF07CiAgICBjaGFyIGdlbls2XTsKICAgIGludCBhZ2U7CiAgICBzdHJ1Y3QgbXlub2RlKiBsaW5rOwp9IE5vZGU7Ck5vZGUqIHN0YXJ0ID0gTlVMTDsKCi8vIERlY2xhcmluZyBGdW5jdGlvbiBVc2VkCi8vIEluIFRoaXMgUHJvZ3JhbQp2b2lkIGhlYWRpbmcoKTsKdm9pZCBkZXRhaWxzKCk7CnZvaWQgaW50ZXIoKTsKdm9pZCBpbmRpYSgpOwp2b2lkIHJlY2VpcHQoKTsKCi8vIEdsb2JhbCB2YXJpYWJsZXMKaW50IGssIGFtb3VudDsKY2hhciB0eXBlWzYwXSwgcGxhY2VbMzBdLCBkYXRlWzIwXTsKCi8vIERyaXZlciBDb2RlCnZvaWQgbWFpbigpCnsKICAgIGludCBhOwoKICAgIC8vIENhbGxpbmcgaGVhZGluZygpIGZ1bmN0aW9uCiAgICBoZWFkaW5nKCk7CgogICAgLy8gVGFraW5nIENob2ljZSBGcm9tIFVzZXIKICAgIHByaW50ZigiXHRcdFx0XHQxLiBJbnRlcm5hdGlvbmFsICIKICAgICAgICAgICAiVG91ciBQYWNrYWdlc1xuIik7CiAgICBwcmludGYoIlx0XHRcdFx0Mi4gSW5kaWEgVG91ciBQYWNrYWdlc1xuIik7CiAgICBwcmludGYoIlx0XHRcdFx0RW50ZXIgQ2hvaWNlOiAiKTsKICAgIHNjYW5mKCIlZCIsICZhKTsKICAgIHN3aXRjaCAoYSkgewogICAgLy8gQ2FsbGluZyBpbnRlcigpIGZ1bmN0aW9uCiAgICBjYXNlIDE6CiAgICAgICAgaW50ZXIoKTsKICAgICAgICBicmVhazsKCiAgICAvLyBDYWxsaW5nIGluZGlhKCkgZnVuY3Rpb24KICAgIGNhc2UgMjoKICAgICAgICBpbmRpYSgpOwogICAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgICAgcHJpbnRmKCJFbnRlciBSaWdodCBDaG9pY2UuLi4iKTsKICAgICAgICBicmVhazsKICAgIH0KCiAgICAvLyBDYWxsaW5nIGRldGFpbHMoKSBmdW5jdGlvbgogICAgZGV0YWlscygpOwoKICAgIC8vIENhbGxpbmcgcmVjZWlwdCgpIGZ1bmN0aW9uCiAgICByZWNlaXB0KCk7Cn0KCi8vIEZ1bmN0aW9uIFRvIFRha2UgUGFja2FnZQovLyBDaG9pY2UgRnJvbSBJbmRpYQp2b2lkIGluZGlhKCkKewogICAgaW50IGE7CgogICAgLy8gQ2xlYXJpbmcgU2NyZWVuCiAgICBzeXN0ZW0oImNscyIpOwoKICAgIC8vIENhbGxpbmcgaGVhZGluZygpIGZ1bmN0aW9uCiAgICBoZWFkaW5nKCk7CiAgICBzdHJjcHkodHlwZSwgIkluZGlhIFRvdXIgUGFja2FnZSIpOwogICAgcHJpbnRmKCJcdFx0XHRcdDEuIFNoaW1sYSBUb3VyIFBhY2thZ2VzICAgICIKICAgICAgICAgICAiNiBEYXlzIDcgTmlnaHRzICgxODg4MC8tKVxuIik7CiAgICBwcmludGYoIlx0XHRcdFx0Mi4gS2FzaG1pciBUb3VyIFBhY2thZ2VzICIKICAgICAgICAgICAiNSBEYXlzIDQgTmlnaHRzICgzNTUwMC8tKVxuIik7CiAgICBwcmludGYoIlx0XHRcdFx0My4gS29sa2F0YSBUb3VyIFBhY2thZ2VzICIKICAgICAgICAgICAiMTEgRGF5cyAxMCBOaWdodHMgKDEwMDAwLy0pXG4iKTsKICAgIHByaW50ZigiXHRcdFx0XHRFbnRlciBDaG9pY2U6ICIpOwogICAgc2NhbmYoIiVkIiwgJmEpOwogICAgaWYgKGEgPT0gMSkgewogICAgICAgIHN0cmNweShwbGFjZSwgIlNoaW1sYSBUb3VyIik7CiAgICAgICAgYW1vdW50ID0gMTg4ODA7CiAgICB9CiAgICBlbHNlIGlmIChhID09IDIpIHsKICAgICAgICBzdHJjcHkocGxhY2UsICJLYXNobWlyIFRvdXIiKTsKICAgICAgICBhbW91bnQgPSAzNTUwMDsKICAgIH0KICAgIGVsc2UgaWYgKGEgPT0gMykgewogICAgICAgIHN0cmNweShwbGFjZSwgIktvbGthdGEgVG91ciIpOwogICAgICAgIGFtb3VudCA9IDEwMDAwOwogICAgfQogICAgZWxzZQogICAgICAgIHByaW50ZigiRW50ZXIgQ29ycmVjdCBDaG9pY2UuLi4iKTsKfQoKLy8gRnVuY3Rpb24gVG8gVGFrZSBQYWNrYWdlIENob2ljZQovLyBGcm9tIEludGVybmF0aW9uYWwKdm9pZCBpbnRlcigpCnsKICAgIGludCBhOwoKICAgIC8vIENsZWFyaW5nIFNjcmVlbgogICAgc3lzdGVtKCJjbHMiKTsKCiAgICAvLyBDYWxsaW5nIGhlYWRpbmcoKSBmdW5jdGlvbgogICAgaGVhZGluZygpOwogICAgc3RyY3B5KHR5cGUsICJJbnRlcm5hdGlvbmFsIFRvdXIgUGFja2FnZSIpOwogICAgcHJpbnRmKCJcdFx0XHRcdDEuIEVuZ2xhbmQgVG91ciBQYWNrYWdlcyAiCiAgICAgICAgICAgIjYgRGF5cyA3IE5pZ2h0cyAoMjg4ODAvLSlcbiIpOwogICAgcHJpbnRmKCJcdFx0XHRcdDIuIFRoYWlsYW5kIFRvdXIgUGFja2FnZXMgIgogICAgICAgICAgICI1IERheXMgNCBOaWdodHMgKDE1NTAwLy0pXG4iKTsKICAgIHByaW50ZigiXHRcdFx0XHQzLiBOZXcgWW9yayBUb3VyIFBhY2thZ2VzICIKICAgICAgICAgICAiMTEgRGF5cyAxMCBOaWdodHMgKDU2NzgwMC8tKVxuIik7CiAgICBwcmludGYoIlx0XHRcdFx0RW50ZXIgQ2hvaWNlOiAiKTsKICAgIHNjYW5mKCIlZCIsICZhKTsKICAgIGlmIChhID09IDEpIHsKICAgICAgICBzdHJjcHkocGxhY2UsICJFbmdsYW5kIFRvdXIiKTsKICAgICAgICBhbW91bnQgPSAyODg4MDsKICAgIH0KICAgIGVsc2UgaWYgKGEgPT0gMikgewogICAgICAgIHN0cmNweShwbGFjZSwgIlRoYWlsYW5kIFRvdXIiKTsKICAgICAgICBhbW91bnQgPSAxNTUwMDsKICAgIH0KICAgIGVsc2UgaWYgKGEgPT0gMykgewogICAgICAgIHN0cmNweShwbGFjZSwgIk5ldyBZb3JrIFRvdXIiKTsKICAgICAgICBhbW91bnQgPSA1Njc4MDA7CiAgICB9CiAgICBlbHNlCiAgICAgICAgcHJpbnRmKCJFbnRlciBDb3JyZWN0IENob2ljZS4uLiIpOwp9CgovLyBGdW5jdGlvbiBUbyBUYWtlIFBhc3NlbmdlciBEZXRhaWxzCnZvaWQgZGV0YWlscygpCnsKICAgIGludCBpLCBhOwogICAgY2hhciB2YWxbMjBdLCBnZW5bNl07CgogICAgLy8gQ2xlYXJpbmcgU2NyZWVuCiAgICBzeXN0ZW0oImNscyIpOwoKICAgIC8vIENhbGxpbmcgaGVhZGluZygpIGZ1bmN0aW9uCiAgICBoZWFkaW5nKCk7CiAgICBwcmludGYoIlx0XHRcdFx0RW50ZXIgTnVtYmVyIE9mICIKICAgICAgICAgICAiUGFzc2VuZ2VyczogIik7CiAgICBzY2FuZigiJWQiLCAmayk7CiAgICBwcmludGYoIlx0XHRcdFx0RW50ZXIgRGF0ZSAiCiAgICAgICAgICAgIihERC9NTS9ZWSk6ICIpOwogICAgZmZsdXNoKHN0ZGluKTsKICAgIGdldHMoZGF0ZSk7CiAgICBmb3IgKGkgPSAxOyBpIDw9IGs7IGkrKykgewogICAgICAgIHN5c3RlbSgiY2xzIik7CiAgICAgICAgaGVhZGluZygpOwogICAgICAgIHByaW50ZigiXHRcdFx0XHRFbnRlciBUaGUgJWR0aCAiCiAgICAgICAgICAgICAgICJQYXNzZW5nZXIgTmFtZTogIiwKICAgICAgICAgICAgICAgaSk7CiAgICAgICAgZmZsdXNoKHN0ZGluKTsKICAgICAgICBnZXRzKHZhbCk7CiAgICAgICAgcHJpbnRmKCJcdFx0XHRcdEVudGVyIFRoZSAlZHRoICIKICAgICAgICAgICAgICAgIlBhc3NlbmdlciBHZW5kZXI6ICIsCiAgICAgICAgICAgICAgIGkpOwogICAgICAgIGZmbHVzaChzdGRpbik7CiAgICAgICAgZ2V0cyhnZW4pOwogICAgICAgIHByaW50ZigiXHRcdFx0XHRFbnRlciBUaGUgJWR0aCAiCiAgICAgICAgICAgICAgICJQYXNzZW5nZXIgQWdlOiAiLAogICAgICAgICAgICAgICBpKTsKICAgICAgICBmZmx1c2goc3RkaW4pOwogICAgICAgIHNjYW5mKCIlZCIsICZhKTsKCiAgICAgICAgLy8gQ2FsbGluZyBhZGRfbm9kZSgpIGZ1bmN0aW9uCiAgICAgICAgYWRkX25vZGUodmFsLCBnZW4sIGEpOwogICAgfQp9CgovLyBGdW5jdGlvbiB0byBhZGQgZGV0YWlscyBpbgovLyBub2RlIGZvciBlYWNoIHBhc3NlbmdlcnMKdm9pZCBhZGRfbm9kZShjaGFyIGxvbFsyMF0sCiAgICAgICAgICAgICAgY2hhciBkZXJbNl0sIGludCBiKQp7CiAgICBOb2RlICpuZXdwdHIgPSBOVUxMLCAqcHRyOwogICAgbmV3cHRyID0gKE5vZGUqKW1hbGxvYyhzaXplb2YoTm9kZSkpOwogICAgc3RyY3B5KG5ld3B0ci0+bmFtZSwgbG9sKTsKICAgIHN0cmNweShuZXdwdHItPmdlbiwgZGVyKTsKICAgIG5ld3B0ci0+YWdlID0gYjsKICAgIG5ld3B0ci0+bGluayA9IE5VTEw7CiAgICBpZiAoc3RhcnQgPT0gTlVMTCkKICAgICAgICBzdGFydCA9IG5ld3B0cjsKICAgIGVsc2UgewogICAgICAgIHB0ciA9IHN0YXJ0OwogICAgICAgIHdoaWxlIChwdHItPmxpbmsgIT0gTlVMTCkKICAgICAgICAgICAgcHRyID0gcHRyLT5saW5rOwogICAgICAgIHB0ci0+bGluayA9IG5ld3B0cjsKICAgIH0KfQoKLy8gRnVuY3Rpb24gRm9yIFByaW50aW5nIFJlY2VpcHQKdm9pZCByZWNlaXB0KCkKewogICAgaW50IGksIGI7CiAgICBOb2RlKiBwdHIgPSBzdGFydDsKICAgIHN5c3RlbSgiY2xzIik7CiAgICBoZWFkaW5nKCk7CiAgICBwcmludGYoIlxuXHRcdFx0XHQqKlRha2UgU2NyZWVuc2hvdCAiCiAgICAgICAgICAgIkZvciBGdXJ0aGVyIFVzZSoqXG4iKTsKICAgIGZvciAoaSA9IDE7IGkgPD0gazsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJcdFx0XHRcdCVkc3QgUGFzc2VuZ2VyICIKICAgICAgICAgICAgICAgIk5hbWU6ICIsCiAgICAgICAgICAgICAgIGkpOwogICAgICAgIHB1dHMocHRyLT5uYW1lKTsKICAgICAgICBwcmludGYoIlx0XHRcdFx0JWRzdCBQYXNzZW5nZXIgIgogICAgICAgICAgICAgICAiR2VuZGVyOiAiLAogICAgICAgICAgICAgICBpKTsKICAgICAgICBwdXRzKHB0ci0+Z2VuKTsKICAgICAgICBwcmludGYoIlx0XHRcdFx0JWRzdCBQYXNzZW5nZXIgIgogICAgICAgICAgICAgICAiQWdlOiAlZFxuXG4iLAogICAgICAgICAgICAgICBpLCBwdHItPmFnZSk7CiAgICAgICAgcHRyID0gcHRyLT5saW5rOwogICAgfQogICAgcHJpbnRmKCJcdFx0XHRcdFNlbGVjdGVkIFR5cGU6ICIpOwogICAgcHV0cyh0eXBlKTsKICAgIHByaW50ZigiXHRcdFx0XHRQYWNrYWdlOiAiKTsKICAgIHB1dHMocGxhY2UpOwogICAgcHJpbnRmKCJcdFx0XHRcdERhdGU6ICIpOwogICAgcHV0cyhkYXRlKTsKICAgIGIgPSBhbW91bnQgKiBrOwogICAgcHJpbnRmKCJcdFx0XHRcdFRvdGFsIEFtb3VudDogJWQiLCBiKTsKICAgIHByaW50ZigiXG5cdFx0XHRcdCoqVGhhbmsgWW91IEZvciAiCiAgICAgICAgICAgInJlZ2lzdHJhdGlvbioqIik7Cn0KCi8vIEZ1bmN0aW9uIEZvciBQcmludGluZyBIZWFkaW5nCi8vIE9mIFBvcnRhbAp2b2lkIGhlYWRpbmcoKQp7CiAgICBwcmludGYoIlx0XHRcdFx0KioqVG91cmlzbSBQYWNrYWdlICIKICAgICAgICAgICAiTWFuYWdlbWVudCBTeXN0ZW0qKipcbiIpOwogICAgcHJpbnRmKCJcdFx0XHQqKipWYWNjaW5hdGlvbiBDZXJ0aWZpY2F0ZSAiCiAgICAgICAgICAgIklzIE5lY2Vzc2FyeSBGb3IgVHJhdmVsIFB1cnBvc2UqKipcblxuIik7Cn0=