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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


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

Desconectado Desconectado

Mensajes: 49



Ver Perfil WWW
Ayuda con un ejercicio en C++
« en: 10 Septiembre 2011, 16:45 pm »

Hola, os pongo el enunciado:
Citar
Se pretende informatizar la gestión de una hemeroteca. Esta cuenta con cuatro tipos de revistas según la información que contiene: técnica, económica, humanística y ocio. Se calcula que de cada tipo de revista la hemeroteca tendrá un máximo de 500 unidades. El tipo de revista deberá ser definido como un enumerado. De cada revista se ha de almacenar la siguiente información: Nombre de la revista, ISSN (cadena de al menos 10 caracteres) y editorial.
Por otra parte, de cada revista también se desea mantener información de todos los ejemplares que de ella están almacenadas en la hemeroteca. Las características de cada ejemplar son: volumen, fecha de publicación, número de artículos y nombres de los autores de la revista (como máximo habrá 10). Suponemos que cada revista puede tener un máximo de 100 ejemplares. Se pide:
a) Define los tipos de datos TRevista, TEjemplar y THemeroteca. Usa tipos enumerados siempre que sea posible.
b) Implementa un subalgoritmo para inicializar la estructura de tipo THemeroteca.
c) Dados una revista y su tipo, implementa un subalgoritmo para darla de alta en la estructura. En caso de que no haya sitio libre en la estructura se dará el correspondiente error.
d) Dados un ejemplar de revista y el ISSN de la revista a la qu ecorresponde dicho ejemplar, implementa un subalgoritmo para dar de alta dicho ejemplar. En caso de no haber sitio libre en la estructura se dará el correspondiente error.
e) Implementa un subalgoritmo que, dados un tipo de revista y un mes y un año, devuelva el número de ejemplares almacenados de ese tipo de revista y cuya fecha de publicación es posterior a la fecha indicada por dicho mes y año.
f) Implementa un subalgoritmo que dado el ISSN de una revista muestre toda la información almacenada en la estructura relativa a dicha revista y sus ejemplares. En caso de no existir dicha revista, se dará el correspondiente mensaje de error.

Con este tipo de ejercicios siempre he tenido "problemas" con la definición de los tipos, ya que me cuesta un poco el definirlos.
He hecho el apartado a), pero como os acabo de decir, siempre me ha costado un poco este tipo de ejercicios y al no tener la solución del ejercico, estoy muy inseguro con la forma en la que lo he resuelto.
Me preguntaba si podríais echarle un vistazo e indicarme si algo está mal o darme algún consejo sobre la solución.

He de decir, que este ejercicio es algo antiguo y está diseñado para resolverlo a mano y en pseudocódigo, pero la asignatura este año se da en C++ y he modificado la solución acorde a lo que se ha visto en la asignatura (son muy muy parecidas).

Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. const unsigned MAX_TIPOS = 4;
  6. enum TInformacion{tecnica,economica,humanistica,ocio};
  7. const unsigned AUTORES = 10;
  8. typedef string TAutores[AUTORES];
  9. struct TNumAutores{
  10.   TAutores a;
  11.   unsigned num;
  12. };
  13. struct TEjemplar{
  14.   unsigned volumen, num_art;
  15.   string fecha_p;
  16.   TNumAutores num_a;
  17. };
  18. const unsigned MAX_EJEMPLARES = 100;
  19. typedef TEjemplar TEjemplares[MAX_EJEMPLARES];
  20. struct TNumEjemplares{
  21.   TEjemplares e;
  22.   unsigned num;
  23. };
  24. struct TRevista{
  25.   string nombre, ISSN, editorial;
  26.   TNumEjemplares ejemplares;
  27. };
  28. const unsigned MAX_UNIDADES = 500;
  29. typedef TRevista TUnidades[MAX_UNIDADES];
  30. struct TNumUnidades{
  31.   TUnidades n;
  32.   unsigned num;
  33. };
  34. typedef TNumUnidades TArray[MAX_TIPOS];
  35. struct TNumArray{
  36.   TArray a;
  37.   unsigned num;
  38. };
  39. struct THemeroteca{
  40.   TInformacion info;
  41.   TNumArray num;
  42. };

Muchísimas gracias de antemano  :D


« Última modificación: 10 Septiembre 2011, 17:22 pm por bigfu » En línea

A reader lives a thousand lives before he dies. The man who never reads lives only one
bigfu

Desconectado Desconectado

Mensajes: 49



Ver Perfil WWW
Re: Ayuda con un ejercicio en C++
« Respuesta #1 en: 10 Septiembre 2011, 17:34 pm »

He seguido con los demás apartados y creo que tengo mal los últimos registros. A ver si consigo modificarlo...

EDIT: Aqui os dejo el código modificado, a ver si podéis echarme un cable, que tengo el miércoles el examen y estoy acojonao XDD

Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. const unsigned MAX_TIPOS = 4;
  6. enum TInformacion{tecnica,economica,humanistica,ocio};
  7. const unsigned AUTORES = 10;
  8. typedef string TAutores[AUTORES];
  9. struct TNumAutores{
  10.   TAutores a;
  11.   unsigned num;
  12. };
  13. struct TEjemplar{
  14.   unsigned volumen, num_art;
  15.   string fecha_p;
  16.   TNumAutores num_a;
  17. };
  18. const unsigned MAX_EJEMPLARES = 100;
  19. typedef TEjemplar TEjemplares[MAX_EJEMPLARES];
  20. struct TNumEjemplares{
  21.   TEjemplares e;
  22.   unsigned num;
  23. };
  24. struct TRevista{
  25.   string nombre, ISSN, editorial;
  26.   TNumEjemplares ejemplares;
  27. };
  28. const unsigned MAX_UNIDADES = 500;
  29. typedef TRevista TUnidades[MAX_UNIDADES];
  30. struct TNumUnidades{
  31.   TUnidades n;
  32.   unsigned num;
  33. };
  34. typedef TNumUnidades TArray[MAX_TIPOS];
  35. struct THemeroteca{
  36.   TInformacion info;
  37.   TArray a;
  38.   unsigned num;
  39. };

Aunque no me sirve de mucho el campo info en THemeroteca, lo pongo para convertirlo a número e introducirlo en la correspondiente celda del array.

Gracias!!


« Última modificación: 10 Septiembre 2011, 18:21 pm por bigfu » En línea

A reader lives a thousand lives before he dies. The man who never reads lives only one
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Ejercicio C 100
Ejercicios
Dem0ny 2 6,033 Último mensaje 19 Diciembre 2007, 22:45 pm
por Dem0ny
Ayuda co un ejercicio de C#
.NET (C#, VB.NET, ASP)
hitori batusai 2 5,347 Último mensaje 22 Febrero 2008, 01:53 am
por hitori batusai
Ayuda con ejercicio de VB
Programación Visual Basic
guada_sp 5 3,342 Último mensaje 8 Marzo 2008, 02:54 am
por ‭‭‭‭jackl007
[Ejercicio] Aca tienen un ejercicio para practicar « 1 2 3 »
Programación Visual Basic
Dreamaker 20 15,736 Último mensaje 5 Septiembre 2010, 02:57 am
por TGa.
Ayuda ejercicio de Pascal, cuando uno no lo ve claro pide ayuda
Programación General
manu3742 1 3,235 Último mensaje 31 Marzo 2011, 15:43 pm
por d(-_-)b
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines