Red de conocimiento del abogados - Ley de patentes - Escribir un programa para implementar la gestión de nóminas en una pequeña empresa. La empresa cuenta con cuatro categorías principales de personal: directivos, técnicos a tiempo parcial, vendedores y directores de ventas.

Requerir

Escribir un programa para implementar la gestión de nóminas en una pequeña empresa. La empresa cuenta con cuatro categorías principales de personal: directivos, técnicos a tiempo parcial, vendedores y directores de ventas.

Requerir

#include

#include

#include

#include

#include

usando el espacio de nombres std;

//Variables constantes (para modificación):

const int n1 = 2,n2=2,n3=4,n4=2; /*Definir el número de varios tipos de empleados en la empresa (fácil de modificar)

(n1: Número de técnicos; n2: Número de managers; n3: Número de vendedores; n4: Número de gerentes de ventas) */

const double m_salary=8000; //Salario mensual fijo para gerentes

const double hourpay=100; //Salario por hora de los técnicos

const double basicpay=5000; //Salario básico del gerente de ventas

const double s_proportion=4.0/100; //Relación de comisión salarial del vendedor

const double sm_proportion=0.5 /100; //Proporción de comisión del gerente de ventas

//Parte de la declaración:

void menu() //Menú principal

void menu2(); //Menú secundario de entrada de datos

void menu3(); //Menú secundario de impresión de datos

void data_input(); //Función de entrada de datos

p>

void data_print(); //Impresión de datos

void charthead1(); //Crear función de encabezado 1 para contar las ventas

void charthead2(); encabezado 2 Función, impresión de datos

void chartend(); //Crear cola de tabla

void stats() //Estadísticas de datos

double sm_salary(); ; / /Cálculo del salario del gerente de ventas

void sm_print(); //El gerente de ventas imprime datos

void data_find() //Consulta de datos

void data_save () ; //Copia de seguridad de datos

ofstream outfile; //Abrir objeto de flujo de archivo de disco

string f_name; //Variable global (para consulta)

/ /Definición Clase:

clase Empleado //Clase de empleado (clase base)

{

público:

void input() / /Función de entrada de datos

{

cout<<"Número:"

cin>>num;

cout<<"; su nombre :";

cin>>nombre;

cout<<"Género (m/w):";

cin>>sexo;

cout<<"Edad:"

cin>>edad;

}

void

print() //Función de impresión de datos

{

cout<<"├─────┼─────┼─────┼──── ─┼─────┤"<

cout<<"│"<

<

}

void find() // Función de consulta

{

if(f_name== nombre)

{

charthead2();

print();

chartend();

cout<

}

}

void save() //Función de copia de seguridad de datos

{

archivo de salida <<"├─────┼─────┼─────┼────┼─────┤"<

archivo de salida < <"│"<

<

}

protected:

int num; //Número de empleado

nombre de cadena; //Nombre del empleado

char sex //Género del empleado

int age; //Edad del empleado

doble salario; //Salario del empleado

};

clase Técnico:empleado público //Clase de técnico (público Heredado) )

{

público:

void input()

{

cout<<"Técnico de ";

Empleado::input();

cout<<"Tiempo de trabajo:";

cin>>tiempo de trabajo;

}

void print()

{ pay=worktime*hourpay;

Empleado::print()

}

void find()

{

Empleado::find();

}

>

void save()

{ pay=worktime*hourpay;

Empleado::save()

}

protected:

doble tiempo de trabajo; //Tiempo de trabajo (horas)

};

clase Gerente: público Empleado //Clase Gerente

{

público:

void input()

{

cout<<"Administrador";

Empleado::input();

}

void print()

{ pay=m_salary;

Empleado: : print();

}

void find()

{

Empleado::find();

}

void save()

{ pay=m_salary;

Empleado::save();

}< / p>

};

clase Sell_manager:empleado público //clase de gerente de ventas

{

público:

entrada nula ()

{ cout<<"Gerente de ventas";

Empleado::input();

}

int sm_number( ) //Llamar al número de empleado del gerente de ventas

{

return num;

}

string sm_name() //Llamar a Ventas nombre del administrador

{

nombre de devolución;

}

void print()

{

p>

cout<<"├──────┼─────┼─────┼─────┼─────┤"<

cout<<"│"<

<

}

void save()

{

archivo de salida<<"├─────┼─────┼─────┼─────┼─────┤"<

archivo de salida<<"│"<

<

}

};

p>

clase Vendedor:public Empleado //Vendedor clase

{

public:

Vendedor(){ sold_amount=0 } // Constructor , el volumen de ventas se inicializa en 0

void input()

{

cout<<"Vendedor";

Empleado:: input();

cout<<"Ventas:";

cin>>sold_amount;

cout<<"El número del gerente de ventas: ";

cin>>nu;

}

void grade() //Resultado del desempeño del vendedor

{

cout<<"├─────┼─────┼─────┤"<

cout<<"│"<

}

void print()

{ pay=sold_amount*s_proportion;

cout<<"├─────┼─────┼ ─────┼ ─────┼─────┼──────────┤"<

cout<<"│"<< setw(6)<

<

}

int s_number() //Llamando al número de empleado del gerente de ventas al que pertenece el vendedor

{

return nu;

}

double cantidad() // Llamando al volumen de ventas del vendedor

{

return sold_amount;

}

void find( )

{ if(f_name==nombre)

{cout<<"┌─────┬────┬─────┬─ ─── ─┬─────┬───────────┐"<

cout<<"│ ID de empleado│ Nombre│ Género│ Edad│ Salario │ Gerente de departamento número│"<

print();

cout<<"└─────┴──

───┴─────┴─────┴─────┴───────────┘";

}

}

void save()

{ pay=sold_amount*s_proportion;

outfile<<"├─────┼───── ┼─────┼─────┼─────┼──────────┤"<

archivo<<"│"< < setw(6)<

<

}

protected:

double sold_amount; //Volumen de ventas

int nu; //Número de empleado del gerente de ventas

} ;

//Definir matriz de objetos global

Técnico t[n1]; //Técnico

Gerente m[n2] //Gerente

Vendedor s[n3]; //Vendedor

Sell_manager sm[n4]; //Gerente de ventas (varios vendedores subordinados)

//Parte de función principal:

int main()

{

char n;

menú();

for(int i =0 ;i<1000;i++) //Establece el número de ciclos (para facilitar el cambio de varias operaciones y realizar consultas convenientes)

{

cin>>n;

switch(n)

{

case'1': //Entrada de datos

cout<

data_input();

cout<

menu();< / p>

break;

case'2': //Estadísticas de datos

cout<

estadísticas();

cout<

sm_print();

cout<

menú();

romper;

case'3': //Impresión de datos

cout<&

lt;endl<<"La operación que seleccionó es impresión de datos, continúe -"<

cout<<'\a'<<"Impresión de datos, espere... …"<<'\n'<<'\n'<

cout<<"La situación básica de los empleados es la siguiente:"<<'\n'<

data_print();

cout<

cout<<'\a'<<"——Impresión de datos completada—— "<< '\n'<<'\n'<

menú();

descanso;

caso'4': / /Consulta de datos

cout<

cout<<"Por favor ingrese el consulta que desea realizar Nombre del empleado: ";

cin>>f_name;

cout<

cout<<"La información que estás consultando es la siguiente:"<

data_find();

cout<;

menu();

break;

case'5': //Copia de seguridad de datos

archivo externo .open("Internship de diseño de programa C++.txt",ios::out); //Abre el objeto de flujo de archivos del disco

cout<

outfile<<"La situación básica de los empleados es la siguiente:"<<'\n'<

data_save( );

archivo de salida .close();

cout<

cout<<'\a'<<"——Datos copia de seguridad completada, continúe——"<< endl<

menu();

break;

case'0': //Salir el sistema

cout<

cout<<" Sí (y)"<<" "<<"No ( n ) ";

cin>>n;

if(n=='y')

{ cout<&l

t;'\n'<<"——Presione cualquier tecla para salir del sistema——"<

else menu();

break;

predeterminado:

cout<

menú();

romper

}

}

devolver 0;

}

//Parte de función personalizada:

void menu() //Función de menú

{

cout << " ★★Sistema de gestión de nóminas para pequeñas empresas★★ "<

cout<<"┌──────────────┐"<

cout<<"│ Seleccione la operación que necesita│"<

cout<<"│ Entrada de datos: 1 y presione Enter; │"<

cout<<"│ Estadísticas de datos: 2, y presione Enter; │"<

cout<<"│ Impresión de datos: 3, y presione Enter; │"<

cout<<"│ Consulta de datos: 4, y presione la tecla Enter │"<

cout<<"│ Copia de seguridad de datos: 5; , y presione la tecla Enter; │"<

cout<<"│ Salga del sistema: 0 y presione la tecla Enter; cout<<"└──────────────┘"<

cout<<" Seleccione una operación:";

}

void menu2() //Función del menú secundario de entrada de datos

{

cout<<" ★★Sistema de gestión de nóminas para pequeñas empresas★ ★ "<< endl;

cout<<"┌───────────────────┐"<

cout <<" │ Seleccione la operación que necesita│"<

cout<<"│ Entrada de datos del administrador: 1 y presione Entrar │"<

cout<; <"│ Ingreso de datos del técnico: 2, y presione Enter; │"<

cout<<"│ Ingreso de datos del vendedor: 3, y presione la tecla Enter; │"<

cout<<"│ Entrada de datos del gerente de ventas: 4, y presione la tecla Enter; │"<

cout<<" │ Regresar al nivel anterior: 5, y presione la tecla Intro;

cout<<" Por favor seleccione una operación:";

}

void menu3() //Función del menú secundario de impresión de datos

{

cout<<" ★★Sistema de gestión de nóminas para pequeñas empresas★★ "<

cout<<"┌────────── ─ ───────┐"<

cout<<"│ Seleccione la operación que necesita│"<

cout<<" │ Administrador impresión de datos: 1, y presione la tecla Enter; │"<

cout<<"│ Impresión de datos del técnico: 2, y presione la tecla Enter │"<

cout<<"│ Impresión de datos del vendedor: 3, y presione la tecla Enter; │"<

cout<<"│ Impresión de datos del gerente de ventas: 4, y presione Enter key; │"<

cout<<"│ Regresa al nivel anterior: 5, y presiona la tecla Enter │"<

cout <<; "└───────────────────┘"<

cout<<" Por favor seleccione una operación:";

}

void data_input() //función de entrada de datos

{

char p;int i;

menu2() ;

for(int j=0;j<100;j++)

{

cin>>p;

if ( p=='5') descanso;

else

{

cambiar(p)

{

caso'1':

for(i=0;i

m[i].input();

cout <

case'2':

for(i=0; i

t[i].input();

cout<

caso'3':

for(i=0;i

s[i].input();

cout <

caso'4':

for(i=0;i

sm[i].input();

> cout<

}

}

}

}

void charthead1() //Encabezado de tabulación 1 (para estadísticas de datos)

{

cout<<"┌───── ┬─ ────┬─────┐"<

cout<<"│Número de empleado│ Nombre│Ventas│"<

}

void charthead2() //Cabeza del gráfico 2 (para impresión de datos y estadísticas de datos del gerente de ventas)

{

cout<<"┌──── ─┬─────┬─────┬─────┬─────┐"<

cout<<"│ ID de empleado│ Nombre│ Género│ Edad│Salario│"<

}

void chartend() //Cola de tabulación (para impresión de datos y estadísticas de datos del gerente de ventas)

{

cout<<"└──────┴─────┴────┴─────┴─────┘";

}

void stats() //Función de estadísticas de datos

{ int i,j;

for(i=0;i

{ double sum=0;

cout<

<<"El desempeño del vendedor subordinado es:"<

charthead1();

for(j=0;j

if(s[j].s_number()==sm[i].sm_number())

{

suma=sum+s[j].cantidad();

s[j].grado();

}

cout<<"├─────┼─────┴─────┤"<

cout<<"│Ventas totales│"<

cout<<"└─────┴───────────┘"<

}

}

salario doble[n4];

doble sm_salary() //Cálculo y clasificación del salario del gerente de ventas

{

int i,j;doble a ;Sell_manager b;

for(int k=0;k

salario [k]=0;

p>

for(i=0;i

{ doble suma=0;

for(j=0;j

if(s[j].s_number()==sm[i].sm_number())

{ suma=sum+s[j].cantidad();

salario[i]=sum*sm_proportion+pago básico;

}

}

for( j=0;j

for( i=0;i

if(salario[i]

{ a=salario[i+1];salario[i+1]=salario[i];salario[i]=a;

b=sm[i+1];sm [i+1]=sm[i];sm[i]=b;

}

devuelve 0;

}

void sm_print()

{

sm_salary();

charthead2();

for(int i=0;i

{ sm[i].print();

cout<

}

chartend();

cout<

}

void data_print( ) //Impresión de datos

{

char p;int i,j;

menu2();

for(j= 0;j<100;j++)

{

cin>>p;

if(p=='5') descanso;

else

{

switch(p)

{case'1':

cout<

charthead2();

for(i=0;i

m[i ].print();

chartend();

cout<

menu3();break;

case'2':

cout<

charthead2();

for(i=0;i

t[i] .print();

chartend();

cout<

t;<"---------------------------------------------- ------------------------"<

menu3();break;

case'3':

cout<

cout<<"┌─────┬─ ── ──┬─────┬─────┬────┬───────────┐"<

cout<< "│ Empleado número│ Nombre│ Género│ Edad│ Salario│ Número de gerente de departamento│"<

for(i=0;i

s [i]. print();

cout<<"└─────┴────┴─────┴─────┴─────┴ ───── ──────┘";

cout<

menu3();break;

case'4':

cout<

sm_salary();

sm_print();

cout<

menu3();break; }

}

}

}

void data_find() //función de consulta de datos

{

for(int i=0;i

t[i].find();

for(i=0;i

m[i].find();

for(i=0;i

s[i].find() ;

for(i=0;i

if(f_name==sm[i].sm_name())

{ charthead2 ();

sm[i].print();

cout<

chartend();

cout<

break;

}

}

void data_save () //función de copia de seguridad de datos

{

outfile<

outfile<<"┌─────┬ ─────┬────┬─────┬─────┐"<

outfile<<"│ ID de empleado│ Nombre│ Sexo│ Edad│ Salario │"<

for(int i=0;i

t[i].save();

archivo de salida <<"└─────┴─────┴─────┴─────┴─────┘";

outfile<

archivo de salida<

outfile<<"┌─────┬────┬────┬─────┬─────┐ "<

outfile<<"│ ID de empleado│ Nombre│ Género│ Edad│ Salario│"<

for(i=0;i

m[i].save();

archivo de salida<<"└─────┴─────┴──────┴── ─── ┴─────┘";

archivo de salida<

outfile<

sm_salary();

archivo<<"┌─────┬────┬────┬────┬────┐"<

archivo<<"│ Empleado ID│ Nombre│ Género│ Edad│ Salario│"<

for(i=0;i

{ sm [i].save() ;

archivo de salida<

archivo de salida<<"└ ─────┴─ ────┴─────┴─────┴─────┘";

archivo de salida<

dl<

outfile<

outfile<<"┌─────┬─ ── ──┬─────┬─────┬────┬───────────┐"<

perfil<< "│ Empleado número│ Nombre│ Sexo│ Edad│ Salario│ Número de gerente de departamento│"<

for(i=0;i

s [i]. save();

outfile<<"└─────┴────┴─────┴─────┴─────┴ ───── ──────┘";

archivo de salida<

}