type Serie = { id: number; titulo: string; ano: number; finalizada: boolean; }; let series: Serie[] = []; let contadorId = 1; function mostrarMenu(): void { console.log(` Sistema Gerenciador de Séries ============================= 1. Criar 2. Listar 3. Atualizar 4. Excluir 5. Sair `); } function obterEntradaTexto(mensagem: string): string { let entrada = prompt(mensagem) || ""; while (entrada.replace(/\s/g, "") === "") { console.log("Entrada inválida. Por favor, tente novamente."); entrada = prompt(mensagem) || ""; } return entrada; } function obterEntradaNumero(mensagem: string): number { let entrada = parseInt(prompt(mensagem) || "", 10); while (!entrada || entrada <= 0) { console.log("Por favor, insira um número válido."); entrada = parseInt(prompt(mensagem) || "", 10); } return entrada; } function obterEntradaBooleano(mensagem: string): boolean { let entrada = prompt(mensagem + " (s/n):") || ""; while (entrada !== "s" && entrada !== "n") { console.log("Por favor, digite 's' para sim ou 'n' para não."); entrada = prompt(mensagem + " (s/n):") || ""; } return entrada === "s"; } function criarSerie(): void { const titulo = obterEntradaTexto("Digite o título da série:"); const ano = obterEntradaNumero("Digite o ano de lançamento da série:"); const finalizada = obterEntradaBooleano("A série foi finalizada"); const novaSerie: Serie = { id: contadorId, titulo, ano, finalizada }; series.push(novaSerie); contadorId++; console.log("Série cadastrada com sucesso!"); } function listarSeries(): void { if (!series[0]) { console.log("Nenhuma série cadastrada."); return; } console.log("Listagem de séries:"); for (const serie of series) { console.log( `ID: ${serie.id} | Título: ${serie.titulo} | Ano: ${serie.ano} | Finalizada: ${ serie.finalizada ? "Sim" : "Não" }` ); } } function atualizarSerie(): void { if (!series[0]) { console.log("Nenhuma série cadastrada."); return; } const id = obterEntradaNumero("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:"); serie.titulo = obterEntradaTexto("Novo título:"); serie.ano = obterEntradaNumero("Novo ano de lançamento:"); serie.finalizada = obterEntradaBooleano("A série foi finalizada"); console.log("Série atualizada com sucesso!"); } function excluirSerie(): void { if (!series[0]) { console.log("Nenhuma série cadastrada."); return; } const id = obterEntradaNumero("Digite o ID da série a ser excluída:"); const index = series.findIndex((s) => s.id === id); if (index === -1) { console.log("Série não encontrada."); return; } for (let i = index; i < series.length - 1; i++) { series[i] = series[i + 1]; } series.pop(); console.log("Série excluída com sucesso!"); } function main(): void { let opcao = 0; while (opcao !== 5) { mostrarMenu(); opcao = obterEntradaNumero("Escolha uma opção:"); if (opcao === 1) { criarSerie(); } else if (opcao === 2) { listarSeries(); } else if (opcao === 3) { atualizarSerie(); } else if (opcao === 4) { excluirSerie(); } else if (opcao === 5) { console.log("Encerrando o sistema. Até mais!"); } else { console.log("Opção inválida! Tente novamente."); } } } main();