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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No entiendo estos errores!! (SOLUCIONADO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No entiendo estos errores!! (SOLUCIONADO)  (Leído 520 veces)
MJI

Desconectado Desconectado

Mensajes: 12


Ver Perfil
No entiendo estos errores!! (SOLUCIONADO)
« en: 26 Diciembre 2018, 18:55 pm »

Hola, estaba intentando realizar un programa que leyese de teclado libros, y los guardase en un vector, para después comparar unas fechas y sacar el dinero gastado en libros un día.

El programa es el siguiente:

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX = 20;
  7.  
  8. struct FechaAdquisicion
  9. {
  10.    short dia, mes, anyo;
  11. };
  12.  
  13. struct Libro
  14. {
  15.    string nom, autor;
  16.    float precio;
  17.    FechaAdquisicion fecha;
  18. };
  19.  
  20. typedef Libro Vlibros[MAX];
  21.  
  22. struct Libros
  23. {
  24.    Vlibros libros;
  25.    int totalibs;
  26. };
  27.  
  28. void Presentacion(void);
  29. Libro LeerLibros(void);
  30. FechaAdquisicion PedirFecha(void);
  31. void MostrarLibrosFecha(Libros libros, FechaAdquisicion fecha);
  32. float PrecioLibros(Libros libros, FechaAdquisicion fecha);
  33.  
  34. int main (void)
  35. {
  36.    Libros libros;
  37.    FechaAdquisicion fecha;
  38.  
  39.    libros = LeerLibros();
  40.    fecha = PedirFecha();
  41.    MostrarLibrosFecha(libros, fecha);
  42.  
  43.    cout << "El precio de los libros comprados desde esa fecha hasta la actualizada es de " << PrecioLibros(libros, fecha) << " euros." << endl;
  44.  
  45.    return 0;
  46. }
  47.  
  48.  
  49. void Presentacion(void)
  50. {
  51.    cout << "Este programa pide libros al usuario y una fecha, para posteriormente mostrar los libros comprados \n  y el dinero gastado en ese dia." << endl << endl;
  52.    return;
  53. }
  54.  
  55. Libro LeerLibros(void)
  56. {
  57.    Libros l;
  58.  
  59.    cout << "¿Cuantos libros quieres añadir?: ";
  60.    cin >> l.totalibs;
  61.  
  62.    for(int i = 0; i <= l.totalibs; i++)
  63.    {
  64.    cout << "Introduce nombre del libro: ";
  65.    cin >> l.libros[i].nom;
  66.    cout << "Introduce nombre del autor: ";
  67.    cin >> l.libros[i].autor;
  68.    cout << "Introduce precio del libro(€): ";
  69.    cin >> l.libros[i].precio;
  70.    cout << "Introduce la fecha de compra del libro: "<< endl;
  71.    cout << "\t Dia: ";
  72.    cin >> l.libros[i].fecha.dia;
  73.    cout << "\t Mes: ";
  74.    cin >> l.libros[i].fecha.mes;
  75.    cout << "\t Anyo: ";
  76.    cin >> l.libros[i].fecha.anyo;
  77.    }
  78.  
  79.    return l;
  80. }
  81.  
  82. FechaAdquisicion PedirFecha(void)
  83. {
  84.    FechaAdquisicion fecha;
  85.  
  86.    cout << "Dame fecha: ";
  87.    cin >> fecha.dia >> fecha.mes >> fecha.anyo;
  88.  
  89.    return fecha;  
  90. }
  91.  
  92. void MostrarLibrosFecha(Libros libros, FechaAdquisicion fecha)
  93. {
  94.    for(int i = 0; i <= libros.totalibs; i++)
  95.    {
  96.        if(fecha.dia == libros.libros[i].fecha.dia && fecha.mes == libros.libros[i].fecha.mes && fecha.anyo == libros.libros[i].fecha.anyo)
  97.        {
  98.           cout << libros.libros[i].nom << endl;
  99.           cout << libros.libros[i].autor << endl;
  100.           cout << libros.libros[i].precio << endl;
  101.           cout << libros.libros[i].fecha.dia << "/" << libros.libros[i].fecha.mes << "/" << libros.libros[i].fecha.anyo << endl << endl;
  102.        }
  103.    }
  104.  
  105.    return;
  106. }
  107.  
  108. float PrecioLibros(Libros libros, FechaAdquisicion fecha)
  109. {
  110.    int preciototal = 0;
  111.  
  112.    for(int i = 0; i <= libros.totalibs; i++)
  113.    {
  114.        if(fecha.dia == libros.libros[i].fecha.dia && fecha.mes == libros.libros[i].fecha.mes && fecha.anyo == libros.libros[i].fecha.anyo)
  115.        {
  116.            preciototal = preciototal + libros.libros[i].precio;
  117.        }
  118.    }
  119.  
  120.    return;
  121. }
  122.  


Los errores son del tipo:
int main:
[Error] no match for 'operator=' (operand types are 'Libros' and 'Libro')

LeerLibros:
[Error] request for member 'libros' in 'l.Libros::libros', which is of non-class type 'Vlibros {aka Libro [20]}'
[Error] could not convert 'l' from 'Libros' to 'Libro'


¿Alguien sabe algo, o me podrían ayudar a acabar el programa?
Gracias.

P.D:Los fallos no son de escritura, se ve raro debido al foro.


« Última modificación: 28 Diciembre 2018, 11:03 am por Eternal Idol » En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: No entiendo estos errores!! (SOLUCIONADO)
« Respuesta #1 en: 28 Diciembre 2018, 12:01 pm »

El tipo de dato que leerIibros dice devolver  no está bien. Corrijelo.


« Última modificación: 28 Diciembre 2018, 12:03 pm por CalgaryCorpus » En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
me manda estos errores
Multimedia
link86 1 793 Último mensaje 25 Marzo 2005, 03:20 am
por Songoku
No entiendo estos bats « 1 2 »
Scripting
kraszic 19 6,565 Último mensaje 10 Julio 2008, 18:31 pm
por najmuddin
no entiendo los errores que me marca...
Programación C/C++
fer_fer_73 7 2,075 Último mensaje 28 Febrero 2011, 04:06 am
por .:BlackCoder:.
[C][?]Ayuda a resolver estos errores
Programación C/C++
Xcution 1 1,542 Último mensaje 1 Noviembre 2013, 20:50 pm
por vangodp
Como resolver estos errores? « 1 2 »
Programación C/C++
Borito30 17 4,707 Último mensaje 15 Marzo 2017, 15:36 pm
por Borito30
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines