Autor
|
Tema: AYUDA!! Práctica universidad c++ (Leído 5,419 veces)
|
tuskito
Desconectado
Mensajes: 6
|
Hola, hace poco que me han enseñado el tema de las colas y ahora tengo que hacer una practica. Se hacer las funciones del tipo: "encolar","imprimir"...
Hasta ahora he hecho colas simples en las clases prácticas, pero esta última no se ni por donde empezar. El enunciado empieza así:
En dicha ITV existirán 4 colas para diferentes tipos de vehículos: - Gasolina (vehículos de gasolina) - Diesel (vehículos diesel no industriales) - Motos - Industriales
Cada segundo de ejecución, que representará 10 minutos de tiempo real, llegará un vehículo a la ITV. Dicho vehículo tendrá una serie de datos que habrá que guardar: matrícula, marca, modelo, potencia, tipo (G,D,M,I), hora_llegada, hora_salida, fecha, estado_ITV… Los datos se podrán generar aleatoriamente.
¿Como empiezo? Gracias de antemano. pd: el profesor no deja implementar librerías.
|
|
« Última modificación: 26 Abril 2016, 13:43 pm por tuskito »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
No deja implementar librerías de colas, porqué tendrás que hacerlas tú, pero las otras seguro que sí. Crea un struct, o clase, que pueda guardar los datos que han dicho y prepárala para que sea un miembro de una cola. Crea 4 punteros diferentes para soportar sendas colas. Si ya has trabajado con ellas no será difícil manejarlas. En main genera un número aleatorio entre el 0 y el 3 a.i. y según lo que salga generas un vehículo u otro y lo encolas. Al mismo tiempo liberas el último elemento de una de las colas, por ejemplo el vehículo que más tiempo lleva esperando. Mediante funciones time haces un segundo de espera y repites todo el proceso.
|
|
« Última modificación: 26 Abril 2016, 14:48 pm por MAFUS »
|
En línea
|
|
|
|
tuskito
Desconectado
Mensajes: 6
|
gracias! hasta ahora tengo el siguiente codigo : (pero implementando librerías).
#include <stdio.h> #include <queue> #include <stdexcept> #include <stdlib.h> // srand, rand #include <iostream> #include <string> #include <time.h> using namespace std; const unsigned short int G = 0; const unsigned short int D = 1; const unsigned short int M = 2; const unsigned short int I = 3; struct Vehicle{ int matricula; // según tu país puede ser numerico o no string marca; string modelo; short unsigned int potencia; //enum tipo {G, D, M, I}; unsigned short int tipo; tm hora_llegada; tm hora_salida; tm fecha; enum estado_ITV {BUENO, MALO, REGULAR}; }; void atender(Vehicle v); Vehicle GeneraVehiculo(); void sleep(unsigned int mseconds); int main(){ Vehicle v,vc; queue<Vehicle> colas[4]; while(true) { v = GeneraVehiculo(); printf("Ingresa vehiculo (tipo %d) de matricula %d\n",v.tipo,v.matricula); if (colas[v.tipo].empty()) atender(v); else { // atiendo a quien espera en cola vc = colas[(int)v.tipo].front(); colas[(int)v.tipo].pop(); atender(vc); colas[(int)v.tipo].push(v); // encolo al recien llegado } } return 0; } void sleep(unsigned int mseconds) { clock_t goal = mseconds + clock(); while (goal > clock()); }
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Estupendo. Ahora tienes que resolver dos cosas: 1. Como recibes un coche y lo despachas en 10 minutos, al siguiente turno, no hay nunca una cola llena. Puedes hacer que un vehículo tarde, almenos 20 minutos (2 turnos en ser despachado) o, mejor aun, que cada tipo de vehículos tenga un tiempo diferente.
2. Prescindir de queue y hacerlo todo a mano como has aprendido.
Una cosa más. Cuando insertes código selecciónalo, ve al desplegable GeSHi y selecciona el lenguaje con que lo has escrito. Debería rodearse entre dos etiquetas BBS [code=cpp] y [/code] (también puedes escribirlas a mano).
|
|
|
En línea
|
|
|
|
tuskito
Desconectado
Mensajes: 6
|
Vale voy a intentarlo jeje muchisimas gracias por la ayuda!! a ver que sale luego te escribo jeje #include <stdio.h> #include <queue> #include <stdexcept> #include <stdlib.h> // srand, rand #include <iostream> #include <string> #include <time.h> using namespace std; const unsigned short int G = 0; const unsigned short int D = 1; const unsigned short int M = 2; const unsigned short int I = 3; struct Vehicle{ int matricula; // según tu país puede ser numerico o no string marca; string modelo; short unsigned int potencia; //enum tipo {G, D, M, I}; unsigned short int tipo; tm hora_llegada; tm hora_salida; tm fecha; enum estado_ITV {BUENO, MALO, REGULAR}; }; void atender(Vehicle v); Vehicle GeneraVehiculo(); void sleep(unsigned int mseconds); int main(){ Vehicle v,vc; queue<Vehicle> colas[4]; while(true) { v = GeneraVehiculo(); printf("Ingresa vehiculo (tipo %d) de matricula %d\n",v.tipo,v.matricula); if (colas[v.tipo].empty()) atender(v); else { // atiendo a quien espera en cola vc = colas[(int)v.tipo].front(); colas[(int)v.tipo].pop(); atender(vc); colas[(int)v.tipo].push(v); // encolo al recien llegado } } return 0; } void sleep(unsigned int mseconds) { clock_t goal = mseconds + clock(); while (goal > clock()); }
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Y qué le has agregado al codigo que te pasé ? Te veo pidiendo mas ayuda, creí fue suficiente y te pedí que al menos implementaras las funciones que no te pasé y pasaron ya 5 dias y....... Te dejo la tarea de implementar GeneraVehiculo() y atender()
gracias! hasta ahora tengo el siguiente codigo : (pero implementando librerías).
Yo no reporto temas..... pero estas duplicandolos.
|
|
« Última modificación: 26 Abril 2016, 18:15 pm por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
tuskito
Desconectado
Mensajes: 6
|
hola!, no habia visto que tenías un tema de lo mismo abierto... no soy el mismo... el codigo vi algo parecido pero no en este foro..y ahora veo que es el mismo... lo habran subido en otro sitio lo vi en otro foro... estoy probando hacer lo que me han dicho en las respuestas de este... sorry no sabia que estaba..
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Bueno, entonces lo mismo: implementa las funciones que indiqué faltan....... luego puedes ver lo que dice @MAFUS hola!, no habia visto que tenías un tema de lo mismo abierto... no soy el mismo... el codigo vi algo parecido pero no en este foro..y ahora veo que es el mismo... lo habran subido en otro sitio lo vi en otro foro... estoy probando hacer lo que me han dicho en las respuestas de este... sorry no sabia que estaba..
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
tuskito
Desconectado
Mensajes: 6
|
Gracias por toda la ayuda! voy a ello cuando lo tenga lo paso y me decís!
Hola! tengo casi terminada la práctica podría mandarosla por email para que le echarais un ojo? y ayudarme en lo que me falta ? Un saludo y gracias de antemano!
|
|
« Última modificación: 2 Mayo 2016, 15:44 pm por Eternal Idol »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Si es muy larga usa la página pastebin.com y cuelgas la dirección aquí.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con practica pls
Java
|
RIB5
|
2
|
3,475
|
28 Abril 2009, 05:07 am
por juancho77
|
|
|
Ayuda con Practica de estudio
GNU/Linux
|
elrepay
|
3
|
4,038
|
30 Abril 2010, 20:41 pm
por El_gaita
|
|
|
ayuda con una practica!
Programación C/C++
|
NLkurosaki
|
3
|
3,273
|
16 Diciembre 2010, 18:53 pm
por Garfield07
|
|
|
ayuda con practica
Programación C/C++
|
urvreak
|
7
|
5,067
|
24 Enero 2011, 12:39 pm
por urvreak
|
|
|
Ayuda con practica C++
Programación C/C++
|
carloscgc
|
1
|
2,284
|
27 Enero 2012, 20:36 pm
por carloscgc
|
|