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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  AYUDA!! Práctica universidad c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA!! Práctica universidad c++  (Leído 5,419 veces)
tuskito

Desconectado Desconectado

Mensajes: 6


Ver Perfil
AYUDA!! Práctica universidad c++
« en: 26 Abril 2016, 13:41 pm »

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 Desconectado

Mensajes: 1.603



Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #1 en: 26 Abril 2016, 14:09 pm »

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 Desconectado

Mensajes: 6


Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #2 en: 26 Abril 2016, 15:49 pm »

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 Desconectado

Mensajes: 1.603



Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #3 en: 26 Abril 2016, 16:49 pm »

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 Desconectado

Mensajes: 6


Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #4 en: 26 Abril 2016, 16:52 pm »

Vale voy a intentarlo jeje muchisimas gracias por la ayuda!! a ver que sale luego te escribo jeje

Código
  1. #include <stdio.h>
  2. #include <queue>
  3. #include <stdexcept>
  4. #include <stdlib.h>  // srand, rand
  5. #include <iostream>
  6. #include <string>
  7. #include <time.h>
  8.  
  9. using namespace std;
  10.  
  11. const unsigned short int G = 0;
  12. const unsigned short int D = 1;
  13. const unsigned short int M = 2;
  14. const unsigned short int I = 3;
  15.  
  16. struct Vehicle{
  17.   int matricula; // según tu país puede ser numerico o no
  18.   string marca;
  19.   string modelo;
  20.   short unsigned int potencia;
  21.   //enum tipo {G, D, M, I};
  22.   unsigned short int tipo;
  23.   tm hora_llegada;
  24.   tm hora_salida;
  25.   tm fecha;
  26.   enum estado_ITV {BUENO, MALO, REGULAR};
  27. };
  28.  
  29. void atender(Vehicle v);
  30. Vehicle GeneraVehiculo();
  31. void sleep(unsigned int mseconds);
  32.  
  33. int main(){
  34.  
  35.   Vehicle v,vc;
  36.   queue<Vehicle> colas[4];  
  37.  
  38.   while(true)
  39.   {
  40.  
  41.      v = GeneraVehiculo();
  42.      printf("Ingresa vehiculo (tipo %d) de matricula %d\n",v.tipo,v.matricula);        
  43.  
  44.      if (colas[v.tipo].empty())
  45.            atender(v);
  46.      else
  47.      {      
  48.         // atiendo a quien espera en cola
  49.         vc = colas[(int)v.tipo].front();                  
  50.         colas[(int)v.tipo].pop();
  51.         atender(vc);        
  52.         colas[(int)v.tipo].push(v); // encolo al recien llegado
  53.      }      
  54.   }
  55.   return 0;  
  56.  
  57. }
  58.  
  59.  
  60. void sleep(unsigned int mseconds)
  61. {
  62.    clock_t goal = mseconds + clock();
  63.    while (goal > clock());
  64. }  
  65.  
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: AYUDA!! Práctica universidad c++
« Respuesta #5 en: 26 Abril 2016, 18:09 pm »

Y qué le has agregado al codigo que te pasé ?  :rolleyes:

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.......  :o

Te dejo la tarea de implementar GeneraVehiculo() y atender()

Citar
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 Desconectado

Mensajes: 6


Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #6 en: 26 Abril 2016, 18:36 pm »

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 Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: AYUDA!! Práctica universidad c++
« Respuesta #7 en: 26 Abril 2016, 18:47 pm »

Bueno, entonces lo mismo:

implementa las funciones que indiqué faltan....... luego puedes ver lo que dice @MAFUS  ;D



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 Desconectado

Mensajes: 6


Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #8 en: 27 Abril 2016, 12:39 pm »

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 Desconectado

Mensajes: 1.603



Ver Perfil
Re: AYUDA!! Práctica universidad c++
« Respuesta #9 en: 29 Abril 2016, 16:42 pm »

Si es muy larga usa la página pastebin.com y cuelgas la dirección aquí.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con practica pls
Java
RIB5 2 3,475 Último mensaje 28 Abril 2009, 05:07 am
por juancho77
Ayuda con Practica de estudio
GNU/Linux
elrepay 3 4,038 Último mensaje 30 Abril 2010, 20:41 pm
por El_gaita
ayuda con una practica!
Programación C/C++
NLkurosaki 3 3,273 Último mensaje 16 Diciembre 2010, 18:53 pm
por Garfield07
ayuda con practica
Programación C/C++
urvreak 7 5,067 Último mensaje 24 Enero 2011, 12:39 pm
por urvreak
Ayuda con practica C++
Programación C/C++
carloscgc 1 2,284 Último mensaje 27 Enero 2012, 20:36 pm
por carloscgc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines