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:
#include <iostream>
using namespace std;
class Ventas{
private:
int sucursal;
char producto;
int cantidad;
int cantidad_ganadora;
public:
Ventas(int identificador_sucursal){
sucursal = identificador_sucursal;
cantidad = 0;
}
void SetUnidades(int unidades){
cantidad +=unidades;
}
int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
cantidad_ganadora = sucursal_1.cantidad;
return 1;
if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
cantidad_ganadora = sucursal_2.cantidad;
return 2;
if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
cantidad_ganadora = sucursal_3.cantidad;
return 3;
}
int CantidadGanadora(){
return cantidad_ganadora;
}
};
int main(){
int identif_sucursal;
const int TERMINADOR = -1;
bool fichero_vacio;
char cod_producto;
int unidades_vendidas;
int ganador;
Ventas sucursal_ganadora(0);
Ventas sucursal_1(1);
Ventas sucursal_2(2);
Ventas sucursal_3(3);
while (identif_sucursal != TERMINADOR){
cout << "\nIntroduce la sucursal: ";
cin >> identif_sucursal;
fichero_vacio = identif_sucursal == TERMINADOR;
if (!fichero_vacio){
cout << "Introduce el identificador del producto: ";
cin >> cod_producto;
cout << "Introduce la cantidad vendida de dicho producto: ";
cin >> unidades_vendidas;
if (identif_sucursal == 1)
sucursal_1.SetUnidades(unidades_vendidas);
else if (identif_sucursal == 2)
sucursal_2.SetUnidades(unidades_vendidas);
else sucursal_3.SetUnidades(unidades_vendidas);
}
}
}
ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3); //Aquí sale el error
cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
ganador = sucursal_ganadora.CantidadGanadora();//Y aquí también el mismo
cout << "\nQue ha vendido " << ganador << "productos."
}
Agradeceria la ayuda, muchas gracias a todos.
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):
int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
cantidad_ganadora = sucursal_1.cantidad;
return 1;
if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
cantidad_ganadora = sucursal_2.cantidad;
return 2;
if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
cantidad_ganadora = sucursal_3.cantidad;
return 3;
}
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:
}
}
} // Esta llave termina la funcion main
ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3);
cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
ganador = sucursal_ganadora.CantidadGanadora();
cout << "\nQue ha vendido " << ganador << "productos." // Falta el ';'
// Se recomienda indicar el valor de retorno de la funcion
}
Un saludo
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