E estado haciendo este código que en teoría es bastante simple pero no me encuentro con nada más que problemas, el primero es con el operador "||" debo estarlo usando mal. El segundo es con los if y else, que me muestra todos los else independientemente de si los if se cumplen (aparecen los 3 Precio en pantalla). Y por último el resultado de la variable "Precio" asignado por los if (cuando es menor o igual a 60) no da los precios correctos.
A ver sí sabéis por qué pasa esto, lo he probado y modificado unas cuantas veces y nada '--
Un saludo!
A ver sí sabéis por qué pasa esto, lo he probado y modificado unas cuantas veces y nada '--
Un saludo!
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
//Delaración globales
int tipoVehiculo; // 1 = Coche // 2 = Moto // 3 = Camión
int minutosEstancia; // Minutos totales de estacionamiento en parking
int minutosDiferencia; // Minutos en los que se aplicará la tarifa reducida
const float precioTarifaBaseCoche = 3.75; // Cantidad a abonar por 1 hora + entrada
const float precioTarifaBaseMoto = 1.95; // Cantidad a abonar por 1 hora + entrada
const float precioTarifaBaseCamion = 6.75; // Cantidad a abonar por 1 hora + entrada
const float precioEntrada = 0.75; // Precio entrada
const int minutosCambio = 60; // Minutos en los que se aplica la tarifa normal
const float tarifaNormalCoche = 0.05; // Precio por minuto
const float tarifaReducidaCoche = 0.03; // Precio por minuto al pasar 1 hora
const float tarifaNormalMoto = 0.02; // Precio por minuto
const float tarifaReducidaMoto = 0.01; // Precio por minuto al pasar 1 hora
const float tarifaNormalCamion = 0.10; // Precio por minuto
const float tarifaReducidaCamion = 0.05; // Precio por minuto al pasar 1 hora
float Precio = 0; // Precio definitivo que pagará el cliente
int main()
{
cout << "Si usas un coche pulse 1:\nSi usas moto pulse 2:\nSi usas camion pulsa 3:\n"; // Pide al usuario que indique el tipo de vehículo a estacionar
cin >> tipoVehiculo; // Asigna el número introducido a la variable
if (tipoVehiculo != 1 || 2 || 3) {cout << "No a introducido un numero apto";} // Si la variable no vale 1 o 2 o 3 muestra en pantalla en pantalla el texto
else { // En caso de que el valor de la variable sí sea 1 o 2 o 3 pregunta cuantos minutos ha estado estacionado su vehículo
cout << "¿Cuantos minutos a estado su vehiculo en el parking?";
cin >> minutosEstancia;} // Asigna los minutos dados por el usuario a la variable
minutosDiferencia = minutosEstancia - minutosCambio; // Asigna un valor a la variable
if (tipoVehiculo = 1) // Si es un coche...
{
if (minutosEstancia <= minutosCambio) // Y ha estado aparcado durante 1 hora o menos...
{Precio = minutosEstancia * tarifaNormalCoche + precioEntrada; //Precio = Minutos por precio minuto, más tarifa por entrar
cout <<"El precio es de:" << Precio << "Euros";} // Y muestra en pantalla el importe a pagar
else {Precio = precioTarifaBaseCoche + minutosDiferencia * tarifaReducidaCoche; // Si en cambio ha estado aparcado más tiempo, calcula el precio a partir de la primera hora y se lo suma al precio de la primera hora
cout <<"El precio es de:" << Precio << "Euros";} // Y muestra en pantalla el importe a pagar
if (tipoVehiculo = 2) // Si es una moto...
{
if (minutosEstancia <= minutosCambio) // Ídem coche
{Precio = minutosEstancia * tarifaNormalMoto + precioEntrada;
cout <<"El precio es de:" << Precio << "Euros";}
else {Precio = precioTarifaBaseMoto + minutosDiferencia * tarifaReducidaMoto;
cout <<"El precio es de:" << Precio << "Euros";}
if (tipoVehiculo = 3)
{
if (minutosEstancia <= minutosCambio) // Ídem coche
{Precio = minutosEstancia * tarifaNormalCamion + precioEntrada;
cout <<"El precio es de:" << Precio << "Euros";}
else {Precio = precioTarifaBaseCamion + minutosDiferencia * tarifaReducidaCamion;
cout <<"El precio es de:" << Precio << "Euros";}
return 0;
}}
}}