Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda con listas en c++

Estas en el tema de ayuda con listas en c++ en el foro de C/C++ en Foros del Web. Que tal miren tengo que realizar un programa en el cual me de su matricula y su nombre de un alumno esto me lo tiene ...
  #1 (permalink)  
Antiguo 08/11/2009, 19:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 19
Antigüedad: 14 años, 6 meses
Puntos: 0
ayuda con listas en c++

Que tal miren tengo que realizar un programa en el cual me de su matricula y su nombre de un alumno esto me lo tiene que ordenar de menor a mayor dar un reporte de lo realizado y dar la oportunidar de borrar un elemento y recorrer todo organizandolo de menor a mayor de nuevo esto es con listas y memoria dinamica
Código:
#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
}
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:41.