Autor
|
Tema: Problema con una Cola (Leído 2,592 veces)
|
vegasound
Desconectado
Mensajes: 3
|
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
|
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
Mensajes: 3
|
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
|
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) 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
Mensajes: 3
|
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
|
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
Mensajes: 1.190
|
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: # ifndef _queue_hedear_ saludos
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cola de impresion
Programación Visual Basic
|
Neobius
|
1
|
2,791
|
26 Noviembre 2005, 01:10 am
por NYlOn
|
|
|
archivos txt en cola
Programación C/C++
|
include ();
|
4
|
5,251
|
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
|
10 Agosto 2012, 10:01 am
por BlackZeroX
|
|
|
suma de una cola
Programación C/C++
|
indict
|
4
|
6,055
|
6 Julio 2013, 21:18 pm
por indict
|
|
|
Problema con cola (solucionado)
Java
|
nolasco281
|
7
|
3,331
|
25 Mayo 2014, 10:27 am
por nolasco281
|
|