Programación en lenguaje C: diseño de un sistema de gestión estadística de información salarial de los empleados
#include "stdafx.h"
#include "iostream"
#include "string"
#include "lista"
#include "cassert"
usando namespace std;
/*
Nº, nombre, departamento, salario a pagar, seguro , Impuestos, salarios pagados.
El salario real se calcula mediante la fórmula: salario real = salario a pagar - seguro - impuestos
*/
estructura empleado{
string m_num; //Número
string m_name; //Nombre
string m_dep; //Departamento
double m_salary; >
double m_insurance; //Seguro
double m_tax; //Impuestos
};
/*
( 1 ) Entrada: ingrese los datos del empleado, de los cuales se calculan los "salarios reales"
(2) Eliminar: elimine la información especificada del empleado (ingrese el nombre y elimine la información si la encuentra)
(3) Modificar: Permitir que los datos ingresados sean reeditados y modificados
(4) Mostrar: Mostrar todos los datos de los empleados
(5) Consulta:
a. Ingrese el nombre del empleado para mostrar todos los datos del empleado;
b Ingrese el valor de un determinado departamento para mostrar los datos, el salario total y el salario promedio de los empleados. en el departamento.
(6) Salga del programa.
*/
listlt;employeegt;emps;
int _tmain(int argc, _TCHAR* argv[])
{
void print(const empleado amp; e);
void input();
void del()
void mod( );
void show_all();
void show_name();
void show_dep()
coutlt;lt;" Programa sencillo de gestión de salarios de empleados de do him\n"; // eliminar esta línea
coutlt;lt; "No hay derechos de autor, no dude en copiar o modificar cualquier código\n"; //eliminar esta línea
coutlt;lt;"Seleccione la operación: 1. Ingresar 2. Eliminar 3. Modificar 4. Consultar 5. Mostrar todos los empleados 6. Salir:
int elegir=0;
p>cingt; elegir;
afirmar(!cin.fail());
mientras (elegir!=6)
{
if (elegir==1) input();
if (elegir==2) del(); > if (elegir==3) mod();
if (elegir==4)
{
int elección=0;
coutlt;lt;" Seleccione la operación 1. Consulta por nombre 2. Consulta por departamento 3. Salir: ";
cingt;
if ( elección==1) show_name();
if (elección==2) show_dep();
if (elección==3)
{
coutlt;lt ; "Seleccione la operación: 1. Ingresar 2. Eliminar 3. Modificar 4. Consultar 5. Mostrar todos los empleados 6. Salir:
cingt; elegir;
afirmar (!cin.fail());
continuar;
}
}
if (choose==5) show_all( );
coutlt;lt;"Por favor seleccione la operación: 1. Ingresar 2. Eliminar 3. Modificar 4. Consulta 5. Mostrar todos los empleados 6. Salir: ";
cingt; gt; elegir;
afirmar(!cin.fail());
}
devolver 0;
}
void print(const empleado amp;e)
{
coutlt;lt;"Número: "lt;lt ;e.m_numlt;lt;endl;
p>coutlt;lt;"Nombre:"lt;lt;e.m_namelt;lt;endl;
coutlt;lt;" Departamento:"lt
;lt;e.m_deplt;lt;endl;
coutlt;lt;"Seguros: "lt;lt;e.m_insurancelt;lt;endl;
coutlt;lt;" Impuestos: "lt;lt;e.m_taxlt;lt;endl;
coutlt;lt;"Salario a pagar: "lt;lt;e.m_salarylt;lt;endl;
coutlt;lt;"Salario real:"lt;lt;e.m_salary-e.m_insurance-e.m_taxlt;lt;endl;
}
void input()< / p>
{
string num, nombre, dep;
doble salario, ins, impuestos
coutlt; Número: ";
cingt;gt;num;
coutlt;lt;"Por favor, introduzca el nombre del empleado: ";
cingt;gt;name;
coutlt;lt;"Ingrese el departamento del empleado:";
cingt;gt;dep;
coutlt;lt;"Ingrese el seguro del empleado :";
cingt;gt;ins;
afirmar(!cin.fail());
coutlt;lt;"Ingrese el impuesto sobre los empleados: ";
cingt;gt;tax;
afirmar(!cin.fail());
coutlt;lt;"Ingrese el salario a pagar por el empleado:";
cingt; gt; salario;
afirmar(!cin.fail());
temperatura del empleado;
temp.m_dep= dep;
temp.m_insurance=ins;
temp.m_name=nombre;
temp.m_num=num;
temp. m_salary=salario;
temp.m_tax=impuesto;
emps.push_back(temp);
coutlt;lt;"Empleado operación de entrada completada.\n ";
}
void del()
{
if (emps.size()= =0)
{
coutlt;lt;"No hay registro de empleado.\n";
return;
} p>
string name;
bool isfind=false;
coutlt;lt;"Ingrese el nombre del empleado que desea eliminar:";
cingt;gt;name;
listlt;employeegt;::iterador iter;
for (iter=emps.begin();iter!=emps.end(); iter)
{
if (iter-gt; m_name==nombre)
{
isfind=true;
emps.erase(iter );
coutlt;lt;"El registro de empleado llamado \""lt;lt;namelt;lt;"\" ha sido eliminado.\n";
return;
} p>
}
if (!isfind)
{
coutlt;lt;"No se encontró el nombre\""lt;lt; namelt ;lt;"\"empleados.\n";
return;
}
}
void mod()
{
if (emps.size()==0)
{
coutlt;lt;"El registro del empleado está vacío \n";
retorno;
}
bool isfind=false;
nombre de cadena;
coutlt;lt;"Por favor, introduzca el nombre del empleado que desea modificar:";
cingt;gt;name;
listlt;employeegt;::iterator iter; p>
for (iter=emps.begin(); iter!=emps.end(); iter )
{
if (iter-gt; m_name== name) p>
{
isfind=true;
coutlt;lt;"El registro del empleado con el nombre\""lt;lt;namelt;lt; "\" ha sido encontrado .\n";
break;
}
}
if (isfind)
{
string num, nombre, dep;
doble impuesto, ins, salario
print(*iter);
coutlt; lt ;endl;
coutlt;lt;"Por favor, introduzca el nuevo número de empleado:";
cingt;gt;num;
coutlt;lt;"Ingrese el nuevo nombre del empleado: "; p>
cingt ;gt;dep;
coutlt;lt;"Ingrese el seguro del nuevo empleado:";
cingt;gt;ins;
afirmar(!cin .fail());
coutlt;lt;"Ingrese el nuevo impuesto al empleado:";
cingt;gt;tax;
afirmar(! cin.fail());
coutlt;lt;"Ingrese el salario del nuevo empleado:";
cingt;gt;salario;
afirmar( !cin.fail());
iter-gt; m_dep=dep
iter-gt; iter-gt; m_name = nombre;
iter-gt; m_num=num;
iter-gt;
-gt; m_tax=tax;
coutlt; "1 registro de empleado se modificó correctamente.\n";
{
coutlt;lt;"No se encontró ningún registro de empleado con el nombre \""lt;lt;namelt;lt;"\".\n";
}
}
void show_all()
{
if (emps.size()==0)
{
coutlt;lt;"El registro del empleado está vacío.\n";
return;
}
coutlt; lt; "Mostrar todos los datos del empleado:\n";
coutlt; --\n";
coutlt; lt; "--------------------------\n"; p>
p>
listlt;employeegt;::iterador iter;
for(iter=emps.begin();iter!=emps.end();iter)
{
coutlt;lt;endl;
print(*iter);
coutlt;lt;endl;
}
coutlt;lt;"--------------------\n";
}
void show_name ()
{
if (emps.size()==0)
{
coutlt; lt;"El registro del empleado está vacío.\n";
return
}
bool isfind=false
nombre de cadena; ;
coutlt;lt;"Ingrese el nombre del empleado que desea consultar:";
cingt;gt;name;
listlt;employeeegt ;::iterador iter;
for(iter=emps.begin(); iter!=emps.end(); iter )
{
si (iter-gt; m_name==nombre )
{
isfind=true;
coutlt;lt;"Empleados nombrados\""lt;lt; namelt;lt;"\" Registro encontrado.\n";
print(*iter);
descanso;
}
}
if (!isfind)
{
coutlt;lt;"Ningún empleado llamado \""lt;lt;namelt;lt;"\ " fue encontrado.\ n";
return
}
}
void show_dep()
{
if (emps.size()==0)
{
coutlt;lt;"El registro del empleado está vacío.\n";
retorno;
}
doble isfind=0.00
doble salario_total=0.00
;
string dep;
coutlt;lt;"Ingrese el nombre del departamento que desea consultar:";
cingt;gt;dep;
coutlt;lt;"Información del empleado del departamento ["lt;lt;deplt;lt;"]:\n";
coutlt;lt;"----- ---- -----------\n\n";
listlt;employeegt;::iterador iter;
for(iter=emps. comenzar(); iter!=emps.end(); iter )
{
if (iter-gt; m_dep==dep)
{
isfind;
total_salario =iter-gt;
print(*iter);
endl; /p>
continuar
}
}
coutlt;lt;"-------------- ---- --\n";
if (isfind==0)
{
coutlt;lt;"El nombre no se encuentra [ "lt;lt; departamento de departamento;lt;"].\n";
}
else
{
coutlt ;lt;"Departamento ["lt;lt;deplt;lt;"]Estadísticas salariales:\n";
coutlt;lt;"Salario total: "lt;lt;total_salarylt;lt;endl;
coutlt;lt;"Salario medio:"lt;lt;total_salary/isfindlt;lt;endl;
}
}