ZooTicket.cpp
#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;
}