public void executaViagem(Garagem gOrigem, Garagem gDestino, Veiculo vViagem) { viagens.incluir(new Viagem(contaViagens, gOrigem, gDestino, vViagem)); contaViagens++; transportes.Add(new Transporte(pesquisarVeiculo(new Veiculo(veiculos.First().Id)))); garagens[gDestino.Id].Veiculos.Push(garagens[gOrigem.Id].Veiculos.Pop()); }
static void carregamentoInicial() { Garagem congonhas = new Garagem("Congonhas"); Garagem guarulhos = new Garagem("Guarulhos"); garagens.incluirGaragem(congonhas); garagens.incluirGaragem(guarulhos); Veiculo van1 = new Veiculo("AAA-1234", 8); Veiculo van2 = new Veiculo("BBB-1234", 8); Veiculo van3 = new Veiculo("CCC-1242", 8); Veiculo van4 = new Veiculo("DDD-4324", 8); Veiculo van5 = new Veiculo("EEE-3211", 8); Veiculo van6 = new Veiculo("FFF-4321", 8); Veiculo van7 = new Veiculo("GGG-3214", 8); Veiculo van8 = new Veiculo("HHH-2432", 8); frota.cadastrarVeiculo(van1); frota.cadastrarVeiculo(van2); frota.cadastrarVeiculo(van3); frota.cadastrarVeiculo(van4); frota.cadastrarVeiculo(van5); frota.cadastrarVeiculo(van6); frota.cadastrarVeiculo(van7); frota.cadastrarVeiculo(van8); }
public Viagem(Veiculo veiculo, Garagem origem, Garagem destino) { this.id = Incrementar(); this.Origem = origem; this.Destino = destino; this.veiculo = veiculo; }
public void incluirGaragem(Garagem garagem) { if (!listaDeGaragens.Contains(garagem)) { listaDeGaragens.Add(garagem); } }
// 5. Liberar viagem de uma determinada origem para um determinado destino // Uma viagem só pode ser liberada quando a jornada diária foi iniciada. // // Sempre que a lotação de um carro está completa, este sai em direção ao destino e, lá chegando, é // estacionado na garagem. // //Quando um estacionamento fica vazio, uma nova viagem só pode ser iniciada desta origem quando um //veículo retornar à garagem. static void liberarViagem() { int idOrigem, idDestino; Veiculo veiculo; Garagem garOrigem = null, garDestino = null; if (garagens.JornadaAtiva) { mostreGaragens(); // recolhe do teclado o id e armazena idOrigem = recebeInt("Digite o ID origem: "); // faz a mesma coisa com o destino idDestino = recebeInt("Digite o ID destino: "); // quantos passageiros: foreach (Garagem garagem in garagens.ListaDeGaragens) { if (garagem.Id == idOrigem) { garOrigem = garagem; } if (garagem.Id == idDestino) { garDestino = garagem; } } if (garOrigem == null && garDestino == null) { println("Origem ou Destino não existem"); } else if (garOrigem.Id == garDestino.Id) { println("Origem igual destino"); } else if (garOrigem.PilhaVeiculos.Count() != 0) { veiculo = garOrigem.PilhaVeiculos.Pop(); garDestino.PilhaVeiculos.Push(veiculo); Viagem viagem = new Viagem(veiculo, garOrigem, garDestino); Transporte tranporte = new Transporte(veiculo, veiculo.Lotacao); println("\nViagem iniciada com sucesso!"); //incluir viagem na lista viagens.incluirViagem(viagem); } else { println("\nGaragem vazia"); } } else { println(""); println("Jornada ainda não foi iniciada"); print(""); } Console.ReadKey(); }
public Garagem pesquisarGaragem(Garagem garagem) { Garagem garAchado = new Garagem(); int i = garagens.IndexOf(garagem); if (i >= 0) { garAchado = garagens[i]; } else { garAchado = null; } return(garAchado); }
// 2. Cadastrar garagem // Cadastros de novos veículos e novas garagens só podem ser realizados com a jornada diária encerrada. static void cadastrarGaragem() { if (!garagens.JornadaAtiva) { println(""); println("Informe o nome da garagem: "); println(""); print(""); string nomeGaragem = Console.ReadLine(); println(""); println("Você inseriu a garagem " + nomeGaragem + ", confirmar?"); println(""); int opcao = recebeInt("1 - Sim | 2 - Não --> "); switch (opcao) { case 1: try { Garagem garagem = new Garagem(nomeGaragem); garagens.incluirGaragem(garagem); println(""); println("Garagem adicionada com sucesso!"); print(""); Console.ReadKey(); construaOMenu(); } catch { } break; case 2: print(""); break; } Console.ReadKey(); } else { println(""); println("Jornada já foi iniciada"); print(""); } Console.ReadKey(); }
static void Main(string[] args) { #region MENU Garagens garagens = new Garagens(); garagens.incluir(new Garagem(1, "Congonhas")); garagens.incluir(new Garagem(2, "Guarulhos")); garagens.incluirVeic(new Veiculo(1, "FROTA-01", 20)); garagens.incluirVeic(new Veiculo(2, "FROTA-02", 30)); garagens.incluirVeic(new Veiculo(3, "FROTA-03", 22)); garagens.incluirVeic(new Veiculo(4, "FROTA-04", 15)); garagens.incluirVeic(new Veiculo(5, "FROTA-05", 2)); garagens.incluirVeic(new Veiculo(6, "FROTA-06", 48)); garagens.incluirVeic(new Veiculo(7, "FROTA-07", 12)); garagens.incluirVeic(new Veiculo(8, "FROTA-08", 20)); int opc = 0; do { Console.Clear(); Console.WriteLine("----------------------------------------------"); Console.WriteLine("| MENU |"); Console.WriteLine("| 0.Sair |"); Console.WriteLine("| 1.Cadastrar veículo |"); Console.WriteLine("| 2.Cadastrar garagem |"); Console.WriteLine("| 3.Iniciar jornada |"); Console.WriteLine("| 4.Encerrar jornada |"); Console.WriteLine("| 5.Listar veículos em determinada garagem |"); Console.WriteLine("| 6.Listar viagens |"); Console.WriteLine("| 7.Listar garagens |"); Console.WriteLine("| 8.Adicionar pessoas |"); Console.WriteLine("----------------------------------------------"); Console.Write("Digite a sua opção: "); opc = int.Parse(Console.ReadLine()); #endregion switch (opc) { #region 1.Cadastrar veículo case 1: if (!garagens.jornadaAtiva) { Console.Clear(); Console.WriteLine("Digite a placa do veículo: "); string placa = Console.ReadLine(); Console.WriteLine("Digite a lotação máxima do veículo: "); int lotacao = int.Parse(Console.ReadLine()); garagens.incluirVeic(new Veiculo(garagens.novoIdVeiculo(), placa, lotacao)); Console.Clear(); Console.WriteLine("Veículo cadastrado com sucesso..."); } else { Console.Clear(); Console.WriteLine("Não é possível cadastrar veículos enquanto a jornada estiver ativa..."); } Console.ReadKey(); break; #endregion #region 2.Cadastrar garagem case 2: if (!garagens.jornadaAtiva) { Console.Clear(); Console.WriteLine("Digite o nome da garagem: "); string nomeG = Console.ReadLine(); garagens.incluir(new Garagem(garagens.novoIdGaragem(), nomeG)); Console.Clear(); Console.WriteLine("Garagem cadastrada com sucesso..."); } else { Console.Clear(); Console.WriteLine("Não é possível cadastrar garagens enquanto a jornada estiver ativa..."); } Console.ReadKey(); break; #endregion #region 3.Iniciar jornada case 3: if (garagens.jornadaAtiva) { Console.Clear(); Console.WriteLine("A jornada já está ativa!"); } else if (garagens.veiculos.Count <= 0) { Console.Clear(); Console.WriteLine("Não existem veiculos para iniciar a jornada!"); } else if (garagens.garagens.Count <= 0) { Console.Clear(); Console.WriteLine("Não existem garagens para iniciar a jornada!"); } else { Console.Clear(); garagens.iniciarJornada(); Console.WriteLine("A jornada foi iniciada!"); } Console.ReadKey(); break; #endregion #region 4.Encerrar Jornada case 4: if (!garagens.jornadaAtiva) { Console.Clear(); Console.WriteLine("A jornada já está encerrada!"); } else { Console.Clear(); garagens.encerrarJornada(); Console.WriteLine("A jornada foi encerrada!"); } Console.ReadKey(); break; #endregion #region 5.Listar veículos em determinada garagem case 5: Console.Clear(); if (garagens.jornadaAtiva) { Console.WriteLine("Selecione a garagem a qual deseja consultar os veículos: "); int pos = int.Parse(Console.ReadLine()); pos--; Console.Clear(); foreach (Veiculo v in garagens.garagens[pos].Veiculos) { Console.WriteLine("ID: " + v.Id + " | Placa: " + v.Placa + " | Lotação: " + v.Lotacao); } } else { Console.WriteLine("Não há veículos nas garagens pois a jornada está ativa"); } Console.ReadKey(); break; #endregion #region 6.Listar viagens case 6: Console.Clear(); Console.WriteLine("Viagens: "); foreach (Viagem v in garagens.viagens.viagens) { Console.WriteLine("\nID: " + v.ID1); Console.WriteLine("Garagem de origem: " + v.Origem.Local); Console.WriteLine("Garagem de destino: " + v.Destino.Local); Console.WriteLine("Veículo: " + v.Veiculo.Placa); } Console.ReadKey(); break; #endregion #region 7.Listar garagens case 7: Console.Clear(); Console.WriteLine("Garagens: "); foreach (Garagem g in garagens.garagens) { Console.WriteLine("\nID: " + g.Id); Console.WriteLine("Local: " + g.Local); Console.WriteLine("Fila: " + g.Pessoas.Count + " pessoas"); } Console.ReadKey(); break; #endregion #region 8.Adicionar pessoas case 8: Console.Clear(); if (garagens.jornadaAtiva) { Console.WriteLine("Digite o ID da garagem de origem: "); int idG = int.Parse(Console.ReadLine()); idG--; if (idG < garagens.garagens.Count) { Garagem gOrigem = garagens.garagens[idG]; gOrigem.addPessoas(); Console.Clear(); Console.WriteLine("Adicionada uma pessoa na fila"); if (gOrigem.Veiculos.Count > 0) { if (gOrigem.vaiViajar()) { //NOVO int indexGDestino = gOrigem.Id + 1; if (indexGDestino == garagens.garagens.Count()) { indexGDestino = 0; } Garagem gDestino = garagens.garagens[indexGDestino]; Veiculo vVeiculo = gOrigem.Veiculos.Peek(); for (int i = 0; i < gOrigem.Veiculos.First().Lotacao; i++) { gOrigem.removePessoas(); } garagens.executaViagem(gOrigem, gDestino, vVeiculo); while (gDestino.Veiculos.Count == 1 && vVeiculo.Lotacao >= gDestino.Pessoas.Count) { gOrigem = gDestino; indexGDestino = gOrigem.Id + 1; if (indexGDestino == garagens.garagens.Count()) { indexGDestino = 0; } gDestino = garagens.garagens[indexGDestino]; vVeiculo = gOrigem.Veiculos.Peek(); for (int i = 0; i < gOrigem.Veiculos.First().Lotacao; i++) { gOrigem.removePessoas(); } garagens.executaViagem(gOrigem, gDestino, vVeiculo); } } } else { Console.Clear(); Console.WriteLine("Não há veículos disponíveis"); } } else { Console.Clear(); Console.WriteLine("Não existe uma garagem com o ID informado!"); } } else { Console.WriteLine("Não é possível entrar na fila enquanto a jornada não estiver ativa!"); } Console.ReadKey(); break; #endregion } } while (opc != 0); }
public void incluir(Garagem garagem) { garagens.Add(garagem); }
public override bool Equals(object obj) { Garagem g = (Garagem)obj; return(this.Local.Equals(g.Local)); }