All pastes #987084 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-16 06:02 UTC
rendered paste body
#include <iostream>
#include <string>
// Proyecto Final Programacion II
// Nomina
// Realizado Por:
// Ana Maria Bermudez
// Miguel A. Alvarado V.

using namespace std;

class Empleado {
	unsigned long int cedula;
	string nombre;
	string cargo;
public:
	Empleado() {cedula = 0;} //constructor
	void Cedula() {
		if(cedula == 0)
			cout << "No ha ingresado una cedula" << endl;
		else
			cout << cedula;
	}
	void setCedula() {
		cout << "Ingrese el Numero de Cedula: ";
		cin >> cedula;
	}
	void Nombre() {
		if(nombre == "")
			cout << "No ha ingresado un nombre." << endl;
		else
			cout << nombre << endl;
	}
	void setNombre() {
		cout << "Ingrese el Nombre: ";
		getline(cin,nombre);
	}
	void Cargo() {
		if(cargo == "")
			cout << "No ha ingresado un cargo." << endl;
		else
			cout << cargo;
	}
	void setCargo() {
		cout << "Ingrese el Cargo: ";
		cin >> cargo;
	}
	virtual void Pago() {}
};

class Obrero : public Empleado {
	int diasTrabajados;
	unsigned long int salarioDiario;
	float seguroSocial;
public:
	Obrero() : diasTrabajados(0), salarioDiario(0), seguroSocial(0) {}
	void setDiasTrabajados() {
		cout << "Ingrese los dias trabajados: ";
		cin >> diasTrabajados;
	}
	void setSalarioDiario() {
		cout << "Ingrese el Salario Diario: ";
		cin >> salarioDiario;
	}
	void Pago();
};
void Obrero::Pago() {
	unsigned long int basico = diasTrabajados * salarioDiario;
	float seguro = (4 * basico)/100;
	float neto = basico - seguro;
	cout << "Empleado: "; Empleado::Nombre();
	cout << "Cargo: ";	Empleado::Cargo();
	cout << endl;
	cout << "Dias Trabajados: " << diasTrabajados << " dias" << endl;
	cout << "Salario Diario: Bs.F." << salarioDiario << endl;
	cout << "Sueldo Básico: Bs.F. " << basico << endl;
	cout << "Seguro (4% Basico) : Bs.F. " << seguro << endl;
	cout << "Sueldo Neto: Bs.F. " << neto << endl;
}

class Ejecutivo : public Empleado {
	unsigned long int sueldoBasico;
	float impuesto;
public:
	Ejecutivo() : sueldoBasico(0), impuesto(3.5) {}
	void setSueldoBasico() {
		cout << "Ingrese el sueldo Basico: ";
		cin >> sueldoBasico;
	}
	void Pago();
};
void Ejecutivo::Pago() { // Es mas pesada como inline, mejor afuera
	unsigned long int basico = sueldoBasico / 2;
	impuesto = (3 * basico) / 100;
	float neto = basico - impuesto;
	cout << "Empleado: "; Empleado::Nombre();
	cout << "Cargo: "; Empleado::Cargo();
	cout << endl;
	cout << "Sueldo Básico: Bs.F. " << basico << endl;
	cout << "Impuesto (3.5% Basico) : Bs.F. " << impuesto << endl;
	cout << "Sueldo Neto: Bs.F. " << neto << endl;
};


int main() {


Obrero A;
Ejecutivo B;

cout << "Obrero: " << endl;
A.setNombre();
A.setCedula();
A.setCargo();
A.setDiasTrabajados();
A.setSalarioDiario();
cout << endl;
cout << "--------------------------------------------------------------------------------";
cout << endl << endl << endl;
A.Pago();

B.setNombre();
B.setCedula();
B.setCargo();
B.setSueldoBasico();
cout << endl;
cout << "--------------------------------------------------------------------------------";
cout << endl << endl << endl;
}