fla-final/sistema.ts

140 lines
3.4 KiB
TypeScript
Raw Normal View History

2024-11-19 15:08:45 +00:00
type Serie = {
2025-01-21 03:06:33 +00:00
id: number;
titulo: string;
ano: number;
finalizada: boolean;
2024-11-19 15:08:45 +00:00
};
2024-12-10 21:45:27 +00:00
let series: Serie[] = [];
2024-12-10 15:02:08 +00:00
let contadorId = 1;
2024-11-19 15:08:45 +00:00
2025-01-21 03:06:33 +00:00
function mostrarMenu(): void {
console.log(`
Sistema Gerenciador de Séries
2025-03-06 07:13:42 +00:00
2025-01-21 03:06:33 +00:00
1. Criar
2. Listar
2025-02-10 19:21:23 +00:00
3. Atualizar
4. Excluir
2025-01-21 03:06:33 +00:00
5. Sair
`);
}
function obterEntradaTexto(mensagem: string): string {
let entrada = prompt(mensagem) || "";
2025-03-06 07:13:42 +00:00
while (!entrada.trim()) {
2025-01-21 03:06:33 +00:00
console.log("Entrada inválida. Por favor, tente novamente.");
entrada = prompt(mensagem) || "";
}
2025-03-06 07:13:42 +00:00
return entrada.trim();
2025-01-21 03:06:33 +00:00
}
2024-11-19 15:08:45 +00:00
2025-01-21 03:06:33 +00:00
function obterEntradaNumero(mensagem: string): number {
let entrada = parseInt(prompt(mensagem) || "", 10);
2025-02-10 19:21:23 +00:00
while (!entrada || entrada <= 0) {
2025-01-21 03:06:33 +00:00
console.log("Por favor, insira um número válido.");
entrada = parseInt(prompt(mensagem) || "", 10);
}
return entrada;
2024-11-19 15:08:45 +00:00
}
2025-01-21 03:06:33 +00:00
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";
2024-11-19 15:08:45 +00:00
}
2024-12-10 15:02:08 +00:00
function criarSerie(): void {
2025-01-21 03:06:33 +00:00
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!");
2024-11-19 15:08:45 +00:00
}
2025-01-21 03:06:33 +00:00
function listarSeries(): void {
2025-03-06 07:13:42 +00:00
if (series.length === 0) {
2025-01-21 03:06:33 +00:00
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"
}`
);
}
2024-11-19 15:08:45 +00:00
}
2025-02-10 19:21:23 +00:00
function atualizarSerie(): void {
2025-03-06 07:13:42 +00:00
if (series.length === 0) {
2025-02-10 19:21:23 +00:00
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 {
2025-03-06 07:13:42 +00:00
if (series.length === 0) {
2025-02-10 19:21:23 +00:00
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;
}
2025-03-06 07:13:42 +00:00
series.splice(index, 1);
2025-02-10 19:21:23 +00:00
console.log("Série excluída com sucesso!");
}
2025-01-21 03:06:33 +00:00
function main(): void {
let opcao = 0;
2024-12-10 15:02:08 +00:00
2025-01-21 03:06:33 +00:00
while (opcao !== 5) {
mostrarMenu();
opcao = obterEntradaNumero("Escolha uma opção:");
2024-11-19 15:08:45 +00:00
2025-01-21 03:06:33 +00:00
if (opcao === 1) {
criarSerie();
} else if (opcao === 2) {
listarSeries();
2025-02-10 19:21:23 +00:00
} else if (opcao === 3) {
atualizarSerie();
} else if (opcao === 4) {
excluirSerie();
2025-01-21 03:06:33 +00:00
} else if (opcao === 5) {
console.log("Encerrando o sistema. Até mais!");
} else {
console.log("Opção inválida! Tente novamente.");
}
}
2024-11-19 15:08:45 +00:00
}
2024-10-29 15:01:24 +00:00
2024-12-10 15:02:08 +00:00
main();