Código fuente del sistema de gestión de archivos
# incluir lt string gt
# incluir ltfstream gt
# incluir ltctime gt
Usar espacio de nombres estándar p>
Estudiantes de clase
{
Privado:
long int stu _ num//número de estudiante, número de dormitorio
char stu_name[40];//nombre
char class_name[40];//clase
char house_name[20];//dormitorio
Público:
Estudiante()
{
stu_num = 0
stu_nombre[ 0]= 0;
nombre_clase[0]= 0;
nombre_casa[0]= 0;
}
Estudiante::Estudiante (a larga, char * b, char *c, char *d)
{
Setdata(a, b, c, d);
p>}
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
{
Devolver casa _ nombre
}
Char * Getclassname( void) //Buscar por categoría.
{
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" Número de estudiante:"
cout lt lt"Categoría:"
}
};
Administrador no válido (no válido)
{
Estudiante s 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
Tiempo (ampt);
archivo ifstream 1;
archivo ofstream 3;
char flag = ' y
cout lt lt" - Sistema de gestión del desempeño estudiantil.
ltendl
cout lt lt" \ t \ t \time: "
mientras( bandera=='y' || bandera=='Y ')
{//Período controlado por bandera.
cout lt lt"-\ n";
cout lt lt" \t\t 1: ¡Estudiante registrado!\ n";
cout lt lt " \t\t 2: ¡Ver información de los estudiantes por número de estudiante!\n ";
cout lt lt" \t\t 3: ¡Ver información de los 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 información del estudiante por clase!\n ";
cout lt”\t\t 6: Mostrar toda la información del estudiante\n”;
//cout lt”\t\t 7: Modificar estudiantes según el estudiante número de información\n";
//cout lt; lt" \t\t 8: ¡Eliminar información del estudiante según el número de estudiante \n ";
cout lt lt"- \ n ";
cout lt lt"Ingrese una opción: ";
selección de caracteres;
CIN gt; selección gt;
cambiar(seleccionar)
{
Caso "1":
file3.open("c:\\stu.dat", IOs:: app | IOs::binary);
Entrada: flag = 0;
cout lt lt"Ingrese el ID del estudiante:";
CIN gtstu_num
mientras(stu _ num lt; 100000 | | stu _ num gt; 999999)
{
CIN clear(); >Rebobinar(stdin);
cout lt lt"El número de estudiante que ingresó es incorrecto, ingrese un 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:: binario | IOs::beg); //Abre el archivo en modo lectura.
Y (!file1.eof())
{
int n;
archivo 1. read((char *) amp; s1, tamaño de (estudiante));
n = archivo 1 . g recuento();
if(n==tamaño de (estudiante))
{
Si (s1.
Getstunum()==stu_num)
flags = 1;
}
}
archivo 1. clear(); p>
} p>
archivo 1 . close();
if (flags==1)
{
CIN. ();
cout lt lt"Número de estudiante duplicado, vuelva a ingresarlo!" p>cout lt lt"Ingrese nombre: "CIN gt; gtstu_name
cout lt lt" Categoría de entrada: "CIN gt; gtclass_name
cout lt "Ingrese al dormitorio": cin gt ; gthouse_name
s1. Setdata(stu_num, stu_name, class_name, house_name);
archivo 3. write((char *) & s1, sizeof(s 1));
archivo 3. clear() ;
archivo 3. close();
break;
Caso "2": //Buscar por ID de estudiante
cout lt lt"Por favor ingrese su número de estudiante:";
CIN gt; gtstu _ num
while(stu _ num lt; 100000 | | stu _ num gt; 999999) p>
{
CIN . clear();
Rebobinar (stdin);
cout lt lt"El número de estudiante que ingresó es incorrecto, por favor 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 *) amp; s1, tamaño de (estudiante));
n = archivo 1 . >{
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 gt; gthouse_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 *) amp; s1, tamaño de (estudiante));
n = archivo 1 . g recuento();
if(n==tamaño de (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 casaltlt"Estudiante ¡registro! " lt ltendl
flag = 0;
break;
case "4": //Buscar por nombre
cout lt lt "Por favor ingrese el nombre del estudiante:";
CIN gt; gtstu_name
file1.open("c:\\stu.dat", IOs::in | IOs:: binario | IOs::beg); //Abre el archivo como leído
while (!file1.eof())
{
int n ; p>
archivo 1 . read((char *) amp; s1, tamañode(estudiante));
n = archivo 1 . n==tamañode(estudiante))
{
if(strcmp(s1.Getstuname(),stu_name)==0)
{
s1.
show();
flags = 1;
}
}
}
archivo 1. borrar ();
archivo 1. close();
if (flags==0)
cout lt lt"Nombre:"
flag = 0;
Pausa;
Caso "5": //Buscar por clase
cout lt ltIngrese el nombre de la clase: "";
CIN gt; gtclass_name
file1.open("c:\stu.dat", IOs::in | IOs::binary | IOs::beg); el archivo en modo lectura.
Y (!file1.eof())
{
int n;
archivo 1. read((char *) amp; s1, tamaño de (estudiante));
n = archivo 1 . g recuento();
if(n==tamaño de (estudiante))
{
if(strcmp(s1.Getclassname(), class_name)==0)
{
s1. show();
flags = 1;
}
}
}
archivo 1. borrar ();
archivo 1. close();
if (flags==0)
cout lt lt"Categoría no encontrada:"
p>Flags = 0;
Pausa;
Caso "6": //Muestra 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 *) amp; s1, tamaño de (estudiante));
n = archivo 1 . g recuento();
if(n==tamaño de (estudiante))
{
s1. show();
flags = 1;
}
}
archivo 1. clear();
archivo 1. close();
if (flags==0)
cout lt lt "¡No hay registros en la base de datos!" Flag = 0;
Break;
//Case '7': //Modifica 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 lt;"El número de estudiante que ingresó es incorrecto, ingrese un número de estudiante de seis 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); //Abre el archivo en modo lectura.
// while(!file1.eof())
// {
//int n;
//archivo 1. read((char *) & s1, sizeof(student));
//n = archivo 1. g count();
// if(n= = sizeof(estudiante))
// {
// if(s1.Getstunum()==stu_num)
// {
// file3.open("c:\\stu.dat", IOs::out | IOs::binary);
//cout lt "Nombre de entrada: "CIN gt; gtstu_name
//cout lt; "Entra al dormitorio": CIN gt; gtclass_name
//cout lt; gthouse_name
// s1. Setdata(stu_num, stu_name, class_name, house_name);
//archivo 3. write((char *) & s1, sizeof(s 1));
/ /archivo 3 . cerrar();
//flags = 1;
// }
// }
// } p>
//archivo 1. clear();
//archivo 1. close();
// if (flags==0)
// {
//cout lt; lt"¡El registro del estudiante no existe y no se puede modificar!" 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!