Código fuente C++ del sistema de gestión de información básica para estudiantes
#include?
#include?
#include?
usando?namespace?std;
typedef ?struct?student?{
unsigned?m_id;
cadena?
estudiante ;
clase?CStudent?{
privado?
estudiante?*cabeza;
público?{
head?=?new?student;
head->m_id?=?0;
head->m_name?=?" noname";
head->m_next?=?NULL;
}
~CStudent()?{
estudiante?*p?=?head,*q;
while(p)?{
q?=?p;
p?=?q->m_next;
¿eliminar? q;
}
}
estudiante?readdata(int?model);?//?model?=?1:no leer el número de estudiante , 2:no leer el nombre, otro, leer toda la información
void?entering();
bool?insert(const?student?&astu);
estudiante?*findid(unsigned?id)?const;
estudiante?*findname(const?string?&name)?const;
estudiante?*findsex(const?string ?&sex)?const;
estudiante?*finddormitory(const?string?&dormitory)?const;
unsigned?const;
unsigned?girls() ?const;
unsigned?headcount()?const;
bool?eraseid();
bool?erasename();
bool?modifyid();
bool?modifyname();
void?show()?const;
void?query()?const;
void?amigo?estadísticas(const?CStudent?&aclss);
void?amigo?erase( CStudent?&aclss);
void?amigo?modificar (CStudent?&aclss);
};
cadena?readstring()?{
cadena?\n');
cin?>>?str;
retorno?st
r;
}
estudiante?CStudent::readdata(int?model)?{
estudiante?{?cout?<" Número de escuela: ? Número de escuela:?" ;?cin?>>?tmp.m_id;?}
if(modelo?! =?2)?{?cout?<
cin?
cin?>>?tmp.m_age;
cout?<" Género :? género:? " ;
tmp.m_sex?=?readstring();
cout?<" Dirección:? DIRECCIÓN:? " ;
tmp.m_address?=?readstring();
cout?<"Persona de contacto: ? " ;
tmp.m_contact?=?readstring();
cout?<"Dormitorio:?" ;
tmp.m_dormitory?=? readstring();
return?tmp;
}
void?CStudent::entering()?{
estudiante?tmp ;
cout?Número de estudiante (0 para regresar):? " ;
cin?>>?tmp.m_id;
while(tmp.m_id) ?{
if(findid(tmp.m_id)?{
cout?Nombre:?";
tmp.m_name?=?readstring();
cout?<" Edad:?Edad:?" ;
cin?>>?tmp.m_age;
cout?<" Género: ? " ;
tmp.m_sex?=?readstring();
cout: ? Dirección: ?
tmp.m_address?=?readstring(); p>
cout?<"Contacto:?" ;
tmp.m_contact?=?readstring();
cout?<"Dormitorio:?" ;
tmp.m_dormitory?=?readstring();
insert(tmp);
}
¿Número de estudiante duplicado? : "? <
cout?<" Número de escuela (0?to ?return):?" ;
cin? >>?tmp.m_id;
}
}
estudiante?*CStudent ::findid(¿sin firmar?id)?const?{
estudiante?*p;
for(p? =?head;?p->m_next;?p?=? p->m_next)
if(p- >m_next->m_id?==?id)?return?p;
return?NUL
L;
}
estudiante?* CStudent::findname(const?string?&name)?const?{
estudiante?*p;
for(p?=?head;?p->m_next;?p?=?p->m_next)
if( p->m_next->m_name?==?name) ?return?p;
return?NULL;
}
estudiante?*CStudent::findsex(const?string?&sex)?const?{
estudiante?*p;
for(p?=?head;?p->m_next;?p?=?if(p->m_next->m_sex?==? ¿sexo)?return?p;
return?NULL;
}
estudiante?*CStudent::finddormitory(const?string?&dormitory)?const? {
estudiante?*p;
for(p ?=?head;?p->m_next;?p?=?p->m_next)
if(p->m_next->m_dormitorio?==?dormitorio)?return?p;
return?NULL;
}
bool?CStudent::insert(const?student?&astu)?{
estudiante?*newnode,*p?=?head;
if(p->m_next?= =?NULL)?{
p->m_next?=?new?student(astu);
p->m_next->m_next?=?NULL;
return?true;
}
while(p->m_ next)?{
if(p->m_next->m_id?= =?astu.m_id)?{
cout?<"Número de estudiante duplicado, ¡falló la inserción!\n";
return?false;
}
if(p->m_next->m_id?>?astu.m_id)?{
newnode?=?new?student(astu);
newnode->m_next?=?p->m_next;
p->m_next?=?newnode;
return?true
} p>
p?=?p->m_next;
}
p->m_next?=?new?student(astu);
p->m_next->m_next?=?NULL;
retorno verdadero;
}
sin firmar?CStudent::boys()?const?{
unsigned?cnt?=?0;
estudiante?*p;
for(p?=?head->m_next;?p;?
p?=?p->m_next)
if(p->m_sex?==?" Hombre")?++cnt;
return?cnt;
}
unsigned?CStudent::girls()?const?{
unsigned?cnt?=?0;
estudiante?*p;
for(p?=? head->m_next;?p;?p?=?p->m_next)
if(p->m_sex?==?" Mujer ")?++cnt;
return?cnt;
}
¿sin firmar?CStudent::headcount()?const?{
unsigned?cnt?=?0;
estudiante?*p;
for( p?=?head->m_next;?p;?p?=?p- >m_next,++cnt);
return?cnt;
}
bool?CStudent::eraseid()?{
estudiante?*q,*p;
unsigned?id;
cout?Ingrese el número de estudiante que desea eliminar: ";
cin?>> ? id;
p?=?findid(id);
if(p?==?NULL)?{
cout?<" No ¿El número de escuela encontrado es """? <
return?false;
}
q?=?p->m_next;
p->m_next ?=?q->m_next;
eliminar?q;
devolver?true
}
bool?CStudent:: erasename()?{
estudiante?*q,*p;
cadena?Ingrese el nombre de la persona que desea eliminar: ";
nombre? =? readstring();
p?=?findname(nombre);
if(p?==?NULL)?{
cout?nombre no encontrado es \"?"? <
return?false;
} p>
q?=?p->m_next;
p->m_next?=?q->m_next;
eliminar?q;
devolver ?true;
}
bool?CStudent::modifyid()?{
estudiante?tmp,*p;
unsigned ?id;
cout?<"Ingrese el número de estudiante que desea cambiar:";
cin?>>?id;
p ?=? findid(id);
if(p?==?NULL)?{
cout?<"No se encontró el número de estudiante\""? <
retorno?falso;
p>
}
tmp?=?readdata(1);
tmp.m_id?=?id;
*p?=?tmp ;
return?true;
}
bool?CStudent::modifyname()?{
estudiante?*p,tmp ;
string?name;
cout?<"Ingrese el nombre de la persona a modificar:";
name?=?readstring(
p?=?findname(nombre);
if(p?==?NULL)?{
cout?nombre no encontrado es \); "? "? <
return?false;
}
tmp? = ?readdata(2);
tmp.m_name?=?nombre;
*p?=?tmp;
return?true;
}
p>int?menu()?{
int?choice;
hacer?{
sistema ( "cls");
cout?<"\t******************************\ n ";
cout?<"\t*Sistema de gestión de información básica del estudiante*\n";
cout?<"\t*===== = ====================*\n";
cout?<"\t*1, ingresa la información del estudiante*\n " ;
cout?<"\t*2, muestra información del estudiante*\n";
cout?<"\t*3, consulta información del estudiante* \ n";
cout?<"\t*4, agregar información del estudiante*/n";
cout?<"\t*5, contar estudiante información *\n";
cout?<"\t*6. Eliminar información del estudiante*\n";
cout?<"\t*7. Modificar información del estudiante*/n";
cout?<"\t*0, salir del sistema de gestión*/n";
cout?<"\t ** ******************************\n";
cout?<"\ Por favor seleccione: ";
cin?<
} while(choice?0?||?choice?7);
return?elección;
}
void?show( estudiante?*p)?{
cout??"? < m_name?<" ??"? <m_age?<" ??")
cout?<m_sex?<" ? ?"
? <m_dirección?<" ??" ;
cout?<m_contacto?? <m_dormitorio?<
}
void?CStudent::Show()?const?{
estudiante?*p;
cout?<< ?"?----------------------------------------------- --- -----------\n";
for(p?=?head->m_next;?p;?p?=?p->m_next)? mostrar(p );
cout?<"-------------------------------- -----------------------\n";
sistema("pausa");
}
void?CStudent::query()?const?{
int?select;
unsigned?id;
cadena ?nombre ;
estudiante?*p;
cout?<"1, consulta por número de estudiante\n2, consulta por nombre\n0, retorno\n"; p>
cin?>>?select;
switch(select)?{
case?1?Ingrese el ID del estudiante: ";?cin?>>? id;
if(p?=?findid(id))?show(p->m_next);
break;
case?2?Por favor ingresa tu nombre: ";?name?=?readstring();
if(p?=?findname(name))?show(p->m_next);
break ;
case?0?cout?<"Selección incorrecta. \n";
}
sistema("pausa");
}