Dev - C++ - proma con herencia

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder