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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Pasar programa a Listas Enlazadas (C++)! Urgente! en: 28 Junio 2010, 05:01 am
Hola amigos, estoy presentando una situación familiar muy grave, es sobre mi mamá.

Le dio una ACV Semi-hemorrágica, y está hospitalizada con la parte izquierda paralizada. Estoy solo con mis hermanos en casa, solo 1 está conmigo, el otro cuida de ella en la clínica y no he tenido tiempo para mis estudios, ya que culmino ésta semana.

Tengo un problema con un proyecto que es para finalizar en clases, y quiero pasar mi materia informática con buena nota.

Con todo el alma, me gustaría que me ayudaran para pasar mi proyecto de ARCHIVOS y PUNTEROS a LISTAS ENLAZADAS CON PUNTEROS.

No trato de justificarme por flojera, es que no tengo tiempo para estudiar, ni tuve.

Y es para mañana, tanto el proyecto que es el más importante como los ejercicios.

El ejercicio es éste:

Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. //const int num=10;
  6. int cantidad=0;
  7.  
  8. struct Alumno{
  9.    char titulo[30],concepto[30],n_e[25];
  10.    int n_p,cant_p;
  11. };
  12.  
  13. void llenar(struct Alumno *);
  14.  
  15. void lista(struct Alumno *);
  16.  
  17. int  main()
  18.  
  19. {
  20.  
  21.        struct Alumno Alum[25],*ptr;
  22.  
  23.        ptr=Alum;
  24.        system("color f6");
  25.        printf("\n\n\n  ***** Ingresar la cantidad de personas al registrar***** \n\n ");
  26.        scanf("%d",&cantidad);
  27.        system("cls");
  28.        llenar(ptr);
  29.        ptr=Alum;
  30.        lista(ptr);  
  31.        return 0;
  32. }
  33.  
  34.  
  35. void llenar (struct Alumno *ptr)
  36. {
  37.    for (int i=0;i<cantidad;i++,ptr++)
  38.    {
  39.        system("color f5");
  40.        printf("Datos de la funcion %d",i+1);
  41.        printf("\n\n  Numero de Presentacion: ");
  42.        scanf("%d",&ptr->n_p);
  43.        printf("  Titulo de la Obra a proyectar: ");
  44.        fflush(stdin);
  45.        gets(ptr->titulo);
  46.        printf("  Concepto Audiovisual: ");
  47.         fflush(stdin);
  48.        gets(ptr->concepto);
  49.        printf("  Nombre del encargado de la funcion: ");
  50.         fflush(stdin);
  51.        scanf("%s",&ptr->n_e);
  52.        printf("  Cantidad de personas que asistieron a la funcion: ");
  53.        fflush(stdin);
  54.        scanf("%d",&ptr->cant_p);
  55.  
  56.        system("cls");
  57.  
  58.    }
  59. }
  60. void lista(struct Alumno *ptr)
  61. {
  62. for (int i=0;i<cantidad;i++,ptr++)
  63.    {
  64.        system("color f5");
  65.        printf("Datos de la funcion %d",i+1);
  66.        printf("\n\n  Los datos ingresados son:\n\n ");
  67.        printf(" Numero de Presentacion: %d\n\n",ptr->n_p);
  68.        printf("  Titulo de la obra: %s\n\n",ptr->titulo);
  69.        printf("  Concepto Audiovisual: %s\n\n",ptr->concepto);
  70.        printf("  Nombre del encargado de la funcion: %s\n\n",ptr->n_e);
  71.        printf("  Cantidad de personas que asistieron a la funcion: %d\n\n",ptr->cant_p);
  72.        system("pause");
  73.        system("cls");
  74. }
  75. }
  76.  


Y también me mandaron 2 ejercicios, es decir, de PILAS y el otro es COLA.

Tengo que hacerle un menu a cada 1, que tenga:

"INSERTAR"
"MODIFICAR"
"BORRAR"
"MOSTRAR"

Solamente eso! Vale 5 puntos el proyecto y 2,5, cada ejercicio, serían 10 puntos y apenas llevo 3 acumulados :(

Quisiera pasar mi materia para complacer a mi mamá, que Dios me escuche que no es mentira.

Se que no es Taringa para resolver los ejercicios sino, ayudar. Pero el proyecto lo hice solo, y lo único que pido ayuda es para esto.

Aqui está el ejercicio de PILAS:

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. typedef struct nodo
  5. {
  6.    int valor;
  7.    struct nodo *siguiente;
  8. }tipoNodo;
  9.  
  10. typedef tipoNodo *pNodo;
  11. typedef tipoNodo *Pila;
  12. /* Funciones con pilas */
  13.  
  14. void Push(Pila *l, int v);
  15. int Pop(Pila *l);
  16.  
  17. int main()
  18. {
  19.    Pila pila=NULL;
  20.  
  21.    Push(&pila, 20);
  22.    Push(&pila, 10);
  23.    printf("%d,",Pop(&pila));
  24.    Push(&pila, 40);
  25.    Push(&pila, 30);
  26.  
  27.    printf("%d,",Pop(&pila));
  28.    printf("%d,",Pop(&pila));
  29.    Push(&pila, 90);
  30.    printf("%d,",Pop(&pila));
  31.    printf("%d,\n",Pop(&pila));
  32.  
  33.    system("PAUSE");
  34.    return 0;
  35. }
  36.  
  37. void Push(Pila *pila, int v)
  38. {
  39.    pNodo nuevo;
  40.  
  41.    /* Crear un nodo nuevo */
  42.    nuevo=
  43.    (pNodo)malloc(sizeof(tipoNodo));
  44.    nuevo->valor=v;
  45.  
  46.    /* Añadimos la pila a continuación del nuevo nodo */
  47.  
  48.    nuevo->siguiente=*pila;
  49.  
  50.    /* Ahora, el comienzo de nuestra pila es en nuevo nodo */
  51.    *pila=nuevo;
  52. }
  53.  
  54. int Pop(Pila *pila)
  55. {
  56.    pNodo nodo; /* varible auxiliar para manipular nodo */
  57.    int v; /* Variable auxiliar para retorno */
  58.  
  59.    /* Nodo apunta al primer elemento de la pila */
  60.    nodo=*pila;
  61.    if(!nodo) return 0; /* Si no hay nodos en la pila retornamos 0 */
  62.    *pila=nodo->siguiente;
  63.    /*Guardamos el valor de retorno */
  64.    v=nodo->valor;
  65.    /* Borrar el nodo */
  66.    free(nodo);
  67.    return v;
  68.    }


Y el de COLAS:

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. typedef struct nodo
  5. {
  6. int valor;
  7. struct nodo *siguiente;
  8. } tipoNodo;
  9.  
  10. typedef tipoNodo *pNodo;
  11.  
  12. /* Funciones con colas: */
  13.  
  14. void Anadir(pNodo *primero, pNodo *ultimo, int v);
  15. int Leer(pNodo *primero, pNodo *ultimo);
  16. int main()
  17. {
  18.    pNodo primero=NULL, ultimo= NULL;
  19.  
  20.    Anadir(&primero, &ultimo, 20);
  21.    printf("Añadir (20)\n");
  22.    Anadir(&primero, &ultimo, 10);
  23.    printf("Añadir (10)\n");
  24.    printf("Leer: %d\n", Leer(&primero, &ultimo));
  25.    Anadir(&primero, &ultimo, 40);
  26.    printf("Añadir (40)\n");
  27.    Anadir(&primero, &ultimo, 30);
  28.    printf("Añadir (30)\n");
  29.    printf("Leer: %d\n",Leer(&primero, &ultimo));
  30.    printf("Leer: %d\n",Leer(&primero, &ultimo));
  31.    Anadir(&primero, &ultimo, 90);
  32.    printf("Añadir (90)\n");
  33.    printf("Leer: %d\n",Leer(&primero, &ultimo));
  34.    printf("Leer: %d\n",Leer(&primero, &ultimo));
  35.  
  36.    system("PAUSE");
  37.    return 0;
  38. }
  39.  
  40. void Anadir(pNodo *primero, pNodo *ultimo, int v)
  41. {
  42. pNodo nuevo;
  43.  
  44. /* Crear un nodo nuevo */
  45.  
  46. nuevo=
  47. (pNodo)malloc(sizeof(tipoNodo));
  48. nuevo->valor=v;
  49.  
  50. /* Este sera el ultimo nodo, no debe tener siguiente */
  51.  
  52. nuevo->siguiente=NULL;
  53. /* Si la cola no estaba vacia, añadimos el nuevo a continuacion de ultimo */
  54. if(*ultimo) (*ultimo)->siguiente=nuevo;
  55.  
  56. /* Si primero es NULL, la cola estaba vacia, ahora primero apuntara tambien el nuevo nodo */
  57.  
  58. if(!*primero) *primero=nuevo;
  59. }
  60.  
  61. int Leer(pNodo *primero, pNodo *ultimo)
  62. {
  63.  
  64. pNodo nodo; /* Variable auxiliar para manipular nodo */
  65.  
  66. int v; /* Variable auxiliar para retorno */
  67.  
  68. /* Nodo apunta al primer elemento de la pila */
  69.  
  70. nodo=*primero;
  71. if(!nodo) return 0; /* Si no hay nodos en la pila retornamos 0 */
  72. /* Asignamos a primero la direccion del segundo nodo */
  73. *primero=nodo->siguiente;
  74. /*Guardamos el valor de retorno */
  75. v=nodo->valor;
  76. /* Borrar el nodo */
  77. free(nodo);
  78. /*Si la cola quedo vacia, ultimo debe ser NULL tambien */
  79. if(!*primero) *ultimo=NULL;
  80. return v;
  81. }


Eso es todo. Solo pasar el PROYECTO A LISTAS ENLAZADAS.

No importa como sea, con tal que tenga listas enlazadas. Como colocar el numero de visitantes por orden, etc. Cualquier modificacion que tenga listas enlazadas.

Y los ejercicios, solo el menu.

Muchas gracias amigo de corazón, me hace falta éste momento su ayuda. Saludos!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines