martes, 12 de julio de 2011

Extra-Colas

Cola

En este .cpp se pide el ingreso por teclado de un conjunto de datos de manera iterativa hasta que se ingrese la palabra "fin" cuando la consola pida el dato "Nombre". Una vez finalizado el ingreso, y si hay datos en la cola, se procede a mostrarlos navegando mediante las estructuras (struct). Cada estructura contiene la posición de memoria de la estructura siguiente en la cola, por lo que se las recorrerá hasta el final y se las irá eliminando de la memoria (ya que conceptualmente un nodo debe leerse de memoria una única vez).

cola.cpp




#include

#include

#include

void insertar_colas();

void imprimir_colas();

void eliminar_colas();

typedef struct nodoc

{

  int dato_colas;//donde se guarda el telefono

  int dura_colas;//donde se guarda el tiempo

  struct nodoc *sgte;//puntero siguiente

 

}nodoc;

long int fono;

int tiempo;

nodoc *act_1,*fin,*inicio_1=NULL;

main()

{

  int opcion;

 
  do

  {

    system("color "); 

    system("CLS");

    printf("\n\t\t\t\t***MENU***\n");

    printf("\n\n Trabajo Colas\n");

    printf(" ---Trabajar con COLAS---\n");

    printf("\n 1.- Realizar llamada");

    printf("\n 2.- Mostrar llamadas y su duracion:");

    printf("\n 3.- SALIR");

    printf("\n\n * Para Salir Presione 4: ");

    printf("\n\n Ingrese una opcion: ");

    scanf("%d",&opcion);

    printf("\n");

   
    if(opcion>3)

    {

      printf("\n Opcion NO VALIDA concentrese porfavor");

      printf("\n\n ** PRESIONE CUALQUIER TECLA PARA VOLVER AL MENU **");

      getch();

    }
 

    switch(opcion)

    {

        case 1:

        insertar_colas();

        break;

       
        case 2:

        imprimir_colas();

        break;

       
        case 3:

        exit(0);

    }

  }

  while(opcion!=0);

  getch();

}

void insertar_colas()

{

  printf("\n\n Ingrese numero: ");

  scanf("%d",&fono);

  printf("\n Ingrese duracion:");

  scanf("%d",&tiempo);

  act_1=(nodoc*)malloc(sizeof(nodoc));

  act_1->dato_colas=fono;

  act_1->dura_colas=tiempo;

  act_1->sgte=NULL;

 

  if(fin==NULL)

    fin=inicio_1=act_1;

  else

  {

    fin->sgte=act_1;

    fin=act_1;

  }

}

}

void imprimir_colas()

{

  act_1=inicio_1;

  while(act_1!=NULL)

  {

    printf(" La llamada %d duro : %d min\n",act_1->dato_colas,act_1->dura_colas);

    act_1=act_1->sgte;

  }

  printf("\n\n ** PRESIONE CUALQUIER TECLA PARA VOLVER AL MENU **");

  getch();

}

2 comentarios:

  1. No le pongan cpp si es ANSI C. Eviten conio.h. +2

    ResponderEliminar
  2. NO usen variables globales si las podrían poner adentro del main con el mismo esfuerzo.

    ResponderEliminar