Este projeto surgiu da necessidade de aprimorar a segurança na comunicação entre computadores. Para abordar este problema, foi utilizado o conceito de fila, uma estrutura de dados que permite um tratamento eficiente das informações.
O desenvolvimento foi realizado em C++ devido à sua capacidade de criar códigos limpos, modularizados e organizados. O ambiente de desenvolvimento utilizado foi o Visual Studio 2019 no sistema operacional Windows 10.
Para compilar o programa, siga os passos abaixo:
- Abra o terminal na pasta
tp. - Digite
makee pressione Enter para compilar o programa. - Após a compilação, navegue até a pasta
bin. - Execute o arquivo
run.out. - No terminal aberto pelo executável, insira o caminho do arquivo de entrada.
Para resolver o problema proposto, foram criadas duas classes principais: Node (Nodo da fila) e Queue (Fila de nodos).
A classe Node possui as seguintes funções:
Node(): Construtor da classe, pode utilizar dados padrão ou especificados na chamada.getContent(): Retorna o conteúdo do nodo atual.getNext(): Retorna o próximo nodo.setNext(Node* next): Define o próximo nodo na fila.edit(ContentType content): Edita o conteúdo do nodo atual.hasNext(): Verifica se existe um nodo subsequente.connections(): Verifica quantos nodos existem após o atual.isEmpty(): Verifica se o nodo possui algum dado ou está vazio.
A classe Queue possui as seguintes funções:
Queue(): Construtor da classe, pode utilizar dados padrão ou especificados na chamada.getNode(): Retorna o primeiro nodo da fila.push(Node* newNode): Adiciona um novo nodo à fila, respeitando a política FIFO (First In, First Out).pop(): Remove o primeiro nodo da fila.setOnTop(Node* node): Coloca o nodo especificado na primeira posição da fila.print(): Imprime na tela todos os elementos da fila, na ordem em que foram adicionados.
O resultado é um sistema que atende às especificações e cumpre o objetivo proposto. Não foram desenvolvidas lógicas adicionais além do escopo inicial, como tratamento de erros de entrada.
- Material de aula (PDF e vídeos)
- Stack Overflow
- cplusplus.com
- TutorialsPoint
- cppreference.com
- GeeksforGeeks
- Wikipedia
- LearnCpp