[C con Clase] Consulta de Programita y Pago

Carros en Venta carrodeventa en hotmail.com
Lun Mar 12 04:13:59 CET 2012


Muchas gracias, lo voy a probar,  disculpe la gran molestia pero mañana temprano a las 6:00 am tengo un examen de esta materia no se si me podria ayudar con este programitahacer un menu que ejecuteSumaRestaMultiplicacionDivisionsalir
Y si pudiera ayudarme mañana desde las 6:30 am hasta las 8:00 am se lo voy agradecer ya que es mi examen, si se lo puedo pagar via paypal no habria ningun problema ya que con tal que funcione me ayuda bastante el programita que puedan poner mañana.
De antemano muchisimas gracias, Buenas noches










Hola yo la materia la rendi en C, por lo que los ejercicios que me quedaron de esa epoca son en c, ya que en C++ esta el STL. En fin, hace poco rendi esto y me hice unos resumenes, en mi web personal, de un solo post, esta:


http://blog.amvaz.com/final-de-estructuras/

Pero siendo mas puntual copio y pego algo que hice hace bastante (listas doblemente enelazadas):
NO COMPILA EN C, por que aunque vimos C estructurado usabamos el dev c++. Pero conceptualmente espero que te sea de ayuda.




#include <iostream>
using namespace std;

//=====================================
// Tipo de datos definidos por el usr
//=====================================
typedef unsigned short int u32; 



typedef enum
{
    DIRECTOR=0,
    CODIGO,
    GENERO
}Modo;
typedef enum
{
    COMEDIA=0,
    DRAMA,
    ACCION,
    INFANTILES
}Genero;

enum
{
    ant=0,
    sig,


    pri=0,
    ult
};

typedef struct TNodoRetiro* pTNodoRetiro;
typedef struct TPelicula
{
    u32 codigo;
    string nombre;
    string director;
    Genero genero;
    u32 cantidad;


    pTNodoRetiro pRetiro[2];
}TPelicula;

typedef struct TRetiro
{
    u32 codigo;
    string socio;
    u32 fecha [3];
}TRetiro;

typedef struct TNodoRetiro
{
    TRetiro retiro;
    pTNodoRetiro pRetiro[2];    


}TNodoRetiro;

typedef struct TNodoPelicula* pTNodoPelicula;
typedef struct TNodoPelicula
{
    TPelicula pelicula;
    pTNodoPelicula pDirector[2];// 0->ant 1->sig
    pTNodoPelicula pCodigo[2];//0->ant 1->sig


    pTNodoPelicula pGenero[2];
}TNodoPelicula;

typedef struct TVideoClub
{
    pTNodoPelicula pDirector[2];
    pTNodoPelicula pCodigo[2];
    pTNodoPelicula pGenero[2];
}TVideoClub;

//=====================================


// Prototipos
//=====================================
bool agregar (const TPelicula& pelicula, TVideoClub &club);
void listar (const TVideoClub& club, Modo modo=CODIGO);
bool agregar (const TRetiro& retiro, TPelicula& pelicula);


//=====================================
// Funcion main
//=====================================
int main ()
{
    TVideoClub club;
    club.pDirector[pri]=club.pDirector[ult]=0;
    club.pCodigo[pri]=club.pCodigo[ult]=0;


    club.pGenero[pri]=club.pGenero[ult]=0;

    TPelicula pelicula;
    pelicula.codigo=1; pelicula.director="Mar"; pelicula.genero=COMEDIA;
    agregar (pelicula, club);    
    pelicula.codigo=5; pelicula.director="Matrix"; pelicula.genero=DRAMA;


    agregar (pelicula, club);    
    pelicula.codigo=4; pelicula.director="COD"; pelicula.genero=INFANTILES;
    agregar (pelicula, club);
    pelicula.codigo=2; pelicula.director="Nota"; pelicula.genero=COMEDIA;


    agregar (pelicula, club);

    listar (club,GENERO);
    std::cin.get();
}


//=====================================
// Agregar:
//            Agrega una pelicula al videoblub
//=====================================


bool agregar (const TPelicula& pelicula, TVideoClub &club)
{
    //Busco el lugar que ucuparia por codigo, de repetirse
    //el codigo se sale
    pTNodoPelicula pR; //Nodo de recorrido;
    pR=club.pCodigo[pri]; //Primer nodo de peliculas ord. por cod.



    while (pR  && pelicula.codigo>pR->pelicula.codigo)
        pR= pR->pCodigo[sig];
    
    //Si se repite el codigo salgo
    if (pR && pR->pelicula.codigo==pelicula.codigo)


        return false;
    
    //Creo nodo y lo inicializo
    pTNodoPelicula pNuevo = new TNodoPelicula;

    pNuevo->pelicula=pelicula;
    pNuevo->pDirector[ant]=pNuevo->pDirector[sig]=0;


    pNuevo->pCodigo[ant]=pNuevo->pCodigo[sig]=0;
    pNuevo->pGenero[ant]=pNuevo->pGenero[sig]=0;

    //Creo anterior
    pTNodoPelicula pAnt = (pR)? pR->pCodigo[ant] : club.pCodigo[ult];




    if (pAnt)
        pAnt->pCodigo[sig]=pNuevo;
    else
        club.pCodigo[pri]=pNuevo;

    if (pR)
        pR->pCodigo[ant]=pNuevo;
    else
        club.pCodigo[ult]=pNuevo;



    pNuevo->pCodigo[ant]=pAnt;
    pNuevo->pCodigo[sig]=pR;

    //Ahora por director
    pR=club.pDirector[pri];

    while (pR && pelicula.director>pR->pelicula.director)
        pR= pR->pDirector[sig];



    pAnt = (pR)? pR->pDirector[ant]: club.pDirector[ult];

    if (pAnt)
        pAnt->pDirector[sig]=pNuevo;
    else
        club.pDirector[pri]=pNuevo;

    if(pR)
        pR->pDirector[ant]=pNuevo;


    else
        club.pDirector[ult]=pNuevo;

    pNuevo->pDirector[sig]=pR;
    pNuevo->pDirector[ant]=pAnt;

    //Finalmente se agrupan por genero

    pR=club.pGenero[pri];
    pAnt=0;


    
    while (pR && pelicula.genero>pR->pelicula.genero)
        pR= pR->pGenero[sig];

    pAnt = (pR)? pR->pGenero[ant]: club.pGenero[ult];

    if (pAnt)
        pAnt->pGenero[sig]=pNuevo;


    else
        club.pGenero[pri]=pNuevo;

    if (pR)
        pR->pGenero[ant]=pNuevo;
    else
        club.pGenero[ult]=pNuevo;

    pNuevo->pGenero[sig]=pR;
    pNuevo->pGenero[ant]=pAnt;



    return true;
}

//=====================================
// Ver:
//        imprime pelicula
//=====================================
void ver (const TPelicula& pelicula)
{
    cout<<"cod: "<<pelicula.codigo


        <<"  director: "<<pelicula.director
        <<"  genero: "<<pelicula.genero
        <<"  cantidad: "<<pelicula.cantidad
        <<endl;


}

//=====================================
// Listar:
//            lista las peliculas
//=====================================
void listar (const TVideoClub& club, Modo modo)
{
    pTNodoPelicula pR;



    switch (modo)
    {
        default:
        case (CODIGO):
            pR=club.pCodigo[ult];
            while (pR)
            {
                ver (pR->pelicula);
                pR=pR->pCodigo[ant];


            }
            break;
        case (DIRECTOR):
            pR=club.pDirector[ult];
            while (pR)
            {
                ver (pR->pelicula);
                pR=pR->pDirector[ant];


            }
            break;
        case (GENERO):
            pR=club.pGenero[ult];
            while (pR)
            {
                ver (pR->pelicula);
                pR= pR->pGenero[ant];


            }
    }
}


bool agregar (const TRetiro& retiro, TPelicula& pelicula)
{
    //Si no hay peliculas no agrego
    if (pelicula.cantidad<1)
        return false;

    //Se agrega igual un retiro,se repita o no el codigo



    pTNodoRetiro pNuevo = new TNodoRetiro;
    pNuevo->retiro=retiro;
    pNuevo->pRetiro[ant]=0;
    pNuevo->pRetiro[sig]=0;

    pTNodoRetiro pR = pelicula.pRetiro[pri];
    
    while (pR && retiro.codigo>pR->retiro.codigo)


        pR=pR->pRetiro[sig];

    pTNodoRetiro pAnt= (pR)? pR->pRetiro[ant]: pelicula.pRetiro[ult];
    
    if (pR)
        pR->pRetiro[ant]=pNuevo;
    else
        pelicula.pRetiro[ult]=pNuevo;



    if (pAnt)
        pAnt->pRetiro[sig]=pNuevo;
    else
        pelicula.pRetiro[pri]=pNuevo;

    pNuevo->pRetiro[sig]=pR;
    pNuevo->pRetiro[ant]=pAnt;
    
    return true;
}














_______________________________________________
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/20120311/02d757ea/attachment.html>


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