Red de conocimiento informático - Computadora portátil - c código fuente 6

c código fuente 6

# incluir & ltstring& gt

# incluir & ltiostream & gt

# incluir & lttime.h & gt

# incluir & ltvector & gt

Usar espacio de nombres estándar

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/ /Edad

};

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

{

Público:

trabajador();

Virtual VWorker();

visualización vacía( );

};

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

{

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>>id;

cout<<"name:"

CIN>>name;

cout<& lt"Género:"

CIN & gt;& gtSexo;

cout & lt& lt"Salario:"

CIN>

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

CIN & gt;& gtCumpleaños;

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

CIN>& gtHorario de trabajo;

cout & lt& lt"Profesor:" < <endl

CIN>& gtCollege;

//Extraer el año de nacimiento a partir 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 ", local tiempo(& tnow));

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

}

Profesor: VTeacher( )

{

}

función void profesor::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 Teacher::GetAcademy(){

Regresar a la academia;

}

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

{

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

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

CIN & gt;& gtid;

cout & lt& lt"Nombre: "

CIN>>Nombre;

cout & lt& lt"Género:"

CIN> p>cout & lt& lt"Salario:"

CIN & gt;& gtSalario;

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

CIN & gt;& gtCumpleaños;

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

CIN>>Horas de trabajo;

//Extracto el año de nacimiento a partir 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 ", local tiempo(& tnow));

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

}

Trabajador: :VWorker ()

{

}

void trabajador::display(){//La función display() 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<worker>*WorkerInfo) //Agrega un nuevo objeto de trabajo.

{

System("Color05A");

Trabajador Wokertmp

(*WorkerInfo). push_back(Wokertmp);

}

void DisplayAll(vector<teacher>*TeaInfo, vector<worker>*WokerInfo){ //Mostrar todos los registros de empleados.

System("Color05A");

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

Vector & ltTeacher& gt*Iterator pTeaInfo

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

{

(*pTeaInfo). display();

cout & lt& ltendl

}

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

Vector& ltWorker> *Iterador pWorkerInfo

for (pWorkerInfo=(*WokerInfo).begin();(*WokerInfo).empty()!=1.& amppWorkerInfo!=(*WokerInfo).end ();PWorkerInfo++) //Salir si se llega al final del vector.

{

(*pWorkerInfo).

display();

cout & lt& ltendl

}

cout & lt& lt"Presione Enter para regresar"

getchar() ; getchar();

}

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

System("Color05A");

int SumAge = 0;

Vector <teacher>*Iterador pTeaInfo

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

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

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(" Color 05A ");

int SumAge = 0;

Vector <Worker>*Iterador pWorkerInfo

for (pWorkerInfo=(*WokerInfo). comenzar(); ( *WokerInfo)! =1. & amppWorkerInfo! = (*PWorkerInfo++) //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<teacher>*TeaInfo){ //Se utiliza para eliminar información del profesor.

System("Color05A");

bool Hflag = false

String SearchName

Vector<teacher>* Iterador pTeaInfo

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

cout & lt& lt"Nombre:";

CIN & gt;& gtSearchName

for(pTeaInfo=(*TeaInfo). comenzar(); (*TeaInfo). vacío()!= 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!"& lt& ltendl

}

cout & lt& lt" Al presionar la tecla Enter se devuelve "

getchar(); getchar();

}

void del trabajador(vector & lt; trabajador & gt*WokerInfo) / / se utiliza para eliminar información del trabajador.

{

System("Color05A");

bool Hflag = false

String SearchName

vector <worker>*iterator pWorkerInfo

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

cout<<"name:" ;

CIN>& 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!"& lt& ltendl

}

cout & lt& lt" Al presionar la tecla Intro se devuelve "

getchar(); getchar();

}

búsqueda vacía por nombre(vector & lt; profesor & gt*TeaInfo, vector & ltWorker& gt*WokerInfo){ //Buscar información del empleado por nombre.

System("Color05A");

bool Hflag = false

String SearchName

Vector<teacher>* Iterador pTeaInfo

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

cout & lt& lt"Nombre:";

CIN & gt;& gtSearchName

for(pTeaInfo=(*TeaInfo). comenzar(); pTeaInfo!=(*TeaInfo).

end(); pTeaInfo++)

{

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

{

Hflag = true//Buscar empleados

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

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

Continuar;

}

}

Vector <Worker>*Iterator pWorkerInfo

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

{

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

{

Hflag = true//Buscar empleados

cout & lt& ltEsta persona es profesor, su información personal es

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

Continuar;

}

}

if (false==Hflag)

{

cout & lt& lt"¡No existe tal empleado!"& lt& ltendl//No se encontró información

}

cout & lt& lt"Presione Enter para regresar"

getchar(); getchar();

}

void DisTeacherByAcademy(vector & lt;Teacher& gtTeaInfo) { / / Salida de información de profesores por departamento.

System("Color05A");

bool Hflag = false

String SearchName

Vector<teacher>* Iterador pTeaInfo

while ((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. compare(* 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<teacher>*TeaInfo, vector<worker>*WokerInfo) //Generar un nuevo archivo

{

FILE * fp

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

{

cout & lt& lt"Error al abrir archivo"

Salir(-1);

}

Vector<Worker>*Iterador pWorkerInfo

Vector<Teacher>*Iterador Dispositivo pTeaInfo

for(pTeaInfo=(*TeaInfo).begin(); pTeaInfo!=(*TeaInfo).end();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);

for(pWorkerInfo=(* WokerInfo). comenzar(); pWorkerInfo! =(*WokerInfo). end(); PWorkerInfo++) //Usar vector para escribir toda la información del profesor.

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);

}

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

fclose(FP);

}

Void Mainmenu(){//Interfaz de menú

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

cout & lt& lt<

cout & lt& lt“∣Seleccione una función∣"<& ltendl

cout & lt& lt“├―――――― ―――――――――――――― ――――――――――┤"<& ltendl

cout & lt& lt"∣ 1. Crear e ingresar los datos del empleado ∣"<& ltendl

cout & lt& lt"∣ 2. Generar datos de los empleados según las condiciones∣" < & lt;endl

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

cout & lt& lt"0.Exit" < & ltendl

cout & lt& lt"╰―――――――――――――― ―――――――――――――――― ╯"<& ltendl

cout & lt& lt"――――――――――――――――― ――――――――――――――――' & lt;& ltendl

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

}

Inserción vacía (vector & ltteacher& gt*TeaInfo, vector & ltWorker& gt*WorkerInfo) //Agregar interfaz de menú de datos de empleado

{

System("Color 05A"); //Establece la ventana actual

int select =-1

while (select!=0)

{

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

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

cout & lt& lt“├―――――――――――――――――――――― ――――――― ┤"<& ltendl

cout & lt& lt"∣ 1Agregar un registro de maestro∣"<& ltendl

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

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

cout & lt& lt“╰―― ――――――― ――――――――――――――――――――╯"<& ltendl

CIN>& gtSelect;

Cambiar selección) {

Caso 1: agregar profesor(TeaInfo);

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

Valor predeterminado:

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

}

}

}

Búsqueda no válida (vector & ltteacher& gt*TeaInfo, vector & lt Worker>* WorkerInfo) //Interfaz del menú de consulta de 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"╭╭╮ ╰ ”

cout & lt& lt“├―――――――――――――――――――――――――――――――┤"<& ltendl

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

cout & lt& lt"∣ Presione ∣ 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《∣ Calculado en 5 días∣Edad promedio de los trabajadores》< & ltendl

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

cout & lt& lt"╰――――――――――――――――――――――――――――――╯"<& ltendl

CIN> & gtSelect;

Cambiar(seleccionar){

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

Caso); 2: DisTeacherByAcademy(* TeaInfo);

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

Caso 4: desavgthierage(TeaInfo); >

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

Caso 6: menú principal();

Valor predeterminado:

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

}

}

}

eliminación nula (vector & ltteacher& gt*TeaInfo, vector & lt Worker>* WorkerInfo) //Eliminar 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"╭╭╮ ╰ ”

cout & lt& lt“├―――――――――――――――――――――――――――――――┤"<& ltendl

cout & lt& lt"∣ 1 eliminar un ∣"<registro de profesor; & ltendl

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

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

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

Caso 1: del profesor(TeaInfo);

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

Caso 3: menú principal( ); break;

Valor predeterminado:

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

}

}

}

void MainCho(vector & lt;Teacher& gt*TeaInfo, vector & ltworker> *información del trabajador)

{//Operación del menú principal

int Choice =-1;

And (choice!=0){

menú principal();

CIN>>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);

p>

Caso; 0: Roto;

Valor predeterminado:

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

}

}

}

Void main() //Función principal

{

Vector<Teacher>TeaInfo//

Vector<Worker>WorkerInfo//

Vector<Teacher>*Iterator pTeacher//

vector <worker>*iterator pWoker//

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

pwo ker = información del trabajador .begin(); //

Mainjo(&TeaInfo.info del trabajador) ; //Llamar al controlador principal

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

}