Código:
no eh podido hacer que coincida la matricula con el nombre por consiguiente todavia no los ordeno de menor a mayor ya que si pongo a que ordene la matricula lo hace pero no hubica al nombre en su lugar asi que por el momento solo estoy manejando el nombre otro problema que tengo es que si puedo hacer a que me ubique aun estudiante pero no se como borrarlo y que se recorra la lista ojala me puedan orientar #include <iostream.h> #include <conio.h> #include <stdio.h> struct alumno { char nombre[50]; //int matricula[7]; public: void ingresar(); // Rellenar nuevo objeto void mostrar_nombre(); // Muestra el nombre void reporte(); // Muestra las notas }; void alumno::ingresar() //Ingresa los datos { //printf("Ingrese la matricula : "); //scanf("%d",&matricula); printf("Ingrese el Nombre : "); scanf("%s",&nombre); } void alumno::mostrar_nombre() { printf("%s",nombre); //Escribe el nombre en la pantalla } void alumno::reporte() //Genera reporte del estudiante { } main() { int num_est=0; //Numero del objeto en el vector int numero_objeto=0; //Apuntador del número del objeto int opcion; //Opción del menú char nom[50]; //Arreglo de 50 caracteres para el nombre int i=0; //Auxiliar int n=0; //Opción en el menú int dim; //Dimensión del arreglo de objetos alumno *p; //Crea un puntero a objeto alumno alumno *aux; //Puntero auxiliar tipo alumno (Solo por ejemplo //pero no es necesario) printf("Cuantos alumnos podra tener la asignatura"); scanf("%d",&dim); //Para cuantos objetos hay que liberar memoria? printf( "\n"); p = new alumno[dim]; //Asigna memoria dinámicamente if (p==0) //Si p=0 no hay memoria suficiente { printf("Error no hay suficiente memoria"); return 0; //Sale del programa }; aux=p; //Asignación de un puntero a otro del mismo tipo clrscr(); do //estructura do...while { //que mantiene en el ciclo principal //clrscr(); printf( " \n" ); printf("Escoja una opcion. \n"); printf( "1.-Nuevo estudiante \n"); printf( "2.-Ver lista de estudiantes inscritos \n"); printf( "3.-Reporte de un estudiante \n"); printf( "4.-Otra tecla para salir \n"); scanf("%d",&opcion); switch (opcion) { case 1: (p+numero_objeto) -> ingresar(); //operador flecha en vez de operador //punto numero_objeto++; break; case 2: printf("\n"); printf("Lista de Estudiantes inscritos \n"); for (i=0;i<numero_objeto;i++) { printf("Estudiante numero %d : ",i); (aux+i) -> mostrar_nombre(); printf( "\n"); } break; case 3: printf("Ingrese el número de lista del estudiante a examinar \n"); scanf("%d",&n); printf("Alumno: "); (p+n) ->mostrar_nombre(); printf( "\n"); (p+n) -> reporte(); break; default: return 0; //Sale del programa }} while (opcion !=4); //sale del programa delete [] p; //libera la memoria asignada a *p }