Exemplo n.º 1
0
 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());
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public Viagem(Veiculo veiculo, Garagem origem, Garagem destino)
 {
     this.id      = Incrementar();
     this.Origem  = origem;
     this.Destino = destino;
     this.veiculo = veiculo;
 }
Exemplo n.º 4
0
        public void incluirGaragem(Garagem garagem)

        {
            if (!listaDeGaragens.Contains(garagem))
            {
                listaDeGaragens.Add(garagem);
            }
        }
Exemplo n.º 5
0
        // 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();
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        // 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();
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
 public void incluir(Garagem garagem)
 {
     garagens.Add(garagem);
 }
Exemplo n.º 10
0
        public override bool Equals(object obj)
        {
            Garagem g = (Garagem)obj;

            return(this.Local.Equals(g.Local));
        }