Vous êtes sur la page 1sur 9

#include <iostream>

#include <stdlib.h>

using namespace std;

struct datos
{
string nombre = "";
int cedula = 0;
int ano = 0;
};

class persona
{
private:
datos data;

protected:
string getnombre();
int getcedula();
int getano();
public:
void pedirdatos();
void Mostrar();
virtual float SueldoNeto() = 0;

};

string persona::getnombre()
{
return data.nombre;
}

int persona::getcedula()
{
return data.cedula;
}

int persona::getano()
{
return data.ano;
}

void persona::pedirdatos()
{
string n;
system("cls");
cout << "\tDATOS" << endl;
cout << "Nombre: ";
cin.ignore();
getline(cin,n);
data.nombre = n;

cout << "Cedula: ";


cin >> data.cedula;

cout << "Ao de nacimiento: ";


cin >> data.ano;
}

void persona::Mostrar()
{
system("cls");

cout << "NOMBRE = " << getnombre() << endl;


cout << "CEDULA = " << getcedula() << endl;
cout << "AO DE NACIMIENTO = " << getano() << endl;
}

class trabajador:public persona


{
private:
string nivelAC;
public:
void setnivelAC(string nivel);
string getnivelAC();
virtual float SueldoNeto() {;};

};

void trabajador::setnivelAC(string nivel)


{
nivelAC = nivel;
}

string trabajador::getnivelAC()
{
return nivelAC;
}

class Asalariado:public trabajador


{
private:
int numeroH;
int ValorH;
public:

void setnumeroH(int n);


int getnumeroH();
void setValorH(int V);
int getValorH();
virtual float SueldoNeto();

};

void Asalariado::setnumeroH(int n)
{
numeroH = n;
}

void Asalariado::setValorH(int v)
{
ValorH = v;
}

float Asalariado::SueldoNeto()
{
int sueldoB = (numeroH)*(ValorH);
int descuento = sueldoB *(0.0008);

return (sueldoB - descuento);


}

class Voluntario:public trabajador


{
private:
int horasS;
public:
void sethorasS(int h);

int gethorasS();
};

void Voluntario::sethorasS(int h)
{
horasS = h;
}

int Voluntario::gethorasS()
{
return horasS;
}

class socio:public persona


{
private:
string nombreMuni;
int sueldoB;
string direccion;
public:
void setnombreMuni(string nom);
string getnombreMuni();
void setsueldoB(int s);
void setdireccion(string d);
string getdireccion();
virtual float SueldoNeto();
};

void socio::setnombreMuni(string nom)


{
nombreMuni = nom;
}

string socio::getnombreMuni()
{
return nombreMuni;
}
void socio::setsueldoB(int s)
{
sueldoB = s;
}

void socio::setdireccion(string d)
{
direccion = d;
}
string socio::getdireccion()
{
return direccion;
}
float socio::SueldoNeto()
{
float suel = sueldoB - sueldoB*0.0005;

return suel;
}

char menu ()
{
char op;
system("cls");
cout << "\tMENU." << endl;
cout << "1)TRABAJADOR." << endl;
cout << "2)SOCIO." << endl;
cout << "3)SALIR." << endl;

cout << "->";


cin >> op;

return op;
}
char menu2 ()
{
char op;
system("cls");
cout << "\tTRABAJADOR." << endl;
cout << "1)ASALARIADO." << endl;
cout << "2)VOLUNTARIO." << endl;
cin >> op;

return op;
}

int main ()
{
char Op,OPCION;
int n,v,h,sueldo;
string na,nom,D;

socio *so = new socio();


Asalariado *As = new Asalariado();
Voluntario *Vo = new Voluntario();
do
{
Op = menu();

switch(Op)
{

case '1':
OPCION = menu2();
switch(OPCION)
{
case '1':
As->pedirdatos();
cout << "Nivel Academico: ";
cin.ignore();
getline(cin,na);
As->setnivelAC(na);
cout << "Numero de horas trabajadas: ";
cin >> n;
As->setnumeroH(n);
cout << "Costo Unitario de horas trabajadas: ";
cin >> v;
As->setValorH(v);
As->Mostrar();
cout << "NIVEL ACADEMICO =" << As->getnivelAC() <<
endl;
cout << "SUELDO NETO =" << As->SueldoNeto() << endl;
break;
case '2':
Vo->pedirdatos();
cout << "Nivel Academico: ";
cin.ignore();
getline(cin,na);
Vo->setnivelAC(na);
cout << "Numero de horas de trabajo semanal: ";
cin >> h;
Vo->sethorasS(h);
Vo->Mostrar();
cout << "NIVEL ACADEMICO = " << Vo->getnivelAC() <<
endl;

cout << "HORAS SEMANALES = " << Vo->gethorasS() <<


endl;
break;
}
system("PAUSE");
break;
case '2':
so->pedirdatos();
cout << "Nombre del municipio de su residencia: ";
cin.ignore();
getline(cin,nom);
so->setnombreMuni(nom);
cout << "Sueldo Basico: ";
cin >> sueldo;
so->setsueldoB(sueldo);
cout << "Direccion: ";
cin.ignore();
getline(cin,D);
so->setdireccion(D);
so->Mostrar();
cout << "NOMBRE DEL MUNICIPIO = " << so->getnombreMuni()
<< endl;
cout << "DIRECCION = " << so->getdireccion() << endl;
cout << "SUELDO NETO = " << so->SueldoNeto() << "Pesos."<<
endl;
system("PAUSE");
break;
}

}while(Op != '3');

return 0;
}

Vous aimerez peut-être aussi