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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema en una clase en C++:
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema en una clase en C++:  (Leído 2,165 veces)
Error 404:

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Problema en una clase en C++:
« en: 23 Noviembre 2014, 16:36 pm »

Hola a todos, os explico:
debo hacer un programa que simule las ventas de tres sucursales. Cada una debe ser un objeto de la clase Ventas. Para referirnos a ellas usamos los valores 1, 2 y 3.
Debemos introducir el tipo de producto que han vendido y a cantidad de veces (aunque realmente el tipo de producto luego no se usa para nada).
Luego me debe decir que sucursal es la que mas productos ha vendido y cuantos (no hay que distinguir entre tipos de productos) y aquí es donde me sale el problema

Pues bien, ya llevo bastante avanzado pero me sale un error que no entiendo, me pone
(dirección del programa) [Error] 'ganador' does not name a type  :huh:

Les dejo el código:
 
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Ventas{
  5. private:
  6. int sucursal;
  7. char producto;
  8. int cantidad;
  9. int cantidad_ganadora;
  10. public:
  11. Ventas(int identificador_sucursal){
  12. sucursal = identificador_sucursal;
  13. cantidad = 0;
  14. }
  15. void SetUnidades(int unidades){
  16. cantidad +=unidades;
  17. }
  18. int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
  19. if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
  20. cantidad_ganadora = sucursal_1.cantidad;
  21. return 1;
  22. if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
  23. cantidad_ganadora = sucursal_2.cantidad;
  24. return 2;
  25. if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
  26. cantidad_ganadora = sucursal_3.cantidad;
  27. return 3;
  28. }
  29. int CantidadGanadora(){
  30.   return cantidad_ganadora;
  31. }
  32. };
  33.  
  34. int main(){
  35. int identif_sucursal;
  36. const int TERMINADOR = -1;
  37. bool fichero_vacio;
  38. char cod_producto;
  39. int unidades_vendidas;
  40. int ganador;
  41.  
  42. Ventas sucursal_ganadora(0);
  43. Ventas sucursal_1(1);
  44. Ventas sucursal_2(2);
  45. Ventas sucursal_3(3);
  46.  
  47. while (identif_sucursal != TERMINADOR){
  48. cout << "\nIntroduce la sucursal: ";
  49. cin >> identif_sucursal;
  50.  
  51. fichero_vacio = identif_sucursal == TERMINADOR;
  52. if (!fichero_vacio){
  53. cout << "Introduce el identificador del producto: ";
  54. cin >> cod_producto;
  55. cout << "Introduce la cantidad vendida de dicho producto: ";
  56. cin >> unidades_vendidas;
  57.  
  58. if (identif_sucursal == 1)
  59. sucursal_1.SetUnidades(unidades_vendidas);
  60. else if (identif_sucursal == 2)
  61. sucursal_2.SetUnidades(unidades_vendidas);
  62. else sucursal_3.SetUnidades(unidades_vendidas);
  63. }
  64. }
  65. }
  66.  
  67. ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3); //Aquí sale el error
  68. cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
  69. ganador = sucursal_ganadora.CantidadGanadora();//Y aquí también el mismo
  70. cout << "\nQue ha vendido " << ganador << "productos."
  71. }
  72.  
Agradeceria la ayuda, muchas gracias a todos.


En línea

Si se puede imaginar, se puede programar.
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema en una clase en C++:
« Respuesta #1 en: 23 Noviembre 2014, 17:33 pm »

El primer error que debes corregir es lógico y se encuentra en la definición de la función "SucursalGanadora" (faltan llaves para indicar el cuerpo de cada if):
Código
  1. int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
  2.   if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
  3.      cantidad_ganadora = sucursal_1.cantidad;
  4.   return 1;
  5.  
  6.   if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
  7.      cantidad_ganadora = sucursal_2.cantidad;
  8.   return 2;
  9.  
  10.   if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
  11.      cantidad_ganadora = sucursal_3.cantidad;
  12.   return 3;
  13. }

Y el error que mencionas se debe a que al final del programa (en la función main) tienes una llave de cierre de mas y te falta un punto y coma para terminar la ultima sentencia:
Código
  1.      }
  2.   }
  3. } // Esta llave termina la funcion main
  4.  
  5.   ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3);
  6.   cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
  7.  
  8.   ganador = sucursal_ganadora.CantidadGanadora();
  9.   cout << "\nQue ha vendido " << ganador << "productos." // Falta el ';'
  10.  
  11.   // Se recomienda indicar el valor de retorno de la funcion
  12. }

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Error 404:

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Re: Problema en una clase en C++:
« Respuesta #2 en: 23 Noviembre 2014, 17:57 pm »

Muchísimas gracias rir3760, y yo todo el rato cambiando cosas de la clase y resulta que era una llave de más  :-X
Muchas gracias, por este foro he resuelto muchísimas dudas que he tenido, espero que algún día cuando tenga más conocimientos poder ayudar yo también a otros que estén empezando  ;D
En línea

Si se puede imaginar, se puede programar.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
se puede dar herencia de una clase anidada a una clase normal.
Java
kev4142 0 3,285 Último mensaje 7 Agosto 2009, 20:46 pm
por kev4142
Problema de interacion entre una clase Interfaz y la clase que la llama
Java
yeah69 4 4,232 Último mensaje 21 Mayo 2010, 06:30 am
por we4rt
Problema con una clase
PHP
mark182 3 1,896 Último mensaje 30 Agosto 2010, 21:42 pm
por mark182
Acceder a una variable privada de una clase desde otra clase
Programación C/C++
Alvaro093 4 29,981 Último mensaje 27 Enero 2012, 09:46 am
por wachi
Acceder a variables de una clase desde otra clase?
Programación C/C++
overxfl0w13 1 4,678 Último mensaje 12 Julio 2012, 00:52 am
por eleon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines