Aplicación de seguimiento de flotas en tiempo real en C++

Este programa simula el seguimiento de una flota de vehículos en tiempo real. Utiliza estructuras de datos básicas para almacenar información del vehículo, como la posición (latitud y longitud), la velocidad y la dirección. El programa actualiza continuamente la ubicación del vehículo cada segundo, simulando el movimiento en tiempo real. La aplicación también calcula la distancia recorrida por cada vehículo e imprime un informe con el estado de todos los vehículos de la flota.

Grupo

Programación en Tiempo Real en C++

Ojetivo

1. Crear una clase "Vehículo" para almacenar los atributos del vehículo: ID, latitud, longitud, velocidad y dirección.
2. Implementar un método para simular el movimiento en tiempo real actualizando la latitud y la longitud en función de la velocidad y la dirección.
3. Imprimir continuamente el estado de cada vehículo de la flota, incluyendo su posición actual y la distancia recorrida.
4. El programa debe simular el movimiento de los vehículos en un bucle, con los datos de cada vehículo actualizándose cada segundo.

Desarrollar una aplicación de rastreo en tiempo real para una flota de vehículos.

Ejemplo de Código C++

 Copiar Código C++
#include <iostream>
#include <cmath>
#include <thread>
#include <chrono>
#include <vector>

using namespace std;

// Vehicle class to store vehicle information
class Vehicle {
public:
    int id; // Vehicle ID
    double latitude; // Vehicle latitude
    double longitude; // Vehicle longitude
    double speed; // Speed in km/h
    double direction; // Direction in degrees (0-360)

    // Constructor to initialize a new vehicle
    Vehicle(int id, double latitude, double longitude, double speed, double direction)
        : id(id), latitude(latitude), longitude(longitude), speed(speed), direction(direction) {}

    // Function to simulate movement
    void move() {
        // Convert speed to km per second
        double speedPerSec = speed / 3600.0;

        // Calculate change in position based on speed and direction
        latitude += speedPerSec * cos(direction * M_PI / 180.0);
        longitude += speedPerSec * sin(direction * M_PI / 180.0);
    }

    // Function to print the current status of the vehicle
    void printStatus() {
        cout << "Vehicle ID: " << id << ", Latitude: " << latitude << ", Longitude: " << longitude << endl;
    }
};

// Function to simulate the tracking of a fleet of vehicles
void trackFleet(vector<Vehicle> &fleet) {
    while (true) {
        for (auto &vehicle : fleet) {
            vehicle.move(); // Move the vehicle
            vehicle.printStatus(); // Print current status
        }
        cout << "---------------------------------" << endl;
        this_thread::sleep_for(chrono::seconds(1)); // Wait for 1 second before updating
    }
}

int main() {
    // Create a fleet of vehicles
    vector<Vehicle> fleet;
    fleet.push_back(Vehicle(1, 34.0522, -118.2437, 60, 90)); // Vehicle 1 (Speed: 60 km/h, Direction: East)
    fleet.push_back(Vehicle(2, 40.7128, -74.0060, 80, 180)); // Vehicle 2 (Speed: 80 km/h, Direction: South)

    // Start tracking the fleet
    trackFleet(fleet);

    return 0;
}

 Salida

Vehicle ID: 1, Latitude: 34.0522, Longitude: -118.2437
Vehicle ID: 2, Latitude: 40.7128, Longitude: -74.006
---------------------------------
Vehicle ID: 1, Latitude: 34.0522, Longitude: -118.2437
Vehicle ID: 2, Latitude: 40.7128, Longitude: -74.006
---------------------------------
...

Comparte este ejercicio C++

Más ejercicios de programación C++Programación en Tiempo Real en C++

¡Explora el conjunto de ejercicios de programación en C++! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C++. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C++.