From 1320a6ca277d9996e3161faa0798f4e5e7fd322a Mon Sep 17 00:00:00 2001 From: JADSON LIMA DO NASCIMENTO Date: Mon, 10 Feb 2025 19:21:23 +0000 Subject: [PATCH] Atualizar sistema.ts --- sistema.ts | 66 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/sistema.ts b/sistema.ts index bf6f9d4..07e8f5f 100644 --- a/sistema.ts +++ b/sistema.ts @@ -8,38 +8,36 @@ type Serie = { let series: Serie[] = []; let contadorId = 1; -// 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 `); } -// Função para obter entrada válida do usuário function obterEntradaTexto(mensagem: string): string { let entrada = prompt(mensagem) || ""; - while (!entrada.trim()) { + while (entrada.replace(/\s/g, "") === "") { console.log("Entrada inválida. Por favor, tente novamente."); entrada = prompt(mensagem) || ""; } - return entrada.trim(); + return entrada; } -// Função para obter um número válido do usuário function obterEntradaNumero(mensagem: string): number { let entrada = parseInt(prompt(mensagem) || "", 10); - while (isNaN(entrada) || entrada <= 0) { + while (!entrada || entrada <= 0) { console.log("Por favor, insira um número válido."); entrada = parseInt(prompt(mensagem) || "", 10); } return entrada; } -// Função para obter um valor booleano válido function obterEntradaBooleano(mensagem: string): boolean { let entrada = prompt(mensagem + " (s/n):") || ""; while (entrada !== "s" && entrada !== "n") { @@ -49,7 +47,6 @@ function obterEntradaBooleano(mensagem: string): boolean { return entrada === "s"; } -// Função para criar uma série 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:"); @@ -61,9 +58,8 @@ function criarSerie(): void { console.log("Série cadastrada com sucesso!"); } -// Função para listar as séries function listarSeries(): void { - if (series.length === 0) { + if (!series[0]) { console.log("Nenhuma série cadastrada."); return; } @@ -78,7 +74,50 @@ function listarSeries(): void { } } -// Função principal +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; @@ -90,6 +129,10 @@ function main(): void { 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 { @@ -98,5 +141,4 @@ function main(): void { } } -// Iniciar o programa main(); \ No newline at end of file