Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Projeto final: Notas Legais

import 'dart:io';

void main() {
  List<String> notas = <String>[];
  menu(notas);
}

void cabecalho() {
  const String separador = '===================================================================';
  print('');
  print('                     Sistema de Notas');
  print(separador);
  print(' _   _  ___  _____  _    ____    _     _____ ____    _    ___ ____  ');
  print('| \\ | |/ _ \\|_   _|/ \\  / ___|  | |   | ____/ ___|  / \\  |_ _/ ___| ');  
  print('|  \\| | | | | | | / _ \\ \\___ \\  | |   |  _|| |  _  / _ \\  | |\\___ \\ ');
  print('| |\\  | |_| | | |/ ___ \\ ___) | | |___| |__| |_| |/ ___ \\ | | ___) |');
  print('|_| \\_|\\___/  |_/_/   \\_\\____/  |_____|_____\\____/_/   \\_\\___|____/ ');
  print(separador);
  print('                   Seja bem-vindo(a) ao sistema!');
  print('');
}

String getComando() {
  print('\nDigite um comando:\n 1 - Adicionar\n 2 - Listar\n 3 - Sair');
  List<String> comandos = ['1', '2', '3'];
  String? entrada = " ";
  entrada = stdin.readLineSync();
  if (entrada == null || !comandos.contains(entrada)) {
    print("\nComando invalido");
    getComando();
  }
  return entrada!;
}

List<String> adicionaNota(List<String> notas) {
  print('\nEscreva uma nota:');
  String? nota = " ";
  nota = stdin.readLineSync();
  if (nota == null || nota.isEmpty) {
    print("\nNão é possivel adicionar uma nota:");
    adicionaNota(notas);
  }
  notas.add(nota!);
  return notas;
}

void listarNotas(List<String> notas) {
  for (var i = 0; i < notas.length; i++) {
    print(notas[i]);
  }
}

void menu(List<String> notas) {
  cabecalho();
  String comando = getComando();
  switch (comando) {
    case '1':
      adicionaNota(notas);
      menu(notas);
    case '2':
      listarNotas(notas);
      menu(notas);
    case '3':
      print('Um até breve!!!');
  }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, José! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu projeto Notas Legais ficou bem estruturado, gostei da forma como você utilizou o switch para organizar as opções do menu e da função cabecalho() com o uso de ASCII art, que deixa o programa mais amigável visualmente.

Uma dica interessante para o futuro é usar o método toUpperCase() para padronizar entradas de texto antes de comparar comandos. Veja este exemplo:


import 'dart:io';

void main() {
  print('Digite S ou N:');
  String? resposta = stdin.readLineSync();
  if (resposta != null && resposta.toUpperCase() == 'S') {
    print('Voce digitou SIM');
  } else {
    print('Voce digitou NAO');
  }
}

Esse código converte a entrada para maiúsculas e facilita a comparação, evitando erros de digitação.

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!