Red de conocimiento informático - Computadora portátil - Programación en lenguaje C: diseño de un sistema de gestión estadística de información salarial de los empleados

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;

}

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;

}

}

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;

for (iter=emps.begin(); iter!=emps.end(); iter )

{

if (iter-gt; m_name== name)

{

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>

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;

}

}

上篇: Código fuente de noticias de Android¡Todo es difícil al principio! Muchas personas son impacientes pero lentas, incapaces de encontrar una salida para sus avances y, a menudo, caen en la ansiedad. Pero mientras des el primer paso, estarás a mitad del camino. No importa en qué campo se encuentre, debe prestar atención a los métodos de aprendizaje sistemáticos. Todo el contenido relacionado con Android se divide en 8 módulos y 729 puntos de conocimiento, que cubren el conocimiento más importante de todos los fabricantes de Internet y los puntos tecnológicos más vanguardistas de la industria. ¡Aprender estos ocho módulos significa que básicamente dominas todos los puntos de conocimiento del desarrollo de Android! ! (Si tiene dificultades para encontrar el método avanzado, puede hacer clic para guardar esta nota. O hacer clic en la tarjeta a continuación para obtener la versión completa del pdf) Tabla de contenido 1. Habilidades esenciales para que los arquitectos construyan cimientos 1. Obtenga más información sobre Java Genéricos 2. Explicado en términos simples. Programación concurrente 4. Principios de serialización y transmisión de datos 5. Máquina virtual Java 6. Efficient IO 2, análisis del código fuente del marco Android Top 100 1. Análisis de fuentes de Transformación 2.0 2. Análisis del código fuente Okhttp3 3. Análisis de fuentes de ButterKnife 4. Análisis de la fuente Mpandroidhart 5. Análisis de las fuentes de declive 6. Análisis de la fuente del canal de fuga 7. Análisis del código fuente del cargador de imágenes universal 8. Análisis del código fuente de EventB Us3.0 9.zxing análisis del código fuente 10. Análisis del código fuente de Picasso 11. Explicación detallada del uso de LottieAndroid y análisis del código fuente 12. Análisis del código fuente de Fresco: proceso de carga de imágenes 3, análisis de optimización del rendimiento de Android 1. Tencent Bugly: cierta comprensión de los algoritmos de coincidencia de cadenas 2. iQIYI: solución de captura de fallas de aplicaciones de Android-XCRASH 3. Bytedance: comprensión profunda de uno de los marcos de Gradle: complementos, extensiones y construcción. Tecnología Baidu APP: primera práctica de optimización de pantalla de AndroidH5. Análisis de la arquitectura del cliente Alipay: recolección de basura optimizada para la velocidad de inicio del cliente Android. Ctrip: práctica de arquitectura de componentes del proyecto Zhixing de Android. NetEase News Optimización de la construcción: ¿Cómo hacer que la velocidad de su construcción sea "tan rápida como un rayo"? 4. Combate avanzado mejorado de Kotlin 1. Tutorial de introducción a Kotlin 2. Guía práctica de Kotlin para evitar pozos 3. Práctica del proyecto "Práctica de Kotlin Jetpack" Kotlin ¿Cuál es la experiencia de escribir guiones de Gradle a partir de una demostración que adora al gran dios? Programación de Kotlin triple reino Funciones de alto orden de Kotlin Genéricos de Kotlin Extensión de Kotlin Concurrencia delegada de Kotlin Habilidades de depuración "desconocidas" Concurrencia de gráficos: suspender V, marco de código abierto de interfaz de usuario avanzada de Android descifrado avanzado 1. Utilice el diseño SmartRefresh 2. Análisis del código fuente del control de actualización desplegable de Android 3. Uso básico de Android: biblioteca de actualización desplegable 4. Marco de gestión de páginas de comentarios de carga eficiente y fácil de usar 5. Carga universal de Android. Descripción detallada del marco de carga de vistas 6. MPAndroidChart implementa LineChart 7. guía del usuario de hellocharts-android 8. Guía del usuario de Smart Desk 9. Introducción al proyecto de código abierto android-uitableview 10. Guía del usuario de ExcelPanel 11. y análisis en profundidad del proyecto de código abierto Roid SlidingMenu 12. Guía del usuario del cajón de materiales VI. Desarrollo del módulo NDK 1. Desarrollo del módulo NDK 2. JNI módulo 3. Herramientas de desarrollo nativas 4. Programación Linux. Procesamiento de imágenes de bajo nivel6. Desarrollo de audio y vídeo. Ciencia de las máquinas 7. Tecnología avanzada de tramado1. Descripción general del desarrollo multiplataforma de Flutter 2. Construcción del entorno de desarrollo de flutter. Windows 3. Escribiendo tu primera aplicación Flutter 4. Construyendo y depurando el entorno de desarrollo Flutter 5. Capítulo de gramática de Dart Gramática básica (1) 6. Análisis de uso y fuente de la colección de artículos gramaticales de DART (2) 7. Establecer la función del operador y el análisis del código fuente 7. Artículos de gramática de Dart (3) 8. Desarrollo del subprograma WeChat 1. Descripción general e introducción del mini programa 2. Desarrollo de UI de mini programa 3. Operación API 4. Debido a la gran cantidad de artículos sobre proyectos reales de centros comerciales, el espacio es limitado y los materiales se han compilado en documentos PDF. 下篇: ¿Qué portátil delgado y liviano se recomienda en 2022? ¿Vale la pena comprar el ASUS ZenBook 14 2022?