proma con herencia
Publicado por carlos (1 intervención) el 16/06/2013 23:58:09
buenas tardes les escripbo xq tengo un problema con este programa a la hora de ingresar los datos por pantalla me da error que m dicen ustedes q sea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
// LibrerÃas
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <string.h>
// Constantes
#define NRO_EMPLEADOS 2
using namespace std;
//*** Clase Persona ***//
class persona
{
private:
char nombre[40], sexo;
int edad;
public:
void leerdatos();
void imprimirdatos();
char* getnombre();
int getedad();
char getsexo();
};
// Métodos: Persona
void persona::leerdatos()
{
cout<<"Digitar Nombre: ";
cin>>nombre;
cout<<"Digitar Edad: "<<endl;;
cin>>edad;
cout<<"Digitar Sexo [h/m]: "<<endl;;
cin>>sexo;
}
void persona::imprimirdatos()
{
cout<<endl<<endl;
cout<<"----------------------------"<<endl;
cout<<"Nombre: "<<nombre<<endl;
cout<<"Edad : "<<edad<<endl;
cout<<"Sexo : "<<sexo<<endl;
}
char* persona::getnombre()
{
return nombre;// retornando nombre
}
int persona::getedad()
{
return edad;//retornando edad
}
char persona::getsexo()
{
return sexo;//retornando sexo
}
//*** Clase Empleado ***//
class empleado : public persona
{
private:
double salario_anual;
char* cargo;
public:
int getsalario();
char* getcargo();
void leeremp();
void imprimiremp();
void aumentarsalario(double porcen);
//int buscar_empleado(char cadena_01[50], char cadena_02[50]);
};
// todos: Empleado
void empleado::leeremp()
{
persona::leerdatos();
cout<<"Introduzca Cargo: "<<endl;
cin.getline(cargo,60);cin.get();
cout<<"Introducir Sueldo Anual: "<<endl;;
cin>>salario_anual;
}
//para imprimir empleados
void empleado::imprimiremp()
{
persona::imprimirdatos();
cout<<"Cargo : "<<cargo[60]<<endl;
cout<<"Sueldo: "<<salario_anual<<endl<<endl;
}
//aumento
void empleado::aumentarsalario(double porcentaje) // del 0 al 100 al N%
{
porcentaje = porcentaje/ (double)100;
salario_anual = salario_anual * porcentaje;
}
//buscar empleado por nombre
bool buscar_empleado(char nombre[40], empleado listado[NRO_EMPLEADOS])
{
// busca entre todos los empleados de la lista
for(int i=0; i<NRO_EMPLEADOS; i++)
{
// Verifica si el Nombre Coincide
if ((strcmp(nombre, listado[i].getnombre())==0))
return true;
}
return false;
}
int empleado::getsalario()
{
return getsalario();
}
// Función Principal
int main()
{
// Estructuras y Variables
empleado empleados[NRO_EMPLEADOS];
char nombre_empleado[40];
double salario_empleado;
// Carga de los Empleados
cout << "*****Carga de los empleados" << endl;
for(int i=0;i<NRO_EMPLEADOS;i++)
empleados[i].leeremp();
cout <<"*****Buscando un empleado por nombre"<<endl;
cout<<"Ingrese nombre del empleado a buscar: ";
cin>>nombre_empleado;
///buscar empleado por nombre
bool encontrado = buscar_empleado(nombre_empleado, empleados);
if(encontrado)
cout << "Encontrado!" << endl;
else
cout << "No existe!" << endl;
//listado de empleado
cout << "*****Listando los empleados con sueldo mayor a 1000" << endl;
for(int j=0;j<NRO_EMPLEADOS;j++)
{
if(empleados[j].getsalario() > 1000)
empleados[j].imprimiremp();
//para listado de empleados potenciales a ser jubilado
cout<<"*****Empleados candidatos a ser jubilados" <<endl;
int maximo;
if(empleados[j].getsexo() == 'h')
maximo = 59;
else
maximo = 54;
if(empleados[j].getedad() >= maximo)
empleados[j].imprimiremp();
//para sueldo de empleados con aumento
cout <<"*****Subiendo el sueldo a los empleados con ¿apertura? > 1000"<<endl;
if(empleados[j].getsalario() > 1000)
{
empleados[j].aumentarsalario(25);
empleados[j].imprimiremp();
}
}
// Pausa en el Sistema
system("pause");
// Retorno de la Función Principal
return 0;
}
Valora esta pregunta


0