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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con una Cola
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con una Cola  (Leído 2,592 veces)
vegasound

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema con una Cola
« en: 8 Mayo 2014, 02:49 am »

Alguien que me pueda echar una mano con un código de una Cola ya sea en c o c++.
Sí alguien quiere ayudarme le agradeceré infinitamente .

Crear cola:

La atención de servicios con tipos de prioridad
Asuma que existen tres tipos de prioridad: alta, media y baja. En un sistema de recepción de solicitudes, solo una soli- citud puede ser atendida a la vez. Una solicitud puede ser emitida con una prioridad alta, media o baja. El sistema de recepción:
1. 2. 3.
Solo atenderá servicios de prioridad alta, si estos existen en la lista de espera. Solo atenderá servicios de prioridad media, si no existen servicios de prioridad alta. Siempre atenderá servicios de prioridad baja, si no existen servicios de prioridad media o alta.
Este problema se puede modelar con la implementación de tres colas: una para las solicitudes de prioridad al- ta, otra para las solicitudes de prioridad media y otra más para las solicitudes de prioridad baja. Cuando una solicitud es generada, ocupará su lugar en la cola correspondiente. El sistema de recepción:
1.   Deberá intentar vaciar en primer lugar la cola de solicitudes de prioridad alta. 2.   Si la cola de solicitudes de prioridad alta se encuentra vacía, entonces intentará vaciar la cola de solicitudes de
prioridad media. 3.   Si las colas de solicitudes de prioridad alta y media se encuentran vacías entonces intentará vaciar la cola de
solicitudes de prioridad baja.
Implementación
Su aplicación deberá permitir al usuario ingresar una solicitud de servicio o una recepción.
   Una solicitud de servicio deberá consistir de un identificador de servicio (algún valor entero seleccionado arbi- trariamente) junto con un indicador de prioridad. Los indicadores de prioridad serán: A para alta, M para me- dia y B para baja. Por ejemplo, 3541:A denota al servicio 3541 de prioridad alta.
   Una recepción de servicio deberá atender la primera solicitud de la más alta prioridad que se haya emitido hasta el momento y que no haya sido atendida, según se explica en el planteamiento en el programa. Su apli- cación deberá informar cuál es el servicio que se atiende actualmente, mostrando en pantalla el identificador de servicio. En su caso, deberá informar si ningún servicio se encuentra en la lista de espera.




Ejemplo:

Suponga que ocurren la siguientes solicitudes en el orden que se presentan antes de antes de hacer alguna recepción de servicio:
1325:B
4800:M
732:B
8943:A
 120:M
884:B

Si ninguna otra solicitud ocurre después, entonces su sistema deberá hacer la recepción de los servicios en el siguiente orden:
8943
4800
120
1325
732
884


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con una Cola
« Respuesta #1 en: 8 Mayo 2014, 02:57 am »

no se hacen códigos....


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
vegasound

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con una Cola
« Respuesta #2 en: 8 Mayo 2014, 03:16 am »

Es correcto, en ningún momento escribí, "Hagan el código que solicito".

No veo razón por la que el post deba de ser banneado o borrado, Estoy pidiendo una mano, ayuda, de cualquier manera. saludos
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con una Cola
« Respuesta #3 en: 8 Mayo 2014, 03:23 am »

es que haces igual que muchos que simplemente tirar su problema ahí esperando que alguien haga el código...
 
ya que muestras interés continúo...

se responden dudas en el foro, los que sepan, no siempre será rápido, no siempre responderán...

recomendación:
publica siempre estas 3 cosas...
-que quieres? (el problema que ya publicaste)
-que tienes? (muestra tu codigo aunque sea poco, usa las etiquetas de codigo o GeSHi para publicarlo)
-cual es el problema? (que evita que avances, que no sabes o que error te da)

:P continua con eso
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
vegasound

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con una Cola
« Respuesta #4 en: 9 Mayo 2014, 02:34 am »

Es la primera vez que ingreso a este foro con el proposito de ayudarnos mutuamente. aquí subo el código que actualmente tengo, me marca errores sólo en el MAIN a partir de la linea 45 (while(1)), espero me puedan apoyar, subo tmbn los archivos de cabecera. el .h y el .cpp


MAIN CPP.

# include <cstdio>
# include "queue.h"
# include <cstdlib>
# include <ctype.h>
# include <iostream>
# include <ctime>

using namespace std;



int main() {
   
   queue alta;
   queue media;
   queue baja;
   char nivel;
   int solicitud;
   int opcion;
   srand (time(NULL));
   
   generar (alta);
   generar (media);
   generar (baja);



   while (1){
      system ("cls");
      printf("1.Solicitar servicio\n2.Recepcion de servicio\n3.Mostrar solicitudes\n4.Salir\n\nElija una opción : ");
      scanf ("%i", opcion);
      
      switch (opcion){
         case 1:
            do{
               printf ("Nivel de prioridad del servicio : ");
               scanf ("%c", nivel);
               nivel = toupper(nivel);
            }
            while
               (nivel != 'A' && nivel ! = 'M' && nivel != 'B');
            
            solicitud = srand (time(NULL)) % 1000 + 1;
            if (nivel == 'A')
               ingresar (alta,solicitud,nivel);
            else if (nivel == 'M')
               ingresar (media, solicitud, nivel);
            else
               ingresar (baja,solicitud,nivel);
            break;
            
         case 2:
            if (!vacia(alta))
               printf("\nSolicitud ", dequeue(alta));
            printf(":A listo\n");
            
            else if (!vacia(media))
               printf ("\nSolicitud ", dequeue(media));
            printf(":M listo\n");
            else if (!vacia(baja))
               printf("\nSolicitud ", dequeue(baja));
            printf(":B listo\n");
            else
               printf("No hay solicitud en espera");
            
            break;
            
            case 3 :
            printf("\n Solicitudes de alta prioridad \n");
            imprimir(alta);
            printf("\n Solicitudes de media prioridad \n");
            imprimir(media);
            printf("\n Solicitudes de baja prioridad \n");
            imprimir(baja);
            break;
            
         case 4:
            destruir(alta);
            destruir(media);
            destruir(baja);
            return 0;
            break;
            
         default :
            printf("\Escriba una opcion valida\n");
      }
      system ("pause");
   }
   return 0;
            
            


queue.h


# ifndef _queue_hedear_
# define _queue_header_

typedef struct snode {
   
    int data;
    snode *next;
   char nivel;
   
} node;

typedef struct {
   
    node *enter;
    node *exit;
    int capacity;
    int size;
   
} queue;

void generar(queue&);
void destruir(queue&);

int capacidad(queue&);
int tamanno(queue&);

void inicializar(queue&);
bool vacia(queue&);
bool llena(queue&);

bool enqueue(queue&, int,char);  //ingresar
int dequeue(queue&);  //extraer
int front(queue&);    //top

void imprimir(queue&);
void limpiar (queue&);


# endif // _queue_header_




queue .cpp



#include "queue.h"

# include <cstdio>

void generar(queue &q, int n) {
   
   q.exit = NULL;
   q.enter = NULL;
   q.capacity = n;
   q.size = 0;
}

void destruir(queue &q) {
   
   limpiar (q);
   q.exit = NULL;
   q.enter = NULL;
   q.capacity = 0;
   q.size = 0;
}

int capacidad(queue &q) { return q.capacity; }

int tamanno(queue &q) { return q.size; }

void inicializar(queue &q) {
   
   limpiar (q);
   q.enter = NULL;
   q.exit = NULL;
   q.size = 0;
}

bool vacia(queue &q) { return q.enter == NULL; }

bool llena(queue &q) { return q.capacity == q.size; }

bool enqueue(queue &q, int dato, char nivel) {  //ingresar
   
   
      node *aux = new node;
      aux -> data = dato;
       aux -> nivel = nivel;
      aux -> next = NULL;
      
      if (vacia(q)) {
         
         q.enter = aux;
         q.exit = aux;
         
      } else {
         
         q.exit -> next = aux;
         q.exit = aux;
         
      }
      
      q.size++;
   printf ("\n");
   imprimir(q);
      return true;
    }
   
 int dequeue(queue &q) {
   
    
    if (!vacia(q)) {
      
      int datoborrado;
      node *aux = q.enter;
      q.enter = q.enter -> next;
      datoborrado = aux -> data;
        delete aux;
        q.size--;
      
      return datoborrado;
      
    }
   
    return 0;
}

void generar (queue&q){
   q.enter = NULL;
   q.exit = NULL;
}

void imprimir(queue &q) {
   
   
   node *aux = q.enter;
   while (aux){
      printf (" : ",aux ->data);
      printf ("\n", aux ->nivel);
            aux = aux -> next;
   
   }
   printf ("\n\n");
}

void limpiar (queue&q){
   node *aux = q.enter;
   while (aux){
      q.enter = q.enter -> next;
      delete aux;
      aux = q.enter;
   }
}










En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con una Cola
« Respuesta #5 en: 9 Mayo 2014, 03:25 am »

modifica el post y el código colócalo entre etiquetas GeSHi como te indiqué (están arriba de los emoticones a la derecha)

por favor poste exactamente el error que da
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: Problema con una Cola
« Respuesta #6 en: 9 Mayo 2014, 04:14 am »

hola vegasound, a simple vista observo lo siguiente... por favor fíjate si no fue al pegar el código o bien tienes un error de tipeo en la primera línea de tu cabecera .h:

Citar
# ifndef _queue_hedear_

saludos
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cola de impresion
Programación Visual Basic
Neobius 1 2,791 Último mensaje 26 Noviembre 2005, 01:10 am
por NYlOn
archivos txt en cola
Programación C/C++
include (); 4 5,251 Último mensaje 9 Agosto 2012, 07:36 am
por include ();
pasar datos de una cola dinámica a otra cola...
Programación C/C++
include (); 4 9,528 Último mensaje 10 Agosto 2012, 10:01 am
por BlackZeroX
suma de una cola
Programación C/C++
indict 4 6,055 Último mensaje 6 Julio 2013, 21:18 pm
por indict
Problema con cola (solucionado)
Java
nolasco281 7 3,331 Último mensaje 25 Mayo 2014, 10:27 am
por nolasco281
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines