Пример #1
0
        public virtual void DirigirVeiculoPadrão(Viagem viagem, Carro carro, double litrosCombustivelTanque)
        {
            Console.WriteLine("O clima qual o tipo de clima [1] = Sol [2] = Chuva [3] = Neve");
            viagem.Clima = Validacao.Validar3opcoes(Console.ReadLine());
            Console.WriteLine("Qual a distância da viagem?");
            viagem.Distancia = Validacao.ValidarNumerosDouble(Console.ReadLine());
            double Autonomia;

            KmPorAlcool   = KmPorAlcoolAtual;
            KmPorGasolina = KmPorGasolinaAtual;
            EstadoPneu    = EstadoPneuAtual;

            do
            {
                Autonomia = Calculo.CalcularAutonomia(viagem, carro, KmPorAlcool, KmPorGasolina);

                litrosCombustivelTanque = LitrosGasolina + LitrosAlcool;
                if (litrosCombustivelTanque * Autonomia < viagem.Distancia)
                {
                    viagem.Distancia       -= litrosCombustivelTanque * Autonomia;
                    litrosCombustivelTanque = 0;
                    LitrosAlcool            = 0;
                    LitrosGasolina          = 0;
                }
                else if (litrosCombustivelTanque * Autonomia > viagem.Distancia)
                {
                    litrosCombustivelTanque = viagem.Distancia / Autonomia;
                    LitrosGasolina          = viagem.Distancia / Autonomia;
                    LitrosAlcool            = viagem.Distancia / Autonomia;
                    viagem.Distancia        = 0;
                }
                else if (litrosCombustivelTanque * Autonomia == viagem.Distancia)
                {
                    viagem.Distancia        = 0;
                    litrosCombustivelTanque = 0;
                    LitrosAlcool            = 0;
                    LitrosGasolina          = 0;
                }
                if (litrosCombustivelTanque == 0 && viagem.Distancia > 0)
                {
                    Console.WriteLine($"O tanque está com {litrosCombustivelTanque.ToString("F2")} litros, Ainda falta {viagem.Distancia}KM para percorrer\n");
                    carro.Abastecer();
                }
            } while (viagem.Distancia > 0);
            Console.WriteLine($"Viagem Concluída há {litrosCombustivelTanque.ToString("F2")} litros no tanque e o Estado do pneu é {EstadoPneu}");
            Console.WriteLine("\nAperte qualquer coisa para continuar...");
        }
Пример #2
0
        public static double CalcularAutonomiaFlexA(Viagem viagem, Carro carro)
        {
            double autonomia = 0;

            if (viagem.Clima == 1)
            {
                autonomia = carro.KmPorAlcool;
                if (carro.EstadoPneu == 2)
                {
                    autonomia -= autonomia * 0.0725;
                }
                else if (carro.EstadoPneu == 1)
                {
                    autonomia -= autonomia * 0.0915;
                }
            }
            else if (viagem.Clima == 2)
            {
                carro.KmPorGasolina -= carro.KmPorGasolina * 0.12;
                carro.KmPorAlcool   -= carro.KmPorGasolina * 0.30;
                autonomia            = carro.KmPorAlcool;
                if (carro.EstadoPneu == 2)
                {
                    autonomia -= autonomia * 0.0725;
                }
                else if (carro.EstadoPneu == 1)
                {
                    autonomia -= autonomia * 0.0915;
                }
            }
            else if (viagem.Clima == 3)
            {
                carro.KmPorGasolina -= carro.KmPorGasolina * 0.19;
                carro.KmPorAlcool   -= carro.KmPorGasolina * 0.30;
                autonomia            = carro.KmPorAlcool;
                if (carro.EstadoPneu == 2)
                {
                    autonomia -= autonomia * 0.0725;
                }
                else if (carro.EstadoPneu == 1)
                {
                    autonomia -= autonomia * 0.0915;
                }
            }
            return(autonomia);
        }
Пример #3
0
        public virtual void DirigirVeiculoFlex(Viagem viagem, Carro carro)
        {
            Console.WriteLine("O clima está ruim?");
            viagem.Clima = Validacao.Validar3opcoes(Console.ReadLine());
            Console.WriteLine("Digite a distância da viagem");
            viagem.Distancia = Validacao.ValidarNumerosDouble(Console.ReadLine());

            KmPorAlcool   = KmPorAlcoolAtual;
            KmPorGasolina = KmPorGasolinaAtual;
            EstadoPneu    = EstadoPneuAtual;

            do
            {
                KmPorAlcool   = Calculo.CalcularAutonomiaFlexA(viagem, carro);
                KmPorGasolina = Calculo.CalcularAutonomiaFlexG(viagem, carro);

                while (LitrosAlcool != 0 && viagem.Distancia > 0)
                {
                    if (LitrosAlcool * KmPorAlcool < viagem.Distancia)
                    {
                        viagem.Distancia -= LitrosAlcool * KmPorAlcool;
                        LitrosAlcool      = 0;
                    }
                    else if (LitrosAlcool * KmPorAlcool > viagem.Distancia)
                    {
                        LitrosAlcool    -= viagem.Distancia / KmPorAlcool;
                        viagem.Distancia = 0;
                    }
                    else if (LitrosAlcool * KmPorAlcool == viagem.Distancia)
                    {
                        viagem.Distancia = 0;
                        LitrosAlcool     = 0;
                    }
                }

                while (LitrosGasolina != 0 && viagem.Distancia > 0)
                {
                    if (LitrosGasolina * KmPorGasolina < viagem.Distancia)
                    {
                        viagem.Distancia -= LitrosGasolina * KmPorGasolina;
                        LitrosGasolina    = 0;
                    }
                    else if (LitrosGasolina * KmPorGasolina > viagem.Distancia)
                    {
                        LitrosGasolina  -= viagem.Distancia / KmPorGasolina;
                        viagem.Distancia = 0;
                    }
                    else if (LitrosGasolina * KmPorGasolina == viagem.Distancia)
                    {
                        viagem.Distancia = 0;
                        LitrosGasolina   = 0;
                    }
                }

                if (LitrosAlcool == 0 && LitrosGasolina == 0 && viagem.Distancia > 0)
                {
                    Console.WriteLine($"O tanque está com {(LitrosAlcool + LitrosGasolina).ToString("F2")} litros, Ainda falta {viagem.Distancia}KM para percorrer\n");
                    carro.Abastecer();
                }
            } while (viagem.Distancia > 0);
        }
Пример #4
0
        public static double CalcularAutonomia(Viagem viagem, Carro carro, double alcool, double gasolina)
        {
            double autonomia = 0;

            if (viagem.Clima == 1)
            {
                autonomia = alcool + gasolina;
                if (carro.EstadoPneu == 2)
                {
                    autonomia -= autonomia * 0.0725;
                }
                else if (carro.EstadoPneu == 1)
                {
                    autonomia -= autonomia * 0.0915;
                }
            }
            else if (viagem.Clima == 2)
            {
                if (carro.TipoCombustivel == "gasolina")
                {
                    gasolina -= gasolina * 0.12;
                    autonomia = gasolina;

                    if (carro.EstadoPneu == 2)
                    {
                        autonomia -= autonomia * 0.0725;
                    }
                    else if (carro.EstadoPneu == 1)
                    {
                        autonomia -= autonomia * 0.0915;
                    }
                }
                else if (carro.TipoCombustivel == "alcool")
                {
                    alcool   -= alcool * 0.12;
                    alcool   -= alcool * 0.30;
                    autonomia = alcool;
                    if (carro.EstadoPneu == 2)
                    {
                        autonomia -= autonomia * 0.0725;
                    }
                    else if (carro.EstadoPneu == 1)
                    {
                        autonomia -= autonomia * 0.0915;
                    }
                }
            }
            else if (viagem.Clima == 3)
            {
                if (carro.TipoCombustivel == "gasolina")
                {
                    gasolina -= gasolina * 0.19;
                    autonomia = gasolina;

                    if (carro.EstadoPneu == 2)
                    {
                        autonomia -= autonomia * 0.0725;
                    }
                    else if (carro.EstadoPneu == 1)
                    {
                        autonomia -= autonomia * 0.0915;
                    }
                }
                else if (carro.TipoCombustivel == "alcool")
                {
                    alcool   -= alcool * 0.19;
                    alcool   -= alcool * 0.30;
                    autonomia = alcool;
                    if (carro.EstadoPneu == 2)
                    {
                        autonomia -= autonomia * 0.0725;
                    }
                    else if (carro.EstadoPneu == 1)
                    {
                        autonomia -= autonomia * 0.0915;
                    }
                }
            }
            return(autonomia);
        }