Buscando el código fuente de diseño de cursos de lenguaje C para obtener puntuaciones altas (no quedan muchos puntos, todo para usted)
#include
#include
#include
#include
usando el espacio de nombres std;
clase Empleado //Definir clase de empleado
{
público:
Empleado (); //Constructor
virtual VEmployee();
virtual void Display()=0
int GetAge(); /p>
string GetName(); //Obtener el nombre
protected:
int Id; //Número de identificación del empleado
string Nombre; //Nombre del empleado
char Sex[5]; //Género
int Salario; //Salario
string Día de nacimiento; //Año y mes de nacimiento; p>
string WorkTime; //Tiempo de trabajo
int Edad; //Edad
};
clase Trabajador: público Empleado // Definición Clase de trabajador
{
público:
Trabajador();
virtual VWorker();
void Display();
};
clase Profesor: público Empleado //Definir clase de profesor
{
público: p >
Profesor();
VTeacher virtual();
void Display();
string GetAcademy();
privado:
cadena Academia;
};
Empleado::Empleado()
{
}
Empleado::VEmployee()
{
}
int Empleado::GetAge()
{
return Edad;
}
cadena Empleado::GetName()
{
return Nombre;
}
Profesor::Profesor() //Agregar información del profesor
{
cout<<"Por favor ingrese Esta información del profesor: "< cout<<"Número de empleado: "< cin>>I d; cout<<"Nombre: "< cin>>Nombre; cout<<"Género: "< cin>>Sexo; cout<<"Salario: "< cin>>Salario; cout <<"Hora de nacimiento: (formato xxxx/xx/xx)"< cin>>Día de nacimiento; cout<<"Hora de incorporación al trabajo: (formato xxxx/ xx/xx)"< cin>>WorkTime; cout<<"Departamento: "< cin> >Academy; //Extrae el año de nacimiento del cumpleaños int Pos = BirthDay.find_first_of('/'); string BirthYear;< / p> AñoNacimiento.assign(DíaNacimiento,0,Pos); char chAñoNacimiento[6]; strcpy(chAñoNacimiento,DíaNacimiento.c_str()); p > //Obtener el año del sistema actual char NowYear[5]; time_t tnow = time(0); strftime (NowYear, 5 , "%Y" , localtime(&tnow)); Edad = atoi(NowYear)-atoi(chBirthYear); //Calcular edad } Teacher::VTeacher() { } void Teacher::Display(){ //display() función con la misma nombre, genera información del maestro cout<<"Número de empleado: "< cout<<"Nombre: "< cout <<"Género: "< cout<<"Salario: "< cout<< "Hora de nacimiento: "< cout<<"Hora de trabajar: "< cout<<"Edad: " < } cadena Profesor::GetAcademy(){ return Academia; } p> Trabajador: :Trabajador() //Agregar información del trabajador { cout<<"Por favor ingrese la información del trabajador:"< > cout<<"Número de empleado: "< cin>>Id; cout<<"Nombre: "< cin>>Nombre; cout<<"Género: "< cin>>Sexo; cout<<"Salario: "< cin>>Salario; cout<<"Hora de nacimiento: (formato xxxx/xx/xx)"< cin >>Cumpleaños; cout<<"Hora de trabajo: (formato xxxx/xx/xx)"< cin>>Hora de trabajo; //Extrae el año de nacimiento del cumpleaños int Pos = BirthDay.find_first_of('/'); string BirthYear; BirthYear.assign( BirthDay,0,Pos); char chBirthYear[6]; strcpy(chBirthYear,BirthDay.c_str()); //Obtener el actual año del sistema char NowYear[5]; time_t tnow = time(0); strftime(NowYear, 5, "%Y", localtime( &tnow)); Edad = atoi(NowYear)-atoi(chBirthYear); //Calcular edad } Trabajador::VWorker() p> { } Función void Worker::Display(){//display() con el mismo nombre, genera información del trabajador cout<< "Número de empleado: "< cout<<"Nombre: "< cout<<"Género: " < cout<<"Salario: "< cout<<"Hora de nacimiento: "< cout<<"Hora de trabajar: "< cout<<"Edad: "< } void AddTeacher(vector { system("color 05A"); la ventana actual El color de fondo y el color de primer plano Teacher TeaTemp; (*TeaInfo).push_back(TeaTemp } void AddWoker(vector { system("color 05A") ; Trabajador Wokertmp; (*WorkerInfo).push_back(Wokertmp } void DisplayAll(vector system("color 05A"); cout<<"Toda la información del profesor:"<< endl; vector for (pTeaInfo=(*TeaInfo).begin();(*TeaInfo).empty()!=1&&pTeaInfo! =(*TeaInfo).end();pTeaInfo++) //Si se llega al final del vector, salga { (*pTeaInfo).Display(); p> cout< } cout<<"Información de todos los trabajadores:"< vector for (pWorkerInfo=(*WokerInfo).begin();(*WokerInfo).empty()!=1&&pWorkerInfo!=(*WokerInfo).end();pWorkerInfo++) / /Si llega al final del vector, salga { (*pWorkerInfo).Display(); cout< } cout<<"Presione Enter para regresar"< getchar(); } void DisAvgTeacherAge (vector system("color 05A"); 0; vector for (pTeaInfo=(*TeaInfo).begin();(*TeaInfo).empty()!=1&&pTeaInfo! =(*TeaInfo).end(); pTeaInfo++)//Atraviesa el contenedor del profesor { //Si se alcanza el final del vector, salimos SumAge+= (*pTeaInfo).GetAge(); cout< } if((*TeaInfo).size()!=0) cout<<"La edad promedio de los profesores es"< else cout<<"Sin registro"< cout<<"Presione Enter para regresar"< getchar( ); getchar(); } void DisAvgWorkerAge(vector system("color 05A" int SumAge = 0; vector for (pWorkerInfo=(*WokerInfo).begin(); (*WokerInfo vacío()!=1&&pWorkerInfo!=(*WokerInfo).end();pWorkerInfo++) //Si se llega al final del vector, salga { cout< } if((*WokerInfo).size()! =0) cout<<"La edad promedio de los empleados es"< else cout<< "Sin registro"< cout<<"Presione Enter para regresar"< getchar(); } void DelTeacher(vector system("color 05A"); bool Hflag =false; string SearchName; vector cout<<"Por favor, introduzca el nombre del profesor que desea eliminar:"< cout<<"Nombre: "; cin>>BuscarNombre; for(pTeaInfo=(*TeaInfo). comenzar();(*TeaInfo).empty( ) != 1&&pTeaInfo!=(*TeaInfo).end();pTeaInfo++) //Si se llega al final del vector, salir { p> if (0==Buscar chName.compare((*pTeaInfo).GetName())) //Si se encuentra el nombre del profesor que se va a eliminar, ejecute { Hflag=true; Encuentra el profesor (*TeaInfo).erase(pTeaInfo); //Elimina el profesor especificado en el vector continuar } } if (false==Hflag) //Si no existe tal maestro, ejecuta { cout<<"No existe ¡qué maestro!"< } cout<<"Presione Enter para regresar"< getchar(); getchar() ; } void DelWorker(vector { system( "color 05A"); bool Hflag=false; string SearchName; vector cout<<"Nombre: "; cin>>SearchName; for(pWorkerInfo=( *WokerInfo).begin();(*WokerInfo).empty() != 1&&pWorkerInfo!=(*WokerInfo).end();pWorkerInfo++) //Si el final del vector es alcanzado, salir { if (0==SearchName.compare((*pWorkerInfo).GetName())) //Si se encuentra el nombre del trabajador que se va a eliminar , ejecutar { Hflag=true; //Encontrar el trabajador (*WokerInfo).erase(pWorkerInfo); //Eliminar el trabajador especificado en el vector continue; } } if (false==Hflag) //Si no existe tal trabajador, ejecutar { cout< <"¡No existe tal maestro! "< } cout<<"Presione Enter para regresar"< getchar();getchar(); p > } void SearchByName(vector system("color 05A " ); bool Hflag=false; cadena Mar rchName; vector cout<<"Ingrese el nombre del empleado que está buscando:"< cout<<"Nombre: "; cin>>BuscarNombre; for(pTeaInfo=(*TeaInfo).begin();pTeaInfo!=(*TeaInfo) .end ();pTeaInfo++) { if (0==SearchName.compare((*pTeaInfo).GetName())) //Si se encuentra el empleado ingresado, ejecutar { Hflag=true; //Buscar empleado cout<<"Esta persona es profesor y su información es:"< (*pTeaInfo).Display(); //Mostrar información del empleado continuar; } } vector for(pWorkerInfo=(*WokerInfo).begin();pWorkerInfo!=(*WokerInfo).end();pWorkerInfo++) { if (0==SearchName.compare((*pWorkerInfo).GetName())) //Si se encuentra el empleado ingresado, ejecute { Hflag=true; //Buscar al empleado cout<<"Esta persona es profesor y su información personal es:"< (*pWorkerInfo).Display( ); //Mostrar información del empleado continuar; } } if (false= =Hflag) { cout<<"¡No existe tal empleado!"< } cout<<"Presione Enter Retorno "< getchar(); } void DisTeacherByAcademy (vector system("color 05A"); bool Hflag=false; string; SearchName; vector while((TeaInfo).empty()!=1) { //Generar todos los profesores del departamento especificado p> pTeaInfo=(Té Info).begin(); string Academia = (*pTeaInfo).GetAcademy() cout<<"Departamento:"< for(pTeaInfo=(TeaInfo).begin();(TeaInfo).empty()!=1&&pTeaInfo!=(TeaInfo).end( ) ;){ if (0==Academy.compare((*pTeaInfo).GetAcademy())) { (*pTeaInfo). Mostrar (); cout< (TeaInfo).erase(pTeaInfo); pTeaInfo=(TeaInfo).begin(); } else pTeaInfo++; } cout< } cout<<"Presione Enter para regresar"< getchar(); getchar(); } void WriteFile( vector { ARCHIVO *fp; if (NULL== (fp=fopen ("Empleado.txt","w+"))) { cout<<"Error al abrir archivo"< salir(- 1); } vector vector for(pTeaInfo=(*TeaInfo).begin();pTeaInfo!=(*TeaInfo).end();pTeaInfo++) //Escribe la información de todos los profesores en el vector { 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).begin();pWorkerInfo !=(*WokerInfo ).end();pWorkerInfo++) //Escribe la información de todos los profesores en el vector { fputs("Información del empleado:\n",fp ); fprintf(fp,"Nombre:%s\n",(*pWorkerInfo).GetNa me().c_str()); fprintf(fp,"Edad:%d\n",(*pWorkerInfo).GetAge()); fputs("\ n",fp); } fputs("La información del empleado finaliza\n",fp); fclose(fp); } void Mainmenu(){//Interfaz de menú system("color 05A"); //Establece el color de fondo y el color de primer plano de la ventana actual p> cout<<" ╭――――――――――"Sistema de gestión de profesores y personal"――――――――╮"< cout<; <" ∣ Seleccione la función∣"< cout<<" ├――――――――――――――――――――――――― ――― ┤"< cout<<" ∣ 1. Crear e ingresar datos del empleado∣"< cout<<" ∣ 2. Salida del empleado datos según condiciones ∣"< cout<<" ∣ 3. Eliminar datos del empleado∣"< cout<<" ∣ 0. Salir∣" < cout<<" ╰――――――――――――――――――――――――――╯"< cout<<" ―――――――――――――――――――――――――――――――――"< cout <<" Seleccione la categoría que desea publicar: " ; } void Insert(vector { system("color 05A" //Establecer el color de fondo y el color de primer plano de la ventana actual int select = -1; while(select!=0) { cout<<" ╭――――――――― ――"Agregar datos de empleado"―― ―――――――――╮"< cout<<" ∣ Seleccione una operación: ∣"< cout<<" ├―― ――――――――――――――――――――――――――――┤"< > cout<<" ∣ 1 agregar un registro de maestro ∣"< cout<<" ∣ 2 agregar un registro de trabajador ∣"< cout<<" ∣ 0Volver al menú principal∣"< cout<<" ╰――――――――――――――――――――――― ―――――――╯"< cin>>select; switch(select){ caso 1:AddTeacher(TeaInfo );romper; caso 2:AddWoker(WorkerInfo);romper; caso 3:Mainmenu();romper; valor predeterminado: cout<<"¡Volver al menú principal!"< } } } void Search (vector { system("color 05A" //Establece el ventana actual Color de fondo y color de primer plano int select = -1 while(select!=0) { cout; < <" ╭――――――――――――"Consultar datos de empleado‖――――――――――╮"< cout<<" ∣ Seleccione un operación: ∣"< cout<<" ├――――――――――――――――――――――――――――――――┤ "<< endl; cout<<" ∣ 1 Mostrar todos los registros de empleados∣"< cout<<" ∣ 2 Generar información de los maestros por departamento∣"<< endl; cout<<" ∣ 3Recuperar toda la información por nombre∣"< cout<<" ∣ 4 Calcular la edad promedio de los profesores∣"< cout<<" ∣ 5 Calcular la edad promedio de los trabajadores∣"& lt; cout<<" ∣ 0Volver al menú principal∣"< cout<<" ╰―――――――――― ―― ―――――――――――――――――╯"< cin>>select; switch(select){ caso 1:DisplayAll(TeaInfo,WorkerInfo);break; caso 2:DisTeacherByAcademy(*TeaInfo);break; caso 3:SearchByName(TeaInfo, WorkerInfo) ;break; caso 4:DisAvgTeacherAge(TeaInfo);break; caso 5:DisAvgWorkerAge(WorkerInfo);break; caso 6:Menú principal () ;break; predeterminado: cout<<"¡Volver al menú principal!"< } } } void Delete(vector { system("color 05A"); //Establece el color de fondo y el color de primer plano de la ventana actual int select = -1 while(select!= 0) { cout<<" ╭―――――――――――――――――――――――――――――― ―╮"< cout<<" ∣ Seleccione la operación: ∣"< cout<<" ├――――――――― ―――――――――― ――――――――――┤"< cout<<" ∣ 1Eliminar un registro de maestro∣"< cout<< " ∣ 2Eliminar un registro de trabajador∣"< cout<<" ∣ 0Volver al menú principal∣"< cin>>seleccionar ; cambiar(seleccionar){ caso 1:DelTeacher(TeaInfo);romper; > caso 2:DelWorker(WorkerInfo);break; caso 3:Mainmenu();break; predeterminado: cout<<" ¡Volver al menú principal!"< } } } void MainCho(vector { //Operación del menú principal int Choice = -1; while(choice!=0){ Menú principal(); cin>>elección; cambiar(elección){ caso 1: Insertar(TeaInfo,WorkerInfo ) ;break; caso 2:Buscar(TeaInfo,WorkerInfo);break; caso 3:Delete(TeaInfo,WorkerInfo);break; caso 0 :break; predeterminado: cout<<"¡Error de operación!"< } } p > } void main() //función principal { vector vector vector pWoker = WorkerInfo.begin(); // MainCho(&TeaInfo,&WorkerInfo); / p> WriteFile(&TeaInfo,&WorkerInfo //Operación para guardar el archivo }