elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con listas enlazadas C++ solo para Masters jejejeje
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con listas enlazadas C++ solo para Masters jejejeje  (Leído 2,864 veces)
haven7

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con listas enlazadas C++ solo para Masters jejejeje
« en: 27 Junio 2012, 03:32 am »

Buenas noches necesito ayuda con este codigo necesito hacer un programa que manipule dos listas enlazadas . En cual la lista -A debe ingresar Codigo de -Estudiante, Nombre y la Cedula. Y la lista B donde se almacene Codigo de Estudiante, Codigo de Asignatura y La nota ....Debe tener un menu donde muestre Datos de los estudiantes, Captura de Notas y Credito de los estudiantes ....Gracias

#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#include<dos.h>
#define null 0


struct estudiante
{
    char nombre[50];
    char telefono[25];
    char mail[50];
};
struct info
{
    char credito[50];
    char codasignatura[25];
    char notaasignatura[50];
};
struct nodo
{
    struct estudiante dato1;
    struct info dato2;
    struct nodo *proximo;
}


struct nodo *creacola1(struct nodo *, struct estudiante);
struct nodo *creacola2(struct nodo *, struct info);
int colavacia1(struct nodo *);
int colavacia2(struct nodo *);
struct nodo *ingreso();
struct nodo *capturanota();
struct nodo *mostrar1();
struct nodo *mostrar2();

void main(){
clrscr();
int op;
do{
 clrscr();
 gotoxy(31,4);printf("--MENU PRINCIPAL--");
 gotoxy(30,6);printf("1.Ingresar Datos de Estudiante ");
 gotoxy(30,7);printf("2.Captura de Nota ");
 gotoxy(30,8);printf("3.Mostrar ");
 gotoxy(30,12);printf("0.Salir");
 gotoxy(30,14);printf("Escoja una opcion ");
  op=getch();
 clrscr();
 switch(op){
  case '1':ingreso(); break;
  case '2':capturanota(); break;
  case '3':mostrar1(); break;
  case '4':break;
   }
 }while(op!='0');
gotoxy(29,9);printf("!!GRACIAS USUARIO!!");
gotoxy(30,11);printf("LA VIDA ES DURA");
getch();
}//fin del menu principal

struct nodo* ingreso(void)
 {
    struct nodo *pri1=NULL, *ult1=NULL;
    struct estudiante x1;
    printf("Ingrese nombre: ");
    gets(x1.nombre);
    while(strcmpi(x1.nombre,"fin"))
    {
        printf("Ingrese telefono: ");
        gets(x1.telefono);
        printf("Ingrese mail: ");
        gets(x1.mail);
        ult1=creacola1(ult1,x1);
        if(pri1==NULL) pri1=ult1; // Si es la 1º pasada pongo en pri el valor del primer nodo
        printf("Ingrese nombre: ");
        gets(x1.nombre);
    }
    return(pri1);
}

struct nodo* capturanota(void)
 {
    struct nodo *pri2=NULL, *ult2=NULL;
    struct info x2;
    printf("Ingrese credito: ");
    gets(x2.credito);
    while(strcmpi(x2.credito,"fin"))
    {
        printf("Ingrese asignatura: ");
        gets(x2.codasignatura);
        printf("Ingrese mail: ");
        gets(x2.codasignatura);
        ult2=creacola2(ult2,x2);
        if(pri2==NULL) pri2=ult2; // Si es la 1º pasada pongo en pri el valor del primer nodo
        printf("Ingrese credito de nota: ");
        gets(x2.credito);
    }
    return(pri2);
}

void mostrar1(struct nodo *pri1)
{
    struct nodo *aux;
    while(pri1!=NULL)
    {
        printf("Nombre: %s - Telefono: %s - Mail: %s \n",pri1->dato1.nombre,pri1->dato1.telefono,pri1->dato1.mail);
        aux=pri1;
        pri1=(*pri1).proximo;
        free(aux);
    }
    getch();
}
void mostrar2(struct nodo *pri2)
{
    struct nodo *aux;
    while(pri2!=NULL)
    {
        printf("Nombre: %s - Telefono: %s - Mail: %s \n",pri2->dato2.credito,pri2->dato2.codasignatura,pri2->dato2.notaasignatura);
        aux=pri2;
        pri2=(*pri2).proximo;
        free(aux);
    }
    getch();
}

 struct nodo *nuevonodo()
{
    struct nodo *p;
    p=(struct nodo *)malloc(sizeof(struct nodo));
    if(p==NULL)
    {
        printf("Memoria RAM Llena");
        getch();
        exit(0);
    }
    return p;
}

struct nodo *creacola(struct nodo *ult1, struct estudiante x)
{
    struct nodo *p;
    p=nuevonodo();
    (*p).dato1=x;
    (*p).proximo=NULL;
    if(ult1!=NULL) (*ult1).proximo=p; // Si hay nodo anterior en prox pongo la direccion del nodo actual
    return p;
}
struct nodo *creacola(struct nodo *ult2, struct info x)
{
    struct nodo *p;
    p=nuevonodo();
    (*p).dato2=x;
    (*p).proximo=NULL;
    if(ult2!=NULL) (*ult2).proximo=p; // Si hay nodo anterior en prox pongo la direccion del nodo actual
    return p;
}
 
int colavacia1(struct nodo *pri1)
{
    if(pri1==NULL) return 1;
    else return 0;
}
int colavacia2(struct nodo *pri2)
{
    if(pri2==NULL) return 1;
    else return 0;
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Listas enlazadas en c++
Programación C/C++
N3r0 3 8,545 Último mensaje 13 Julio 2010, 12:42 pm
por N3r0
[C] Listas enlazadas.
Programación C/C++
The Swash 5 31,601 Último mensaje 26 Octubre 2011, 04:56 am
por brians444
listas enlazadas
Programación C/C++
javier210186 3 2,859 Último mensaje 25 Octubre 2011, 02:33 am
por javier210186
ayuda con listas enlazadas en c++!!!!
Programación C/C++
guanaco112 3 3,854 Último mensaje 2 Marzo 2012, 14:18 pm
por rir3760
necesito ayuda por favor.. listas doblemente enlazadas... diganme el error...
Programación C/C++
anthonynlson 1 4,191 Último mensaje 23 Octubre 2012, 00:44 am
por twins
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines