Red de conocimiento informático - Conocimiento informático - Código fuente de gestión de archivos escolares

Código fuente de gestión de archivos escolares

# incluir & ltiostream & gt

# 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;

}

}

archivo 1 . clear();

archivo 1 .

if (flags==1)

{

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

}