Red de conocimiento informático - Conocimiento del nombre de dominio - Estoy buscando un sistema de gestión de nóminas en lenguaje C. ¡Gracias por la ayuda de los expertos en lenguaje C!

Estoy buscando un sistema de gestión de nóminas en lenguaje C. ¡Gracias por la ayuda de los expertos en lenguaje C!

El programa ingresa el número de trabajo del empleado y el salario a pagar, y el sistema calcula el salario real del empleado.

La información del empleado incluye número de empleado, nombre, sexo, salarios a pagar, impuestos, salarios reales, etc. (los números de los empleados no se repiten).

Requisitos funcionales y descripción:

El sistema funciona en modo menú

La función de ingresar información básica de los empleados y los salarios a pagar (guardados en un archivo)

Ingrese datos desde el teclado y cree el archivo de datos de disco salario.txt

Función de exploración de información salarial de los empleados:

Lea toda la información salarial de los empleados del archivo de datos de disco y mostrar el resultado en la pantalla;

Funciones de consulta y cálculo de salarios a pagar:

Fórmula de cálculo:

Salarios a pagar*tasa impositiva: impuesto=salarios a pagar*impuesto rate;

Salario real = salario a pagar - impuestos

Tasa de impuesto al salario

lt 1000 0

1000~4999 5 bool; check( int , int); // Comprobar si el número de empleado está repetido y consultar el número de empleado

void get() // Obtener datos

void put(); /salida a mostrar

void put_txt(ofstreamamp;); //salida a texto

void change_pay ( ) //convertir impuestos y a pagar

void come ( ifstreamamp; ) ; //leer del texto

privado:

int número; // número de empleado

char nombre[10]; /p>

char sex; //género

int pay; //pagable

doble pago_out; //impuestos

doble pago_true; pago real

};

apertura nula ( ifstream amp; , ofstreamamp;

cierre nulo ( ifstreamamp; , ofstreamamp;

);

int show_menu ();

int main()

{

ifstream entra;

ofstream sale;

abrir (entrar, salir)

int elegir1; //elegir menú principal

char elegir2; //elegir si desea salir

/ / vectorlt;Persongt. persona ;

Persona persona[100] ;

while(!in.eof())

{

char b ;

in.get(b);

if(b==':')

{

in putback(b)

persona[Contar].come(en)

Contar

}

}

}

hacer

{

sistema ("cls"

elegir1=mostrar_ menú();

<

p> sistema ("cls");

switch(choose1)

{

caso 1:

{

for(int i=0; ilt; 80; i )

cout lt; "# " ;

cout lt; lt; "Información básica del empleado y entrada de salario a pagar\n"

for(int j=0; jlt; 80; j )

cout lt;

hacer

{

//a.push_back(0)

persona[Contar].get()

p>

p>

//person.push_back(0);

Contar;

cout lt; o n):" ;

cin gt; gt; elegir2 ;

}mientras(elegir2=='y');

}

ruptura ;

caso 2:

{

for(int i=0; ilt; 80; i)

cout lt; "#" ;

cout lt; setw(20) lt; "Vista de información salarial del empleado\n" ; 0; jlt; 80 ; j )

cout lt; "#" ; <

cout lt; =0; mlt; m )

persona[m].put();

cout lt; >

romper ;

caso 3:

{

int p=0; ilt; 80; i )

cout lt; "#"

cout lt; setw(20) lt; ;

para (int j=0; jlt; 80; j)

cout lt; "#"

int número ; >

cout lt; lt; "\nIngrese el número del empleado que desea consultar:";

cin gt; 0; mlt; contar; m )

if( persona[m].check(número, 2) )

{

cout lt; \n ¡lo encontré! \n" ;

persona[m].put () ;

p=1 ;

descanso;

}

>

if(p==0)

cout lt;lt; "\n ¡no tiene este número de trabajo!\n";

descanso;

predeterminado:

cout lt; "\n error de entrada!"; lt; lt; "\n ¿Quieres continuar viendo el menú principal? (y o n):"

cin gt; =='y');

for (int i=0; ilt; =Count; i)

persona[i].put_txt (out); p>cierre (entrada, salida);

retorno 0;

}

apertura nula (ifstreamamp; ins, ofstreamamp; outs)

{

ins.open("c:\\tc\c\s a l a r y.txt" );

if (ins.fail())

{

cout lt; "no podemos abrir salario.txt!";

outs.open ("c:\tc\tc\s a l a r y.txt" )

if (outs.fail())

{

<; p> cout lt; lt; "no podemos abrir s a l a r y.txt!"; >

cierre vacío ( ifstreamamp; ins , ofstreamamp; outs )

{

ins.close();

outs.close();

}

int show_ menu ()

{

int palabra

for(int i=0; ; ilt; 80; i )

cout lt; "#" ;

cout lt "1. Ingrese la información básica del empleado y los salarios adeudados;

cout lt; "2. Consultar información salarial de los empleados; (n)" ;

for(int j=0;jlt;80;j)

cout lt;lt; "#" ;

cout lt;lt " Por favor ingrese su salario seleccionado.

): " ;

cin gt; gt; palabra ;

devolver palabra ;

}

void Persona::change_pay()

{

if(paylt; 1000)

{

pay_out = 0

pay_true = pagar; ;

}

if( (paylt; 4999) amp; amp; (paygt; = 1000) )

{

pay_out = pagar*0.05;

pay_ true = pagar - pay_out

}

if(paygt;=5000)

{

pago_out = pago*0.1

pay_true = pago - pago_out

}

}

}

Persona vacía:: come(ifstreamamp; in)

{

char b

in.get(b); p>

p>

if(b==':')

in gt;

a[Count]= número; >

hacer

{

in.get(b

}mientras(b!=':'); p> if(b ==':')

en gt; gt;

hacer

{

en. get(b);

} while(b. =':');

hacer

{

en! :');

en gt; pagar

hacer

{

in.get(b); p>

} while(b! =':');

in gt; pay_out;

hacer

{

en. get(b);

} while(b!=':');

en gt;

persona vacía::get()

{

hacer

{

cout lt; "\n número de empleado: " ;

cin gt; gt número

a[Count]=número

if( check(número, 1; ) )

break;

cout lt; "Hay un duplicado del número de trabajador \n, ¡vuelva a ingresar! " ;

}mientras(1);

cout lt; lt; "\n nombre: " ;

cin gt; gt; nombre;

cin gt;

p>

cout lt;lt;"\n pagadero:";

cin gt;gt; p>cin gt;gt; pagar;

p>

}

persona vacía:: put()

{

cambiar_pago();

for(int i =0; ilt; 80; i )

cout lt; "#" ;

cout lt; "\n número de empleado:" /p>

lt; "\n nombre:" lt; nombre

lt; "\n a pagar:" lt; lt; lt; "\n impuesto:" lt; pay_out

lt.lt; "\n salario de bolsillo:" lt; cout lt; lt; endl;

}

persona vacía:: put_txt(ofstreamamp; fuera)

{

for(int i= 0; ilt; 80; i )

cout lt; "#"

out lt; "\n número de empleado:" lt;

lt;lt; "\n Nombre:" lt;lt; nombre

lt;lt; "\n Debe ser pago:" lt;lt;

lt; lt; "\n pago real: " lt;

bool Persona::check(int b, int elegir)

{

cambiar(elegir)

{

caso 1:

{

for(int i=0;ilt;Count;i)

if(b ==a[i] )

return (b. =a[i])=a[i]);

Devuelve 1; caso 2:

return (b==número);

predeterminado:

cout lt; "\n error del sistema!"; >

salir(1);

}

}

}