Red de conocimiento informático - Aprendizaje de código fuente - Código fuente del sistema de gestión de archivos

Código fuente del sistema de gestión de archivos

# incluir ltiostream gt

# incluir lt string gt

# incluir ltfstream gt

# incluir ltctime gt

Usar espacio de nombres estándar

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>

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)

{

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 ;

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;

// }

// }

// }

//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!