static void Main(string[] args) { MensagensComDelay.MensagemBemVindo(); Sistema sistema = BancoDeDados.BancoDeDados.BuscarDados(); if (sistema == null) { sistema = new Sistema(); } Menu.MainMenu(sistema); }
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(); }
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); }
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); } }