#include <iostream>
#include <vector>
#include <algorithm> // Para std::sort
#include <cstdlib> // Para rand() y srand()
#include <ctime> // Para time()
using namespace std;
// Función para generar ventas aleatorias de 13 a 18 prendas por día
void generarVentas(vector<int>& ventas) {
for (int& venta : ventas) {
venta = rand() % 6 + 13; // Genera un número entre 13 y 18
}
}
// Función para calcular las ganancias por ventas
int calcularGanancias(const vector<int>& ventas, int precioPrenda) {
int totalGanancias = 0;
for (int prendas : ventas) {
totalGanancias += prendas * precioPrenda; // Multiplica prendas vendidas por el precio
}
return totalGanancias;
}
// Función para calcular el sueldo total semanal
int calcularSueldoSemanal(int sueldoBase, int ganancias) {
return sueldoBase + ganancias; // Suma el sueldo base y las ganancias por ventas
}
// Función para ordenar las ventas de mayor a menor, manteniendo el orden original de los días
vector<pair<int, int>> ordenarVentasConDias(const vector<int>& ventas) {
vector<pair<int, int>> ventasConDias; // {ventas, día}
for (size_t i = 0; i < ventas.size(); i++) {
ventasConDias.push_back({ventas[i], static_cast<int>(i + 1)});
}
sort(ventasConDias.begin(), ventasConDias.end(), greater<pair<int, int>>());
return ventasConDias;
}
// Función principal
int main() {
srand(time(0)); // Inicializa la semilla para números aleatorios
// Variables
const int DIAS_SEMANA = 7;
const int PRECIO_PRENDA = 70; // Precio de cada prenda
const int SUELDO_BASE = 800; // Sueldo base semanal
vector<int> ventas(DIAS_SEMANA);
// Generar ventas aleatorias para la semana
generarVentas(ventas);
// Calcular ganancias antes de ordenar
int ganancias = calcularGanancias(ventas, PRECIO_PRENDA);
// Ordenar las ventas de mayor a menor, conservando el orden de los días
vector<pair<int, int>> ventasOrdenadas = ordenarVentasConDias(ventas);
// Calcular el sueldo total semanal
int sueldoTotal = calcularSueldoSemanal(SUELDO_BASE, ganancias);
// Mostrar resultados
cout << "--- Resultados del Vendedor Avanzado ---\n";
cout << "Ventas por día (ordenadas de mayor a menor):\n";
for (const auto& venta : ventasOrdenadas) {
cout << "Día " << venta.second << ": " << venta.first << " prendas\n";
}
cout << "\nGanancias por ventas: $" << ganancias << "\n";
cout << "Sueldo total semanal (base + ganancias): $" << sueldoTotal << "\n";
return 0;
}