fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm> // Para std::sort
  4. #include <cstdlib> // Para rand() y srand()
  5. #include <ctime> // Para time()
  6. using namespace std;
  7.  
  8. // Función para generar ventas aleatorias de 13 a 18 prendas por día
  9. void generarVentas(vector<int>& ventas) {
  10. for (int& venta : ventas) {
  11. venta = rand() % 6 + 13; // Genera un número entre 13 y 18
  12. }
  13. }
  14.  
  15. // Función para calcular las ganancias por ventas
  16. int calcularGanancias(const vector<int>& ventas, int precioPrenda) {
  17. int totalGanancias = 0;
  18. for (int prendas : ventas) {
  19. totalGanancias += prendas * precioPrenda; // Multiplica prendas vendidas por el precio
  20. }
  21. return totalGanancias;
  22. }
  23.  
  24. // Función para calcular el sueldo total semanal
  25. int calcularSueldoSemanal(int sueldoBase, int ganancias) {
  26. return sueldoBase + ganancias; // Suma el sueldo base y las ganancias por ventas
  27. }
  28.  
  29. // Función para ordenar las ventas de mayor a menor, manteniendo el orden original de los días
  30. vector<pair<int, int>> ordenarVentasConDias(const vector<int>& ventas) {
  31. vector<pair<int, int>> ventasConDias; // {ventas, día}
  32. for (size_t i = 0; i < ventas.size(); i++) {
  33. ventasConDias.push_back({ventas[i], static_cast<int>(i + 1)});
  34. }
  35. sort(ventasConDias.begin(), ventasConDias.end(), greater<pair<int, int>>());
  36. return ventasConDias;
  37. }
  38.  
  39. // Función principal
  40. int main() {
  41. srand(time(0)); // Inicializa la semilla para números aleatorios
  42.  
  43. // Variables
  44. const int DIAS_SEMANA = 7;
  45. const int PRECIO_PRENDA = 70; // Precio de cada prenda
  46. const int SUELDO_BASE = 800; // Sueldo base semanal
  47. vector<int> ventas(DIAS_SEMANA);
  48.  
  49. // Generar ventas aleatorias para la semana
  50. generarVentas(ventas);
  51.  
  52. // Calcular ganancias antes de ordenar
  53. int ganancias = calcularGanancias(ventas, PRECIO_PRENDA);
  54.  
  55. // Ordenar las ventas de mayor a menor, conservando el orden de los días
  56. vector<pair<int, int>> ventasOrdenadas = ordenarVentasConDias(ventas);
  57.  
  58. // Calcular el sueldo total semanal
  59. int sueldoTotal = calcularSueldoSemanal(SUELDO_BASE, ganancias);
  60.  
  61. // Mostrar resultados
  62. cout << "--- Resultados del Vendedor Avanzado ---\n";
  63. cout << "Ventas por día (ordenadas de mayor a menor):\n";
  64. for (const auto& venta : ventasOrdenadas) {
  65. cout << "Día " << venta.second << ": " << venta.first << " prendas\n";
  66. }
  67. cout << "\nGanancias por ventas: $" << ganancias << "\n";
  68. cout << "Sueldo total semanal (base + ganancias): $" << sueldoTotal << "\n";
  69.  
  70. return 0;
  71. }
  72.  
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
--- Resultados del Vendedor Avanzado ---
Ventas por día (ordenadas de mayor a menor):
Día 6: 18 prendas
Día 2: 18 prendas
Día 5: 17 prendas
Día 3: 16 prendas
Día 1: 15 prendas
Día 4: 14 prendas
Día 7: 13 prendas

Ganancias por ventas: $7770
Sueldo total semanal (base + ganancias): $8570