#include <iostream>
#include <vector>
#include <iomanip>
class PredatorPreyModel {
public:
PredatorPreyModel(double preyInitial, double predatorInitial,
double preyBirthRate, double predatorDeathRate,
double predationRate, double reproductionRate,
double timeStep)
: prey(preyInitial), predator(predatorInitial),
preyBirthRate(preyBirthRate), predatorDeathRate(predatorDeathRate),
predationRate(predationRate), reproductionRate(reproductionRate),
timeStep(timeStep) {}
void simulate(double totalTime) {
std::cout << std::fixed << std::setprecision(2);
std::cout << "Time\tPrey\tPredators\n";
for (double t = 0; t <= totalTime; t += timeStep) {
// Output current state
std::cout << t << "\t" << prey << "\t" << predator << "\n";
// Update populations
double preyChange = preyBirthRate * prey - predationRate * prey * predator;
double predatorChange = reproductionRate * prey * predator - predatorDeathRate * predator;
prey += preyChange * timeStep;
predator += predatorChange * timeStep;
}
}
private:
double prey;
double predator;
double preyBirthRate;
double predatorDeathRate;
double predationRate;
double reproductionRate;
double timeStep;
};
int main() {
double preyInitial, predatorInitial;
double preyBirthRate, predatorDeathRate;
double predationRate, reproductionRate;
double timeStep, totalTime;
std::cout << "Enter initial prey population: ";
std::cin >> preyInitial;
std::cout << "Enter initial predator population: ";
std::cin >> predatorInitial;
std::cout << "Enter prey birth rate: ";
std::cin >> preyBirthRate;
std::cout << "Enter predator death rate: ";
std::cin >> predatorDeathRate;
std::cout << "Enter predation rate: ";
std::cin >> predationRate;
std::cout << "Enter reproduction rate: ";
std::cin >> reproductionRate;
std::cout << "Enter time step: ";
std::cin >> timeStep;
std::cout << "Enter total simulation time: ";
std::cin >> totalTime;
PredatorPreyModel model(preyInitial, predatorInitial, preyBirthRate,
predatorDeathRate, predationRate, reproductionRate, timeStep);
model.simulate(totalTime);
return 0;
}