Implementar un sistema sencillo de gestión de estudiantes:
//////////////////////////////////// / ///////////////////////////////////////////////// ///// //////////////
/1. Diseñar una clase de estudiante Estudiante, incluyendo nombre, número de estudiante, género, lugar de origen, edad, fecha. de nacimiento y dirección, donde "Fecha" de nacimiento se define como un subobjeto incrustado de la clase "Fecha" (propiedades: año (año), mes (mes), día (día))
//.
/2, con las funciones de ingreso de datos, visualización, guardado, consulta (consulta por número o nombre de estudiante), modificación y eliminación.
/3. La clase de estudiante sobrecarga el operador "==" y el operador "=". El operador "==" determina si los atributos de identificación de dos objetos de clase de estudiante son iguales; El símbolo implementa la asignación de objetos de los estudiantes.
///4. Dar el código fuente del programa y comentar cada parte detalladamente.
/5. Agregue los módulos funcionales correspondientes según sus propias habilidades y necesidades para mejorar las funciones del sistema de simulación.
/6. Utilice la referencia del objeto de flujo de E/S como parámetro de función miembro para implementar el acceso a archivos y facilitar la consulta, modificación y eliminación.
(También se puede hacer con MFC)
////////////////////////////////// //// /////////////////////////////////////////////// //////// ////////////
# include
Usar espacio de nombres std;
#ifndef HEAD_H
#define HEAD_H
#include
usando el espacio de nombres std;
//Clase de fecha de nacimiento
cumpleaños de la clase
{
público:
cumpleaños();//construcción predeterminada
int get_year(); //obtener el año de nacimiento
int get_month();//obtener el mes de nacimiento
int get_day();//obtener el día de nacimiento
void set_birth();// establecer fecha de nacimiento
privado:
int año;
int mes;<
int día ;
};
//Estudiante clase
clase estudiante
{
público:
estudiante() ;//constructor predeterminado
char face();//home
void inster_new();//registro de nuevo estudiante
void show_all(); //mostrar toda la información del estudiante
void select();//consultar información del estudiante
void alter();//modificar la información del estudiante
void deletes( );//eliminar información del estudiante
void delete_sigle();//eliminar un registro de estudiante
void delete_all();//eliminar todos los registros de estudiantes
privado:
nombre de cadena;
número de cadena;//número de estudiante
sexo de carácter;//apellido con/m
string bornPlace;//lugar de nacimiento, origen
int edad;
cumpleaños nacimiento;//fecha de nacimiento
string dirección ;
};
#endif
#include
#include
#include
#include < cassert>
#include
//Constructor de clase de cumpleaños
cumpleaños::cumpleaños()
{
año = 0; /p>
mes = 0;
día = 0;
}
//obtener año
int cumpleaños: :get_year()
{
año de retorno;
}
//obtener mes
int cumpleaños ::get_month mes()
{
mes de devolución;
}
//obtener día
int cumpleaños::get_day()
{
día de retorno;
}
// Establecer la fecha de nacimiento p >
cumpleaños nulo::set_birth()
{
cin >>año >>mes >>día;
}
//Constructor predeterminado de la clase de estudiante
estudiante::estudiante():nacimiento()
{
nombre = "\0" ; p>
número = "\0";
sexo = '\0';
lugar de nacimiento = " \0";
edad = 0 ;
dirección = " \0";
}
/home
char estudiante::cara() p>
{
char elegir;
sistema("cls");
cout < <<"\t |||" < <<"\t ◇ 1. Registro de nuevo estudiante◇" < <<||" < endl <. < "t ◇ 2. Explorar toda la información del estudiante ◇" < <<"\t || | |" > <<"\t ◇ 3. Consultar información ◇" < <<"\t ||" <<"\t ||" t; ◇" < <<"\t ◇ 4. Modificar información◇" < <<"\ t |||" < <<"\t ◇ 5. Eliminar información ◇" < afirmar(stuFile); cadena str1 ; cadena str2; cadena str3; /* cout < < t;< "Número de estudiante" < < lt; "Fecha de nacimiento" < while (stuFile >> número) { número = " estudiantes\"+número+".txt"; ifstream stuFile1(number.c_str()); afirmar(stuFile1); cout < system("pause"); } //Consultar información del estudiante void estudiante::select() { system("cls"); cout < cout <<"\t Introduzca el número de consulta: "; string no; cin >>.no; ifstream stuFile("estudiantes\stu.txt"); afirmar(stuFile); while (stuFile >>número) { if (no == número) { cout < número = "estudiantes\"+número+".txt"; ifstream stuFile1(number.c_str()); afirmar(stuFile1) ; cout < cout << "¡¡¡Consulta completa!!!! " < sistema("pausa"); retorno; } } } //Modificar información del estudiante void Student::alter() { system("cls "); cout < cout <<"\t por favor ingrese el número de estudiante: "; string no; cin >>no; ifstream stuFile("estudiantes\stu.txt"); p> while (stuFile >>número) { if (no == número) { cout < número = "estudiantes\"+número+ ".txt"; ifstream stuFile1 (number.c_str()); afirmar(stuFile1); cout < ; cout < cout <<"\t name : "; cin > > nombre; cout < cin >>Género; cout << endl <<"/t Edad: "; cin >>Edad; cout < nacimiento.set_birth(); cout < cin >>bornPlace cout < cin >>dirección; String stuFileName = "estudiantes\"+no+".txt"; ofstream stuFile2 (stuFileName.c_str()); afirmar(stuFile2); stuFile2 << "nombre : " < <<.lt; "Número de estudiante: " < <<< "Género: " < < << "Edad:" < << "Fecha de nacimiento: " < << "Lugar de nacimiento: " < l << "Dirección residencial: " & lt; stuFile2.close(); cout < system("pause"); return; } } } / Eliminar información del estudiante void estudiante:: elimina() p> { char elegir; mientras (1) { sistema("cls"); cout < cout < < << endl <<. "\t●\t3.volver a la página de inicio" < elige = getch(); fflush( stdin); cambiar (elegir) { caso '1': eliminar_sigle(); //eliminar un registro de estudiante interrupción; caso '2': delete_all() ) interrupción; caso '3': retorno; predeterminado: descanso; } } } Eliminar un registro de estudiante void Student::delete_sigle() { system(" cls"); cout < cout <<"\tPor favor ingrese el número de estudiante: "; número de cadena; cin >>no; fflush(stdin); ifstream stuFile(" estudiantes\stu .txt"); afirmar(stuFile); while (stuFile >>número) { if (no == número) { número = "estudiantes\"+número+".txt" p> ifstream stuFile1(number.c_str()); afirmar(stuFile1); cout << < endl << "La información del estudiante que desea eliminar es la siguiente: " << endl <<. endl; cout < stuFile1.close(); cout < if (getch() == 'y') { ifstream stuFile2("estudiantes\\stu.txt"); afirmar(stuFile2); ofstream tempFile("estudiantes\\temp.txt"); afirmar(archivotemp); while (stuFile2 >>número) { if (no ! = número) { archivotemp < } stuFile2.close(); archivotemp. close(); ifstream tempFile1("estudiantes\temp.txt"); afirmar(tempFile1); ofstream stuFile3("estudiantes\stu. txt"); afirmar( stuFile3); stuFile3 < tempFile1.close(); stuFile3.close (); número = "estudiantes\"+no+ ".".txt"; ofstream stuFile4(number.c_str()); stuFile4 .close(); cout < sistema("pausa"); } descanso; } } } / Eliminar todos los registros de los estudiantes void Student::delete_all() { cout < (s/n): "; if (getch() == 'y') { ifstream stuFile("estudiantes\stu.txt "); afirmar(stuFile); while (stuFile >. > número) { número = "estudiantes\ "+número+".txt"; ofstream stuFile1(number.c_str()); afirmar(stuFile1); stuFile1.close(); } stuFile.close(); ofstream stuFile2("estudiantes\\stu.txt"); afirmar( stuFile2); cout & lt; system("pausa"); } //función principal, elija función int main() { char elegir; estudiante astu; while (elegir = astu.face()) { cambiar (elegir) { caso '1': astu.inner_new( );//registro de primer año descanso; caso '2': astu.inner_new();//show_all();//show_all( );//show_all()show_all();//mostrar toda la información del estudiante break; caso '3': astu.select() ;//consulta de información break; case '4': astu.alter();//modificar información del estudiante break; case '5': astu.deletes();//eliminar información del estudiante break; case '6': cout < salir(0); romper; predeterminado: descanso; } } devuelve 0 } yo; Cambiar.