CSE 210: Programação com Classes

S07 - Tarefa: Programa de Monitoramento de Exercícios

Visão Geral

Os princípios finais da Programação com Classes são herança e polimorfismo. Para esta tarefa, você escreverá um programa que demonstre seu conhecimento sobre esses princípios.

Cenário

Suponha que uma academia local contratou você para criar um aplicativo para que seus clientes monitorem os exercícios deles. A academia tem instalações para o seguinte:

Para cada atividade, querem rastrear a data e a duração da atividade em minutos. Então, para cada atividade, gostariam de monitorar também o seguinte:

Para cada atividade, não querem armazenar essas informações, mas gostariam de poder obter as seguintes informações (por cálculo, se não forem armazenadas diretamente):

Em ambos os casos, o comprimento de uma volta na piscina é de 50 metros.

Especificação do Programa

Escreva um programa que tenha uma classe base Atividade e depois uma classe derivada para cada uma das três atividades. A classe base deve conter todos os atributos compartilhados entre todas as atividades. Então, cada classe derivada pode definir quaisquer atributos adicionais.

Além disso, a classe base deve declarar (mas não implementar) métodos virtuais para obter distância, velocidade e ritmo. Esses métodos devem ser sobrescritos nas classes derivadas.

Por fim, você deve fornecer um método ObterResumo para produzir uma string com todas as informações do resumo. Lembre-se de que o método de resumo pode usar outros métodos para produzir seu resultado. Este método deve estar disponível para todas as classes e, portanto, ele deve ser definido na classe base (você pode sobrescrevê-lo nas classes derivadas, se necessário, mas pode não ser necessário...).

Depois de criar as classes, escreva um programa que crie pelo menos uma atividade de cada tipo. Coloque cada uma dessas atividades na mesma lista. Em seguida, percorra essa lista e chame o método ObterResumo em cada item e exiba os resultados.

Além disso, seu programa deve:

  1. Use herança para evitar duplicação de atributos e métodos compartilhados.
  2. Use a sobrescrita de método para os métodos de cálculo.
  3. Siga os princípios de encapsulamento, certificando-se de que cada variável membro seja privada.

Dicas de Matemática:

Interação do Usuário

O foco dos Programas de Fundamentos é ajudar você a criar e construir classes e trabalhar com os relacionamentos entre essas classes. Com isso em mente, você não precisa criar um sistema de menu ou uma interface de usuário. Em vez disso, seu arquivo Program.cs deve criar os objetos necessários, definir seus valores e exibi-los conforme especificado, sem qualquer interação do usuário.

Demonstre Criatividade

Como o objetivo desses Programas de Fundamentos é ajudar você a praticar os princípios do curso de uma forma muito direta, não se espera que você demonstre criatividade e supere os requisitos básicos como fez em projetos anteriores. Você pode ganhar 100% concluindo os requisitos conforme especificado.

Desenvolver o Programa

No repositório do curso, encontre o projeto MonitoramentoExercicios na pasta semana07 e escreva seu programa lá.

Instruções de Envio

Como este projeto não tem nenhuma interação do usuário, para envio, você incluirá uma captura de tela da execução do seu programa no seu repositório do GitHub junto com o código correspondente. (Para obter instruções detalhadas sobre como fazer uma captura de tela, consulte as instruções descritas em: Captura de Tela.)

Depois de adicionar sua captura de tela ao seu repositório do GitHub, volte ao Canvas para enviar um link para seu repositório do GitHub.