Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/10/2009, 17:53
angelperdido
 
Fecha de Ingreso: octubre-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda porfavor

Implementación de una cola
Realice un programa implementando una estructura de cola dinámica, para simular las actividades que se realizan en la línea de cajas de un banco, atendiendo a sus clientes que acuden a realizar una de las siguientes operaciones:
1. Pago de servicio
2. Retiro o disposición
3. Cobro de cheque
4. Deposito
5. Pago de tarjeta
Los datos que el programa debe manejar de cada uno de los clientes son:
1. Turno: un número consecutivo asignado por el programa que garantiza que los clientes se atiendan exactamente en el orden que llegan.
2. Tipo de operación: un número que identifica uno de los 5 tipos de operaciones descritas antes.
3. Nombre: una cadena corta solo con el nombre del cliente (servirá para llamar por su nombre el cliente a la línea de cajas y ofrecer una atención personalizada).
4. Monto de la operación: la cantidad de dinero que implica la operación.
El programa deberá presentar un menú con las siguientes opciones, suponiendo claro que al inicio de operaciones la cola esta vacía:
1. Colocar un cliente en la cola: el programa pedirá los datos del cliente que se mencionaron antes, se le asignara un turno y se pondrá en la cola de atención.
2. Atender a un cliente: el programa tomará el cliente a la cabeza de la cola, mostrando todos sus datos y eliminándolo de la cola; se debe considerar en caso de que la cola este vacía enviar el mensaje correspondiente “no hay clientes por atender”.
3. Visualizar la cola: imprimir en columnas los 4 datos de cada cliente en el orden en que llegaron y serán atendidos desde el primero al último. En esta opción se debe considerar que si la cola esta vacía, se envíe el mensaje correspondiente.
4. Limpiar la cola: que consiste en eliminar todos los elementos de la cola.
5. Por su puesto la opción de salir o terminar el programa.

ESTE ES EL CODIGO QUE TENGO
Código:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

#define TAM 10       //en precompilación substituye TAM por 10

char *lista[TAM];

int inserta(char *,int);  //una funcion que inserta una cadena a la lista
void elimina(int);        //una funcion que borra un elemento de la lista
void muestra(void);		  //una funcion que muestra la lista
void ordena(void);
void llama (void);
void menu (void);
main()
{
  char a[50];		//Un buffer, memoria temporal para almacenar cadenas
  int n;				


  for(n=0;n<TAM;n++)			
       lista[n]=NULL;		

  //verifiquemos que la lista esta vacia
   for(n=0;n<TAM;n++) {
  printf("\n Introduce el nombre del cliente %d",n+1);
  gets(a);

  inserta(a,n+1);
                 }
  muestra();
      llama();

  getch();
}

//******************


int inserta(char *s,int p){
   int t;	   //para el tamaño de memoria necesaria por la cadena
   int l;	   //para la longitud de la cadena
   char *str;  //para apuntar a la memoria reservada

   
   if (lista[p]==NULL){       
      l=strlen(s);       		
      t=sizeof(char)*l; 		
      str=(char *)malloc(t);  
      if(str==NULL){			
      	printf("\ndisculpe pero!!! NO puede apartar lugar\n");
         return 0;            
      }
      strcpy(str,s); 		   
      lista[p]=str;			    
      return 1;				  
   }
   else                       
      return 0;               
}



void elimina(int p){

   free(lista[p]);	
   lista[p]=NULL;		
   						
}


//******************


void muestra(void){
   int i;  // para imprimir todos sus elementos

   printf("\n Mira con cuidado!!!\n ESTE ES EL CONTENIDO DE LA LISTA...\n");
   for (i=0;i<TAM;i++)              //Recorriendo todo el arreglo
      if(lista[i]==NULL)            //si no hay cadena en esa posicion
         printf(" %d.->\n",i+1);    //imprimamos solo el numero
      else                          //de lo contrario
         printf(" %d.-> %s\n",i+1,lista[i]); //imprimamos la cadena
}



 void llama(void){

 int *n;
 printf("cajero");
 printf("llamar a cliente   %s " );
   menu();
       }
  void menu(void){
  int opc;
 printf("\n 1.	Pago de servicio\n");
printf("2.	Retiro o disposición\n");
printf("3.	Cobro de cheque\n"     );
printf("4.	Deposito         \n    ");
printf("5.	Pago de tarjeta    \n   ");
printf("6.   salir");
printf("\n\t\ttu opcion fue:");
      scanf("%d",&opc);

		switch(opc)
		{
case 1 :
 printf("pago a realizar");
break;
case 2 :
 printf("cuanto va a retirar");
break;
case 3 :
    printf("de cuanto es su cheque");
break;
case 4 :
printf("cuanto es su deposito");
break;
case 5 :
printf("cuanto va a depositar en su tarjeta");
break;
case 6 :
default:
 break;
 }

   }
pr favor ayudaaa esto es lo que tengo siento yo que voy bien pero no se como hacerle para hacer que el cajero yame a un cliente y los que vllan atras se recorran y los que se vllan nombrando agan su operacion y se borren ustedes que opinan esta muy mal lo que esoty haciedo