Sistema de Cadastro de Alunos em JavaScript (POO)

Sistema de cadastro de alunos** usando JavaScript com orientação a objetos. Essa versão pode ser executada diretamente no navegador ou no Node.js.


🟨 Sistema de Cadastro de Alunos em JavaScript (POO)


🎯 Objetivo

Criar uma aplicação simples em JavaScript que permita:

  • Cadastrar os dados de um aluno

  • Cadastrar a média de notas

  • Exibir todas as informações no console


📦 Etapa 1: Criando a classe Aluno

class Aluno {
  constructor() {
    this.nome = "";
    this.idade = 0;
    this.matricula = 0;
    this.media = 0.0;
  }
 
  cadastrarDados(nome, idade, matricula) {
    this.nome = nome;
    this.idade = idade;
    this.matricula = matricula;
  }
 
  cadastrarMediaNotas(media) {
    this.media = media;
  }
 
  exibirInformacoes() {
    console.log("=== DADOS DO ALUNO ===");
    console.log("Nome:", this.nome);
    console.log("Idade:", this.idade);
    console.log("Matrícula:", this.matricula);
    console.log("Média de notas:", this.media);
  }
}

📦 Etapa 2: Criando o script principal

👉 Em um ambiente Node.js (linha de comando)

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});
 
const aluno = new Aluno();
 
readline.question("Digite o nome do aluno: ", (nome) => {
  readline.question("Digite a idade do aluno: ", (idade) => {
    readline.question("Digite a matrícula do aluno: ", (matricula) => {
      aluno.cadastrarDados(nome, parseInt(idade), parseInt(matricula));
 
      readline.question("Digite a média de notas: ", (media) => {
        aluno.cadastrarMediaNotas(parseFloat(media));
 
        aluno.exibirInformacoes();
        readline.close();
      });
    });
  });
});

👉 Em um ambiente navegador (HTML + JS)

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <title>Cadastro de Aluno</title>
</head>
<body>
  <h2>Abra o console para ver o resultado (F12)</h2>
  <script>
    class Aluno {
      constructor() {
        this.nome = "";
        this.idade = 0;
        this.matricula = 0;
        this.media = 0.0;
      }
 
      cadastrarDados(nome, idade, matricula) {
        this.nome = nome;
        this.idade = idade;
        this.matricula = matricula;
      }
 
      cadastrarMediaNotas(media) {
        this.media = media;
      }
 
      exibirInformacoes() {
        console.log("=== DADOS DO ALUNO ===");
        console.log("Nome:", this.nome);
        console.log("Idade:", this.idade);
        console.log("Matrícula:", this.matricula);
        console.log("Média de notas:", this.media);
      }
    }
 
    const aluno = new Aluno();
 
    const nome = prompt("Digite o nome do aluno:");
    const idade = parseInt(prompt("Digite a idade do aluno:"));
    const matricula = parseInt(prompt("Digite o número de matrícula:"));
    const media = parseFloat(prompt("Digite a média de notas:"));
 
    aluno.cadastrarDados(nome, idade, matricula);
    aluno.cadastrarMediaNotas(media);
    aluno.exibirInformacoes();
  </script>
</body>
</html>

🧠 O que os alunos aprendem com esse exemplo?

ConceitoAplicação
Classes e objetosclass, constructor(), new Aluno()
Métodos de instânciacadastrarDados(), exibirInformacoes()
Tipagem dinâmicaConversão com parseInt, parseFloat
Entrada interativaprompt() no navegador, readline no Node.js
Console para debugconsole.log()

📊 Fluxograma (igual para todas as linguagens)

@startuml
start
:Criar objeto aluno (Aluno);
:Capturar nome, idade, matrícula;
:Chamar aluno.cadastrarDados();
:Capturar média;
:Chamar aluno.cadastrarMediaNotas();
:Chamar aluno.exibirInformacoes();
stop
@enduml

NODEJS

Projeto de cadastro de aluno em Node.js (linha de comando) com estrutura profissional e simples para uso em sala de aula. A ideia é separar a lógica da aplicação em arquivos modulares, algo próximo ao que se faz em projetos maiores.


📁 Estrutura de Arquivos

cadastro-aluno-node/
├── package.json
├── index.js            # ponto de entrada do app
└── src/
    ├── aluno.js        # classe Aluno (POO)
    └── utils.js        # funções auxiliares (opcional)

📦 Etapa 1: Criar o projeto com Node.js

No terminal, execute:

mkdir cadastro-aluno-node
cd cadastro-aluno-node
npm init -y

📦 Etapa 2: Criar os arquivos

src/aluno.js – Classe Aluno

class Aluno {
  constructor() {
    this.nome = "";
    this.idade = 0;
    this.matricula = 0;
    this.media = 0.0;
  }
 
  cadastrarDados(nome, idade, matricula) {
    this.nome = nome;
    this.idade = idade;
    this.matricula = matricula;
  }
 
  cadastrarMediaNotas(media) {
    this.media = media;
  }
 
  exibirInformacoes() {
    console.log("\n=== DADOS DO ALUNO ===");
    console.log("Nome:", this.nome);
    console.log("Idade:", this.idade);
    console.log("Matrícula:", this.matricula);
    console.log("Média de notas:", this.media);
  }
}
 
module.exports = Aluno;

index.js – Ponto de entrada

const readline = require("readline");
const Aluno = require("./src/aluno");
 
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
 
const aluno = new Aluno();
 
rl.question("Digite o nome do aluno: ", (nome) => {
  rl.question("Digite a idade do aluno: ", (idade) => {
    rl.question("Digite a matrícula do aluno: ", (matricula) => {
      aluno.cadastrarDados(nome, parseInt(idade), parseInt(matricula));
 
      rl.question("Digite a média de notas: ", (media) => {
        aluno.cadastrarMediaNotas(parseFloat(media));
        aluno.exibirInformacoes();
 
        rl.close();
      });
    });
  });
});

(Opcional) src/utils.js – Funções auxiliares

Se quiser deixar o projeto mais modular, pode mover validações ou formatações para esse arquivo.


▶️ Executar o Projeto

No terminal, rode:

node index.js

📌 O que os alunos aprendem com isso?

ConceitoAplicação prática
Módulos Node.jsrequire, module.exports
Orientação a ObjetosClasse Aluno
Entrada de dadosreadline
Tipagem e parseamentoparseInt, parseFloat
Organização em arquivosSeparação em src/