Red de conocimiento informático - Conocimiento informático - Sistema de gestión de dormitorios de estudiantes, código fuente C

Sistema de gestión de dormitorios de estudiantes, código fuente C

#include lt;iostreamgt;

#include lt;stringgt;

#include lt;fstreamgt;

#include lt;ctimegt;

usando el espacio de nombres std;

estudiante de clase

{

p>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_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) //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) // Buscar por clase

{

return class_name;

}

void Setdata(long a, char *b, char *c, char *d)

{

stu_num = a;

strcpy(stu_name, b);

strcpy(class_name, c);

strcpy(nombre_casa, d);

}

void Show(void)

{

coutlt;lt; Número de estudiante: "lt;lt;stu_numlt;lt;"\t"lt;lt; "Nombre: "lt;lt;stu_namelt;lt;"\t";

coutlt;lt; "Clase : "lt;lt;lt;"\t"lt;lt;"\t".lt; "dormitorio:"lt;lt;house_namelt;lt;"\n";

}

};

void principal(void)

{

estudiante s1;

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

time_t t;

tiempo (amp; t);

ifstream file1;

ofstream file3

char flag = 'y';

coutlt;lt;"---------------------------------Sistema de gestión del desempeño estudiantil- ----------------------------------"lt;lt;endl;

coutlt; lt; "\ t\t Hora: " lt; lt; ctime(amp; t

while( bandera=='y' || bandera= = 'Y')

{ // Bucle controlado por bandera

coutlt;lt;"-------------------------------- --- ----------------------------------------------- ---\n" ;

coutlt;lt;"\t\t 1: ¡registre estudiantes!\n";

coutlt;lt;"/t\t 2: ¡Ver información de estudiantes por número de estudiante!\n";

coutlt;lt;"/t\t 3: ¡Ver información de estudiantes por número de dormitorio /n";

coutlt;lt! ;"\t\t 4: ¡Ver información de los estudiantes por nombre! /n";

coutlt;lt;"/t\t 5: ¡Ver la información de los estudiantes por clase! \6: Mostrar toda la información de los estudiantes\ n";

// coutlt;lt;"/t\t 7: Modificar la información del estudiante por número de estudiante\n";

// coutlt;lt;"/t\ t 8: ¡Elimine la información del estudiante por número de estudiante! \n";

coutlt;lt;"---------------------------------- -------------------------------------------------- \n";

coutlt;lt; "Por favor, introduzca la opción:";

char choice;

cingt;gt;choice;

cambiar( elección)

{

caso '1':

file3.open("c:\\stu.dat",ios.: aplicación|ios: :binario);

i

nput: flags=0;

coutlt; lt; "Ingrese el número de estudiante: ";

cingt; || stu_ numgt;999999)

{

cin.clear();

rebobinar(stdin);

cout lt; lt; "Ingresaste un número de estudiante incorrecto, ingresa un número de seis dígitos" lt;

cout lt; gt; gt; stu_num;

}

file1.open("c:\stu.dat", ios::in | ios::binario | ios::beg); //abre el archivo como leído

while(!file1.eof())

{

int n;

file1 . read((char *)amp; s1, sizeof(estudiante));

n=file1.gcount()

if(n== sizeof(estudiante))< / p>

{

if(s1.Getstunum()==stu_num)

banderas=1

}

}

archivo1.clear();

archivo1.close();

if (flags==1)

{

cin.clear();

cout lt; "Número de estudiante duplicado, vuelva a ingresar!" lt; ;

}

coutlt;lt; "Ingrese el nombre:"; cingt;gt;stu_name;

coutlt;lt; "Ingrese la clase:"; ;gt;class_name;

coutlt;lt; "Ingresar al dormitorio: "; cingt;gt;house_name;

s1.setdata(stu_num, stu_name, class_name, house_name); p>

archivo3.write ((char*)amp; s1, tamaño de(s1));

archivo3.clear()

archivo3.close(); /p>

break;

case '2':

coutlt; lt; "Ingrese el número de estudiante del estudiante:"; gt;stu_num;

while (stu_numlt;100000 || stu_numgt;999999)

{

cin.clear();

rewind(stdin).

cout lt;lt; "El número de estudiante que ingresó es incorrecto, ingrese un número de seis dígitos" lt;l

t; endl;

cout lt;

}

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 *) amp; s1, sizeof(estudiante));

n=file1.gcount();

if(n==tamañode(estudiante))

{

if(s1.Getstunum() ==stu_num) //mostrar información del estudiante

{

s1.Show();

flags=1; /p>

}

}

archivo1.clear();

archivo1.close()

if ( flags==0)

cout lt; "No busco registro de estudiante con número de estudiante: "lt; stu_num lt;

flags=0;

break;

case '3': //buscar por número de dormitorio

coutlt; número: ";

cingt;gt; nombre_casa;

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 *)amp; s1, sizeof(estudiante));

n=file1.gcount();

if(n==sizeof(estudiante) ) ))

{

if(strcmp(s1. house_name)==0)

{

s1.Show() ;

banderas=1;

}

}

archivo1.clear(); close ();

if (flags==0)

cout lt; "No se encontró ningún registro de estudiante para el dormitorio: "lt; house_name lt; " lt; lt; endl;

flags=0;

break;

case '4': //buscar por nombre

coutlt;lt; "Por favor

ingrese el nombre del estudiante: ";

cingt;gt; 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 *)amp; s1, sizeof(estudiante));

n=file1.gcount()

if(n==sizeof; (estudiante))

{

if(strcmp(s1.Getstuname(), stu_ nombre)==0)

{

s1.Show();

banderas=1

}

}

archivo1.clear();

file1.close();

if (flags == 0)

cout lt;lt; "No se encontró ningún registro de estudiante para el nombre: "lt;lt; lt; lt; "!" lt; lt;

banderas=0;

break;

coutlt;lt; "Ingrese el nombre de la clase:";

cingt;gt; class_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 *)amp; s1, sizeof(estudiante));

n=file1.gcount();

if(n==tamañode(estudiante))

{

if(strcmp(s1.Getclassname(), class_name)==0)

{

s1.Show();

banderas=1

}

}

}

archivo1.clear();

archivo1.close()

if (flags==0)

cout lt; "No se encontró ningún registro de estudiante como: "lt; lt; class_name lt;!" >

break;

case '6': //muestra toda la información del estudiante

file1.open("c:\\stu.dat", ios::in | ios::binario); //

abre el archivo como leído

while(!file1.eof())

{

int

file1.read((char *)&s1, sizeof(estudiante));

n=file1.gcount();