Contents

Construir um sistema simples de estacionamento de veículos usando Java

Um sistema de estacionamento optimizado constitui uma solução prática, segura e ecologicamente consciente que alivia significativamente o desafio da gestão do tráfego. Um sistema de estacionamento planeado de forma eficiente tem o potencial de minimizar o movimento de veículos, otimizar a utilização da área, gerar receitas e proporcionar uma melhor experiência ao utilizador.

Java oferece uma oportunidade para construir um sistema prático de gestão de estacionamento que pode ser posteriormente melhorado através da incorporação de uma base de dados, da implementação de verificações de validação e da criação de uma interface gráfica de utilizador adequada à utilização diária.

Como construir um sistema de estacionamento usando Java

O repositório acima mencionado no GitHub contém o código fonte necessário para construir um sistema de gestão de estacionamento utilizando Java.

A utilização de ArrayList, uma matriz versátil e redimensionável, é imperativa para este empreendimento. A capacidade de manipular elementos por meio de índices, realizar operações CRUD e outras funcionalidades faz dela a escolha ideal. Para empregar a classe ArrayList, é preciso importá-la da biblioteca padrão do Java. Além disso, para operações de entrada e saída, a classe Scanner também deve ser importada. A classe principal, VehicleParkingSystem, serve como entidade central para a implementação.

Especifique o contexto ou a finalidade para a qual estas variáveis estáticas estão a ser definidas num programa. Esta informação ajudar-me-á a dar uma resposta mais precisa e adequada.

O método main() é uma função primária de um programa Java que inicia a execução do código. Neste contexto particular, o método main() deve ser definido para pedir ao utilizador informações sobre o número total de lugares de estacionamento, armazenar o valor numa variável chamada totalSlots e definir a contagem inicial de lugares de estacionamento disponíveis para corresponder ao valor totalSlots . Isto pode ser conseguido através da criação de uma instância da classe Scanner

para obter dados do utilizador e utilizando instruções condicionais para controlar o fluxo do programa com base no facto de o número total de lugares de estacionamento exceder ou não os lugares disponíveis.

 import java.util.ArrayList;
import java.util.Scanner;

public class VehicleParkingSystem {

    static int totalSlots, availableSlots;
    static ArrayList<String> parkedCars = new ArrayList<String>();

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the total number of parking slots in the facility:");
        totalSlots = sc.nextInt();
        availableSlots = totalSlots;
 

Utilizar um ciclo infinito com uma instrução while para solicitar ao utilizador a ação pretendida, que pode incluir estacionar um veículo, retirar um veículo, ver os veículos estacionados ou sair do programa. Com base na seleção feita pelo utilizador, invoque o método correspondente. Se o utilizador optar por concluir o programa, utilize o método System.exit(0) para terminar imediatamente o programa.

         while (true) {
            System.out.println("\n What would you like to do?");
            System.out.println("Park a car");
            System.out.println("Remove a car");
            System.out.println("View parked cars");
            System.out.println("Exit");
            int choice = sc.nextInt();

            switch (choice) {
                case 1:
                    parkCar();
                    break;
                case 2:
                    removeCar();
                    break;
                case 3:
                    viewParkedCars();
                    break;
                case 4:
                    System.exit(0);
                default:
                    System.out.println("Invalid choice. Please try again.");
            }
        }
    } 

Declare um método público estático chamado “parkCar” sem qualquer tipo de retorno. Se todos os lugares de estacionamento estiverem ocupados, notifique o utilizador e saia do método. Caso contrário, solicite a entrada do número da placa do veículo usando o método “add” dentro de um ArrayList. Em seguida, subtrair um ao número total de lugares de estacionamento disponíveis e apresentar o facto de o veículo ter sido estacionado juntamente com o número atualizado de lugares de estacionamento restantes.

     public static void parkCar() {
        if (availableSlots == 0) {
            System.out.println("Sorry, there are no available parking slots.");
            return;
        }

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the license plate number of the car:");
        String licensePlate = sc.nextLine();
        parkedCars.add(licensePlate);
        availableSlots--;
        System.out.println("Car is parked successfully. The current available slots are: " \\+ availableSlots);
    } 

O método “removeCar()” pode ser definido da seguinte forma: “RemoveCar(): voidSe o número atual de lugares de estacionamento disponíveis e o número total de lugares de estacionamento coincidirem, mostrar ao utilizador que não há carros estacionados e sair do programa. Caso contrário, o utilizador deve indicar o número da matrícula do seu veículo e verificar a sua presença na ArrayList utilizando a função ‘contains()’.

Se a remoção for bem sucedida, o

     public static void removeCar() {
        if (availableSlots == totalSlots) {
            System.out.println("There are no parked cars.");
            return;
        }

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the license plate number of the car to be removed:");
        String licensePlate = sc.nextLine();

        if (parkedCars.contains(licensePlate)) {
            parkedCars.remove(licensePlate);
            availableSlots\\+\\+;
            System.out.println("Car removed successfully. The current available slots are: " \\+ availableSlots);
        } else {
            System.out.println("The car is not parked here.");
        }
    } 

Por favor, esclareça o que precisa que eu faça com o texto dado.

     public static void viewParkedCars() {
        if (availableSlots == totalSlots) {
            System.out.println("There are no parked cars.");
            return;
        }

        System.out.println("Parked cars:");

        for (String licensePlate : parkedCars) {
            System.out.println(licensePlate);
        }
    }
} 

Quando todos os componentes estiverem integrados, o sistema de gestão de estacionamento está preparado para funcionar.

Exemplo de saída do programa de estacionamento

para estacionar um veículo, retirá-lo do parque, ver uma lista dos veículos atualmente estacionados ou terminar o programa. Se o utilizador selecionar a primeira opção, “Estacionar Carro”, é-lhe pedido que forneça o número da matrícula do veículo em questão, o que subsequentemente reduz a disponibilidade de um lugar de estacionamento.

Ao selecionar a alternativa três, é possível perceber a matrícula do automóvel que foi simplesmente estacionado. Ao optar pela alternativa dois e introduzir o número da matrícula, o software elimina o veículo e os lugares acessíveis aumentam em um.

/pt/images/output-of-vehicle-parking-management-system.jpg

Outros sistemas de gestão que pode construir

Através da utilização de sistemas de gestão baseados em Java, desenvolve-se proficiência em múltiplas facetas da criação de software, administração de bases de dados, cibersegurança e interoperabilidade de sistemas. Entre os projectos disponíveis para exploração está um sistema de controlo de inventário que permite compreender a estruturação de dados, a inserção, a recuperação, a monitorização de stocks e o cumprimento de encomendas.

Um sistema de gestão de bibliotecas pode ser utilizado com o objetivo de se educar na arte de organizar dados, bem como implementar protocolos de autenticação de utilizadores. Da mesma forma, os sistemas de gestão de funcionários ou estudantes partilham muitas semelhanças e podem servir como um meio eficaz de aperfeiçoar a compreensão do controlo de acesso baseado em funções e das técnicas de monitorização da assiduidade.