diff --git a/sistema.ts b/sistema.ts index 0da7fc0..bf6f9d4 100644 --- a/sistema.ts +++ b/sistema.ts @@ -1,72 +1,102 @@ type Serie = { - id: number; - titulo: string; - ano: number; - finalizada: boolean; + 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 - 5. Sair - - Entre com sua opção: - `); -} -function solicitarDados(): Serie { - 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 exibir o menu +function mostrarMenu(): void { + console.log(` + Sistema Gerenciador de Séries + ============================= + 1. Criar + 2. Listar + 5. Sair + `); } +// Função para obter entrada válida do usuário +function obterEntradaTexto(mensagem: string): string { + let entrada = prompt(mensagem) || ""; + while (!entrada.trim()) { + console.log("Entrada inválida. Por favor, tente novamente."); + entrada = prompt(mensagem) || ""; + } + return entrada.trim(); +} + +// 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) { + 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") { + console.log("Por favor, digite 's' para sim ou 'n' para não."); + entrada = prompt(mensagem + " (s/n):") || ""; + } + return entrada === "s"; +} + +// Função para criar uma série function criarSerie(): void { - const novaSerie = solicitarDados(); - series.push(novaSerie); - console.log("Série adicionada com sucesso!"); + 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.length === 0){ - console.log("Nenhuma Série cadastrada."); - }else{ - 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" - }` - ); - } +// 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:"); + for (const serie of series) { + console.log( + `ID: ${serie.id} | Título: ${serie.titulo} | Ano: ${serie.ano} | Finalizada: ${ + serie.finalizada ? "Sim" : "Não" + }` + ); + } +} + +// Função principal +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 === 5) { + console.log("Encerrando o sistema. Até mais!"); + } else { + console.log("Opção inválida! Tente novamente."); } + } } -function main(): void{ - let opcao = 0; - - while (opcao !== 5){ - mostrarMenu(); - opcao = Number (prompt("Escolha uma opção:")); - if (opcao === 1){ - console.log ("criar"); - criarSerie(); - }else if (opcao === 2){ - console.log ("Listar"); - listarSeries(); - }else if ("opcao === 5"){ - console.log ("sair"); - }else{ - console.log ("Opção inválida! Tente novamente."); - } - } - - console.log ("Encerrando o sistema. Até mais!"); -} - +// Iniciar o programa main(); \ No newline at end of file