#include <iostream>
#include <string>
#include <vector>
#include <cctype>
using namespace std;
struct empleado{
string nombre;
char clase;
int horas;
float sueldo;
};
void introducirDatos( empleado &emp );
float salarioBase( int h, char c );
void imprimir( vector<empleado> v );
int main()
{
empleado e;
vector<empleado> v;
char opcion;
do{
introducirDatos( e );
v.push_back( e );
cout << "Introducir los datos de otro empleado ( S/n) "; cin >> opcion;
opcion = toupper( opcion );
} while( opcion == 'S' );
imprimir( v );
return 0;
}
void introducirDatos( empleado &emp )
{
cout << "\nIntroducir datos:\n";
cout << "Nombre: "; cin >> emp.nombre;
do{
cout << "Clase (A/B/C): "; cin >> emp.clase;
emp.clase = toupper( emp.clase );
if( emp.clase != 'A' && emp.clase != 'B' && emp.clase != 'C' )
cout << "\nOpcion incorrecta\n\n";
} while( emp.clase != 'A' && emp.clase != 'B' && emp.clase != 'C' );
cout << "Horas trabajadas: "; cin >> emp.horas;
emp.sueldo = salarioBase( emp.horas, emp.clase );
}
float salarioBase( int h, char c )
{
float total;
if( c == 'A' )
total = h * 29.90;
else if( c == 'B' )
total = h * 32.50;
else
total = h * 41.50;
if( h > 150 )
total += total * 0.05;
return total;
}
void imprimir( vector<empleado> v )
{
cout << "\nEmpleado \tSueldo Mensual"
<< "\n==============================";
vector<int>::size_type sz = v.size();
for( unsigned i = 0; i < sz; i++ ) {
cout << "\n" << v[i].nombre << "\t\t" << v[i].sueldo;
}
cout << endl;
}