Пример #1
0
        public CarroPercurso EscolherCarroPercurso(Listas listas)   // ACESSAR LISTA DE VEICULOS E VIAGENS como passar parametro somente dentro do metodo partindo automatico
        {
            CarroPercurso carroPercurso = null;

            if (listas.VeiculosEViagens.Count > 0)
            {
                Console.WriteLine("ESCOLHA UM CODIGO PARA ESTAR INICIANDO: ");
                ExibirVeiculosEViagens(listas);
                Console.WriteLine("INFORME O CÓDIGO DA VIAGEM");
                int codigo = Validacoes.ValidarInteiros(Console.ReadLine());

                carroPercurso = listas.VeiculosEViagens.Find(p => p.CodigoId == codigo); // todo perguntar pq não foi necessario utilizar o apelido "p " neste caso
            }
            return(carroPercurso);
        }
Пример #2
0
        //estarei colocando dentro da lista
        public void EscolhendoCarroEViagem(Listas listas, VeiculoCore veiculoCore)
        {
            if (listas.Veiculos.Count > 0)
            {
                Veiculo       veiculo       = veiculoCore.EscolhendoCarroParaDirigir(listas);
                CarroPercurso carroPercurso = new CarroPercurso();

                if (listas.Viagens.Count > 0)
                {
                    Console.WriteLine("INFORME O CODIGO DA VIAGEM QUE DESEJA DIRIGIR:");
                    MostrarViagens(listas);
                    int codigo = Validacoes.ValidarInteiros(Console.ReadLine());

                    Percurso percurso = listas.Viagens.Find(x => x.CodigoViagem == codigo);

                    carroPercurso.Veiculo  = veiculo;
                    carroPercurso.Percurso = percurso;

                    listas.VeiculosEViagens.Add(carroPercurso); // esperado dois parametros conforme construtor criado na classe carro percurso.

                    listas.Veiculos.Remove(veiculo);
                    listas.Viagens.Remove(percurso);

                    Console.WriteLine("\nVIAGEM REGISTRADA COM SUCESSO! \nAGUARDANDO PRÓXIMOS PASSOS...");
                    Console.ReadKey();
                }
                else
                {
                    Console.WriteLine("VOCÊ PRECISA INSERIR UMA VIAGEM PARA DIRIGIR");
                    Console.ReadKey();
                }
            }
            else
            {
                Console.WriteLine("CADASTRE UM VEICULO PARA DIRIGIR.\nVOCÊ NÃO CADASTROU NENHUM.");
                Console.ReadKey();
            }
        }
Пример #3
0
        internal static void EscolherPartida(VeiculoCore veiculoCore, CarroPercurso carroPercurso)
        {
            Console.WriteLine("TEMOS DUAS MANEIRAS DE PROSSEGUIR ESSA VIAGEM:\n[A]-AUTOMATICO\n[B]-PROCEDURAL\n\nCOMO DESEJA PROSSEGUIR?\n\n [ESC] - SAIR");
            while (true)
            {
                Console.Clear();
                ConsoleKeyInfo tecla = Console.ReadKey(); // armazena uma tecla
                switch (tecla.Key)
                {
                case ConsoleKey.Escape:
                    Console.WriteLine("\n OOBRIGADO! PRESSIONE ENTER PARA SAIR..");
                    Console.ReadKey();
                    Environment.Exit(0);
                    break;

                case ConsoleKey.A:


                    break;
                }
            }
            ;
        }
Пример #4
0
        public void PartindoAutomatico(CarroPercurso carroPercurso, Listas listas, PercursoCore percursoCore)   // TODO ESTUDAR FUNÇÕES LOCAIS E IMPLEMENTAR. DIMINUIR METODO.
        {
            double    percorreu        = 0.0;
            double    cont             = 0.;
            int       QtdAbastecimento = 0;
            int       QtdCalibragem    = 0;
            double    combustivelgasto = 0.0;
            Relatorio relatorio        = new Relatorio(); // instanciar um relatório para usalo para adicionar alterações durante o percurso

            relatorio.CarroPercurso = carroPercurso;

            void CarregarRelatorio()
            {
                percursoCore.RegistraQuantidadeDeAbastecimento(QtdAbastecimento, relatorio);
                percursoCore.RegistrarDistanciaPercorrida(percorreu, relatorio);
                percursoCore.RegistroQuantidadeDeCalibracoes(QtdCalibragem, relatorio);
                percursoCore.RegistroDeCombustivelUtilizado(combustivelgasto, relatorio);
                percursoCore.RegistrandoAlteracoesClimaticas(percorreu, carroPercurso.Percurso.Clima, listas);
            }

            while (carroPercurso.Percurso.DistanciaAlterada > 0.0)
            {
                percursoCore.CalculandoClimaEPneu(carroPercurso.Percurso, carroPercurso.Veiculo);

                if (carroPercurso.Veiculo.TipoCarro == "FLEX" && carroPercurso.Veiculo.CombustivelAlcool == 0.0 && carroPercurso.Veiculo.CombustivelGasolina == 0.0)   // tabela verdade


                {
                    Console.WriteLine("O VEICULO ESTA SEM COMBUSTIVEL DESEJA ABASTECER(S/N)");
                    string queroabastecer = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                    if (queroabastecer == "S")
                    {
                        AbastecerOuCompletarAlcool(carroPercurso.Veiculo);
                        AbastecerOuCompletaGasolina(carroPercurso.Veiculo);
                        QtdAbastecimento++;
                    }
                    else if (queroabastecer == "N")
                    {
                        Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                        CarregarRelatorio();
                        return;
                    }
                    if (carroPercurso.Veiculo.StatusPneu == 0)
                    {
                        Console.WriteLine("VOCÊ PRECISA CALIBRAR O PNEU PARA PROSSEGUIR VIAGEM\n DESEJA CALIBRAR (S/N) ");
                        string decidindo = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                        if (decidindo == "S")
                        {
                            CalibrarPneu(carroPercurso.Veiculo);
                            QtdCalibragem++;
                        }
                        else
                        {
                            Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                            CarregarRelatorio();
                            return;
                        }
                    }
                }
                else if (carroPercurso.Veiculo.TipoCarro == "GASOLINA" && carroPercurso.Veiculo.CombustivelGasolina == 0.0)   // tabela verdade
                {
                    Console.WriteLine("O VEICULO ESTA SEM COMBUSTIVEL DESEJA ABASTECER(S/N)");
                    string queroabastecer = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                    if (queroabastecer == "S")
                    {
                        AbastecerOuCompletaGasolina(carroPercurso.Veiculo);
                        QtdAbastecimento++;
                    }
                    else if (queroabastecer == "N")
                    {
                        Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                        CarregarRelatorio();
                        break;
                    }
                }
                if (carroPercurso.Veiculo.StatusPneu == 0)
                {
                    Console.WriteLine("VOCÊ PRECISA CALIBRAR O PNEU PARA PROSSEGUIR VIAGEM\n DESEJA CALIBRAR (S/N) ");
                    string decidindo = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                    if (decidindo == "S")
                    {
                        CalibrarPneu(carroPercurso.Veiculo);
                        QtdCalibragem++;
                    }
                    else
                    {
                        Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                        CarregarRelatorio();
                        break;
                    }
                }

                if (carroPercurso.Veiculo.TipoCarro == "ALCOOL" && carroPercurso.Veiculo.CombustivelAlcool == 0.0)   // tabela verdade
                {
                    Console.WriteLine("O VEICULO ESTA SEM COMBUSTIVEL DESEJA ABASTECER(S/N)");
                    string queroabastecer = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                    if (queroabastecer == "S")
                    {
                        AbastecerOuCompletarAlcool(carroPercurso.Veiculo);
                        QtdAbastecimento++;
                    }
                    else if (queroabastecer == "N")
                    {
                        Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                        CarregarRelatorio();
                        return;
                    }
                }
                if (carroPercurso.Veiculo.StatusPneu == 0)
                {
                    Console.WriteLine("VOCÊ PRECISA CALIBRAR O PNEU PARA PROSSEGUIR VIAGEM\n DESEJA CALIBRAR (S/N) ");
                    string decidindo = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                    if (decidindo == "S")
                    {
                        CalibrarPneu(carroPercurso.Veiculo);
                        QtdAbastecimento++;
                    }
                    else
                    {
                        Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                        CarregarRelatorio();
                        return;
                    }
                }
                carroPercurso.Percurso.DistanciaAlterada -= 0.1;

                if (carroPercurso.Veiculo.TipoCarro == "FLEX" || carroPercurso.Veiculo.TipoCarro == "ALCOOL")
                {
                    carroPercurso.Veiculo.CombustivelAlcool -= 0.1 / carroPercurso.Veiculo.AutonomiaAlcoolVariando;
                    combustivelgasto += 0.1 / carroPercurso.Veiculo.AutonomiaAlcoolVariando;
                }
                if (carroPercurso.Veiculo.TipoCarro == "FLEX" || carroPercurso.Veiculo.TipoCarro == "GASOLINA")
                {
                    carroPercurso.Veiculo.CombustivelGasolina -= 0.1 / carroPercurso.Veiculo.AutonomiaGasolinaVariando;
                    combustivelgasto += 0.1 / carroPercurso.Veiculo.AutonomiaGasolinaVariando;
                }
                percorreu += 0.1;
                cont      += 0.1;
                // todo aumentar cont ==100 valor para 100 depois
                if (cont >= 1.0)
                {
                    Console.WriteLine("VOCÊ PERCORREU 100 KM");
                    percursoCore.VariacaoDoClima(carroPercurso.Percurso);
                    percursoCore.RegistrandoAlteracoesClimaticas(percorreu, carroPercurso.Percurso.Clima, listas);
                    percursoCore.Descalibrar(carroPercurso.Veiculo);
                    cont = 0.0;
                    Console.ReadKey();
                    CarregarRelatorio(); // TODO CARRO PERCURSO FICA NULO
                    listas.Relatorios.Add(relatorio);
                    Console.WriteLine("VIAGEM CONCLUIDA COM SUCESSO!\nOBRIGADO!");
                    Console.ReadLine();
                    return;
                }
            }
        }
Пример #5
0
        public void PartindoManual(PercursoCore percursocore, Listas listas, CarroPercurso carroPercurso)
        {
            double    percorreu        = 0.0;
            int       QtdAbastecimento = 0;
            int       QtdCalibragem    = 0;
            double    combustivelgasto = 0.0;
            Relatorio relatorio        = new Relatorio();

            void CarregarRelatorio()
            {
                percursocore.RegistraQuantidadeDeAbastecimento(QtdAbastecimento, relatorio);
                percursocore.RegistrarDistanciaPercorrida(percorreu, relatorio);
                percursocore.RegistroQuantidadeDeCalibracoes(QtdCalibragem, relatorio);
                percursocore.RegistroDeCombustivelUtilizado(combustivelgasto, relatorio);
                percursocore.RegistrandoAlteracoesClimaticas(percorreu, carroPercurso.Percurso.Clima, listas);
            }

            while (carroPercurso.Percurso.DistanciaAlterada > 0.0)
            {
                Console.WriteLine("QUANTOS QUILÔMETROS VOCÊ DESEJA PERCORRER?");
                double dirigindomanual = Validacoes.ValidarDouble(Console.ReadLine());

                for (int i = 1; i <= dirigindomanual; i++)
                {
                    percursocore.CalculandoClimaEPneu(carroPercurso.Percurso, carroPercurso.Veiculo);

                    if (carroPercurso.Veiculo.TipoCarro == "FLEX" && carroPercurso.Veiculo.CombustivelAlcool == 0.0 && carroPercurso.Veiculo.CombustivelGasolina == 0.0)
                    {
                        Console.WriteLine("O VEICULO ESTA SEM COMBUSTIVEL DESEJA ABASTECER(S/N)");
                        string queroabastecer = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                        if (queroabastecer == "S")
                        {
                            AbastecerOuCompletarAlcool(carroPercurso.Veiculo);
                            AbastecerOuCompletaGasolina(carroPercurso.Veiculo);
                            QtdAbastecimento++;
                        }
                        else if (queroabastecer == "N")
                        {
                            Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                            CarregarRelatorio();
                            break;
                        }
                        if (carroPercurso.Veiculo.StatusPneu == 0)
                        {
                            Console.WriteLine("VOCÊ PRECISA CALIBRAR O PNEU PARA PROSSEGUIR VIAGEM\n DESEJA CALIBRAR (S/N) ");
                            string decidindo = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                            if (decidindo == "S")
                            {
                                CalibrarPneu(carroPercurso.Veiculo);
                                QtdCalibragem++;
                            }
                            else
                            {
                                Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                                CarregarRelatorio();
                                break;
                            }
                        }
                    }
                    else if (carroPercurso.Veiculo.TipoCarro == "GASOLINA" && carroPercurso.Veiculo.CombustivelGasolina == 0.0)   // tabela verdade
                    {
                        Console.WriteLine("O VEICULO ESTA SEM COMBUSTIVEL DESEJA ABASTECER(S/N)");
                        string decidindo = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                        if (decidindo == "S")
                        {
                            AbastecerOuCompletaGasolina(carroPercurso.Veiculo);
                            QtdAbastecimento++;
                        }
                        else if (decidindo == "N")
                        {
                            Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                            CarregarRelatorio();
                            break;
                        }
                    }
                    if (carroPercurso.Veiculo.StatusPneu == 0)
                    {
                        Console.WriteLine("VOCÊ PRECISA CALIBRAR O PNEU PARA PROSSEGUIR VIAGEM\n DESEJA CALIBRAR (S/N) ");
                        string quero = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                        if (quero == "S")
                        {
                            CalibrarPneu(carroPercurso.Veiculo);
                            QtdCalibragem++;
                        }
                        else
                        {
                            Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                            CarregarRelatorio();
                            break;
                        }
                    }

                    if (carroPercurso.Veiculo.TipoCarro == "ALCOOL" && carroPercurso.Veiculo.CombustivelAlcool == 0.0)   // tabela verdade
                    {
                        Console.WriteLine("O VEICULO ESTA SEM COMBUSTIVEL DESEJA ABASTECER(S/N)");
                        string decidindo = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                        if (decidindo == "S")
                        {
                            AbastecerOuCompletarAlcool(carroPercurso.Veiculo);
                            QtdAbastecimento++;
                        }
                        else if (decidindo == "N")
                        {
                            Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                            CarregarRelatorio();
                            break;
                        }
                    }
                    if (carroPercurso.Veiculo.StatusPneu == 0)
                    {
                        Console.WriteLine("VOCÊ PRECISA CALIBRAR O PNEU PARA PROSSEGUIR VIAGEM\n DESEJA CALIBRAR (S/N) ");
                        string x = Validacoes.SimOuNao(Console.ReadLine().ToUpper());
                        if (x == "S")
                        {
                            CalibrarPneu(carroPercurso.Veiculo);
                            QtdAbastecimento++;
                        }
                        else
                        {
                            Console.WriteLine("VEICULO INCAPAZ DE PROSSEGUIR VIAGEM");
                            CarregarRelatorio();
                            break;
                        }
                    }
                    if (carroPercurso.Percurso.DistanciaAlterada <= 0.0)
                    {
                        break;
                    }

                    carroPercurso.Percurso.DistanciaAlterada -= 1.0;
                    percorreu++;

                    if (carroPercurso.Veiculo.TipoCarro == "FLEX" || carroPercurso.Veiculo.TipoCarro == "ALCOOL")
                    {
                        carroPercurso.Veiculo.CombustivelAlcool -= 1.0 / carroPercurso.Veiculo.AutonomiaAlcoolVariando;
                        combustivelgasto += 1.0 / carroPercurso.Veiculo.AutonomiaAlcoolVariando;
                    }
                    if (carroPercurso.Veiculo.TipoCarro == "FLEX" || carroPercurso.Veiculo.TipoCarro == "GASOLINA")
                    {
                        carroPercurso.Veiculo.CombustivelGasolina -= 1.0 / carroPercurso.Veiculo.AutonomiaGasolinaVariando;
                        combustivelgasto += 1.0 / carroPercurso.Veiculo.AutonomiaGasolinaVariando;
                    }
                    if (percorreu % 100.0 == 0 && percorreu > 0)   // todo saber pq esta contando o zero
                    {
                        Console.WriteLine("VOCÊ PERCORREU 100 KM");
                        percursocore.CalculandoClimaEPneu(carroPercurso.Percurso, carroPercurso.Veiculo);
                        percursocore.RegistrandoAlteracoesClimaticas(percorreu, carroPercurso.Percurso.Clima, listas);
                        percursocore.Descalibrar(carroPercurso.Veiculo);
                    }
                }

                if (carroPercurso.Percurso.DistanciaAlterada <= 0.0)
                {
                    break;
                }
                Console.Write($" ATÉ AGORA VOCÊ PERCORREU {percorreu.ToString("F2", CultureInfo.InvariantCulture)} KM !\nDESEJA CONTINUAR A VIAGEM? (S/N): ");
                string opcao = Validacoes.SimOuNao(Console.ReadLine());
                if (opcao != "S")
                {
                    return;
                }
            }
            CarregarRelatorio();
            listas.Relatorios.Add(relatorio);
            Console.WriteLine("VIAGEM CONCLUIDA COM SUCESSO!\nOBRIGADO!");
        }
Пример #6
0
        internal static void SubMenuViagem(Listas listas, PercursoCore percursoCore, VeiculoCore veiculoCore)
        {
            Console.WriteLine("====================INFORMAÇÕES VIAGEM====================\\n\n");

            Console.WriteLine(" [A] - CADASTRAR VIAGEM ");// adicionar viagem na lista de viagens
            Console.WriteLine(" [B] - EXIBIR VIAGENS ");
            Console.WriteLine(" [C] - PLANEJAR VIAGEM \n");
            Console.WriteLine(" [D] - VIAJAR");
            Console.WriteLine(" [E] - EXIBIR RELATÓRIOS\n");

            Console.WriteLine(" [ESC] - SAIR");

            while (true)
            {
                ConsoleKeyInfo tecla = Console.ReadKey(); // armazena uma tecla
                switch (tecla.Key)
                {
                case ConsoleKey.Escape:
                    Console.WriteLine("\n OOBRIGADO! PRESSIONE ENTER PARA SAIR..");
                    Console.ReadKey();
                    Environment.Exit(0);
                    break;

                case ConsoleKey.A:
                    // registra e adiciona uma viagem dentro da lista
                    Console.WriteLine("VOCÊ PODE CADASTRAR MAIS DE UMA VIAGEM.\nQUANTAS VIAGENS VOCÊ QUER CADASTRAR?");
                    int x = Validacoes.ValidarInteiros(Console.ReadLine());

                    for (int i = 1; i <= x; i++)
                    {
                        Console.WriteLine($"DIGITE INFORMAÇÕES DA {i}º VIAGEM ");
                        listas.Viagens.Add(percursoCore.RegistrarViagem());
                    }

                    break;

                case ConsoleKey.B:
                    percursoCore.MostrarViagens(listas);     // EXIBIR MINHA LISTA DE VIAGENS CADASTRADAS
                    Console.ReadKey();

                    break;

                case ConsoleKey.C:
                    percursoCore.EscolhendoCarroEViagem(listas, veiculoCore);                 // escolher carro pela placa e escolher viagem
                    CarroPercurso carroPercurso = percursoCore.EscolherCarroPercurso(listas); // inicar a viagem automatico ou manual
                    veiculoCore.PartindoAutomatico(carroPercurso, listas, percursoCore);
                    Console.ReadKey();

                    break;

                case ConsoleKey.D:

                    break;

                case ConsoleKey.E:

                    listas.VeiculosEViagens.ForEach(s => Console.WriteLine(s));
                    Console.WriteLine("\n\nESCOLHA E DIGITE UMA VIAGEM PARAEXIBIR RELATÓRIO:");
                    int       codigo    = Validacoes.ValidarInteiros(Console.ReadLine());
                    Relatorio relatorio = listas.Relatorios.Where(s => s.CarroPercurso.CodigoId == codigo).FirstOrDefault();
                    Console.Clear();
                    if (relatorio == null)
                    {
                        Console.WriteLine("NÃO EXISTE RELATÓRIOS!\nAPERTE QUALQUER TECLA PARA VOLTAR");
                        Console.ReadKey();
                    }
                    else if (listas.Relatorios.Count(s => s.CarroPercurso.CodigoId == codigo) > 1)
                    {
                        Console.WriteLine(" EXISTE MAIS DE UM RELATÓRIO\nVIAGEM CANCELADA");
                        foreach (Relatorio s in listas.Relatorios)
                        {
                            if (s.CarroPercurso.CodigoId == codigo)
                            {
                                Console.WriteLine(s);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine(relatorio);
                    }

                    break;

                default:
                    Console.Write("\nOBRIGADO, PRESSIONE QUALQUER TECLA PARA REINICIAR");
                    Console.ReadKey();
                    Menu.MenuPrincipal(veiculoCore, listas, percursoCore);

                    break;
                }
            }
        }