Este projeto faz parte de uma avaliação prática do curso Advanced Course in Programming da University of Helsinki, desenvolvido em Python 3. O objetivo é demonstrar domínio de programação orientada a objetos (OOP), gestão de ficheiros e estrutura modular.
O programa implementa uma calculadora de consola com histórico persistente.
Cada operação é guardada num ficheiro de texto (history.txt), permitindo consultar, contar e limpar os registos de cálculos realizados.
A calculadora suporta:
- Adição
- Subtração
- Multiplicação
- Divisão
Responsável por representar uma operação individual. Recebe dois operandos e um operador, calcula automaticamente o resultado e disponibiliza-o num formato compatível com o ficheiro de histórico.
Métodos principais:
__calculate()— executa a operação aritméticato_file_format()— devolve a linha formatada para guardar no ficheiroresult()— devolve o resultado do cálculo
Gere o ficheiro de histórico history.txt.
Funções principais:
add(calculation)— adiciona um novo cálculoread()— lê todas as operações gravadascount()— devolve o número total de registosclear()— apaga todo o conteúdo do histórico
Controla a interface de utilizador via consola, apresentando o menu de comandos e interagindo com as outras classes.
Comandos disponíveis:
0 - terminar programa
1 - adição (+)
2 - subtração (-)
3 - multiplicação (*)
4 - divisão (/)
5 - mostrar histórico
6 - limpar histórico
7 - mostrar comandos
Executar o ficheiro principal:
python calculator.pySerá criado automaticamente o ficheiro history.txt na primeira execução.
Exemplo:
Calculator
0 calculations in history
Commands:
0 - end program
1 - calculate addition (+)
...
Select command: 1
Input number: 5
Input number: 3
Result: 8.0
- Encapsulamento e métodos privados
- Criação e gestão de ficheiros
- Manipulação de exceções (
FileExistsError) - Utilização de
match/case - Estrutura modular e reutilizável
Advanced Course in Programming Department of Computer Science University of Helsinki https://www.mooc.fi/en/
📄 Autor: André Elias Perry da Câmara 📅 Ano letivo: 2025 🧠 Linguagem: Python 3.12