Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

[Projeto] Desafio: hora da prática

Resolução Geral:

  1. Classes
namespace Alura.Filmes;

class Filme
{
    public string Titulo { get; }
    public int Duracao { get; }

    private List<Artista> elenco = [];

    public Filme(string titulo, int duracao)
    {
        Titulo = titulo;
        Duracao = duracao;
    }

    public void AddArtista(Artista artista, string filme)
    {
        elenco.Add(artista);
        artista.AddFilme(filme);
    }

    public void ExibirInformacoes ()
    {
        Console.WriteLine($"{Titulo} - Duração: {Duracao}min.");
        Console.WriteLine("Elenco:");
        
        foreach (Artista artista in elenco)
        {
            Console.WriteLine(artista.Nome);
        }
    }
}
namespace Alura.Filmes;

class Artista
{
    public string Nome { get; }
    public int Idade { get; }

    private List<string> atuacoes = [];

    public Artista(string nome, int idade)
    {
        Nome = nome;
        Idade = idade;
    }

    public void AddFilme (string filme)
    {
        atuacoes.Add(filme);
    }

    public void ExbirAtuacoes()
    {
        Console.WriteLine($"{Nome} Atuou em:");
        foreach (string filme in atuacoes)
        {
            Console.WriteLine(filme);
        }
    }
}
  1. Program.cs
using Alura.Filmes;

List<Filme> listaDeFilmes = new();

Filme oppenheimer = new("Oppenheimer", 180);
Artista artista1 = new("Cillian Murphy", 50);
Artista artista2 = new("Emily Blunt", 43);
Artista artista3 = new("Matt Damon", 55);
Artista artista4 = new("Robert Downey Jr", 61);
oppenheimer.AddArtista(artista1, oppenheimer.Titulo);
oppenheimer.AddArtista(artista2, oppenheimer.Titulo);
oppenheimer.AddArtista(artista3, oppenheimer.Titulo);
oppenheimer.AddArtista(artista4, oppenheimer.Titulo);

Filme barbie = new("Barbie", 114);
Artista artista5 = new("Margot Robbie", 35);
Artista artista6 = new("Ryan Gosling", 45);
Artista artista7 = new("America Ferrera", 42);
Artista artista8 = new("Simu Liu", 37);
barbie.AddArtista(artista5, barbie.Titulo);
barbie.AddArtista(artista6, barbie.Titulo);
barbie.AddArtista(artista7, barbie.Titulo);
barbie.AddArtista(artista8, barbie.Titulo);

Filme duna = new("Duna", 155);
Artista artista9 = new("Timothée Chalamet", 30);
Artista artista10 = new("Zendaya", 29);
Artista artista11 = new("Rebecca Ferguson", 42);
Artista artista12 = new("Oscar Isaac", 47);
duna.AddArtista(artista9, duna.Titulo);
duna.AddArtista(artista10, duna.Titulo);
duna.AddArtista(artista11, duna.Titulo);
duna.AddArtista(artista12, duna.Titulo);

Filme topGun = new("Top Gun: Maverick", 130);
Artista artista13 = new("Tom Cruise", 63);
Artista artista14 = new("Miles Teller", 39);
Artista artista15 = new("Jennifer Connelly", 55);
Artista artista16 = new("Jon Hamm", 55);
topGun.AddArtista(artista13, topGun.Titulo);
topGun.AddArtista(artista14, topGun.Titulo);
topGun.AddArtista(artista15, topGun.Titulo);
topGun.AddArtista(artista16, topGun.Titulo);

Filme pantera = new("Pantera Negra: Wakanda Forever", 161);
Artista artista17 = new("Letitia Wright", 32);
Artista artista18 = new("Danai Gurira", 48);
Artista artista19 = new("Lupita Nyong’o", 43);
Artista artista20 = new("Tenoch Huerta", 45);
pantera.AddArtista(artista17, pantera.Titulo);
pantera.AddArtista(artista18, pantera.Titulo);
pantera.AddArtista(artista19, pantera.Titulo);
pantera.AddArtista(artista20, pantera.Titulo);

listaDeFilmes.Add(oppenheimer);
listaDeFilmes.Add(barbie);
listaDeFilmes.Add(duna);
listaDeFilmes.Add(topGun);
listaDeFilmes.Add(pantera);

foreach(var filmes in listaDeFilmes)
{
    filmes.ExibirInformacoes();
    Console.WriteLine("");
}