0
respostas

[Projeto] Desafio: Hora da prática 1 de 3

1.Criar uma classe que representa um filme, com dados como seu titulo, duração e
elenco. Após isso, colocá-la no namespace Alura.Filmes.

namespace Alura.Filmes;

class Filme
{
    private int duracao;
    public string Titulo { get; set; }
    public int Duracao
    {
        get => duracao;
        set
        {
            if (value < 0)
            {
                duracao = 0;
            }
            else
            {
                duracao = value;
            }
        }
    }
    public List<string> Elenco = new List<string>();

    public Filme(string titulo, int duracao, List<string> elenco)
    {
        Titulo = titulo;
        Duracao = duracao;
        Elenco = elenco;
    }

    public void AdicionarElenco(string ator)
    {
        Elenco.Add(ator);
        Console.WriteLine($"\n{ator} adicionado ao elenco.\n");
    }

    public void ExibirElenco()
    {
        if (Elenco.Count == 0)
        {
            Console.WriteLine("O Elenco está vazio.");
        }
        else
        {
            var ListaOrdenada = Elenco.OrderBy(ator => ator).ToList();
            Console.WriteLine("Lista do Elenco:");
            foreach (string ator in ListaOrdenada)
            {
                Console.WriteLine($"-{ator}");
            }
        }
    }
}

2.Criar um programa Program.cs, instanciar seus 5 filmes favoritos, guardá-los
em uma lista e mostrar as suas informações no console.

using Alura.Filmes;

var listaElenco = new List<string>() { "Asterion", "Song", "Valor" };
var filme1 = new Filme("Doom", 170, listaElenco);

filme1.ExibirElenco();

filme1.AdicionarElenco("Sunny");

filme1.ExibirElenco();








var filme2 = new Filme("Super Mario Brothers", 210, new List<string>() { "Mario", "Luigi" });
var filme3 = new Filme("Mario Galaxy World ", 210, new List<string>() {"Mario" });
var filme4 = new Filme("Mario 3", 230, new List<string>() { "Wario", "Luigi" });
var filme5 = new Filme("Mario 4", 200, new List<string>() { "Wario" });

List<Filme> filmesFavoritos = new() { filme2, filme3 };
filmesFavoritos.Add(filme4);
filmesFavoritos.Add(filme5);

foreach (Filme f in filmesFavoritos)
{
    Console.WriteLine($"\nTítulo do filme: {f.Titulo}");
    Console.WriteLine($"Duração: {f.Duracao} Minutos");
    f.ExibirElenco();
}
  1. Criar uma classe Artista, que representa uma pessoa que atua em filmes, no
    namespace Alura.Filmes. A classe deve conter atributos como o nome, idade e uma
    lista de filmes onde o artista atuou.
namespace Alura.Filmes;

class Artista
{

    public string Nome { get; set; }
    public int Idade { get; }
    private List<Filme> FilmesAtuados { get; set; } = new List<Filme>();
    public Artista(string nome, int idade)
    {
        Nome = nome;
        Idade = idade;
    }

    public void AdicionarFilmeAtuado(Filme filme)
    {
        if (filme.Elenco.Contains(this.Nome))
        {
            FilmesAtuados.Add(filme);
            Console.WriteLine($"Filme {filme.Titulo} Adicionado com sucesso!\n");
        }
        else
        {
            Console.WriteLine($"\nErro: O ator {Nome} não fez parte do elenco deste filme\n");
        }
    }

    public void ExibirFilmesAtuados()
    {
        Console.WriteLine($"A lista de filmes que o {Nome} atuou são as seguintes:");
        foreach(Filme filme in FilmesAtuados)
        {
            Console.WriteLine($"--{filme.Titulo}");
        }
    }
}

resolução da 3 no program.cs:

Console.Clear();

var ator1 = new Artista("Mario", 50);
ator1.AdicionarFilmeAtuado(filme2);
ator1.AdicionarFilmeAtuado(filme3);
ator1.AdicionarFilmeAtuado(filme4);

ator1.ExibirFilmesAtuados();