Red de conocimiento informático - Conocimiento informático - Código fuente del sistema de nómina

Código fuente del sistema de nómina

# incluir ltstring gt

# incluir ltiostream gt

# incluir lttime.h gt

# incluir ltvector gt

Usar nomenclatura Space std

Clase de empleado //Definir la clase de empleado.

{

Público:

Empleado(); //Constructor

Empleado virtual();

Virtual void Display() = 0;

int GetAge(); //Obtener edad

string GetName() //Obtener nombre

Protegido :

int Id//Número de identificación del empleado

String name; //Nombre del empleado

char Sex[5] //Género

int salario; //salario

string cumpleaños; //fecha de nacimiento

string tiempo de trabajo; //tiempo de trabajo

int Edad/ /age

};

Clase de trabajador: Empleado público // Definir clase de trabajador.

{

Público:

trabajador();

Virtual VWorker();

pantalla nula( );

};

Profesor de clase: funcionario público // Definir la clase de profesor.

{

Público:

Profesor();

VTeacher virtual();

visualización vacía( );

string GetAcademy();

Privado:

String Academy;

};

Empleado ::Empleado()

{

}

Empleado::Empleado()

{

}

int Empleado::GetAge()

{

Edad de retorno;

}

Cadena Empleado: :GetName()

{

Devolver nombre;

}

Profesor::Profesor() //Agregar información del profesor

{

cout lt lt"Por favor ingrese la información del maestro:"

cout lt lt"Número de empleado:" < ltendl

CIN gt ; gtid;

cout lt lt"Nombre:"

CIN gt; gtNombre;

cout lt lt"Género:"

CIN gt; gtSexo;

cout lt lt"Salario:"

CIN gt; (Formato xxxx/xx/xx)"

CIN gt; gtCumpleaños;

cout lt lt"Horas de trabajo: (Formato xxxx/xx/xx)" lt; ltendl

CIN gtHoras de trabajo;

cout lt lt" Profesor:" < ltendl

CIN gt; gtCollege;

// Extrae el año de nacimiento del cumpleaños.

int Pos = cumpleaños. find _ first _ of('/');

Año de nacimiento de la cadena

BirthYear.assign(cumpleaños, 0, Pos). );

char chBirthYear[6];

strcpy(chBirthYear, cumpleaños. c_str());

//Obtener el año del sistema actual.

char now año[5];

time _ t tnow = time(0);

strftime(NowYear, 5, " Y ", hora local (amp;tnow));

edad = atoi(ahora año)-atoi(chBirthYear);//Calcular edad

}

Profesor: VTeacher( )

{

}

void profesor: función :display(){//display() con el mismo nombre, genera información del profesor.

cout lt lt"Número de empleado:" < ltId lt ltendl

cout lt lt"Nombre:"

cout lt lt"Género:"

cout lt lt"Salario:"

cout lt lt"Fecha de nacimiento:"

cout lt lt"Horas de trabajo:"

cout lt lt"Edad:"

}

string Profesor:: GetAcademy(){

Regresar a la academia;

}

Trabajador::Trabajador() //Agregar información del trabajador

{

cout lt lt"Ingrese la información del trabajador:"

cout lt lt"Número de empleado:" < ltendl

CIN gt;

cout lt lt"Nombre:"

CIN gtName;

CIN gt; p>

cout lt lt"Género:"

CIN gt; gtSexo;

cout lt lt"Salario:"

CIN gt; gt Salario;

cout lt lt"Fecha de nacimiento: (formato xxxx/xx/xx)"

CIN gt; p>cout lt lt"Tiempo de trabajo: (formato xxxx/xx/xx)" lt; ltendl

CIN gt; gtTiempo de trabajo

//Extrae el año de nacimiento del cumpleaños.

int Pos = cumpleaños. find _ first _ of('/');

Año de nacimiento de la cadena

BirthYear.assign(cumpleaños, 0, Pos). );

char chBirthYear[6];

strcpy(chBirthYear, cumpleaños. c_str());

//Obtener el año del sistema actual.

char now año[5];

time _ t tnow = time(0);

strftime(NowYear, 5, " Y ", hora local (&tnow));

edad = atoi(ahora año)-atoi(chBirthYear);//Calcular edad

}

Trabajador::VWorker ()

{

}

void trabajador::display(){//display() función con el mismo nombre, genera información del trabajador.

cout lt lt"Número de empleado:" < ltId lt ltendl

cout lt lt"Nombre:"

cout lt lt"Género:"

cout lt lt"Salario:"

cout lt lt"Fecha de nacimiento:"

cout lt lt"Horas de trabajo:"

cout lt lt"Edad:"

}

void add profesor(vector lt; profesor gt*TeaInfo) //Añadir objeto profesor

{

System("Color05A"); //Establece el color de fondo y el color de primer plano de la ventana actual.

Profesor TeaTemp;

(*TeaInfo). push_back(tea temp);

}

void AddWoker(vector lt; trabajador gt*WorkerInfo) //Agregar un nuevo objeto de trabajo.

{

System("Color05A");

Trabajador Wokertmp

(*WorkerInfo). push_back(Wokertmp);

}

void DisplayAll(vector ltteacher gt*TeaInfo, vector ltworker gt*WokerInfo){ //Mostrar todos los registros de empleados.

System("Color05A");

cout lt lt"Toda la información de los profesores:"

Vector lt profesor gt* iterador pTeaInfo

for (pTeaInfo=(*TeaInfo).begin();(*TeaInfo).empty()!=1. amppTeaInfo!=(*TeaInfo).end();PTA info)//Si se alcanza el vector en final, salida.

{

(*pTeaInfo). display();

cout lt ltendl

}

cout lt lt"Información de todos los trabajadores:"

Vector lt trabajador gt *Iterador pWorkerInfo

for (pWorkerInfo=(*WokerInfo).begin();(*WokerInfo).empty()!=1. amppWorkerInfo!=(*WokerInfo).end();PWorkerInfo ) / /Salir si se alcanza el final del vector.

{

(*pWorkerInfo).

display();

cout lt ltendl

}

cout lt lt"Presione Enter para regresar"

getchar(); ();

}

void disavgthierage(vector lt; teacher gt*TeaInfo){ //Consulta la edad promedio de los profesores.

System("Color05A");

int SumAge = 0;

Vector ltteachergt*iterador pTeaInfo

for (pTeaInfo=( *TeaInfo).begin();(*TeaInfo).empty()!=1. amppTeaInfo!=(*TeaInfo).end();PTA info )//Recorre el contenedor del profesor

{/ /Si se llega al final del vector, salir.

SumaEdad = (*pTeaInfo). GetAge();

cout lt ltendl

}

if((*TeaInfo).size()!=0)

cout lt lt"La edad promedio de los profesores es"

else cout lt lt"Sin registro"

cout lt lt"Presione Enter para regresar"

getchar (); getchar();

}

void disavgworeage(vector lt; trabajador gt*WokerInfo){

System("Color05A");

p>

int SumAge = 0;

Vector lt trabajador gt * iterador pWorkerInfo

for (pWorkerInfo=(*WokerInfo). comenzar(); (*WokerInfo). vacío ()! =1. amppWorkerInfo! =(*WokerInfo) //Salir si se alcanza el final del vector.

{

SumaEdad = (*pWorkerInfo). GetAge();

cout lt ltendl

}

if((*WokerInfo).size()!=0)

cout lt lt"La edad promedio de los empleados es"

else cout lt lt"Sin registro"

cout lt lt"Presione Enter para regresar"

getchar (); getchar();

}

void DelTeacher(vector ltteachergt*TeaInfo){ //Se utiliza para eliminar información del profesor.

System("Color05A");

bool Hflag = false

String SearchName

Vector lt profesor gt* iterador pTeaInfo

cout lt lt"Ingrese el nombre del profesor que desea eliminar:"

cout lt lt"Nombre:";

CIN gtSearchName

p> p>

for(pTeaInfo=(*TeaInfo).begin();(*TeaInfo).empty()!= 1. amppTeaInfo!=(*TeaInfo).

end(); PTA info )//Salir si se alcanza el final del vector.

{

if(0 = = buscar nombre. compare(* ptea info).getname())//Si se encuentra el nombre del profesor a eliminar, ejecutar.

{

Hflag = true//Encuentra al profesor

(*TeaInfo). erase(pTeaInfo); //Elimina el profesor especificado en el vector.

Continuar;

}

}

If (false==Hflag) //Si no hay profesor, ejecutar.

{

cout lt lt"¡No existe tal maestro!" key Return "

getchar(); getchar();

}

void del trabajador(vector lt; trabajador gt*WokerInfo) //Se usa para eliminar información de los trabajadores.

{

System("Color05A");

bool Hflag = false

String SearchName

vector lt trabajador gt * iterador pWorkerInfo

cout lt lt"Ingrese el nombre del trabajador que desea eliminar:"

cout lt lt"nombre:";

CIN gt; gtSearchName

for(pWorkerInfo=(*WokerInfo).begin(); (*WokerInfo).empty()!= 1. amppWorkerInfo!=(*WokerInfo).end( ); PWorkerInfo ) //Salir si se alcanza el final del vector.

{

if(0 == nombre de búsqueda. compare(* pworkerinfo).getname())//Si se encuentra el nombre del trabajador que se va a eliminar, ejecútelo.

{

Hflag = true//Buscar trabajadores

(*WokerInfo). erase(pWorkerInfo); //Elimina el trabajador especificado en el vector.

Continuar;

}

}

If (false==Hflag) // Si no hay ningún hilo de trabajo, ejecutar.

{

cout lt lt"¡No existe tal maestro!" key Return "

getchar(); getchar();

}

búsqueda nula por nombre(vector lt; profesor gt*TeaInfo, vector lt trabajador gt * WokerInfo){ //Buscar información del empleado por nombre.

System("Color05A");

bool Hflag = false

String SearchName

Vector lt profesor gt* iterador pTeaInfo

cout lt lt"Ingrese el nombre del empleado que está buscando:"

cout lt lt"Nombre:";

CIN gtSearchName

p>

for(pTeaInfo=(*TeaInfo).begin();pTeaInfo!=(*TeaInfo).end();pTeaInfo)

{

if( 0 == nombre de búsqueda. compare(* ptea info).getname())//Si se encuentra el empleado ingresado, se ejecutará.

{

Hflag = true//Buscar empleados

cout lt lt"Esta persona es profesor, su información es"

(*pTeaInfo). display(); //Mostrar información del empleado

Continuar;

}

}

Vector lt trabajador gt * iterador pWorkerInfo< / p>

for(pWorkerInfo=(*WokerInfo).begin();pWorkerInfo!=(*WokerInfo).end();pWorkerInfo)

{

if( 0 = = nombre de búsqueda. compare(* pworkerinfo).//Si se encuentra el empleado ingresado, se ejecutará.

{

Hflag = true//Buscar empleados

cout lt ltEsta persona es profesor y su información personal es

( *pWorkerInfo). display(); //Mostrar información del empleado

Continuar;

}

}

if (false==Hflag)

{

cout lt lt"¡No existe tal empleado!" Presione Enter para regresar "

getchar(); getchar();

}

void DisTeacherByAcademy(vector lt; teacher gtTeaInfo){ //Por departamento Salida información del profesor.

System("Color05A");

bool Hflag = false

String SearchName

Vector lt profesor gt* iterador pTeaInfo

Y ((TeaInfo).empty()!=1) {// Genera todos los profesores del departamento especificado.

pTeaInfo=(TéInfo). comenzar();

Academia de cadenas = (*pTeaInfo). GetAcademy();

cout lt lt"Departamento:"

for(pTeaInfo=(TeaInfo).begin();(TeaInfo).empty()!=1. amppTeaInfo! =(TeaInfo). end();){

if(0 = = academia . comparar(* pTeaInfo).

GetAcademy()))

{

(*pTeaInfo). display();

cout lt ltendl

(TeaInfo). borrar(pTeaInfo);

pTeaInfo=(TeaInfo). comenzar();

}

else ptea info ;

}

cout lt ltendl

}

cout lt lt"Presione Enter para regresar"

getchar(); getchar();

}

void WriteFile(vector lt ; profesor gt*TeaInfo, vector lt trabajador gt*WokerInfo) //Generar un nuevo archivo

{

FILE * fp

if(NULL = = ( FP = fopen(" empleado . txt ", " w "))

{

cout lt "Error al abrir archivo"

Salir (- 1);

}

Vector lt trabajador gt* iterador pWorkerInfo

Vector lt profesor gt* iterador pTeaInfo

for( pTeaInfo=(*TeaInfo );pTeaInfo! =(*TeaInfo);PTA info)//Escribe toda la información del profesor en el vector. p>Fputs("Información del profesor:\n", FP);

Fprintf(fp, " nombre: s\n", (*pteainfo).getname().c_str());

Fprintf(fp, "Edad: d\n ", (*pTeaInfo). GetAge());

fputs("\n ", FP);

}

Fputs("La información del profesor termina\n ", FP); p>for(pWorkerInfo=(*WokerInfo). begin(); pWorkerInfo!=(*WokerInfo ).end();PWorkerInfo) //Usa el vector para escribir la información de todos los profesores

{<. /p>

Fputs("Información del empleado:\n ", FP);

Fprintf(fp, "nombre: s\n", (*pworkerinfo).getname().c_str() );

Fprintf(fp, "edad: d\n" , (*pWorkerInfo). GetAge());

fputs("\n ", FP); p>

}

Fputs("Fin de la información del empleado\ n ", FP

fclose(FP); >

Void Mainmenu(){//Interfaz de menú

System ("Color05A"); //Establece el color de fondo y el color de primer plano de la ventana actual.

cout lt lt"╭╭╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮╮9 lt; endl

cout lt lt"∣Seleccione una función∣"lt; ltendl

cout lt lt"├――――――――――――――――――――――― ―― ―――――┤"lt; ltendl

cout lt lt"∣ 1. Crear e ingresar datos del empleado∣"lt; ltendl

cout lt lt"∣ 2. Según las condiciones Generar datos del empleado∣" < lt; endl

cout lt lt"∣ 3. Eliminar datos del empleado∣"endl

cout lt lt"0. /p>

cout lt "╰――――――――――――――――――――――――――――╯"lt ltendl

cout lt lt"――――――――――――――――――――――――――――――――――" lttendl

cout lt; "Seleccione la categoría que desea proporcionar: ";

}

Inserción vacía (vector lt profesor gt*TeaInfo, vector lt trabajador gt*WorkerInfo) //Interfaz de menú para agregar datos del empleado.

{

System("Color05A"); //Establece el color de fondo y el color de primer plano de la ventana actual

int select =-1 ;

Y(select!=0)

{

cout lt lt"╭╭╮╮╮╮╮╮╮╮╮╮╮╮╮╮ ╮╮╮╮ ╮╮╮╮╮╮╮╮╮9 lt;endl

cout lt lt"∣Seleccione una acción:∣"

cout lt lt"├―― ――― ――――――――――――――――――――――――┤"lt; ltendl

cout lt lt"∣ 1Agregar un registro de maestro∣"lt ; ltendl

cout lt lt《∣ 2Agregar un registro de trabajador∣》< lt; endl

cout lt lt“∣ 0Volver al menú principal∣"< lt; endl

cout lt lt"╰――――――――――――――――――――――――――――――╯"lt

CIN gt; gt select;

Cambiar(seleccionar){

Caso 1: agregar profesor(TeaInfo);

Caso 2: AddWoker(información del trabajador); ); break ;

Caso 3: menú principal(); roto;

Valor predeterminado:

cout lt lt" ¡Regrese al menú principal! ” lt ltendl

}

}

}

Búsqueda no válida (vector lt profesor gt*TeaInfo, vector lt trabajador gt*WorkerInfo ) //Interfaz del menú de consulta de datos del empleado

{

Sistema ("Color 05A"); //Establece el color de fondo y el color de primer plano de la ventana actual.

int select =-1

Y (select!=0)

{

cout lt lt"╭╭╮╮ ╰ >

cout lt"├――――――――――――――――――――――――――――┤"lttendl

cout lt; lt"∣ 1 muestra todos los registros de empleados de ∣"lt; ltendl

cout lt lt "∣Presione ∣ en el segundo medio para generar información del maestro"< ltendl

cout lt lt " ∣ No. 3 recupera toda la información a través del nombre de ∣" endl

cout lt lt "∣ Calcula la edad promedio de ∣ profesores en ∣ 4" < ltendl

cout lt lt " ∣ 5. Calcular ∣ edad promedio de los trabajadores》< ltendl

cout lt lt“∣ 0 Volver al menú principal∣”< endl

cout lt lt“╰――― ――――― -----

Caso 1: DisplayAll(TeaInfo, información del trabajador roto);

Caso 2: DisTeacherByAcademy(* TeaInfo roto); p>

Caso 3: SearchByName( TeaInfo, información del trabajador);

Caso 4: disavgthierage(TeaInfo);

Caso 5: DisAvgWorkerAge(información del trabajador) ; break;

Caso 6: menú principal();

Valor predeterminado:

cout lt lt" ¡Regrese al menú principal! ” lt ltendl

}

}

}

eliminación nula (vector lt profesor gt*TeaInfo, vector lt trabajador gt*WorkerInfo ) //Eliminar datos de los empleados

{

System("Color05A"); //Establece el color de fondo y el color de primer plano de la ventana actual.

int select =-1

Y (select!=0)

{

cout lt lt"╭╭╮╮ ╰ >

cout lt"├――――――――――――――――――――――――――――┤"lttendl

cout lt; lt"∣ 1 eliminar un ∣"lt registro de maestro; ltendl

cout lt lt《∣ 2 eliminar∣ un registro de trabajador》< ltendl

cout lt lt" ∣ 0 Volver al menú principal∣" < lt; endl

cout lt lt "╰―――――――――――――――――――――――――――――― ―╯ "lt; ltendl

CIN gt; gtselect;

switch(select){

Caso 1: del profesor(TeaInfo); break;

Caso dos: del trabajador(información del trabajador); descanso;

Caso tres: menú principal(); descanso;

Valor predeterminado:

cout lt lt"¡Volver al menú principal! ” lt ltendl

}

}

}

void MainCho(vector lt; profesor gt*TeaInfo, vector lt trabajador gt* Información del trabajador)

{//Operación del menú principal

int Choice =-1;

Y (choice!=0){

menú principal();

CIN gt; gt select;

Cambiar(seleccionar){

Caso 1: Insertar(TeaInfo, información del trabajador); ;

Caso 2: Buscar (TeaInfo, información del trabajador);

Caso 3: Eliminar (TeaInfo, información del trabajador);

Caso 0; : roto;

Valor predeterminado:

cout lt lt"¡Error de operación! ” lt ltendl

}

}

}

Void main() //Función principal

{

Vector lt profesor gtTeaInfo//

Vector lt trabajador gtWorkerInfo//

Vector lt profesor gt* iterador pTeacher//

Vector lt trabajador gt * iterador pWoker//

pte acher = té información . comenzar(); //

pwo ker = información del trabajador comenzar(); >

Mainjo(ampTeaInfo.worker info); //Llamar al controlador principal

WriteFile(amp;TeaInfo.worker info); //Guardar operación de archivo

}