Código fuente de gestión de archivos escolares
# incluir & ltstring& gt
# incluir & ltfstream & gt
# incluir & ltctime & gt
Usar espacio de nombres std
Estudiante de clase
{
Privado:
long int stu _ num//número de estudiante, número de dormitorio
char stu_name[40];//name
char class_name[40];//class
char house_name [20] // Dormitorio
Público:
Estudiante()
{
stu_num = 0;
stu_name[0]= 0;
nombre_clase[0]= 0;
nombre_casa[0]= 0;
}
Estudiante::Estudiante(long a, char * b, char *c, char *d)
{
Setdata(a, b, c, d);
}
Char * Getstuname(void) //Buscar nombre
{
Devolver stu_name
}
Long Getstunum(void) //Búsqueda de número de estudiante
{
return stu _ num
}
Char * Gethousename(void) //Buscar dormitorio número
{
Volver a casa _ nombre
}
Char * Getclassname(void) //Buscar por clase.
{
Devolver nombre_clase
}
void Setdata(long a, char *b, char *c, char * d)
{
stu_num = a;
stracpy(stu_name, b);
strcpy(class_name, c) ;
strcpy(house_name, d);
}
Visualización no válida (no válida)
{
cout & lt& lt "ID de estudiante:"
cout & lt& lt"Categoría:"
}
};
Administrador no válido (no válido)
{
Estudiantes 1;
int flags = 0;
long stu _ num//número de estudiante
char stu_name[40];//nombre
char class_name[40];//clase
char house_name[20]; //dormitorio
hora _ t t
Hora (&t);
archivo ifstream 1;
archivo ofstream 3;
p>
indicador char = ' y
cout & lt& lt"——Sistema de gestión del desempeño estudiantil. & ltendl
cout & lt& lt" \ t \ t \time: "
while( flag=='y' || flag=='Y ')
{//El período controlado por la bandera.
cout & lt& lt"-\ n";
cout & lt& lt" \t\t 1: ¡Estudiante registrado!\ n "; & lt& lt" \t\t 2: ¡Ver información de estudiantes por número de estudiante! \ n "
cout & lt& lt" \t\t 3: ¡Ver información de estudiantes por número de dormitorio! \ n ";
cout & lt& lt" \t\t 4: ¡Ver información del estudiante por nombre!\n ";
cout & lt& lt" \t\t 5: Ver estudiantes por clase Información! \n";
cout & lt& lt"\t\t 6: Mostrar toda la información del estudiante\n";
//cout & lt;& lt"\t \t 7: Modificar la información del estudiante según el ID del estudiante\ n";
//cout & lt; & lt" \t\t 8: ¡Eliminar la información del estudiante según el ID del estudiante \ n ";
cout & lt& lt"-\ n";
cout & lt& lt"Ingrese una opción:";
selección de caracteres;
CIN>>Select;
Cambiar(seleccionar)
{
Caso "1":
file3.open( "c :\\stu.dat ",IOs::app | IOs::binary);
Entrada: flag = 0;
cout & lt& lt"Ingrese el número de estudiante: ";
CIN>& gtstu_num
while(stu_num<100000 | | stu_num>999999)
{
CIN clear();
Rebobinar (stdin);
cout & lt& lt"El número de estudiante que ingresó es incorrecto, ingrese el número de estudiante de seis dígitos"< & ltendl
cout & lt& lt"número de estudiante: ";
CIN & gt;& gtstu _ num
}
file1.open("c:\\stu. dat ", IOs::in | IOs::binary | IOs::beg); //Abre el archivo en modo lectura.
Y (!file1.eof())
{
int n;
archivo 1. read((char *) &s1,sizeof(estudiante));
n = archivo 1. g count();
if(n==sizeof(estudiante))
{
Si (s1.Getstunum()==stu_num)
flags = 1;
}
} p >
archivo 1 . clear();
archivo 1 .
if (flags==1)
{ p >
CIN . clear();
cout & lt& lt"Número de estudiante duplicado, ¡vuelva a ingresar!"& lt& ltendl
Ir a entrada;
}
cout<<"Ingrese nombre:";CIN>>stu_name
cout<<"Ingrese categoría:";CIN> & gtclass_name
cout & lt& lt "Entra al dormitorio": CIN>& gthouse_name
s1.
Setdata(stu_num, stu_name, class_name, house_name);
archivo 3. write((char *)&s1, sizeof(s 1));
archivo 3 . );
archivo 3 . close();
Romper
Caso "2"://Buscar por ID de estudiante
cout & lt& lt"Por favor ingresa tu número de estudiante:";
CIN & gt;& gtstu _ num
mientras(stu _ num & lt;100000 | | stu _ num & gt; 999999)
{
CIN . clear();
Rebobinar (stdin); El número de estudiante que ingresó es incorrecto, ingrese el número de estudiante de seis dígitos"< & ltendl
cout & lt& lt"Número de estudiante:";
CIN & gt; & gtstu _ num
}
file1.open("c:\\stu.dat ", IOs::in | IOs::binary | IOs::beg);/ /Abre el archivo como leído.
Y (!file1.eof())
{
int n;
archivo 1 read((char *) &s1,sizeof(estudiante));
n = archivo 1. g count();
if(n==sizeof(estudiante))
{
If (s1. getstunum()= = stu_num)//Mostrar información del estudiante.
{
s1. show();
flags = 1;
}
}
}
archivo 1. borrar ();
archivo 1. close();
if (flags==0)
cout & lt& lt"No encontré el número de estudiante :"
Bandera = 0;
Pausa;
Caso "3"://Buscar por número de dormitorio
cout & lt& lt" Ingrese el número de dormitorio: ";
CIN>>house_name
file1.open("c:\\stu.dat ",IOs::in | IOs: :binary | IOs::beg); //Abre el archivo en modo lectura.
Y (!file1.eof())
{
int n;
archivo 1 read((char *) &s1,sizeof(estudiante));
n = archivo 1. g count();
if(n==sizeof(estudiante))
{
if(strcmp(s1. Gethousename(), house_name)==0)
{
s1.
show();
flags = 1;
}
}
}
archivo 1. borrar ();
archivo 1. close();
if (flags==0)
cout & lt& ltNo se puede encontrar el dormitorio: "< & ltNombre de la casa& lt& lt"¡Expedientes de estudiantes! "& lt& ltendl
flags=0;
break;
case "4"://buscar por nombre
cout & lt& lt"Ingrese el nombre del estudiante:";
CIN>& gtstu_name
file1.open("c:\\stu.dat ", IOs::in | IOs: :binary | IOs::beg); //Abre el archivo en modo lectura
Y (!file1.eof())
{
int n ;
archivo 1. read((char *)& s1, sizeof(student));
n = archivo 1. g count();
if(n==tamañode(estudiante))
{
if(strcmp(s1.Getstuname(),stu_name)==0)
{
s1.show();
banderas = 1;
}
}
}
archivo 1 . clear();
archivo 1 . "nombre:"
flags = 0;
break;
case "5"://búsqueda por categoría
cout & lt& ltPor favor ingrese el nombre de la clase: "";
CIN & gt;& gtclass_name
file1.open("c:\\stu.dat ", IOs::in | IOs ::binary | IOs::beg); //Abre el archivo en modo lectura.
Y (!file1.eof())
{
int n;
archivo 1. read((char *)&s1,sizeof(student));
n = archivo 1. g count();
if(n==tamañode(estudiante))
{
if(strcmp(s1.Getclassname(), class_name)= =0)
{
s1.show();
banderas = 1;
}
}
}
archivo 1 . clear();
archivo 1 .
if (flags==0 )
cout & lt& lt"Categoría no encontrada:"
Flags = 0;
Roto
Caso "6" ://Mostrar toda la información del estudiante.
file1.open("c:\\stu.dat ", IOs::in | IOs::binary); //Abre el archivo en modo lectura.
Y (!file1.eof())
{
int n;
archivo 1 read((char *) &s1,sizeof(estudiante));
n = archivo 1. g count();
if(n==sizeof(estudiante))
{
s1. show();
flags = 1;
}
}
archivo 1. clear();
archivo 1. close();
if (flags==0)
cout & lt& lt"¡No hay registro en la base de datos!"& lt& ltendl
Flag = 0;
Pausa;
//Caso '7'://Modificar la información del estudiante según el número de estudiante.
//flags = 0;
//cout & lt;& lt"Ingrese el número de estudiante que desea modificar:";
//CIN & gt;& gtstu _ num
// while(stu _ num & lt;100000 | | stu _ num & gt;999999)
// {
//CIN . clear();
//rewind(stdin);
//cout <<"El número de estudiante que ingresó es incorrecto, ingrese seis " Número de estudiante con dígitos"< & ltendl
//cout & lt;& lt"Número de estudiante: ";
//CIN & gt;& gtstu _ num
// }
//archivo 1 . open(" c:\ \ stu . dat ", IOs::in | IOs::binary | IOs::beg); el archivo como leído.
// while(!file1.eof())
// {
//int n;
//archivo 1. read((char *)&s1, sizeof(student));
//n = archivo 1. g count();
// if(n = =tamañode(estudiante))
// {
// if(s1.Getstunum()==stu_num)
// {
// file3.open("c:\\stu.dat ",IOs::out | IOs::binary);
//cout & lt;& lt"Nombre de entrada: " CIN>>stu_name
//cout<<"Categoría de entrada: "CIN>>class_name
//cout& lt;<"Ingrese al dormitorio":CIN>>house_name
// s1.
Setdata(stu_num,stu_name,class_name,house_name);
//archivo 3. write((char *)&s1,sizeof(s 1));
//archivo 3 . cerrar();
//banderas = 1;
// }
// }
/ / }
//archivo 1. clear();
//archivo 1. close();
// if (flags==0)
// {
//cout & lt;& lt"¡El registro del estudiante no existe y no se puede modificar!"& lt& ltendl
//break; /p>
// }
//break;
// case '8': //Eliminar información del estudiante según el número de estudiante.
Valor predeterminado: flag = ' n
Break
}
}
cout & lt& lt; "¡Gracias por tu uso!"& lt& ltendl
}