/home/futexcel/public_html/umacoisa.html
<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documentação - Sistema de Gestão de Veículos</title>
    <style>
        @page {
            size: A4;
            margin: 2cm;
        }
        
        body {
            font-family: 'Times New Roman', Times, serif;
            font-size: 12pt;
            line-height: 1.5;
            color: #000;
            max-width: 21cm;
            margin: 0 auto;
            padding: 20px;
            background: white;
        }
        
        .header {
            text-align: center;
            margin-bottom: 30px;
            border-bottom: 2px solid #000;
            padding-bottom: 15px;
        }
        
        .header h1 {
            font-size: 16pt;
            margin: 10px 0;
            font-weight: bold;
        }
        
        .header p {
            font-size: 12pt;
            margin: 5px 0;
        }
        
        h2 {
            font-size: 14pt;
            font-weight: bold;
            margin-top: 25px;
            margin-bottom: 12px;
            border-bottom: 1px solid #333;
            padding-bottom: 5px;
        }
        
        h3 {
            font-size: 12pt;
            font-weight: bold;
            margin-top: 15px;
            margin-bottom: 8px;
        }
        
        p {
            text-align: justify;
            margin-bottom: 10px;
        }
        
        .diagram {
            background: #f9f9f9;
            border: 1px solid #333;
            padding: 20px;
            margin: 20px 0;
            font-family: 'Courier New', monospace;
            font-size: 10pt;
            line-height: 1.4;
        }
        
        .class-box {
            border: 1px solid #000;
            margin: 10px 0;
            padding: 10px;
            background: white;
        }
        
        .class-name {
            font-weight: bold;
            text-align: center;
            border-bottom: 1px solid #000;
            padding-bottom: 5px;
            margin-bottom: 5px;
        }
        
        .abstract {
            font-style: italic;
        }
        
        ul, ol {
            margin-left: 25px;
        }
        
        li {
            margin-bottom: 8px;
        }
        
        .code {
            background: #f5f5f5;
            border-left: 3px solid #333;
            padding: 10px;
            font-family: 'Courier New', monospace;
            font-size: 11pt;
            margin: 10px 0;
        }
        
        .footer {
            margin-top: 30px;
            padding-top: 15px;
            border-top: 1px solid #333;
            text-align: center;
            font-size: 10pt;
        }
        
        @media print {
            body {
                padding: 0;
            }
            .page-break {
                page-break-after: always;
            }
        }
        
        .btn-print {
            position: fixed;
            top: 20px;
            right: 20px;
            padding: 12px 24px;
            background: #2c3e50;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-size: 14pt;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
        }
        
        .btn-print:hover {
            background: #1a252f;
        }
        
        @media print {
            .btn-print {
                display: none;
            }
        }
    </style>
</head>
<body>
    <button class="btn-print" onclick="window.print()">🖨️ Imprimir PDF</button>

    <div class="header">
        <h1>SISTEMA DE GESTÃO DE VEÍCULOS</h1>
        <p>Universidade Católica de Moçambique</p>
        <p>Disciplina: Programação Orientada a Objetos - 2º Ano</p>
        <p> Djoy de SA laurentino Machado </p>
    </div>

    <h2>1. DESCRIÇÃO DO SISTEMA</h2>
    
    <h3>1.1 Visão Geral</h3>
    <p>O Sistema de Gestão de Veículos é uma aplicação desenvolvida em Java que permite gerenciar um inventário de veículos (carros e motocicletas). O sistema implementa os principais conceitos de Programação Orientada a Objetos, incluindo herança, polimorfismo, encapsulamento e abstração.</p>
    
    <h3>1.2 Funcionalidades Principais</h3>
    <ul>
        <li><strong>Adicionar Veículos:</strong> Cadastro de carros e motocicletas com informações específicas de cada tipo.</li>
        <li><strong>Listar Veículos:</strong> Visualização de todos os veículos cadastrados no sistema.</li>
        <li><strong>Pesquisar por ID:</strong> Busca rápida de veículos através do identificador único.</li>
        <li><strong>Pesquisar por Marca:</strong> Filtrar veículos pela marca desejada.</li>
        <li><strong>Remover Veículos:</strong> Exclusão de veículos do sistema com confirmação.</li>
        <li><strong>Estatísticas:</strong> Visualização do total de veículos e valor total do inventário.</li>
        <li><strong>Cálculo de Impostos:</strong> Cálculo automático de impostos anuais baseado no tipo de veículo.</li>
    </ul>
    
    <h3>1.3 Características Técnicas</h3>
    <p>O sistema utiliza estruturas de dados eficientes para gerenciamento de informações. A classe <strong>GestorVeiculos</strong> implementa um ArrayList para armazenamento sequencial e um HashMap para acesso rápido por ID. Cada veículo possui validação de dados e métodos específicos de acordo com seu tipo.</p>

    <div class="page-break"></div>

    <h2>2. DIAGRAMA DE CLASSES</h2>
    
    <div class="diagram">
        <div class="class-box">
            <div class="class-name abstract">&lt;&lt;abstract&gt;&gt; Veiculo</div>
            <div>- id: int</div>
            <div>- marca: String</div>
            <div>- modelo: String</div>
            <div>- ano: int</div>
            <div>- preco: double</div>
            <div>- matricula: String</div>
            <div style="border-top: 1px solid #000; margin-top: 5px; padding-top: 5px;">
                + getTipo(): String<br>
                + calcularImposto(): double<br>
                + exibirDetalhes(): void<br>
                + validar(): boolean
            </div>
        </div>

        <div style="text-align: center; margin: 15px 0;">
            ↓ extends&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;↓ extends
        </div>

        <div style="display: flex; justify-content: space-around;">
            <div class="class-box" style="width: 45%;">
                <div class="class-name">Carro</div>
                <div>- numeroPortas: int</div>
                <div>- tipoCombustivel: String</div>
                <div>- temArCondicionado: boolean</div>
                <div style="border-top: 1px solid #000; margin-top: 5px; padding-top: 5px;">
                    + calcularImposto(): double
                </div>
            </div>

            <div class="class-box" style="width: 45%;">
                <div class="class-name">Motocicleta</div>
                <div>- cilindrada: int</div>
                <div>- tipoMotor: String</div>
                <div>- temBauLateral: boolean</div>
                <div style="border-top: 1px solid #000; margin-top: 5px; padding-top: 5px;">
                    + calcularImposto(): double
                </div>
            </div>
        </div>

        <div class="class-box" style="margin-top: 20px;">
            <div class="class-name">GestorVeiculos</div>
            <div>- veiculos: ArrayList&lt;Veiculo&gt;</div>
            <div>- mapaVeiculos: HashMap&lt;Integer, Veiculo&gt;</div>
            <div style="border-top: 1px solid #000; margin-top: 5px; padding-top: 5px;">
                + adicionar(Veiculo): void<br>
                + listarTodos(): void<br>
                + pesquisarPorId(int): Veiculo<br>
                + pesquisarPorMarca(String): ArrayList<br>
                + remover(int): void<br>
                + calcularValorTotal(): double
            </div>
        </div>
    </div>

    <h2>3. INSTRUÇÕES DE USO</h2>
    
    <h3>3.1 Compilação e Execução</h3>
    <p>Para compilar e executar o sistema, utilize os seguintes comandos no terminal:</p>
    
    <div class="code">
javac gestao/veiculos/*.java<br>
java gestao.veiculos.Main
    </div>
    
    <h3>3.2 Operações do Sistema</h3>
    
    <p><strong>Adicionar um Veículo:</strong> Selecione a opção 1 no menu principal. Escolha o tipo de veículo (Carro ou Motocicleta) e preencha as informações solicitadas. Para carros, informe número de portas, tipo de combustível e se possui ar condicionado. Para motocicletas, informe cilindrada, tipo de motor e se possui baú lateral.</p>
    
    <p><strong>Listar Todos os Veículos:</strong> Selecione a opção 2 para visualizar todos os veículos cadastrados com suas informações resumidas.</p>
    
    <p><strong>Pesquisar por ID:</strong> Use a opção 3 e informe o número de identificação do veículo para visualizar seus detalhes completos, incluindo o cálculo do imposto anual.</p>
    
    <p><strong>Pesquisar por Marca:</strong> Selecione a opção 4 e digite a marca desejada para listar todos os veículos daquela marca.</p>
    
    <p><strong>Remover Veículo:</strong> Na opção 5, informe o ID do veículo a ser removido e confirme a operação.</p>
    
    <p><strong>Visualizar Estatísticas:</strong> A opção 6 exibe o total de veículos cadastrados e o valor total do inventário em Meticais (MT).</p>
    
    <h3>3.3 Validações Implementadas</h3>
    <ul>
        <li>Ano de fabricação entre 1900 e 2025</li>
        <li>Preços positivos e matrícula obrigatória</li>
        <li>Número de portas para carros: 2 a 5</li>
        <li>Cilindrada para motocicletas: 1 a 2000 cc</li>
    </ul>

    <div class="footer">
        <p><strong>Sistema de Gestão de Veículos</strong> | Versão 1.0 | 2025</p>
        <p>Desenvolvido por Djoy MAchado para fins acadêmicos - UCM</p>
    </div>
</body>
</html>