Giter Site home page Giter Site logo

avaliacao1mobile's Introduction

Avaliação 1 - Desenvolvimento para Dispositivos Móveis

Engenharia de Software - Católica SC - 28 de setembro de 2020

Prof. Rodrigo Habib Gregori

Siga as instruções contidas no README, para a execução da sua prova.

Instruções gerais

  1. Faça um fork deste repositório, para sua conta do github.
  2. Faça um clone do repositório para sua máquina.
  3. Leia as questões com atenção. Para a maioria das respostas, basta você ler com calma e transformar o texto em código java.
  4. Responda corretamente às questões. A maioria das questões é de programação. Você não precisa compilar ou executar o código. Apenas complete o código, conforme o solicitado. Os arquivos terão seus nomes indicados nas questões e, também estarão armazenados em pastas, com o número das questões.
  5. As questões não estão difíceis não copie do seu colega. Repositórios serão comparados arquivo por arquivo. Provas iguais serão desconsideradas.
  6. As questões estão especificadas abaixo, mas também estarão nos respectivos arquivos.

Prova

Questão 01

Arquivo: Circulo

Observe o código da classe Circulo abaixo:

/**
 * Uma classe que mantém as informações sobre um círculo.
 */
public class Circulo
{
    // Os campos.
    private double raio = 1.0;
    private String cor = "vermelho";

    // Construtores
    public Circulo() { }
    public Circulo(double raio) {
        this.raio = raio;
    }
    
    // Métodos de acesso
    public double getRaio() {
        return raio;
    }
}

(a) - 1 ponto

Adicione à classe um construtor que permita criar um Circulo com dois parâmetros: um double para o raio e um String para cor. Use a assinatura abaixo como base:

public Circulo(double raio, String cor)

(b) - 2 pontos

Utilizando o conceito de composição, crie uma classe Cilindro que tenha um atributo base de tipo Circulo, e um atributo altura de tipo double. Crie um construtor para essa classe, que não receba parâmetros. Este construtor deve configurar o valor de altura para 1.0 e deve inicializar a base (criar o objeto).

Para esta questão, use o arquivo: Cilindro.

(c) - 1 ponto

Um aluno escreveu o seguinte código para a classe Circulo:

@Override
public String toString() {
    return "Circulo [raio=" + raio + ", cor=" + cor + "]";
}

O que a palavra @Override indica? Por que ela foi colocada neste método da classe?

Esta questão pode ser respondida no mesmo arquivo Circulo, como comentário

Questão 02

Observe o código a seguir:

public interface Geometria {
    double getPerimetro();
    double getArea();
}

public interface Redimensionavel {
    void redimensionar(int percentual);
}

(a) - 1,5 ponto

Arquivo: Quadrado

Implemente uma classe Quadrado, que possui um atributo lado de tipo double. Implemente um construtor que preenche o atributo lado. Faça com que essa classe implemente a interface Geometria.

(b) - 1,5 ponto

Arquivo: QuadradoRedimensionavel

Implemente uma classe QuadradoRedimensionavel, que é subclasse de Quadrado e implementa a interface Redimensionavel. Essa classe deve implementar um construtor que recebe o valor de lado e o transmite para o construtor da superclasse.

Questão 03

Observe o diagrama abaixo, que modela classes para um jogo de truco.

Classes de baralho

(a) - 1,5 ponto

Implemente uma classe Jogador que contenha os atributos: mao, do tipo Carta[] (um vetor de cartas) e indiceMao do tipo int. A mao deve ter tamanho 3. O indiceMao servirá para indicar qual carta da mão foi selecionada. Essa classe deve ter um construtor padrão (sem receber nenhum parâmetro) que inicializa a mao (inicializa o vetor) e inicializa o valor do indiceMao com 0. O jogador também deve ter um método recebeCarta(Carta c) que insere uma carta no vetor mao, na posição indiceMao. Você deve incrementar indiceMao após receber a carta.

Arquivo Jogador.

(b) - 1,5 ponto

Implemente uma classe Truco que contém como atributos dois Jogadores, um Baralho, uma cartaVirada do tipo Carta. Sua classe deve ter um construtor padrão que inicializa cada um desses atributos (basicamente faz new neles). Deve ter um método privado embaralharCartas() que chama o método embaralha() do Baralho, um método privado distribuirMaos(), que deve distribuir três cartas do baralho para cada jogador (lembre-se do método receberCarta de Jogador). Você também deve implementar um método inicializaManilha(), que põe uma carta na meso (distribui uma carta do baralho e atribui a cartaVirada). Esses métodos que você implementar, vão complementar a classe truco. Para sua referência, segue o método jogar(), que implementa a lógica básica do início do jogo:

Arquivo Truco.

public void jogar() {
    embaralhaCartas();
    distribuiMaos();
    inicializaManilha();
    imprimeMesa();
}

avaliacao1mobile's People

Contributors

gregori avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.