type Serie = { id: number; titulo: string; ano: number; finalizada: boolean; }; // Array para armazenar as séries let series: Serie[] = []; let contadorId = 1; // Gerador de IDs únicos // Função para exibir o menu function mostrarMenu(): void { console.log(` Sistema Gerenciador de Séries ============================= 1. Criar 2. Listar 3. Atualizar 4. Excluir 5. Sair Entre com sua opção: `); } // Função para solicitar os dados de uma série async function solicitarDados(): Promise { const titulo = prompt("Digite o título da série:") || "Série sem título"; const ano = Number(prompt("Digite o ano de lançamento da série:") || "0"); const finalizada = (prompt("A série foi finalizada? (s/n):") || "n").toLowerCase() === "s"; return { id: contadorId++, titulo, ano, finalizada }; } // Função para criar uma série async function criarSerie(): Promise { const novaSerie = await solicitarDados(); series.push(novaSerie); console.log("Série adicionada com sucesso!"); } // Função para listar as séries function listarSeries(): void { if (series.length === 0) { console.log("Nenhuma série cadastrada."); return; } console.log("Listagem de séries:"); series.forEach((serie) => { console.log( `ID: ${serie.id} | Título: ${serie.titulo} | Ano: ${serie.ano} | Finalizada: ${ serie.finalizada ? "Sim" : "Não" }` ); }); } // Função para atualizar uma série async function atualizarSerie(): Promise { const id = Number(prompt("Digite o ID da série a ser atualizada:")); const serie = series.find((s) => s.id === id); if (!serie) { console.log("Série não encontrada."); return; } console.log("Informe os novos dados da série:"); const novosDados = await solicitarDados(); serie.titulo = novosDados.titulo; serie.ano = novosDados.ano; serie.finalizada = novosDados.finalizada; console.log("Série atualizada com sucesso!"); } // Função para excluir uma série function excluirSerie(): void { const id = Number(prompt("Digite o ID da série a ser excluída:")); const indice = series.findIndex((s) => s.id === id); if (indice === -1) { console.log("Série não encontrada."); return; } series.splice(indice, 1); console.log("Série excluída com sucesso!"); } // Função principal async function main(): Promise { let opcao: number; do { mostrarMenu(); opcao = Number(prompt("Escolha uma opção:")); switch (opcao) { case 1: console.log("Criar"); await criarSerie(); break; case 2: console.log("Listar"); listarSeries(); break; case 3: console.log("Atualizar"); await atualizarSerie(); break; case 4: console.log("Excluir"); excluirSerie(); break; case 5: console.log("Sair"); break; default: console.log("Opção inválida! Tente novamente."); } } while (opcao !== 5); console.log("Encerrando o sistema. Até mais!"); } // Iniciar o programa await main();