OneCompiler

ZooTicket.cpp

170

#include <iostream>
#include <vector>
#include <string>

class Visitor {
private:
std::string name;
int age;
int ticketPrice;

public:
Visitor(std::string name, int age) : name(name), age(age) {
if (age <= 2) {
ticketPrice = 0;
} else if (age < 18) {
ticketPrice = 100;
} else if (age < 60) {
ticketPrice = 500;
} else {
ticketPrice = 300;
}
}

int getTicketPrice() const {
    return ticketPrice;
}

std::string getInfo() const {
    return "Visitor: " + name + " (age: " + std::to_string(age) + ")";
}

};

class Ticket {
private:
std::vector<Visitor> visitors;
int totalCost;

public:
Ticket() : totalCost(0) {}

void addVisitor(const Visitor& visitor) {
    visitors.push_back(visitor);
    totalCost += visitor.getTicketPrice();
}

void showTicket() const {
    std::cout << "Ticket Details:" << std::endl;
    for (const auto& visitor : visitors) {
        std::cout << "- " << visitor.getInfo() << std::endl;
    }
    std::cout << "Total Cost: Rs." << totalCost << std::endl;
}

};

int main() {
int numVisitors;
std::cout << "Welcome to the Zoo!" << std::endl;
std::cout << "Enter the number of visitors: ";
std::cin >> numVisitors;

Ticket ticket;

for (int i = 1; i <= numVisitors; i++) {
    std::string name;
    int age;

    std::cout << "Enter the name of Visitor " << i << ": ";
    std::cin >> name;

    std::cout << "Enter the age of Visitor " << i << ": ";
    std::cin >> age;

    Visitor visitor(name, age);
    ticket.addVisitor(visitor);
}

std::cout << "\nTicket Information:" << std::endl;
ticket.showTicket();

std::cout << "Enjoy your visit to the Zoo!" << std::endl;

return 0;

}