Sistema de gestión de dormitorios de estudiantes, código fuente C
#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 p>
{
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";
} p>
};
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) p>
{
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();