Está en la página 1de 5

UNIVERSIDAD METROPOLINANA DE HONDRAS

Asignatura: Programación y Estructuras de datos

Sección: 2100

Catedrático: Irvin Vásquez Martínez

Alumno: Dagoberto Fernández Valenzuela

Número de Cuenta: 202202541

Tema: Fabrica

Tegucigalpa M.D.C 5 de febrero del 2024


#include <iostream>
#include <iomanip>

using namespace std;

// Definición de la estructura para representar a un trabajador


struct Trabajador {
char turno;
int horasNormales;
int horasExtra;
};

// Función para calcular el salario de un trabajador


float calcularSalario(Trabajador trabajador) {
float pagoHoraNormal, pagoHoraExtra;

// Definir las tarifas según el turno


switch (trabajador.turno) {
case 'A':
pagoHoraNormal = 100;
pagoHoraExtra = 120;
break;
case 'B':
pagoHoraNormal = 130;
pagoHoraExtra = 140;
break;
case 'C':
pagoHoraNormal = 150;
pagoHoraExtra = 160;
break;
default:
cout << "Turno no válido." << endl;
return 0;
}

// Calcular el salario desglosado entre horas normales y extras


float salarioNormal = trabajador.horasNormales * pagoHoraNormal;
float salarioExtra = trabajador.horasExtra * pagoHoraExtra;

return salarioNormal + salarioExtra;


}

int main() {
int n; // Número de trabajadores
cout << "Ingrese el numero de trabajadores: ";
cin >> n;

Trabajador trabajadores[n];

// Recopilar información sobre los trabajadores


for (int i = 0; i < n; ++i) {
cout << "Ingrese el turno del trabajador " << i + 1 << " (A/B/C): ";
cin >> trabajadores[i].turno;
cout << "Ingrese las horas normales trabajadas por el trabajador " << i + 1 << ": ";
cin >> trabajadores[i].horasNormales;
cout << "Ingrese las horas extras trabajadas por el trabajador " << i + 1 << ": ";
cin >> trabajadores[i].horasExtra;
}

// Calcular y mostrar el salario para cada trabajador


float totalDinero = 0;
int contadorTurnoA = 0, contadorTurnoB = 0, contadorTurnoC = 0;

for (int i = 0; i < n; ++i) {


float salario = calcularSalario(trabajadores[i]);
totalDinero += salario;

// Contar el número de personas por turno


switch (trabajadores[i].turno) {
case 'A':
contadorTurnoA++;
break;
case 'B':
contadorTurnoB++;
break;
case 'C':
contadorTurnoC++;
break;
}

// Mostrar el salario desglosado para cada trabajador


cout << "Salario del trabajador " << i + 1 << ": lPS." << fixed << setprecision(2) <<
salario << endl;
}

// Mostrar el informe final


cout << "\nInforme Final:" << endl;
cout << "Personas del Turno A: " << contadorTurnoA << ", Dinero total: lPS." <<
contadorTurnoA * totalDinero / n << endl;
cout << "Personas del Turno B: " << contadorTurnoB << ", Dinero total: lPS." <<
contadorTurnoB * totalDinero / n << endl;
cout << "Personas del Turno C: " << contadorTurnoC << ", Dinero total: lPS." <<
contadorTurnoC * totalDinero / n << endl;
cout << "Total de personas consultadas: " << n << ", Dinero total: lPS." <<
totalDinero << endl;

return 0;
}

También podría gustarte