#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define tam 1000
using namespace std;
void menu();
void agregar();
void modificar();
void planilla();
void eliminar();
int salir();
int b=0, j=0, op=0, codigo[1000], codax=0, codb=0, cont=0, resultado=0;
double sueldo[1000], isss[1000], renta[1000], sum[1000], sal[1000], afp[1000], sar[1000];
char nombre[tam];
main(){
menu();
system("pause");
return 0;
}
void menu(){
cout<<"*** MENU ***"<<endl;
cout<<"[1] Agregar."<<endl;
cout<<"[2] Modificar."<<endl;
cout<<"[3] Mostrar planilla de empleado."<<endl;
cout<<"[4] Eliminar."<<endl;
cout<<"[5] Salir."<<endl;
cin>>op;
switch(op){
case 1:
agregar();
break;
case 2:
modificar();
break;
case 3:
planilla();
break;
case 4:
eliminar();
break;
case 5:
salir();
break;
default:
cout<<"Opcion erronea.";
return menu();
break;
}
}
void agregar(){
cout<<"Ingrese codigo: "<<endl;
cin>>codax;
cont++;
if(codax>9999){
cout<<"Codigo ERRONEO. Ingrese nuevamente."<<endl;
return agregar();
}
else{
if(codax==codigo[j]){
cout<<"El codigo de empleado ya ha sido ingresado."<<endl;
j--;
cont--;
return agregar();
}
if(codax!=codigo[j]){
codigo[j]=codax;
cout<<"Ingrese nombre del empleado: "<<endl;
cin.get(nombre[j], sizeof (nombre[0]), '\n');
cin.get();
cout<<"Ingrese sueldo mensual del empleado:"<<endl;
cin>>sueldo[j];
j++;
}
}
system("cls");
cout<<"EMPLEADO AGREGADO"<<endl;
return menu();
}
void modificar(){
cout<<"Ingrese codigo a buscar: "<<endl;
cin>>codb;
if(codb>0 and codb<=9999){
for(j=0;j<=cont;j++){
if(codigo[j]==codb){
b=j;
cout<<"datos actuales \n";
cout<<"nombre :"<<nombre[j]<<"\n";
cout<<"sueldo :"<<sueldo[j]<<"\n";
cout<<"DIGITE OPCION \n\n";
cout<<"1 CAMBIAR NOMBRE 2 CAMBIAR SUELDO \n\n";
cin>>b;
if(b==1){
cout<<"DATOS A ACTUALIZAR \n";
cout<<"nombre :"<<nombre[j]<<"\n\n";
cin.get();
cout<<"digite nombre \n";
cin.get(nombre[j], sizeof (nombre[0]), '\n');
// nombre[j]=cad;
}
if(b==2){
cout<<"DATOS A ACTUALIZAR \n";
cout<<"sueldo :"<<sueldo[j]<<"\n";
cout<<"digite el sueldo del empleado \n";
cin>>sueldo[j];
}
if(b!=1 && b!=2){
cout<<"ERROR EN OPCION DE MEJORA";
}
resultado=1;
}
}
if(resultado == 0) {
cout <<"No resultados"<< endl;
}
}
return menu();
}
void planilla(){
int i=0;
for(i=1; i<cont; i++)
for(j=0;j<cont-i;j++)
if(strcmp (nombre[j],nombre[j+1])>0){
strcpy (nombre, nombre[j][i]);
strcpy (nombre[j], nombre[j+1][i]);
strcpy (nombre[j+1], nombre);
}
for(i=0;i<=cont;i++){
for(int i=0;i<cont;i++){
cout<<"\n";
cout<<codigo[i]<<": "<<nombre[i]<<"\n\n";
cout<<"sueldo :$ "<<sueldo[i]<<"\n";
isss[i]=sueldo[i]*0.03;
afp[i]=sueldo[i]*0.0625;
sar[i]=sueldo[i]-isss[i]-afp[i];
if(sar[i]<=500){
renta[i]=0;
}
else{
if(sar[i]>500 && sar[i]<=1000){
renta[i]=sar[i]*0.10;
}
else{
if(sar[i]>1000){
renta[i]=sar[i]*0.20;
}
}
}
cout<<"el sueldo sin descuentos es de:$ "<<sueldo[i]<<"\n";
sum[i]=isss[i]+afp[i];
cout<<"la suma de descuentos de ISSS Y AFP es de :$ "<<sum[i]<<"\n";
cout<<"el salario antes de declarar renta es de :$ "<<sar[i]<<"\n";
sal[i]=sar[i]-renta[i];
cout<<"el pago de renta es :"<<renta[i]<<"\n\n";
cout<<"el salario final del empleado es :$ "<<sal[i]<<"\n\n\n";
}
}
}
void eliminar(){
cout<<"DIGITE NUMERO DE CODIGO DEL EMPLEADO AL QUE DESEA ELIMINAR \n";
cin>>codb;
if(codb>9999){
cout<<"Ingrese codigo nuevamente."<<endl;
return eliminar();
}else{
for(j=0;j<cont;j++){
if(codigo[j]==codb){
codb=1;
break;
}
}
for(j=codb;j<cont;j++){
codigo[j]=codigo[j+1];
nombre[j]=nombre[j+1];
sal[j]=sal[j+1];
}
cont--;
}
}
int salir(){
system("pause");
return 0;
}
:-( :-( :-( :-(
Me da estos errores:
(https://scontent-mia1-1.xx.fbcdn.net/v/t1.0-9/13346550_1330903470320575_7099710418670042652_n.jpg?oh=2548e50d111958d2ef80b264d129b495&oe=580FF1CE)
el código lo hiciste tu?
para que usas conio?
estas usando librerías en formato de c en c++
hay muchas cosas sin sentido (ej los primeros strcpy) seria bueno que comentaras tu código a ver cual era la intención de ciertas secciones
:o
en serio?
Haha el profe nos engaño e.e
Bueno, el problema que tengo es que no ordena los nombres. Investigue y encontré que con strc se podía...
en ese caso tu mayor problema es que nombre es un array unidimensional, es decir, puede contener cadenas (palabras) tu necesitas que sea bidimensional...
no creo que el profesor los engañara... creo que no entendiste la clase
ok
voy a seguir intentando
(y no, el profe no nos enseño eso)