Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC00669 · T. Desenv. Software
Versão · Aluno

Mini-Projecto · App C/C++ com structs e ficheiros

CLI completa com persistência e gestão de memória
⏱ Duração estimada: 16 horas (≈ 10 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma aplicação CLI em C (ou C++) com structs/classes, ficheiros para persistência, gestão de memória correcta e múltiplos ficheiros (modular). Cenários:

Requisitos

Funcionais

  1. Linguagem: C ou C++ (escolher).
  2. Mínimo 1 struct (C) ou classe (C++) bem definida.
  3. CRUD: criar, listar, actualizar, apagar.
  4. Persistência: ficheiro de texto ou binário.
  5. CLI com menu interactivo.
  6. Validação de inputs.
  7. Procura por chave (nome, id, etc.).
  8. Mínimo 100 entradas suportadas (alocação dinâmica).

Não-funcionais

  1. Sem memory leaksvalgrind clean (ou AddressSanitizer).
  2. Modularização: pelo menos 3 ficheiros (.c/.cpp + .h).
  3. Makefile (ou CMakeLists.txt para C++).
  4. README com setup, comandos, screenshots.
  5. GitHub com commits regulares.
  6. Apresentação com demo.

Fases

Fase 1 · Design (2h)

Fase 2 · Struct + funções CRUD (4h)

Fase 3 · CLI menu (3h)

Fase 4 · Persistência (3h)

Fase 5 · Memória dinâmica (2h)

Fase 6 · Modularização (1h)

Fase 7 · README + GitHub (1h)

Critérios de avaliação

Item Peso
Design + modelagem 10%
CRUD completo 20%
CLI usável 10%
Persistência 15%
Memória dinâmica + sem leaks 15%
Modularização + Makefile 10%
Validação + robustez 5%
GitHub workflow 5%
README 5%
Apresentação 5%

Reflexão

Em meia página: quantas vezes apanhaste segfaults e como debug-aste? Que conceito de pointers te custou mais? Se voltasses, escolherias C ou C++? Sentes que percebes melhor como o computador funciona depois desta UC? Linguagem next — Rust, Go, ou ficas em C?