-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmutable-list-12-05-2025.kt
More file actions
112 lines (101 loc) · 2.73 KB
/
Copy pathmutable-list-12-05-2025.kt
File metadata and controls
112 lines (101 loc) · 2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// mutableListOf<Tarefa>()
data class Tarefa(val id: Int, var descricao: String, var concluida: Boolean)
val tarefas = mutableListOf<Tarefas>
var proximoId = 1
fun main() {
while (true) {
println("\n-- MENU --")
println("1. adicionar uma tarefa")
println("2. Listar uma tarefa")
println("3. Listar apenas tarefas pendentes")
println("4. Marcar tarefa como concluida")
println("5. Editar descrição de tarefa")
println("6. Remover tarefa")
println("7. Mostrar resumo")
println("8. Sair")
println("Escolha uma opção:")
when (readLine()?.toIntOrNull()) {
1 -> adicionarTarefas()
2 -> listarTarefas()
3 -> listarPendentes()
4 -> concluirTarefa()
5 -> editarTarefa()
6 -> removerTarefa()
7 -> mostrarResumo()
8 -> {
println("Saindo...")
break
}
else -> println ("Opção inválida")
}
}
}
fun adicionarTarefa(){
println("Digite a descrição da tarefa: ")
val descricao = readLine() ?: ""
tarefas.add(Tarefa(proximoId++, descricao, false))
println("Tarefa adicionada com sucesso!")
}
fun listarTarefa(){
if(tarefas.IsEmpty()){
println("Nenhuma tarefa encontrada!")
return
}
println("\n Lista de tarefas")
for(t in tarefas ){
val status = if (t.concluida) "🫡" else "❌"
println("${t.id}. $status ${t.descricao}")
}
}
fun listarPendentes(){
val pendentes = tarefas.filter { !it.concluida}
if(pendentes.isEmpty()) {
println("Nenhuma tarefa pendente!)
return
}
println("\n Tarefas Pendentes: ")
for(t in pendentes) {
println("${t.id}. ❌ ${t.descricao}")
}
}
fun concluirTarefa() {
println("Digite o ID da tarefa para concluí-la: ")
val id = readLine()?.toIntOrNull
val tarefa = tarefas.find {it.id == id}{
if (tarefa != null) {
tarefa.concluida = true
println("Tarefa marcada como concluida")
}
else{
println("Tarefa não encontrada")
}
}
}
fun editarTarefa(){
println("Digite o ID da tarefa a ser editada: ")
val id = readLine()?.toIntOrNull()
val tarefa = tarefas.find { it.id == id }
if(tarefa != null){
println("Digite a nova descrição: ")
val novaDescricao = readLine() ?: ""
tarefa.descricao = novaDescricao
println("Tarefa atualizada com sucesso!")
} else {
println("Tarefa não encontrada!")
}
}
fun removerTarefa(){
println("Digite o ID da tarefa a ser excluida: ")
val id = readLine()?.toIntOrNull()
val removida = tarefas.removeIf { it.id == id }
if(removida) {
println("Tarefa removida com sucesso!")
} else {
println("Tarefas não encontrada.")
}
}
fun mostrarResumo(){
val total = tarefas.size
val concluidas = tarefas.count { it.concluida }
println("Você concluiu $concluida de $total tarefas.")
}