Red de conocimiento informático - Conocimiento informático - Código fuente C++ del sistema de gestión de información básica para estudiantes

Código fuente C++ del sistema de gestión de información básica para estudiantes

#include?

#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?<>?tmp.m_id;?}

if(modelo?! =?2)?{?cout?<

cin?

cin?>>?tmp.m_age;

cout?<

tmp.m_sex?=?readstring();

cout?<

tmp.m_address?=?readstring();

cout?<

tmp.m_contact?=?readstring();

cout?<

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?<

cin?>>?tmp.m_age;

cout?<

tmp.m_sex?=?readstring();

cout: ? Dirección: ?

tmp.m_address?=?readstring();

cout?<

tmp.m_contact?=?readstring();

cout?<

tmp.m_dormitory?=?readstring();

insert(tmp);

}

¿Número de estudiante duplicado? : "? <

cout?<

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?<

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->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?<

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;

}

q?=?p->m_next;

p->m_next?=?q->m_next;

eliminar?q;

devolver ?true;

}

bool?CStudent::modifyid()?{

estudiante?tmp,*p;

unsigned ?id;

cout?<

cin?>>?id;

p ?=? findid(id);

if(p?==?NULL)?{

cout?<

retorno?falso;

p>

}

tmp?=?readdata(1);

tmp.m_id?=?id;

*p?=?tmp ;

return?true;

}

bool?CStudent::modifyname()?{

estudiante?*p,tmp ;

string?name;

cout?<

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?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cout?<

cin?<

} while(choice?

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?<

sistema("pausa");

}

void?CStudent::query()?const?{

int?select;

unsigned?id;

cadena ?nombre ;

estudiante?*p;

cout?<

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?<

}

sistema("pausa");

}