コード例 #1
0
        static void Main(string[] args)
        {
            MensagensComDelay.MensagemBemVindo();
            Sistema sistema = BancoDeDados.BancoDeDados.BuscarDados();

            if (sistema == null)
            {
                sistema = new Sistema();
            }

            Menu.MainMenu(sistema);
        }
コード例 #2
0
        public static void CalibrarPneu(Relatorio Relatorio)
        {
            DesgastePneu desgaste = Relatorio.StatusPneu.ElementAt(Relatorio.StatusPneu.Count - 1);
            string       tipoStatus, statusPneu;
            double       multiplicador;

            do
            {
                Console.WriteLine($"\nO status atual do pneu é {desgaste.TipoStatus}");
                Console.WriteLine("Deseja alterar o status do Pneu para qual das opções abaixo:");
                Console.WriteLine("\n3) Novo");
                Console.WriteLine("2) Pouco Desgastado");
                Console.WriteLine("1) Desgastado");
                Console.Write("\nStatus desejado: ");
                statusPneu = Console.ReadLine().Trim();

                if (!Validacao.ValidaStatusPneu(statusPneu))
                {
                    MensagensComDelay.MensagemStatusPneuInvalida();
                }
            } while (!Validacao.ValidaStatusPneu(statusPneu));

            if (desgaste.StatusAtualDoPneu == int.Parse(statusPneu))
            {
                MensagensComDelay.MensagemPneuNaoCalibrou();
                return;
            }

            else if (statusPneu == "3")
            {
                tipoStatus    = "novo";
                multiplicador = 0;
            }

            else if (statusPneu == "2")
            {
                tipoStatus    = "pouco desgastado";
                multiplicador = 0.0725;
            }

            else
            {
                tipoStatus    = "desgastado";
                multiplicador = 0.0915;
            }

            Relatorio.StatusPneu.Add(new DesgastePneu(desgaste.DistanciaDaOcorrencia, multiplicador, 0, int.Parse(statusPneu), tipoStatus));
            Relatorio.QuantidadeCalibragem++;
            MensagensComDelay.MensagemPneuCalibrado();
        }
コード例 #3
0
        public static Veiculo CadastrarVeiculo(Sistema Sistema, Veiculo Veiculo)
        {
            Veiculo.Marca              = ObtemMarca();
            Veiculo.Modelo             = ObtemModelo();
            Veiculo.Ano                = uint.Parse(ObtemAno());
            Veiculo.Placa              = ObtemPlaca(Sistema);
            Veiculo.StatusPneu         = ObtemStatusPneu();
            Veiculo.VelocidadeMedia    = double.Parse(ObtemVelocidadeMedia());
            Veiculo.TipoDeTanque       = ObtemTipoDeTanque();
            Veiculo.CapacidadeDoTanque = double.Parse(ObtemCapacidadeTanque());

            if (Veiculo.TipoDeTanque == "FLEX" || Veiculo.TipoDeTanque == "GASOLINA")
            {
                Console.Write("\nPara gasolina:");
                Abastecer(Veiculo, "GASOLINA");
                Veiculo.AutonomiaGasolina = double.Parse(ObtemAutonomia());
            }

            if (Veiculo.TipoDeTanque == "FLEX" || Veiculo.TipoDeTanque == "ALCOOL")
            {
                Console.Write("\nPara alcool:");

                if (Veiculo.TipoDeTanque == "FLEX" && Veiculo.CapacidadeDoTanque == Veiculo.QuantidadeGasolina)
                {
                    MensagensComDelay.MensagemTanqueCheioDeGasolina();
                }

                else
                {
                    Abastecer(Veiculo, "ALCOOL");
                }

                Veiculo.AutonomiaAlcool = double.Parse(ObtemAutonomia());
            }
            return(Veiculo);
        }
コード例 #4
0
        public static void Percorrer(Relatorio Relatorio, double distanciaMaxima, double distancia, double AutonomiaGasolina, double AutonomiaAlcool, DesgastePneu desgaste, MudancaClimatica clima)
        {
            while (distancia > 0)
            {
                double multiplicadorPneu = desgaste.MultiplicadorPneu, distanciaOcorrencia = desgaste.DistanciaDaOcorrencia, multiplicadorClima = clima.MultiplicadorClima;
                int    statusPneu = desgaste.StatusAtualDoPneu, quantidadeDeDesgaste;
                string tipoStatus = desgaste.TipoStatus, climaAtual = clima.Clima;

                //Recalculo da distancia, devido a alteração na autonomia
                if (distanciaMaxima < distancia)
                {
                    distancia = distanciaMaxima;
                }

                if (Math.Round(distancia + Relatorio.KilometrosPercorridos % 100, 10) >= 100)
                {
                    //essa variavel diz quantos kilometros podem ser percorridos até chegar em 100kilometros percorridos.
                    double kilometrosASeremPercorridos = Math.Round(100 - (Relatorio.KilometrosPercorridos % 100), 10);

                    ConsumirCombustivelEPercorrer(Relatorio, kilometrosASeremPercorridos, AutonomiaGasolina, AutonomiaAlcool);

                    if (distancia > 100)
                    {
                        distancia = Math.Round(distancia - Math.Round(100 - (Relatorio.KilometrosPercorridos % 100), 10), 10);
                    }

                    else
                    {
                        distancia = Math.Round(distancia - kilometrosASeremPercorridos, 10);
                    }

                    quantidadeDeDesgaste = DesgasteDoPneu();
                    statusPneu          -= quantidadeDeDesgaste;

                    if (statusPneu == 3)
                    {
                        tipoStatus = "novo";
                    }

                    else if (statusPneu == 2)
                    {
                        tipoStatus = "pouco desgastado";
                    }

                    else
                    {
                        tipoStatus = "desgastado";
                    }


                    distanciaOcorrencia = Relatorio.KilometrosPercorridos;
                    multiplicadorPneu   = CalculaMultiplicadorPneu(statusPneu);
                    Relatorio.StatusPneu.Add(new DesgastePneu(distanciaOcorrencia, multiplicadorPneu, quantidadeDeDesgaste, statusPneu, tipoStatus));
                    desgaste = Relatorio.StatusPneu.ElementAt(Relatorio.StatusPneu.Count - 1);

                    climaAtual         = ViagemCore.GeraClimaRandomico();
                    multiplicadorClima = ViagemCore.CalculaMultiplicadorClima(climaAtual);
                    Relatorio.Clima.Add(new MudancaClimatica(distanciaOcorrencia, multiplicadorClima, climaAtual));
                    clima = Relatorio.Clima.ElementAt(Relatorio.StatusPneu.Count - 1);

                    if (statusPneu == 0)
                    {
                        CalibrarPneu(Relatorio);
                    }
                }
                //DesgastePneu desgaste = Relatorio.StatusPneu.ElementAt(Relatorio.StatusPneu.Count - 1);
                else
                {
                    ConsumirCombustivelEPercorrer(Relatorio, distancia, AutonomiaGasolina, AutonomiaAlcool);
                    distancia = 0.0;
                }

                MensagensComDelay.MensagemDistanciaPercorrida(Relatorio.KilometrosPercorridos);

                AutonomiaGasolina = RetornaAutonomiaGasolina(Relatorio, desgaste.MultiplicadorPneu, clima.MultiplicadorClima);
                AutonomiaAlcool   = RetornaAutonomiaAlcool(Relatorio, desgaste.MultiplicadorPneu, clima.MultiplicadorClima);
                distanciaMaxima   = Math.Round(Math.Round(AutonomiaGasolina * Relatorio.VeiculoNaEstrada.Veiculo.QuantidadeGasolina, 10) + Math.Round(AutonomiaAlcool * Relatorio.VeiculoNaEstrada.Veiculo.QuantidadeAlcool, 10), 10);
            }
        }