Capítulo 20: Projeto Integrador Final - FastLog TMS (Fleet & Inventory System)
🎯 Objetivo da Aula
Chegou o momento de consolidar todos os conhecimentos adquiridos ao longo dos 20 capítulos do curso. Você não é mais um iniciante que digita comandos soltos: agora você é um Desenvolvedor de Algoritmos Estruturados.
Nesta aula final, você desenvolverá o Projeto Integrador FastLog TMS (Transportation Management System), um software completo em modo console que integra:
- Menus de navegação contínuos com
repita-ateeescolha-caso. - Estruturas de dados com vetores paralelos para controle de frota e quilometragem.
- Procedimentos modulares para entrada de dados e exibição de relatórios.
- Funções matemáticas para cálculo de médias estatísticas e faturamento.
- Algoritmos de busca linear com flags de validação.
Este capítulo quebra a estrutura dos anteriores de propósito: por ser o Projeto Integrador Final, ele não tem as seções “💡 Checkpoint de Lógica” nem “🔥 Desafio de Fixação” — elas são substituídas pelo “🛠️ Roteiro de Testes e Validação do Projeto” e pela “🎓 Mensagem de Encerramento” ao final da aula. Não é uma omissão editorial: o próprio roteiro de testes cumpre o papel de checkpoint final do curso.
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.alg): Baixar Capitulo_20.alg (abra diretamente no VisuAlg 3.0)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_20.zip
🏢 O Cenário Prático (Seu Desafio Final)
Situação: A diretoria da FastLog aprovou o projeto de modernização do centro de controle operacional. O software precisa gerenciar a frota titular de 5 caminhões e motoristas, oferecendo aos operadores da torre de controle:
- Módulo 1 (Cadastro de Frota): Registro do Nome do Motorista, Placa do Veículo e Quilometragem Rodada no Mês.
- Módulo 2 (Relatório de Performance): Listagem de todos os veículos, cálculo da Quilometragem Total da frota e da Média por caminhão.
- Módulo 3 (Auditoria do Campeão): Identificação automática do motorista que mais produziu no mês.
- Módulo 4 (Localizador Instantâneo): Busca de motorista por nome com exibição da placa e KM.
Missão: Programar o sistema completo seguindo a Arquitetura em 3 Camadas e entregá-lo 100% funcional.
🧠 Fundamentos: A Arquitetura do Sistema
graph TD
UI["1. CAMADA DE APRESENTAÇÃO (UI / Menu Principal)<br/>repita ... ate (opcao = 0)"] --> Router{"escolha opcao"}
Router -->|1| ModCad["Módulo 1: CadastrarFrota()<br/>(Procedimento)"]
Router -->|2| ModRel["Módulo 2: EmitirRelatorioGeral()<br/>(Procedimento + Função Media)"]
Router -->|3| ModAud["Módulo 3: IdentificarCampeao()<br/>(Função Maior Elemento)"]
Router -->|4| ModBus["Módulo 4: PesquisarPorNome()<br/>(Busca Linear com Flag)"]
ModCad --> DB[(Camada de Dados em RAM:<br/>Vetores Nomes, Placas e KM)]
ModRel --> DB
ModAud --> DB
ModBus --> DB
style UI fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
style Router fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
style DB fill:#217346,stroke:#fff,stroke-width:2px,color:#fff📖 O Código-Fonte Completo do Projeto Integrador
🛠️ Prática de Apresentação e Validação do Projeto
Roteiro de Testes Obrigatório:
- Passo 1: Ao iniciar, tente acessar a opção
[2]. O sistema deve emitir o alerta defensivo de base vazia sem quebrar a execução. - Passo 2: Escolha a opção
[1]e cadastre 5 motoristas com nomes, placas e quilometragens variadas (ex: 3.500 km, 6.200 km, 4.100 km, 7.800 km e 5.000 km). - Passo 3: Escolha a opção
[2]e confira se a soma total (26.600 km) e a média (5.320 km) aparecem alinhadas. - Passo 4: Escolha a opção
[3]e valide se o motorista de 7.800 km é apontado como campeão. - Passo 5: Escolha a opção
[4], teste uma busca existente e uma inexistente. - Passo 6: Digite
0para encerrar com sucesso.
📤 Instruções de Entrega Final (Microsoft Teams)
- Salve o arquivo com o nome:
PROJETO_FINAL_SeuNome_SeuSobrenome.alg. - No Microsoft Teams, envie na tarefa “VisuAlg Cap 20 - Projeto Integrador Final”.
- Clique em Entregar (Turn In).
🎓 Mensagem de Encerramento e Próximos Passos
Parabéns! Você concluiu com louvor o curso de Lógica de Programação Estruturada com VisuAlg 3.0.
Você agora possui a base conceitual universal da ciência da computação:
- Variáveis e Tipagem Estática
- Controle de Fluxo e Álgebra Booleana
- Iterações e Algoritmos de Repetição
- Estruturas de Dados Lineares (Vetores) e Bidimensionais (Matrizes)
- Modularização e Arquitetura de Software
Você está 100% preparado para dar o próximo passo rumo a linguagens industriais como Python, C#, Java, JavaScript e SQL!
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.
- Segundo o Cenário Prático, quais são os quatro módulos que o sistema FastLog TMS deve oferecer aos operadores da torre de controle?
- Quantos vetores globais paralelos são declarados no projeto integrador, e quais são os seus nomes?
- No código-fonte, o que calcula a função
SomarKmTotal(), o que calcula a funçãoCalcularMediaKm(), e de que forma uma delas utiliza a outra? - Qual procedimento é chamado no início de cada módulo para desenhar o cabeçalho padronizado do sistema, e qual parâmetro ele recebe?
- No procedimento
CadastrarVeiculos(), qual estrutura de repetição garante que a quilometragem digitada nunca seja negativa? - No procedimento
IdentificarMotoristaDestaque(), qual é a lógica usada para encontrar o motorista com a maior quilometragem? - No procedimento
PesquisarMotorista(), qual técnica de controle é usada para saber se o motorista buscado foi ou não encontrado ao final da varredura? - Segundo o Roteiro de Testes Obrigatório, o que deve acontecer se o usuário tentar acessar a opção
[2](Relatório) antes de cadastrar qualquer veículo? - Segundo o Roteiro de Testes Obrigatório, com as quilometragens de exemplo (3.500, 6.200, 4.100, 7.800 e 5.000 km), qual deve ser a soma total e a média exibidas, e qual motorista deve ser apontado como campeão?
- Segundo a Mensagem de Encerramento, quais cinco áreas de base conceitual da ciência da computação o aluno consolidou ao longo do curso, e quais linguagens industriais são citadas como próximo passo?