void menu(paciente * p, int * c){

	int opcion;

	do{

		printf("\n\nElija una de las siguientes opciones\n\n");
		printf("1.- Incorporar paciente\n");
		printf("2.- Ver disponibilidad de una cama\n");
		printf("3.- Dar de alta a paciente\n");
		printf("4.- Mostrar pacientes\n");
		printf("5.- Ver numero de camas disponibles y ocupadas\n");
		printf("0.- Salir\n");

		scanf("%d", &opcion);
		
		if(opcion == 1)
			incorporarPaciente(p, c);
		else if(opcion == 2)
			disponibilidad(p, c);
		else if(opcion == 3)
			quitar(p, c);
		else if(opcion == 4)
			mostrar(p, c);
		else if(opcion == 5)
			printf("\nCamas ocupadas: %d disponible: %d", ocupado, cama_size - ocupado);					
		else if(opcion == 0)
			printf("Adios\n");
		else
			printf("\nOpcion Invalida\n");

	} while(opcion != 0);
	
}
Exemplo n.º 2
0
void eliminarRegistro(Pagina* actual, tipoClave cl, int* encontrado)
{
   int k;

   if (actual != NULL)
   {
      *encontrado = buscarNodo(actual, cl, &k);
      if (*encontrado)
      {
         if (actual->ramas[k-1] == NULL)		/* es un nodo hoja */
            quitar(actual, k);
         else
         {
            sucesor(actual, k);
            /* se elimina la clave sucesora en su nodo */
            eliminarRegistro(actual->ramas[k], actual->claves[k], encontrado);
         }
      }
      else
      {
         eliminarRegistro(actual->ramas[k], cl, encontrado);
      }
      /* Las llamadas recursivas devuelven control a este punto.
         Se comprueba el número de claves del nodo descendiente,
         desde el nodo actual en la ruta de búsqueda seguida.
      */

      if (actual->ramas[k] != NULL)
      if (actual->ramas[k]->cuenta < m/2)
      restablecer(actual,k);
   }
   else
	  *encontrado = 0;
}
Exemplo n.º 3
0
void * consumidor()
{
  while(1)
  {
    quitar();
    sleep(1);
  }
}
Exemplo n.º 4
0
void *albannil(void *n) {
    int ladrillos;
    int *mn = (int *) n;
    int mi_nombre = *mn;
    int cogidos = 0;

    while(get_puestos() < TOTAL) {
        sem_wait(&albaforo);
          ladrillos = rand() % 10 + 1;
          cuenta_ladrillos();
          printf("%i:\tQuiero %i ladrillos.\tCojo %i\n",
                  mi_nombre, ladrillos, cogidos = quitar(ladrillos));
        sem_post(&albaforo);

        construye(cogidos);
    }
    return NULL;
}
Exemplo n.º 5
0
/*
 * Programa principal
 */
int main(void)
{
    char   *nombre[] = { "Rosa", "María", "Pepe", "Carlos", "Juan", "Antonio", NULL };
    int     i;
    TipoCola      colaPeluqueria;
    TipoElemento *cliente;


    /*  Dar valor a los miembros de la cola  */
    crearVacia(&colaPeluqueria);

    /*  Insertar clientes */
    printf("\n");
    for (i=0; NULL!=nombre[i]; i++) {

        cliente=malloc(sizeof(struct Cliente));
        if (NULL!=cliente) {
            strcpy(cliente->nombre,nombre[i]);
            insertar(&colaPeluqueria,*cliente);
            printf("ha llegado un cliente de nombre %s...\n",
                   nombre[i]);
        }

    }

    /*  Extraer clientes */
    printf("\n");
    cliente=primero(colaPeluqueria);
    while (NULL!=cliente) {

        printf("se sirve al cliente de nombre %s...\n",
               cliente->nombre);
        quitar(&colaPeluqueria);
        cliente=primero(colaPeluqueria);

    }

    return (0);
}
Exemplo n.º 6
0
int main() {

  struct nodo * pila;
  struct nodo * cola;
  struct nodo * lista;
  struct nodo nodo1;
  struct nodo nodo2;
  struct nodo nodo3;
  struct nodo nodo4;

  struct nodo * aux;

  nodo1.val=1;
  nodo2.val=2;
  nodo3.val=3;
  nodo4.val=4;

  //pila
  printf("-- pila --\n");
  init(&pila);
  push(&pila, &nodo1);
  push(&pila, &nodo2);
  push(&pila, &nodo3);

  while(aux=pop(&pila))
    printf("%i\n",(*aux).val);

  //cola
  printf("-- cola --\n");
  init(&cola);
  push(&cola, &nodo1);
  push(&cola, &nodo2);
  push(&cola, &nodo3);

  while(aux=unqueue(&cola))
    printf("%i\n",(*aux).val);

  //lista
  printf("-- lista --\n");
  init(&lista);
  agregar(&lista,&nodo1,0);
  agregar(&lista,&nodo3,1);
  agregar(&lista,&nodo2,1);

  aux=quitar(&lista,1);
  printf("%i\n",(*aux).val);
  while(aux=quitar(&lista,0))
    printf("%i\n",(*aux).val);

  //lista misc
  printf("-- lista misc --\n");
  init(&lista);
  agregar(&lista,&nodo1,0);
  agregar(&lista,&nodo3,1);
  agregar(&lista,&nodo2,1);
  agregar(&lista,&nodo4,3);
  intercambiar(&lista, 1, 3);
  printf("la lista tiene %i items\n",len(&lista));
  while(aux=pop(&lista))
    printf("%i\n",(*aux).val);
  printf("la lista tiene %i items\n",len(&lista));

  //lista misc
  printf("-- lista ordenar --\n");
  init(&lista);
  push(&lista, &nodo3);
  push(&lista, &nodo1);
  push(&lista, &nodo4);
  push(&lista, &nodo2);
  printf("burbuja\n");
  ordenar_burbujeo(&lista);
  mostrar(&lista);

  return 0;
}