From 10d3fe6bdbf0616732fa30906f89594d5f4227f4 Mon Sep 17 00:00:00 2001 From: Sergio Costa Date: Thu, 14 Dec 2023 12:09:11 -0300 Subject: [PATCH] Finalizado o desafio com Kotlin. --- desafio.kt | 77 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 11 deletions(-) diff --git a/desafio.kt b/desafio.kt index f2ebe619..f73a04de 100644 --- a/desafio.kt +++ b/desafio.kt @@ -1,21 +1,76 @@ -// [Template no Kotlin Playground](https://pl.kotl.in/WcteahpyN) +enum class Nivel { BASICO, INTERMEDIARIO, AVANÇADO } -enum class Nivel { BASICO, INTERMEDIARIO, DIFICIL } - -class Usuario +data class Usuario(val nome: String) data class ConteudoEducacional(var nome: String, val duracao: Int = 60) -data class Formacao(val nome: String, var conteudos: List) { +data class Formacao(val nome: String, var conteudos: List, val nivel: Nivel) { + + val inscritos = mutableListOf() - val inscritos = mutableListOf() - - fun matricular(usuario: Usuario) { - TODO("Utilize o parâmetro $usuario para simular uma matrícula (usar a lista de $inscritos).") + fun matricular(vararg usuarios: Usuario) { + inscritos.addAll(usuarios) + for (usuario in usuarios) { + println("${usuario.nome} matriculado em $nome com sucesso.") } + + } + + override fun toString(): String { + return """ + + Está é a formação $nome, ela contem os seguintes + cursos $conteudos, o seu nivel é $nivel hoje temos ${inscritos.size} matriculados + """.trimIndent() + } +} + +fun fakeNames(): MutableList{ + val usersNames: MutableList = mutableListOf() + var usuarios: MutableList = mutableListOf() + for (i in 1..20){ + usersNames.add("name$i") + } + + for (user in usersNames){ + var userName = Usuario(user) + usuarios.add(userName) + } + return usuarios } fun main() { - TODO("Analise as classes modeladas para este domínio de aplicação e pense em formas de evoluí-las.") - TODO("Simule alguns cenários de teste. Para isso, crie alguns objetos usando as classes em questão.") + var names = fakeNames(); + val cursoAngular = ConteudoEducacional("Curso Angular 8+", 120) + val cursoSpring = ConteudoEducacional("Curso Spring Framework Completo", 240) + val cursoIntroducaoKotlin = ConteudoEducacional("Curso Kotlin Iniciante", 30) + val cursoJavaWeb = ConteudoEducacional("Curso Java Web", 120) + val cursoJs = ConteudoEducacional("JavaScript", 20) + val cursoAgile = ConteudoEducacional("Agile", 60) + + val formacaoAngular = Formacao("Angular", listOf(cursoAngular), Nivel.INTERMEDIARIO) + val formacaoSpring = Formacao("Spring", listOf(cursoSpring), Nivel.INTERMEDIARIO) + val formacaoKotlin = Formacao("Curso Kotlin Iniciante", listOf(cursoIntroducaoKotlin), Nivel.INTERMEDIARIO) + val formacaoJavaWeb = Formacao("Java Web Fullstack", listOf(cursoJavaWeb), Nivel.INTERMEDIARIO) + + for(i in 0..names.size-1) { + var x = names.indexOf(Usuario("name$i")) + if (names.indexOf(Usuario("name$i")) % 5 == 0) { + formacaoSpring.matricular(names[i]) + } else if (names.indexOf(Usuario("name$i")) % 3 == 0) { + formacaoKotlin.matricular(names[i]) + } else if (names.indexOf(Usuario("name$i")) % 2 == 0) { + formacaoJavaWeb.matricular(names[i]) + } else if (names.indexOf(Usuario("name$i")) % 3 != 0) { + formacaoAngular.matricular(names[i]) + } + } + + println(formacaoAngular) + print("\n") + println(formacaoSpring) + print("\n") + println(formacaoJavaWeb) + print("\n") + println(formacaoKotlin) }