Sistema de gestión de estudiantes con estructura de datos
#include
#include
#include
usando el espacio de nombres std;
estudiante de clase
{
p>privado:
long int stu_num; //número de estudiante, número de dormitorio
p>long int stu_grade;
char stu_name[ 40]; //nombre
char class_name[40] //clase
char house_name; [20]; //dormitorio
público:
estudiante()
{
stu_num=0; p> stu_grade=0;
stu_name[0] =0;
class_name[0] =0
house_name[0] =0;
p> p>}
estudiante(long a, long e, char * b,char *c, char * d)
{
Setdata( a, e, b, c, d);
}
char * Getstuname(void) //búsqueda de nombre
{
return stu_name ;
}
long Getstunum(void) //búsqueda de número de estudiante
{
return stu_num ;
}
char * Gethousename(void) //búsqueda de número de dormitorio
{
return house_name
}
char * Getclassname(void) //búsqueda por clase
{
return class_name;
}
void Setdata(long a, long e, char *b,char *c,char *d)
{
stu_num = a;
stu_grade = e ;
strcpy(stu_name, b);
strcpy(class_name, c);
strcpy(house_name, d);
}
void Show(void)
{
cout<< "Número de estudiante:"< cout<< "Calificación de Matemáticas:"< cout<< " Grado de idioma: "< t;"\t"; cout<< "clase:"< } }}; void main(void) { estudiante s1; int flags=0; long stu_num; //número de estudiante long stu_grade; char stu_name[40]; //nombre char nombre_clase [40]; //clase char nombre_casa[20] //dormitorio tiempo_t t; tiempo(&t) ; ifstream file1; ofstream file3; char flag = 'y'; cout<<"---- ----------------------- Sistema de gestión de estudiantes ------------------ -------------"< cout<& lt; "\t\t hora:" << ctime(&t); while( flag=='y' || flag=='Y') { // bucle controlado por flag cout<<"------ --------------- ---------------------------------- - -------------------------\n"; cout<<"\t\t 1: ¡Ingrese la información del estudiante! n"; cout<<"/t\t 2:¡Ver información del estudiante por número de estudiante! \n"; cout<<"/t\t 3:Ver estudiante información por número de dormitorio! /n"; cout<<"\t\t 4: ¡Ver información del estudiante por nombre! /n"; cout<<"/t\ t 5: ¡Ver información de los estudiantes por clase! cout<<"/t\t 6: ¡Mostrar toda la información del estudiante!"; cout<<"/t\t 7: ¡Modificar la información del estudiante por ID de estudiante!"; cout<<"/t\t 8: ¡Eliminar información del estudiante por ID de estudiante!\n"; cout<<"----------- -------------------------------------------------- ------------------\n"; cout<< "Ingrese su opción:"; char Choice; cin>>elección; cambiar(elección) { caso '1': file3.open("c:\\stu.dat",ios. :app|ios::binary); entrada: flags=0; cout<< "Ingrese el número de estudiante:"; cin>>stu_num; while (stu_num<100000 || stu_ num>999999) { cin.clear(); rewind(stdin); cout << "Ingresaste un número de estudiante incorrecto, ingresa un número de seis número de dígito" << endl; cout & lt;< "Número de escuela:"; cin >> stu_num; } cout<< "Ingrese su puntaje de matemáticas:"; cin>> stu_grade; while (stu_grade< 0 || stu_grade>100) { cin.clear(); rewind(stdin); cout << "Las calificaciones que ingresó están fuera de formato, vuelva a escribirlas las calificaciones percentiles" << endl; cout << "Calificación:"; cin >> stu_grade; } cout<< " Ingrese la puntuación china: "; cin>> stu_grade; while (stu_grade<0 || stu_grade>100) { cin.clear(); rewind(stdin); cout << "La puntuación que ingresó no cumple con el formato, vuelva a ingresar los cien puntos puntuación" << endl; p> cout << "Calificación:"; cin >> stu_grade; } archivo1. open("c:\\stu .dat",ios::in|ios::binary|ios::begin);//Abre el archivo en modo lectura while(!file1.eof( )) { int n; file1.read((char *)&s1,sizeof(estudiante)); n=file1.gcount(); if(n==tamañode(estudiante)) { if(s1.Getstunum()==stu_num ) banderas=1 } } archivo1.clear(); archivo1. close(); if (flags==1) { cin.cle ar(); cout << "El número de estudiante está duplicado, ¡vuelva a ingresar!" << endl; ir a entrada; } p> cout<< "Ingrese nombre:"; cin>>stu_name; cout<< "Ingrese clase:"; cin>>nombre_clase; cout< < " Ingrese al dormitorio: "; cin>> nombre_casa; s1.Setdata(stu_nit)Setdata(stu_num,stu_grade,stu_name,class_name,house_name); file3.write( (char* )&s1,sizeof(s1)); file3.clear(); file3.close(); break; case '2'://buscar por stu_num cout< ;< "Ingrese el número de estudiante del estudiante:"; cin>>stu_num; while (stu_num<100000 || stu_num>999999) { cin.clear(); rebobinar(stdin); cout << "El número de estudiante que ingresó es incorrecto, ingrese el número de estudiante de seis dígitos" << endl; cout << "Número de estudiante:"; cin >> stu_num; } file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg );/ /abre el archivo como leído while(!file1.eof()) { int n; file1.read ((char *)&s1,sizeof(estudiante)); n=file1.gcount(); if(n==sizeof(estudiante)) p> { if(s1.Getstunum()==stu_ num) //mostrar información del estudiante { s1.Show() ; p> flags=1; } } archivo1.clear(); archivo1. close() ; if (flags==0) cout << "No busco registro de estudiante con número de estudiante: "<< stu_num <<"!" ; p> flags=0; break; case '3'://buscar por número de dormitorio cout<< " Por favor, introduzca el número de dormitorio:"; cin>> house_name; file1.open( "c:\\stu.dat",ios::in | ios::binary | ios::beg);//abre el archivo como leído while(!file1.eof()) { int n; archivo1.read(( char *)&s1,sizeof(estudiante)); n=archivo1 .gcount(); if(n==tamañode(estudiante)) { if(strcmp(s1. house_name)==0) { s1.Show(); banderas=1; } } file1.clear(); file1.close(); if (flags==0) cout << "Ningún estudiante registro encontrado para dormitorio:"<< house_name <<"!" << endl; flags=0; break; case '4': //buscar por nombre cout<< "Por favor ingrese el nombre del estudiante:"; cin>> stu_name; file1.open("c:\ \stu.dat",ios::in | ios::binary | ios::beg);//abre el archivo como leído while(!file1.eof()) { int n; file1.read(( char *)&s1,sizeof(estudiante)); n=file1.gcount() ; if(n==tamañode(estudiante)) { if(strcmp(s1.Getstuname(),stu_ nombre)==0) { s1.Show(); banderas=1; } } p> file1.clear(); file1.close(); if (flags == 0) cout << "No registro de estudiante encontrado para el nombre: "<< stu_name <<"!" << endl; flags=0; break; case '5' ://buscar por clase cout<< "Ingrese el nombre de la clase:"; cin>> nombre_clase; file1.open("c: \\stu.dat",ios::in | ios::binary | ios::beg);//abre el archivo como leído while(! file1.eof()) { int n; file1.read(( char *)& s1,tamañode(estudiante)); n=file1.gcount(); if(n==tamañode(estudiante)) { p> if(strcmp(s1.Getclassname(), class_name)==0) { s1.Show(); banderas =1; } } } archivo1.clear(); archivo1.cerrar (); if (flags==0) cout << "No se encontró ningún registro de estudiante para la clase como :"<< nombre_clase <<"!" ; flags=0; break; case '6'://muestra toda la información del estudiante file1.open( "c:\\stu.dat",ios::in | ios::binary);//abre el archivo como leído while(!file1.eof()) p> { int n; file1.read((char *)&s1,sizeof(estudiante)); n=file1. gcount();