Red de conocimiento informático - Material del sitio web - ¿Cómo implementar el problema de recuperación de información de los estudiantes? Programación en C++

¿Cómo implementar el problema de recuperación de información de los estudiantes? Programación en C++

Guarde la información de los estudiantes en una lista enlazada individualmente. Le daré el código fuente que escribí: ¡échele un vistazo y úselo!

//el trabajo de 21chenxb

//2009/7/1

////////////////// ////////////////Inclusión del archivo de encabezado

#include

#include

#include

#include

#include

#include

///////////////////////////////////Predefinido

#define ERROR 0

#define OK 1;

///////////////////////// // ///////Definición de estructura

struct Student

{

char Studentno[10];//Número de estudiante

char nombre[10];//Nombre

char sexo[5];//Género

char jiguan[10];//Lugar de nacimiento

char xueyuan[10];//Universidad

char banji[10];//Clase

};

typedef int ElemType;

typedef struct LNODE

{

datos del estudiante;

struct LNODE *next;

}LNode, *LinkList;

//////////////////////////////// Las funciones de implementación necesarias para estructuras de almacenamiento (listas enlazadas individualmente)

//Inicializar lista enlazada individualmente

int init(LinkList &L)

{

L=(LinkList)malloc(sizeof( LNode));

if(L)

L->next=NULL;

return OK;

}/*init */

//Encontrar la longitud de la tabla

int ListLength(LinkList L)

{

LinkList p=L->next

int n=0;

mientras(p!=NULL)

{

n++;

p=p->siguiente;

}

return n;

}/*getLinklist length*/

//Insertar operación

int ListInsert(LinkList &L,int i, estudiante e)

{

LinkList s,p = L

int; j = 0;

while (p && j < i-1)

{ p = p->siguiente ++j }

if ( !p)

devuelve -1;

s = (LinkList) malloc ( tamaño de (LNode));

s->data=e;

s->siguiente = p->siguiente ;

p->siguiente = s;

retorno 1;

}/*ListInsert antes de i*/

/// //////////////////////////////Sección de declaración de funciones

void menu();//Mostrar menú

void add(LinkList stuinfo);//Agregar información

void del(LinkList stuinfo);//Eliminar información

void que(LinkList stuinfo);/ /Buscar información

void baobiao(LinkList L);//Mostrar toda la información

void xuanze(LinkList stuinfo);//Selección después de que el usuario complete la operación

void start(int Choose,LinkList stuinfo);//Iniciar mientras el programa se está ejecutando

int addiden(LinkList stuinfo,student stu);//Se utiliza para determinar si aparece el mismo número de estudiante al agregar información

void help(LinkList stuinfo);//Información de ayuda

void start();//Comenzar en un nuevo inicio

void Exception();/ /Manejar excepción de operación

p>

///////////////////////////////Parte de función principal

void main()

{

cout<<"----------------INFORMACIÓN IMPORTANTE ----- --------- -------"<

cout<<"¡Este programador funciona con 21chenxb!"<

cout<<"Puedes elegir 5 y mirar la información de ayuda."<

cout<<"Debes tener más cuidado o perderás los datos"<

cout<<" ----------------------------------------- --------- ----"<

inicio();

}

////// ///////// /////////////Parte de implementación de función detallada

void menu()//Menú

{

cout< <"------El sistema de gestión de estudiantes se está ejecutando------"<

cout<<"Menú:"<

cout<<"--------------------------------------- --------- ------"<

;

cout<<"| N. Salir del sistema (N=0 o cualquier cadena no numérica). |"<

cout<<" | 1. Agregar información del estudiante |"<

cout<<"| Consultar información del estudiante |"<

cout<<"| 4. Informar información del estudiante |"<

cout<<"| Información de ayuda |"<

cout<<"------------------------------ ---- ---------------------"<

cout<<"¡Por favor seleccione una operación!"<

cout<<"----------------tu trabajo está comenzando------------------ -"<

}

void add(LinkList stuinfo)//Add

{

cout<<"- ----- ------estás agregando la información del estudiante-------"<

int n;

char temp;

información del estudiante;

cout<<"Nombre:";

cin>>info.nombre;

cout<<"Género :";

cin>>info.sex;

cout<<"Número de estudiante:";

cin>>info.studentno;

if (addiden(stuinfo,info)==1)

{

cout<<"¡Número de estudiante duplicado! ¡Compruebe y agregue nuevamente!"<

cout<<"----------------Se pasa la excepción-------------"<

cout<<"¡Añadir de nuevo ahora!"<

add(stuinfo);

}

cout<<" Ciudad natal:";

cin>>info.jiguan;

cout<<"Universidad:";

cin>>info.xueyuan;

cout <<"Clase:";

cin>>info.banji;

n=ListLength(stuinfo)+1;

ListInsert (stuinfo,n, info);

//////////////////////////////////// //////// ///////////

cout<<"¿Continuar agregando?"<&l

t;endl<<"1→continuar 2→end"<

cin>>temp;

cambiar(temp)

{

caso '1': agregar(stuinfo);romper;

caso '2': xuanze(stuinfo);romper;

predeterminado: Excepción();romper ;

}

}

void del(LinkList stuinfo)//Delete

{

cout< <"----------------estás eliminando la información del estudiante-------"<

int flag=0;

estudiante que;

cout<<"Por favor, ingrese el número de estudiante que desea eliminar:"<

cin>>que.studentno;

Lista de enlaces p,q;

p=stuinfo->siguiente;

q=stuinfo;

while(p&&flag!=1)

{

if(strcmp((p->data).studentno,que.studentno)==0)

{

bandera =1;

p>

//q=p->next;

p=q->next;//Método de eliminación correcto, el método de eliminación anterior es incorrecto

q- >next=p->next;//

free(p);

cout<<"¡Eliminación exitosa!"<

}

más

{

p=p->siguiente;

q=q->siguiente;

}

if(flag==0)

{

cout<<"La eliminación falló, no existe dicha información de identificación del estudiante !"<

}

}

///////////////////// ///////// /////////

xuanze(stuinfo);

}

void que(LinkList stuinfo )//query

{

cout<<"------------estás buscando la información del estudiante-------"<

int flag=0;

estudiante que;

cout<<"Ingrese el número de estudiante que desea consultar:"<

cin>> que.studentno;

LinkList p;

p=stuinfo->siguiente;

while(p)

{

if(strcmp((p->data).studentno,que.studentno)==0)//Las cadenas solo se pueden usar para comparar

< pag

> {

flag=1;

cout<<"¡Recuperación exitosa!"<

cout<<"Número de identificación del estudiante"<

cout<<(p->datos).studentno<datos).nombre<datos).sex<datos).jiguan<datos).xueyuan<datos ).banji<

}

p=p->siguiente;

}

if(bandera ==0 )

{

cout<<"¡La consulta falló, no existe dicha información sobre el número de estudiante!"<

}

/ /////////////////////////////

xuanze(stuinfo);

}

int addiden(LinkList stuinfo,student stu)//Se utiliza para determinar si el ID de estudiante agregado está duplicado

{

LinkList p;

int flag=0;

p=stuinfo->siguiente;

while(p)

{

if(strcmp(( p->data).studentno,stu.studentno)==0)//Las cadenas solo se pueden usar para comparar

{

flag=1 ;

}

p=p->siguiente;

}

devolver bandera;

}

void baobiao (LinkList L)//Informe, muestra toda la información del estudiante

{

cout<<"----------- -Está toda la información de los estudiantes ---------"<

LinkList p,stuinfo=L;

p=L;

cout<<" ID de estudiante"<

setw(12)< <"Universidad"<

while(p->siguiente)

{

p= p->siguiente;

cout<<(p->datos).studentno<&l

t;setw(10)<<(p->datos).nombre<<

setw(10)<<(p->datos).sexo<datos).jiguan<<

setw(10)<<(p->data).xueyuan<data).banji<

}

cout<

//////////////función final

xuanze( stuinfo);

}

void xuanze(LinkList stuinfo)//Selección después de la operación

{

cout<<"- - ----------¡Tu trabajo ha terminado, por favor da una nueva opción!-------"<

char xuanze;

cout <<"¡Esta operación ha terminado!";

cout<<"¿Continuar? y/n? "<

//system("pausa"

cin>>xuanze;

if(xuanze=='y')

{

system("cls"); // qingping

int elegir;

menú();

cin>>elegir;

comenzar(elegir,stuinfo

}

más

{

if(xuanze=='n')

{

p>

retorno;

}

más

{

Excepción();

}

}

}

void comenzar(int elegir,LinkList stuinfo)//elección al principio

{

switch(elegir)

{

caso 0:

cout<<"Salió correctamente, ¡bienvenido a volver!"<< endl;break;

caso 1: add(stuinfo);break;

caso 2: del(stuinfo);break;

caso 3: que( stuinfo);break;

caso 4: baobiao(stuinfo);break;

caso 5: ayuda(stuinfo);break;

predeterminado:

cout<<"¡Entrada ilegal! ¡El sistema sale automáticamente! "<

return;

}

}

void help(LinkList L)//Función de visualización de información de ayuda

{

int t;

Lista de enlaces stuinfo=L;

co

ut<<"-------estás leyendo información útil------------"<

cout<<"a. Este sistema tiene not El mecanismo de lectura y escritura de archivos se usa solo para probar algoritmos "<

cout<<"b. Agregue información según se le solicite y no cierre el programa antes de realizar la prueba. endl;

cout<<"c. El número de serie en el menú es el código de operación. En el mensaje de solicitud, siga el código de solicitud."<

cout< <"d. Lo que hiciste no es bueno. ¡Está bien, gracias por tu consejo! 1 → Regresar. p> {

xuanze(stuinfo); //Se inicia el programa regular

}

else

{

Exception();//El programa se inicia después de una mala operación

}

}

void start()//El programa comienza

{

int Choose;

LinkList stuinfo;

init(stuinfo);

////////// /////////////////

menú ();

cin>>elegir;

comenzar(elegir, stuinfo);

}

void Exception()// Se utiliza para manejar el mal funcionamiento del usuario

{

cout<<"- ------------------------- ---------"<

cout<

cout<<"¡Entrada ilegal, opere con cuidado!"<

system("pause");

system("cls") ;

cout<<"¡Este sistema se reinicia automáticamente!"<

cout<

cout<<"---- ------------------------- ------"<

inicio();

}