Dev - C++ - AYUDA CON ESTE CÓDIGO

 
Vista:
sin imagen de perfil

AYUDA CON ESTE CÓDIGO

Publicado por Emerson (1 intervención) el 21/01/2022 16:14:35
Esto es lo que no puedo agregar a mi código, me aparece con error siempre.
La bonificación se calcula bajo el siguiente criterio:
Si el sueldo es menor a S/. 1000 : bonificación 5%Si el sueldo esta entre
S/. 1000 y S/. 2500 : bonificación 3%Si el sueldo es mayor a S/. 2500
: bonificación 2%

#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
using namespace std;
#define max 10
#define p5 0.05
#define p3 0.03
#define p2 0.02

struct empleado
{
int cod;
char nom[20];
float sbruto,boni,ss,afp,sneto;

};
int menu()
{
int op;
cout << "\t\t\t MENU DE OPCIONES" << endl;
cout << "\t\t[1] Captura de datos " << endl;
cout << "\t\t[2] Mostrar Reporte " << endl;
cout << "\t\t[3] Busqueda por nombre " << endl;
cout << "\t\t[4] Orden alfabetico " << endl;
cout << "\t\t[5] Orden por sueldo neto de menor a mayor " << endl;
cout << "\t\t[6] Modificar campos " << endl;
cout << "\t\t[7] Eliminar un registro " << endl;
cout << "\t\t[8] Salir " << endl;
do
{
cout << "Ingrese una opcion : ===>";
cin >> op;
} while (op < 1 || op > 8);
return op;
}
int buscod(empleado fijo[], int n, int nb)
{
int p, i;
p = -1;
for (i = 0; i < n; i++)
if (fijo[i].cod == nb)
p = i;
return p;
}
void cargar(empleado fijo[], int &n)
{
int cod, op, pos;
do
{
cout << "Ingrese datos del empleado " << n + 1 << endl;
cout << "Codigo: ";
cin >> cod;
pos = buscod(fijo, n, cod);
if (pos == -1)
{
fijo[n].cod = cod;
cout << "Nombre : ";
fflush(stdin);
gets(fijo[n].nom);

do
{
cout << "Sueldo bruto : ";
cin >> fijo[n].sbruto;

} while (fijo[n].sbruto < 0);

fijo[n].boni = p5 * fijo[n].sbruto;
fijo[n].ss = p2 * fijo[n].sbruto;
fijo[n].afp = p3 * fijo[n].sbruto;
fijo[n].sneto = fijo[n].sbruto + fijo[n].boni - (fijo[n].ss + fijo[n].afp);

n = n + 1;
}
else
cout << " registro duplicado" << endl;
cout << "Hay mas datos si 1 no 0 " << endl;
cin >> op;
} while (op == 1);

}

void mostrar(empleado fijo[], int n)
{
int i;
float tsb, tb, tss, tafp, tsn;
tsb=tb=tss=tafp=tsn=0;
cout << setw(5) << "CODIGO " << setw(25) << " NOMBRES" << setw(15) << " S. BRUTO" << setw(15) << " BONIF" << setw(13) << " SS" << setw(15) << " AFP" << setw(15) << " NETO" << endl;
cout << "===========================================================================================================" << endl;
for (i = 0; i < n; i++)
{
cout << setw(5) << fijo[i].cod << setw(25) << fijo[i].nom << setw(15) << fijo[i].sbruto << setw(15) << fijo[i].boni << setw(15) << fijo[i].ss << setw(15) << fijo[i].afp << setw(15) << fijo[i].sneto << endl;
tsb = tsb + fijo[i].sbruto;
tb = tb + fijo[i].boni;
tss = tss + fijo[i].ss;
tafp = tafp + fijo[i].afp;
tsn = tsn + fijo[i].sneto;
}
cout << "===========================================================================================================" << endl;
cout << "TOTALES"<<setw(40)<<tsb << setw(15) << tb << setw(15) << tss << setw(15) << tafp << setw(15) << tsn << endl;
cout << "===========================================================================================================" << endl;
}
int busquedaalfabetico(empleado fijo[], int n)
{
int pos, i;
char nomb[20];
pos = -1;
cout << "\n\n";
cout << "\tIngrese el Nombre a buscar: ";
fflush(stdin);
gets(nomb);

for (i = 0; i < n; i++)
if (strcmp(fijo[i].nom, nomb) == 0)

pos = i;

return pos;
}
void mostrarempleado(empleado fijo)
{
cout << "\nCodigo ==> " << fijo.cod << endl;
cout << "Nombre ==> " << fijo.nom << endl;
cout << "Sueldo bruto ==> " << fijo.sbruto << endl;
cout << "Bonificacion ==> " << fijo.boni << endl;
cout << "Descuento por SS ==> " << fijo.ss<< endl;
cout << "Descuento por AFP ==> " << fijo.afp << endl;
cout << "Sueldo neto ==> " << fijo.sneto << endl;
cout << endl;
}
void ordenaalfabetico(empleado fijo[], int n)
{
int i, j;
empleado t;
for (i = 0; i < n; i++)
for (j = i + 1; j < n; j++)
if (strcmp(fijo[i].nom, fijo[j].nom) > 0)
{
t = fijo[i];
fijo[i] = fijo[j];
fijo[j] = t;
}
}

void ordenanumerico(empleado fijo[], int n)
{
int i, j;
empleado t;
for (i = 0; i < n; i++)
for (j = i + 1; j < n; j++)
if (fijo[i].sneto < fijo[j].sneto)
{
t = fijo[i];
fijo[i] = fijo[j];
fijo[j] = t;
}
}
void modificarcampos(empleado fijo[], int n)
{
int codigo, pos, opc, op;

cout << "Modificar datos" << endl;
cout << "=================" << endl
<< endl;
cout << "Ingrese el codigo del empleado a modificar : ";
cin >> codigo;
pos = buscod(fijo, n, codigo);
if (pos >= 0)
{
for (;;)
{
cout << " DATOS DEL EMPLEADO A MODIFICAR" << endl;
mostrarempleado(fijo[pos]);
do
{
cout << "\t\tQUE CAMPOS DESEA MODIFICAR" << endl;
cout << "\t===============================" << endl
<< endl;
cout << "\t[1]...Codigo" << endl;
cout << "\t[2]...Nombre" << endl;
cout << "\t[3]...Sueldo bruto" << endl;
cout << "\t\nIngrese la opcion a modificar ==>";
cin >> opc;
} while (opc < 1 || opc > 3);
switch (opc)
{
case 1:
cout << "Ingreser el nuevo codigo ==> ";
cin >> fijo[pos].cod;
break;
case 2:
cout << "Ingreser el nuevo nombre ==> ";
cin >> fijo[pos].nom;
break;
case 3:
do
{
cout << "Ingrese el nuevo saldo bruto ==> ";
cin >> fijo[pos].sbruto;
} while (fijo[pos].sbruto < 0);
cout << "\n Se corrigio el saldo bruto" << endl;
break;
}

fijo[pos].boni = p3 * fijo[pos].sbruto;
fijo[pos].ss = p2 * fijo[pos].sbruto;
fijo[pos].afp = p3 * fijo[pos].sbruto;
fijo[pos].sneto = fijo[pos].sbruto + fijo[pos].boni - (fijo[pos].ss + fijo[pos].afp);

cout << "Desea modificar otro campo Si [1] No [0] " << endl;
cin >> op;
if (op == 0)
break;
}
cout << "Modificacion finalizada" << endl;
}
else
cout << "El codigo no esta registrado ";
}
void eliminacion(empleado fijo[], int &n)
{
int i, p;
int codigo;
char resp, preg;
do
{
system("cls");
cout << "Eliminacion de un empleado " << endl
<< endl;
cout << "Codigo a buscar : ";
cin >> codigo;
p = buscod(fijo, n, codigo);
if (p != -1)
{
mostrarempleado(fijo[p]);
cout << "Estas seguro de eliminarlo (s/n) :";
cin >> preg;
preg = toupper(preg);
if (preg == 'S')
{
for (i = p; i < n - 1; i++)
fijo[i] = fijo[i + 1];
n = n - 1;
}
}
else
cout << "el codigo del empleado no existe" << endl;
cout << "Deseas eliminar otro empleado (s/n) ";
cin >> resp;
resp = toupper(resp);
} while (resp == 'S');
}
int main()
{
empleado e[max];

int n, opcion, pos;
n = 0;
do
{
system("cls");
opcion = menu();
switch (opcion)
{
case 1:
cargar(e, n);
break;
case 2:
mostrar(e, n);
system("pause");
break;
case 3:
pos = busquedaalfabetico(e, n);
if (pos >= 0)
mostrarempleado(e[pos]);
else
cout << "El empleado no esta registrado" << endl;
break;
case 4:
cout << "\t\t\tLISTADO EN ORDEN ALFABETICO" << endl;
cout << "\t\t\t===========================" << endl;
ordenaalfabetico(e, n);
mostrar(e, n);
break;
case 5:
cout << "\t\t\tLISTADO POR S.NETO DE MENOR A MAYOR" << endl;
cout << "\t\t\t===========================" << endl;
ordenanumerico(e, n);
mostrar(e, n);
break;
case 6:
modificarcampos(e, n);
break;
case 7:
eliminacion(e, n);
break;
}

system("pause");
} while (opcion != 8);
system("cls");
cout << "************FIN PROCESO ***************" << endl;

system("pause");
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