--------------------------------
Ejercicio Economía Plateada
--------------------------------
import java.util.*
/* ---------- Entidad ---------- */
data class Persona(
val nombre: String,
val apellido: String,
val dni: String,
val mail: String,
val edad: Int,
val situacion: String // "Empleado" o "Desempleado"
)
/* ---------- Funciones de lectura segura ---------- */
fun leerTexto(mensaje: String): String {
while (true) {
print(mensaje)
val texto = readLine()?.trim()
if (!texto.isNullOrEmpty()) return texto
println(" → El campo no puede estar vacío.")
}
}
fun leerEdad(): Int {
while (true) {
print("Edad: ")
val numero = readLine()?.trim()?.toIntOrNull()
if (numero != null && numero > 0) return numero
println(" → Ingrese una edad válida (número entero positivo).")
}
}
fun leerSituacion(): String {
while (true) {
print("Situación laboral (Empleado/Desempleado): ")
val sit = readLine()?.trim()?.lowercase(Locale.getDefault())
when (sit) {
"empleado", "empleada" -> return "Empleado"
"desempleado", "desempleada" -> return "Desempleado"
else -> println(" → Debe escribir \"Empleado\" o \"Desempleado\".")
}
}
}
/* ---------- Lógica de negocio ---------- */
fun evaluarCandidato(p: Persona) {
if (p.edad >= 50 && p.situacion == "Desempleado") {
println("\n=== INVITACIÓN A ENTREVISTA ===")
println("Estimado/a ${p.nombre} ${p.apellido}:")
println("Usted ha sido seleccionado/a para participar de una entrevista")
println("con el objetivo de evaluar su perfil y ponerlo/a en contacto con")
println("empresas que cuentan con vacantes disponibles.")
println("Nos pondremos en contacto a la brevedad al correo: ${p.mail}")
println("=================================\n")
}
}
/* ---------- Reporte final ---------- */
fun mostrarReporte(p: Persona) {
println("\n---------- REPORTE DE REGISTRO ----------")
println("Apellido y nombre : ${p.apellido}, ${p.nombre}")
println("DNI : ${p.dni}")
println("Correo : ${p.mail}")
println("Edad : ${p.edad} años")
println("Situación laboral : ${p.situacion}")
println("-----------------------------------------\n")
}
/* ---------- Programa principal ---------- */
fun main() {
println("=== Formulario de captura de datos ===")
val nombre = leerTexto("Nombre: ")
val apellido = leerTexto("Apellido: ")
val dni = leerTexto("DNI: ")
val mail = leerTexto("Mail: ")
val edad = leerEdad()
val situacion = leerSituacion()
val persona = Persona(nombre, apellido, dni, mail, edad, situacion)
evaluarCandidato(persona)
mostrarReporte(persona)
}