diff --git a/sistema.ts b/sistema.ts index ffb51c6..46b2b47 100644 --- a/sistema.ts +++ b/sistema.ts @@ -1,22 +1,132 @@ -const menuPrincipal = ` -Sistema de Series +type Serie = { + id: number; + titulo: string; + ano: number; + finalizada: boolean; +}; -1. adicionar -2. remover -3. atualizar -4. ler -5. sair +// Array para armazenar as séries +let series: Serie[] = []; +let contadorId = 1; // Gerador de IDs únicos -entre com uma opção: ` +// 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 -function principal(){ - let op: number; - op = parseInt(prompt(menuPrincipal)); - while (op!=5){ - op = parseInt(prompt(menuPrincipal)); - - } + 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."); } -principal() + } while (opcao !== 5); + console.log("Encerrando o sistema. Até mais!"); +} + +// Iniciar o programa +await main();