Logo Passei Direto
Buscar

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE LUEJI A'NKONDE – ULAN 
 ◊ Lunda Norte ◊ Lunda Sul ◊ 
Instituto Politécnico de Saurimo 
Departamento de Ensino e Investigação de Engenharia 
 
================================================== 
 
Tema: Desenvolvimento de Game Quiz 
 
 
Este relatório descreve o desenvolvimento de Um jogo Na cadeira de Programação 4 
 
 
Autor: 
Dedaldino Samu Kikas Sachizembo 
 
 
 Orientador: 
 ________________________ 
 Mest. Euclides Gaspar 
 
 
 ================================================== 
 
Saurimo, janeiro de 2026 
 
UNIVERSIDADE LUEJI A'NKONDE – ULAN 
 ◊ Lunda Norte ◊ Lunda Sul ◊ 
Instituto Politécnico de Saurimo 
Departamento de Ensino e Investigação de Engenharia 
 
================================================== 
 
 
Tema: Desenvolvimento de Game Quiz 
 
 
Este relatório descreve o desenvolvimento de Um jogo Na cadeira de Programação 4 
 
 
 
 
 
 
Autor: 
Dedaldino Samu Kicas Sachizembo 
 
 
 
 
 ================================================== 
 
Saurimo, janeiro de 2026 
 
 
Sumário 
3.1 Programação Orientada a Objetos (POO) ............................................................................................. 7 
3.1.1 Encapsulamento ............................................................................................................................. 7 
3.1.2 Herança .......................................................................................................................................... 7 
3.1.3 Polimorfismo ................................................................................................................................. 7 
3.1.4 Abstração ....................................................................................................................................... 7 
3.2 Linguagem Java ................................................................................................................................ 7 
3.3 Java Swing ........................................................................................................................................ 8 
4. Metodologia ............................................................................................................................................ 8 
4.1 Ferramentas Utilizadas...................................................................................................................... 8 
4.2 Processo de Desenvolvimento .......................................................................................................... 8 
5. Descrição do Sistema .............................................................................................................................. 9 
5.1 Visão Geral ....................................................................................................................................... 9 
5.2 Regras do Jogo .................................................................................................................................. 9 
5.3 Classificação de Desempenho ........................................................................................................... 9 
6. Arquitetura e Estrutura do Projeto .......................................................................................................... 9 
6.1 Estrutura de Diretórios .................................................................................................................... 10 
6.2 Diagrama de Classes ....................................................................................................................... 10 
7. Implementação ...................................................................................................................................... 12 
7.1 Classe Question ............................................................................................................................... 12 
7.2 Classe QuestionDatabase ................................................................................................................ 13 
7.3 Classe QuizGame ............................................................................................................................ 14 
7.3.1 Atributos Principais ..................................................................................................................... 14 
7.3.2 Sistema de Temporizador ............................................................................................................ 15 
7.3.3 Sistema de Feedback Visual ........................................................................................................ 15 
8. Interface Gráfica ................................................................................................................................... 16 
8.1 Design e Estética ............................................................................................................................. 17 
8.2 Componentes da Interface ............................................................................................................... 17 
9. Funcionalidades .................................................................................................................................... 18 
9.2 Temas das Perguntas ....................................................................................................................... 18 
10. Testes e Resultados ............................................................................................................................. 19 
11. Dificuldades Encontradas ................................................................................................................... 20 
11.1 Implementação do Feedback Visual Animado ............................................................................. 20 
11.2 Sincronização do Temporizador ................................................................................................... 20 
11.3 Configuração do Projeto NetBeans ............................................................................................... 21 
12. Conclusão............................................................................................................................................ 22 
13. Referências Bibliográficas .................................................................................................................. 23 
 
 
 
1. Introdução 
 
O presente relatório descreve o desenvolvimento de um Jogo Quiz sobre Programação Orientada 
a Objetos (POO), uma aplicação educacional interativa desenvolvida em linguagem Java. Este 
projeto foi concebido com o objetivo de consolidar conhecimentos na área de desenvolvimento 
de software utilizando o paradigma de Programação Orientada a Objetos. 
 
A Programação Orientada a Objetos é um dos paradigmas de programação mais utilizados no 
desenvolvimento de sistemas modernos, sendo fundamental para qualquer programador 
compreender os seus conceitos e aplicá-los na prática. Assim, surgiu a ideia de criar uma 
ferramenta lúdica que permitisse, simultaneamente, testar e reforçar conhecimentos sobre POO 
através de um jogo de perguntas e respostas. 
 
O sistema desenvolvido consiste numa aplicação desktop com interface gráfica moderna, que 
apresenta questões sobre conceitos de POO e Java, permitindo ao utilizador testar os seus 
conhecimentos de forma interativa e dinâmica. 
 
2. Objetivos 
 
2.1 Objetivo Geral 
 
Desenvolver uma aplicação de Quiz educativo sobre Programação Orientada a Objetos e Java, 
utilizando os princípios da própria POO, demonstrando a aplicação prática dos conceitos teóricos 
estudados. 
 
2.2 Objetivos Específicos 
 
- Implementar umabase de dados com 50 perguntas ,esenvolver uma interface gráfica 
- Implementar um sistema de temporizador com limite de 15 segundos por pergunta 
- Criar um mecanismo de feedback visualpara indicar respostas corretas e incorretas 
- Desenvolver um sistema de pontuaçãoque contabilize o desempenho do utilizador 
- Garantir a aleatoriedadena apresentação das perguntas 
 
3.1 Programação Orientada a Objetos (POO) 
 
A Programação Orientada a Objetos é um paradigma de programação que organiza o software 
como uma coleção de objetos que contêm dados (atributos) e comportamentos (métodos). Os 
quatro pilares fundamentais da POO são: 
 
3.1.1 Encapsulamento 
O encapsulamento consiste em ocultar os detalhes internos de uma classe, expondo apenas o 
necessário através de uma interface pública. Isto protege os dados de acessos indevidos e facilita 
a manutenção do código. 
 
3.1.2 Herança 
A herança permite que uma classe (subclasse) herde características de outra classe (superclasse), 
promovendo a reutilização de código e estabelecendo relações hierárquicas entre classes. 
 
3.1.3 Polimorfismo 
O polimorfismo permite que objetos de diferentes classes sejam tratados através de uma interface 
comum, possibilitando que um mesmo método tenha comportamentos diferentes em classes 
distintas. 
 
3.1.4 Abstração 
A abstração consiste em representar apenas as características essenciais de um objeto, ignorando 
detalhes irrelevantes para o contexto em questão. 
 
3.2 Linguagem Java 
 
Java é uma linguagem de programação orientada a objetos, multiplataforma, robusta e 
amplamente utilizada no desenvolvimento de aplicações empresariais, mobile e desktop. As 
principais características do Java incluem: 
 
Portabilidade: "Write Once, Run Anywhere" - o código compilado pode ser executado em 
qualquer plataforma com JVM 
Segurança: Gestão automática de memória e verificações de segurança 
Orientação a Objetos: Suporte nativo aos conceitos de POO 
Rica Biblioteca Padrã: APIs extensas para diversas funcionalidades 
 
3.3 Java Swing 
Java Swing é uma biblioteca de interface gráfica (GUI) que faz parte do Java Foundation Classes 
(JFC). O Swing fornece componentes gráficos leves, personalizáveis e independentes de 
plataforma para construção de interfaces de utilizador. 
 
4. Metodologia 
4.1 Ferramentas Utilizadas 
 
| Ferramenta | Versão/Descrição | Finalidade | 
|------------|------------------|------------| 
| Java JDK25 | Linguagem de programação | 
| NetBeans IDE 28 | Versão recente | Ambiente de desenvolvimento 
| Java Swing | Biblioteca nativa | Interface gráfica | 
| Git | - | Controle de versão | 
 
4.2 Processo de Desenvolvimento 
 
O desenvolvimento seguiu uma abordagem iterativa e incremental, dividida nas seguintes fases: 
 
1. Análise de Requisitos: Definição das funcionalidades e características do sistema 
2. Projeto: Modelagem das classes e definição da arquitetura 
3. Implementação: Codificação das classes e interface gráfica 
4. Testes: Verificação do funcionamento correto do sistema 
5. Documentação: Elaboração do presente relatório 
 
 
5. Descrição do Sistema 
 
5.1 Visão Geral 
 
O Quiz POO é um jogo educativo de perguntas e respostas sobre Programação Orientada a 
Objetos e Java. O sistema apresenta ao utilizador uma série de 50 perguntas, cada uma com 3 
alternativas de resposta, sendo apenas uma correta. 
 
5.2 Regras do Jogo 
 
✓ O jogo apresenta 50 perguntas sobre POO e Java 
✓ Cada pergunta possui 3 alternativas de resposta 
✓ As perguntas são exibidas de forma aleatória 
✓ O utilizador tem 15 segundos para responder cada pergunta 
✓ Resposta correta: +1 ponto (feedback visual verde) 
✓ Resposta incorreta: 0 pontos (feedback visual vermelho) 
✓ Tempo esgotado: 0 pontos (considerado como erro) 
✓ No final, é exibida a pontuação total e a classificação de desempenho 
 
5.3 Classificação de Desempenho 
 
| Percentagem | Classificação | 
|-------------|---------------| 
| ≥ 90% | Excelente! | 
| ≥ 70% | Muito Bom! | 
| ≥ 50% | Bom! | 
| │ 
└─────────────────────────────────────┘ 
 
┌─────────────────────────────────────────┐ 
│ QuizGame │ 
│ (extends JFrame) │ 
├─────────────────────────────────────────┤ 
│ - questions: List │ 
│ - currentQuestionIndex: int │ 
│ - score: int │ 
│ - timeLeft: int │ 
│ - gameTimer: Timer │ 
│ - questionLabel: JLabel │ 
│ - timerLabel: JLabel │ 
│ - scoreLabel: JLabel │ 
│ - optionButtons: JButton[] │ 
│ - timeProgressBar: JProgressBar │ 
│ - feedbackOverlay: JPanel │ 
├─────────────────────────────────────────┤ 
│ + QuizGame() │ 
│ - setupUI(): void │ 
│ - createOptionButton(int): JButton │ 
│ - showQuestion(): void │ 
│ - iniciarCronometro(): void │ 
│ - tratarTempoEsgotado(): void │ 
│ - checkAnswer(int): void │ 
│ - showFinalScore(): void │ 
│ - restartGame(): void │ 
│ - showFeedbackCircle(...): void │ 
│ + main(String[]): void │ 
└─────────────────────────────────────────┘ 
 
7. Implementação 
 
7.1 Classe Question 
 
A classe `Question` representa o modelo de dados de uma pergunta no quiz. Implementa a 
interface `Serializable` para permitir a serialização do objeto. Esta classe aplica o conceito de 
encapsulamento, mantendo os atributos privados e fornecendo métodos públicos para acesso. 
 
java 
package com.poo.quiz; 
 
import java.io.Serializable; 
 
public class Question implements Serializable { 
 private String questionText; 
 private String[] options; // Deve ter tamanho 3 
 private int correctOptionIndex; // 0, 1 ou 2 
 
 public Question(String questionText, String option1, 
 String option2, String option3, int correctOptionIndex) { 
 this.questionText = questionText; 
 this.options = new String[] { option1, option2, option3 }; 
 this.correctOptionIndex = correctOptionIndex; 
 } 
 
 // Getters 
 public String getQuestionText() { return questionText; } 
 public String[] getOptions() { return options; } 
 publicint getCorrectOptionIndex() { return correctOptionIndex; } 
} 
 
 
Conceitos de POO aplicados: 
-Encapsulamento: Atributos privados com getters públicos 
- Classe e Objeto: Modelo que define a estrutura de uma pergunta 
 
7.2 Classe QuestionDatabase 
 
A classe `QuestionDatabase` funciona como um repositório de perguntas, contendo todas as 50 
questões sobre POO e Java. Utiliza o método estático `getAllQuestions()` para retornar a lista de 
perguntas já embaralhadas aleatoriamente. 
 
 java 
public class QuestionDatabase { 
 
 public static List getAllQuestions() { 
 List questions = new ArrayList(); 
 
 // 50 perguntas sobre POO e Java 
 questions.add(new Question( 
 "O que é Programação Orientada a Objetos?", 
 "Um paradigma de programação baseado em objetos", 
 "Uma linguagem de programação", 
 "Um sistema operacional", 
 0)); 
 
 // ... mais 49 perguntas ... 
 
 // Embaralhar as perguntas aleatoriamente 
 Collections.shuffle(questions); 
 
 return questions; 
 } 
} 
 
 
Conceitos aplicados: 
- Método Estático: Acesso direto sem necessidade de instanciação 
- Collections Framework: Uso de ArrayList e Collections.shuffle() 
 
7.3 Classe QuizGame 
 
A classe `QuizGame` é a classe principal que gerencia toda a lógica do jogo e a interface gráfica. 
Herda da classe `JFrame` do Swing para criar a janela da aplicação. 
 
7.3.1 Atributos Principais 
 
java 
public class QuizGame extends JFrame { 
 private List questions; Lista de perguntas 
 private int currentQuestionIndex = 0; Índice da pergunta atual 
 private int score = 0; Pontuação do jogador 
 private int timeLeft = 15; Tempo restante 
 private Timer gameTimer; Temporizador do jogo 
 
 Componentes da interface 
 private JLabel questionLabel; 
 private JLabel timerLabel; 
 private JLabel scoreLabel; 
 private JButton[] optionButtons; 
 private JProgressBar timeProgressBar; 
 
} 
 
7.3.2 Sistema de Temporizador 
 
O temporizador utiliza a classe `javax.swing.Timer` para criar uma contagem regressiva de 15 
segundos: 
 
 java 
private void iniciarCronometro() { 
 gameTimer = new Timer(1000, new ActionListener() { 
 @Override 
 public void actionPerformed(ActionEvent e) { 
 timeLeft--; 
 timerLabel.setText("Tempo: " + timeLeft + "s"); 
 timeProgressBar.setValue(timeLeft); 
 
 Alteração de cor conforme o tempo restante 
 if (timeLeftvisual funcionam corretamente. 
 
11. Dificuldades Encontradas 
 
Durante o desenvolvimento do projeto, foram encontradas algumas dificuldades: 
 
11.1 Implementação do Feedback Visual Animado 
 
A criação de animações suaves para o círculo de feedback exigiu conhecimentos aprofundados 
sobre: 
- Uso de `Graphics2D` para desenho personalizado 
- Animações com `Timer` do Swing 
- Manipulação de transparência (canal alpha) 
- Uso de `JLayeredPane` para sobreposição de componentes 
 
Solução: Implementação de um painel customizado com animações de fade-in e fade-out 
controladas por timers. 
 
11.2 Sincronização do Temporizador 
 
Garantir que o temporizador pausasse corretamente ao selecionar uma resposta e reiniciasse 
adequadamente para a próxima pergunta. 
 
Solução: Uso do método `stop()` do Timer antes de processar a resposta e criação de um novo 
Timer para cada pergunta. 
 
11.3 Configuração do Projeto NetBeans 
 
A estrutura do projeto precisou ser configurada corretamente para funcionar tanto via linha de 
comando quanto através do NetBeans IDE. 
 
Solução: Criação de arquivos de configuração apropriados (build.xml, manifest.mf) e scripts 
batch auxiliares. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12. Conclusão 
 
O desenvolvimento do projeto Quiz POO permitiu a aplicação prática dos conceitos de 
Programação Orientada a Objetos estudados ao longo da disciplina. Através da criação deste jogo 
educativo, foi possível: Consolidar conhecimentos teóricos sobre os pilares da POO 
(encapsulamento, herança, polimorfismo e abstração) através da sua implementação prática 
 
Desenvolver competências técnicas em Java, especialmente no uso da biblioteca interfaces 
gráficas , projeto atingiu todos os objetivos propostos, implementando as 50 perguntas, o sistema 
de temporizador de 15 segundos, o feedback visual com círculos coloridos, a aleatoriedade na 
apresentação das perguntas e o sistema de pontuação. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13. Referências Bibliográficas 
 
1. DEITEL, H. M.; DEITEL, P. J. Java: Como Programar. 10ª ed. São Paulo: Pearson Education, 
2016. 
 
2. HORSTMANN, C.; CORNELL, G. Core Java Volume I - Fundamentals. 11th ed. Prentice 
Hall, 2018. 
 
3. BLOCH, J. Effective Java. 3rd ed. Addison-Wesley Professional, 2017. 
 
4. Oracle.The Java Tutorials - Trail: Creating a GUI With Swing. Disponível em: 
https://docs.oracle.com/javase/tutorial/uiswing/ 
 
5. Oracle Java Platform, Standard Edition Documentation. Disponível em: 
https://docs.oracle.com/en/java/javase/ 
 
6. GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Design Patterns: Elements of 
Reusable Object-Oriented Software. Addison-Wesley, 1994.

Mais conteúdos dessa disciplina