- Verificando a maioridade em diferentes países
import "dart:io";
void verificarBrasil(int idade) {
const int idadeMinimaBrasil = 18;
print('Regras no Brasil:');
print('Categorias A e B: 18 anos');
print('Categorias C, D, E: 21 anos (+ requisitos adicionais)\n');
if (idade >= idadeMinimaBrasil) {
print('Você pode tirar habilitação categorias A e B no Brasil!');
if (idade >= 21) {
print('Você também pode aplicar para categorias C, D ou E!');
}
} else {
int falta = idadeMinimaBrasil - idade;
print('Você ainda não pode.');
print(
'Faltam $falta ${falta == 1 ? 'ano' : 'anos'} para categoria A ou B.',
);
}
}
void verificarEUA(int idade) {
const int idadeMinimaEUA = 16;
print('Regras nos EUA:');
print('Idade mínima: 16 anos (varia por estado)');
print('Alguns estados: 14-15 anos com permissão de aprendizado\n');
if (idade >= idadeMinimaEUA) {
print('Você pode tirar habilitação nos EUA!');
} else {
int falta = idadeMinimaEUA - idade;
print('Você ainda não pode.');
print('Faltam $falta ${falta == 1 ? 'ano' : 'anos'}.');
}
}
void verificarJapao(int idade) {
const int idadeMinimaJapao = 16;
print('Regras no Japão:');
print('Moto pequena (até 50cc): 16 anos');
print('Carro/Moto grande: 18 anos');
print('Caminhão médio: 20 anos');
print('Caminhão grande/Ônibus: 21 anos\n');
if (idade >= 21) {
print('Você pode tirar qualquer categoria no Japão!');
} else if (idade >= 20) {
print(
'Você pode tirar: Moto pequena, Carro, Moto grande e Caminhão médio!',
);
} else if (idade >= 18) {
print('Você pode tirar: Moto pequena, Carro e Moto grande!');
} else if (idade >= 16) {
print('Você pode tirar: Moto pequena (até 50cc)!');
} else {
int falta = idadeMinimaJapao - idade;
print('Você ainda não pode tirar nenhuma habilitação.');
print('Faltam $falta ${falta == 1 ? 'ano' : 'anos'} para moto pequena.');
}
}
void main() {
print('/n========================================');
print(' CNH International Check');
print('========================================/n');
print('');
print('Qual é a sua idade atual?');
int? idade = int.tryParse(stdin.readLineSync() ?? '');
if (idade == null || idade < 0 || idade > 90) {
print('\n Erro: Entrada de dados inválido!');
print('Fim da verificação');
return;
}
// Menu de opções para escolha dos países;
print('\nPor favor, escolha 1, 2 ou 3.');
print('1 - Brasil');
print('2 - EUA');
print('3 - Japão');
String? opcao = stdin.readLineSync();
switch (opcao) {
case '1':
print('\n== BRASIL ===');
verificarBrasil(idade);
break;
case '2':
print('\n=== EUA ===');
verificarEUA(idade);
break;
case '3':
print('\n=== JAPÃO ===');
verificarJapao(idade);
break;
default:
print('\nPaís inválido!');
}
print('');
print('/n========================================');
print(' Obrigado por usar o programa!');
print('========================================/n');
}