133 lines
3.1 KiB
TypeScript
133 lines
3.1 KiB
TypeScript
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<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 criar uma série
|
|
async function criarSerie(): Promise<void> {
|
|
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<void> {
|
|
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<void> {
|
|
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();
|
|
|