[C con Clase] Pilas

Jose Villafañe joev89 en gmail.com
Lun Abr 27 20:50:02 CEST 2009


> tomare en cuenta lo de las variables locales, gracias!
>

por ahora dejo el codigo completo que hice....(es en devC++ por cierto)


#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>

using namespace std;

void Arreglo(void);
void Pila(void);
void Cola(void);
void visualizar(void);
void insertar(void);
void extraer(void);
void visualizar1(void);
void insertar1(void);
void extraer1(void);


struct pila
{
    char nombre[20];
    struct pila *ant;
}*CAB=NULL,*AUX=NULL;

struct cola
{
    char nombre[20];
    struct cola *sig;
}*CAB1=NULL,*AUX1=NULL,*FIN1=NULL;


struct persona {
           char nombre[20];
           float n1, n2, n3, n4, prom;

           }alumno[5];

int main()
{
    char opc;
    do
    {
        system("cls");
        cout << "\t \t \t \tProyecto 2: " << endl;
        cout << "\n";

        cout << "1.- Arreglo" << endl;
        cout << "\n";

        cout << "2.- Pilas" << endl;
        cout << "\n";

        cout << "3.- Colas" << endl;
        cout << "\n";

        cout << "4.- Salir" << endl;
        opc=getch( );
        switch(opc)
        {
            case '1':
                Arreglo( );
                break;
            case '2':
                 Pila( );
            case '3':
                 Cola( );
        }
    }while (opc!='4');
}

void Arreglo(void)
{
    system("cls");
    for(int i=0; i<5; i++)
    {
    cout << "\t \t \t \tArreglos." << endl;
    cout << "\n";

    cout << "Nombre del Estudiante: ";
    cin >> alumno[i].nombre;
    cout << "\n";

    cout << "Nota 1: ";
    cin >> alumno[i].n1;
    cout <<"\n";

    cout << "Nota 2: ";
    cin >> alumno[i].n2;
    cout << "\n";

    cout << "Nota 3: ";
    cin >> alumno[i].n3;
    cout << "\n";

    cout << "Nota 4: ";
    cin >> alumno[i].n4;
    cout << "\n";

    alumno[i].prom= (alumno[i].n1 + alumno[i].n2 + alumno[i].n3 +
alumno[i].n4)/4;

    cout << "Promedio: " << alumno[i].prom << endl;
    cout << "\n";

    system("pause");
    cout << "\n";
}
}


void Pila(void)
{
     char opc;
    do
    {
        system("cls");

        cout << "\t \t \t \tPila." << endl;
        cout << "\n";

        cout << "1.- Insertar" << endl;
        cout << "\n";

        cout << "2.- Extraer" << endl;
        cout << "\n";

        cout << "3.- Visualizar la pila" << endl;
        cout << "\n";

        cout << "4.- Salir" << endl;
        opc=getch( );
        switch(opc)
        {
            case '1':
                insertar( );
                break;
            case '2':
                extraer( );
                break;
            case '3':
                visualizar( );
        }
    }while (opc!='4');
}

void insertar(void)
{
    AUX=(struct pila *)malloc(sizeof(struct pila));
    system("cls");
    cout << "Nombre: ";
    gets(AUX->nombre);
    if (CAB==NULL)
    {
        CAB=AUX;
        AUX->ant=NULL;
    }
    else
    {
        AUX->ant=CAB;
        CAB=AUX;
    }
}

void extraer(void)
{
    if (CAB==NULL) return;
    AUX=CAB;
    CAB=CAB->ant;
    free(AUX);
}

void visualizar(void)
{
    if (CAB==NULL) return;
     system("cls");
    AUX=CAB;
    while (AUX!=NULL)
    {
        cout << "Nombre: " << AUX->nombre << endl;
        AUX=AUX->ant;
    }
    getch( );
}


void Cola(void)
{
    char opc;
    do
    {
        system("cls");

        cout << "\t \t \t \tColas." << endl;
        cout << "\n";

        cout << "1.- Insertar" << endl;
        cout << "\n";

        cout << "2.- Extraer" << endl;
        cout << "\n";

        cout << "3.- Visualizar la cola" << endl;
        cout << "\n";

        cout << "4.- Salir" << endl;
        opc=getch( );
        switch(opc)
        {
            case '1':
                insertar1( );
                break;
            case '2':
                extraer1( );
                break;
            case '3':
                visualizar1( );
        }
    }while (opc!='4');
}

void insertar1(void)
{
    AUX1=(struct cola *)malloc(sizeof(struct cola));
    system("cls");
    cout << "Nombre: ";
    gets(AUX1->nombre);
    AUX1->sig=NULL;
    if (FIN1==NULL)
        FIN1=CAB1=AUX1;
    else
    {
        FIN1->sig=AUX1;
        FIN1=AUX1;
    }
}

void extraer1(void)
{
    if (CAB1==NULL) return;
    AUX1=CAB1;
    CAB1=CAB1->sig;
    free(AUX1);
}

void visualizar1(void)
{
    if (CAB1==NULL) return;
    system("cls");
    AUX1=CAB1;
    while (AUX1!=NULL)
    {
        cout << "Nombre: " << AUX1->nombre << endl;
        AUX1=AUX1->sig;
    }
    getch();
}

>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090427/4f9dd20d/attachment.html>


Más información sobre la lista de distribución Cconclase