<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<div><b><font face="'Comic Sans MS'" size="4">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 programita</font></b></div><div><b><font face="'Comic Sans MS'" size="4">hacer un menu que ejecute</font></b></div><div><b><font face="'Comic Sans MS'" size="4">Suma</font></b></div><div><b><font face="'Comic Sans MS'" size="4">Resta</font></b></div><div><b><font face="'Comic Sans MS'" size="4">Multiplicacion</font></b></div><div><b><font face="'Comic Sans MS'" size="4">Division</font></b></div><div><b><font face="'Comic Sans MS'" size="4">salir</font></b></div><div><b><font face="'Comic Sans MS'" size="4"><br></font></b></div><div><b><font face="'Comic Sans MS'" size="4">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.</font></b></div><div><b><font face="'Comic Sans MS'" size="4"><br></font></b></div><div><b><font face="'Comic Sans MS'" size="4">De antemano muchisimas gracias, </font></b></div><div><b><font face="'Comic Sans MS'" size="4">Buenas noches</font></b></div><div><b><font face="'Comic Sans MS'" size="4"><br></font></b></div><div><b><font face="'Comic Sans MS'" size="4"><br></font></b></div><div><b><font face="'Comic Sans MS'" size="4"><br></font></b></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><br>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:<br>

<a href="http://blog.amvaz.com/final-de-estructuras/" target="_blank">http://blog.amvaz.com/final-de-estructuras/</a><br><br>Pero siendo mas puntual copio y pego algo que hice hace bastante (listas doblemente enelazadas):<br>NO COMPILA EN C, por que aunque vimos C estructurado usabamos el dev c++. Pero conceptualmente espero que te sea de ayuda.<br>

<br><br>#include <iostream><br>using namespace std;<br><br>//=====================================<br>// Tipo de datos definidos por el usr<br>//=====================================<br>typedef unsigned short int u32; <br>

<br>typedef enum<br>{<br>    DIRECTOR=0,<br>    CODIGO,<br>    GENERO<br>}Modo;<br>typedef enum<br>{<br>    COMEDIA=0,<br>    DRAMA,<br>    ACCION,<br>    INFANTILES<br>}Genero;<br><br>enum<br>{<br>    ant=0,<br>    sig,<br>

    pri=0,<br>    ult<br>};<br><br>typedef struct TNodoRetiro* pTNodoRetiro;<br>typedef struct TPelicula<br>{<br>    u32 codigo;<br>    string nombre;<br>    string director;<br>    Genero genero;<br>    u32 cantidad;<br>

    pTNodoRetiro pRetiro[2];<br>}TPelicula;<br><br>typedef struct TRetiro<br>{<br>    u32 codigo;<br>    string socio;<br>    u32 fecha [3];<br>}TRetiro;<br><br>typedef struct TNodoRetiro<br>{<br>    TRetiro retiro;<br>    pTNodoRetiro pRetiro[2];    <br>

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

    pTNodoPelicula pGenero[2];<br>}TNodoPelicula;<br><br>typedef struct TVideoClub<br>{<br>    pTNodoPelicula pDirector[2];<br>    pTNodoPelicula pCodigo[2];<br>    pTNodoPelicula pGenero[2];<br>}TVideoClub;<br><br>//=====================================<br>

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

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

    club.pGenero[pri]=club.pGenero[ult]=0;<br><br>    TPelicula pelicula;<br>    pelicula.codigo=1; pelicula.director="Mar"; pelicula.genero=COMEDIA;<br>    agregar (pelicula, club);    <br>    pelicula.codigo=5; pelicula.director="Matrix"; pelicula.genero=DRAMA;<br>

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

    agregar (pelicula, club);<br><br>    listar (club,GENERO);<br>    std::cin.get();<br>}<br><br><br>//=====================================<br>// Agregar:<br>//            Agrega una pelicula al videoblub<br>//=====================================<br>

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

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

        return false;<br>    <br>    //Creo nodo y lo inicializo<br>    pTNodoPelicula pNuevo = new TNodoPelicula;<br><br>    pNuevo->pelicula=pelicula;<br>    pNuevo->pDirector[ant]=pNuevo->pDirector[sig]=0;<br>

    pNuevo->pCodigo[ant]=pNuevo->pCodigo[sig]=0;<br>    pNuevo->pGenero[ant]=pNuevo->pGenero[sig]=0;<br><br>    //Creo anterior<br>    pTNodoPelicula pAnt = (pR)? pR->pCodigo[ant] : club.pCodigo[ult];<br><br>

<br>    if (pAnt)<br>        pAnt->pCodigo[sig]=pNuevo;<br>    else<br>        club.pCodigo[pri]=pNuevo;<br><br>    if (pR)<br>        pR->pCodigo[ant]=pNuevo;<br>    else<br>        club.pCodigo[ult]=pNuevo;<br><br>

    pNuevo->pCodigo[ant]=pAnt;<br>    pNuevo->pCodigo[sig]=pR;<br><br>    //Ahora por director<br>    pR=club.pDirector[pri];<br><br>    while (pR && pelicula.director>pR->pelicula.director)<br>        pR= pR->pDirector[sig];<br>

<br>    pAnt = (pR)? pR->pDirector[ant]: club.pDirector[ult];<br><br>    if (pAnt)<br>        pAnt->pDirector[sig]=pNuevo;<br>    else<br>        club.pDirector[pri]=pNuevo;<br><br>    if(pR)<br>        pR->pDirector[ant]=pNuevo;<br>

    else<br>        club.pDirector[ult]=pNuevo;<br><br>    pNuevo->pDirector[sig]=pR;<br>    pNuevo->pDirector[ant]=pAnt;<br><br>    //Finalmente se agrupan por genero<br><br>    pR=club.pGenero[pri];<br>    pAnt=0;<br>

    <br>    while (pR && pelicula.genero>pR->pelicula.genero)<br>        pR= pR->pGenero[sig];<br><br>    pAnt = (pR)? pR->pGenero[ant]: club.pGenero[ult];<br><br>    if (pAnt)<br>        pAnt->pGenero[sig]=pNuevo;<br>

    else<br>        club.pGenero[pri]=pNuevo;<br><br>    if (pR)<br>        pR->pGenero[ant]=pNuevo;<br>    else<br>        club.pGenero[ult]=pNuevo;<br><br>    pNuevo->pGenero[sig]=pR;<br>    pNuevo->pGenero[ant]=pAnt;<br>

<br>    return true;<br>}<br><br>//=====================================<br>// Ver:<br>//        imprime pelicula<br>//=====================================<br>void ver (const TPelicula& pelicula)<br>{<br>    cout<<"cod: "<<pelicula.codigo<br>

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

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

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

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

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

            }<br>    }<br>}<br><br><br>bool agregar (const TRetiro& retiro, TPelicula& pelicula)<br>{<br>    //Si no hay peliculas no agrego<br>    if (pelicula.cantidad<1)<br>        return false;<br><br>    //Se agrega igual un retiro,se repita o no el codigo<br>

<br>    pTNodoRetiro pNuevo = new TNodoRetiro;<br>    pNuevo->retiro=retiro;<br>    pNuevo->pRetiro[ant]=0;<br>    pNuevo->pRetiro[sig]=0;<br><br>    pTNodoRetiro pR = pelicula.pRetiro[pri];<br>    <br>    while (pR && retiro.codigo>pR->retiro.codigo)<br>

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

<br>    if (pAnt)<br>        pAnt->pRetiro[sig]=pNuevo;<br>    else<br>        pelicula.pRetiro[pri]=pNuevo;<br><br>    pNuevo->pRetiro[sig]=pR;<br>    pNuevo->pRetiro[ant]=pAnt;<br>    <br>    return true;<br>}<br>

<br><br><br><br><br><br><br><br><br><br>
<br>_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ</div>                                         </div></body>
</html>