public override void CrearPersonaUniversitaria(Universidad universidad) { Console.WriteLine("\nSe ingresará un alumno al sistema"); Console.WriteLine("Ingrese los nombres del alumno:"); string nombres = Console.ReadLine(); Console.WriteLine("Ingrese los apellido del alumno"); string apellidos = Console.ReadLine(); Console.WriteLine("Es un estudiante de pregrado? [S/N]"); string prePos = Console.ReadLine(); Boolean boolPrePos = false; if (prePos != null && prePos.Equals("s", StringComparison.InvariantCultureIgnoreCase)) { boolPrePos = true; } else if (prePos != null && prePos.Equals("n", StringComparison.InvariantCultureIgnoreCase)) { boolPrePos = false; } else { Console.WriteLine("Valor ingresado no valido, ingrese el valor nuevamente"); int exit = 0; do { Console.WriteLine("Es un estudiante de pregrado? [S/N]"); prePos = Console.ReadLine(); if (prePos != null && prePos.Equals("s", StringComparison.InvariantCultureIgnoreCase)) { boolPrePos = true; exit = 1; } else if (prePos != null && prePos.Equals("n", StringComparison.InvariantCultureIgnoreCase)) { boolPrePos = false; exit = 1; } else { Console.Out.WriteLine("Valor ingresado no valida, ingrese su opcion nuevamente"); } } while (exit == 0); } Console.WriteLine("Ingrese direccion del alumno"); string direcc = Console.ReadLine(); Console.WriteLine("Ingrese el numero de telefono del estudiante"); string telef = Console.ReadLine(); Console.WriteLine("Seleccione el numero correspondiente a la carrera del estudiante"); Console.Out.WriteLine("Ingresar un caracter no numerico lanzara una excepcion"); int contOp = 1; foreach (Carrera carreraActual in universidad.Carreras) { Console.WriteLine("[" + contOp + "] " + carreraActual.NombreCarrera); contOp++; } try { int opCarrera = Convert.ToInt32(Console.ReadLine()); if (opCarrera - 1 >= universidad.Carreras.Count) { var exitCarrera = 0; do { Console.Out.WriteLine("El numero supero las opciones disponibles, intenta nuevamente"); Console.WriteLine("Seleccione el numero correspondiente a la carrera del estudiante"); Console.Out.WriteLine("Ingresar un caracter no numerico lanzara una excepcion"); contOp = 1; foreach (Carrera carreraActual in universidad.Carreras) { Console.WriteLine("[" + contOp + "] " + carreraActual.NombreCarrera); contOp++; opCarrera = Convert.ToInt32(Console.ReadLine()); if (opCarrera - 1 < universidad.Carreras.Count) { exitCarrera = 1; } } } while (exitCarrera == 0); } Carrera carreraElegida = universidad.Carreras[opCarrera - 1]; CarreraEstudiante = carreraElegida; } catch (Exception e) { Console.Out.WriteLine("Se ingresó una opción no valida. Revise la entrada y reinicie el programa"); Console.WriteLine(e); throw; } string numMatri = DateTime.Now.Year.ToString() + CarreraEstudiante.CodigoCarrera + universidad.Estudiantes.Count.ToString(); Estudiante estudiante = new Estudiante(); NombrePersona = nombres; ApellidoPersona = apellidos; NumMatricula = numMatri; Console.Out.WriteLine("********************************************"); Console.Out.WriteLine("¡El perfil fue creado correctamente!"); Console.Out.WriteLine("Tu numero de matricula es: " + numMatri); Console.Out.WriteLine("********************************************"); DireccionPersona = direcc; NumeroTelefono = telef; IsEstudiantePosgrado = boolPrePos; }
static void Main(string[] args) { Universidad universidad = new Universidad(); universidad.NombreUniversidad = "UTALCA"; string op = "0"; Console.Out.WriteLine("Bienvenido al portal de la " + universidad.NombreUniversidad); do { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("\n*************************************************"); Console.WriteLine("Menu del generador de certificados:"); Console.WriteLine("[1] Ingresar carrera (LISTO)"); Console.WriteLine("[2] Ingresar alumno (LISTO)"); Console.WriteLine("[3] Ingresar funcionario (LISTO)"); Console.WriteLine("[4] Emitir certificado (LISTO)"); Console.WriteLine("[5] Listar carreras (LISTO)"); Console.WriteLine("[6] Listar alumnos (LISTO)"); Console.WriteLine("[7] Listar funcionarios (LISTO)"); Console.WriteLine("[8] Listar certificados (LISTO)"); Console.WriteLine("[9] Editar información de alumno o funcionario (LISTO)"); Console.WriteLine("[10] Validar certicado (LISTO)"); Console.WriteLine("[11] Eliminar alumno o funcionario (LISTO)"); Console.WriteLine("[12] Salir"); Console.WriteLine("*************************************************"); Console.WriteLine("Ingrese su opcion:"); op = Console.ReadLine(); switch (op) { case "1": Carrera carrera = new Carrera(); carrera.CrearCarrera(); universidad.Carreras.Add(carrera); Console.WriteLine("Carrera agregada exitosamente"); break; case "2": if (universidad.Carreras.Count == 0) { Console.WriteLine("\nNo hay carreras disponibles para inscribir alumnos :("); } else { Estudiante estudiante = new Estudiante(); estudiante.CrearPersonaUniversitaria(universidad); universidad.Estudiantes.Add(estudiante); } break; case "3": Funcionario funcionario = new Funcionario(); funcionario.CrearPersonaUniversitaria(universidad); universidad.Funcionarios.Add(funcionario); break; case "4": Console.WriteLine("Se ingreso al sistema de creacion de certificados"); Console.WriteLine("¿Eres alumno[1] o funcionario[2]?"); string opPers = Console.ReadLine(); int persEncon = 0; if (opPers == "1") { Console.WriteLine("Ingresa tu numero de matricula a continuacion para iniciar sesion"); string numMa = Console.ReadLine(); foreach (Estudiante estudiante in universidad.Estudiantes) { if (estudiante.NumMatricula.Equals(numMa)) { estudiante.MenuCertificados(estudiante); persEncon = 1; } } } else if (opPers == "2") { Console.Out.WriteLine("Ingresa tu RUT a continuación para iniciar sesion"); string rutFun = Console.ReadLine(); foreach (Funcionario funcionarioActual in universidad.Funcionarios) { if (funcionarioActual.RutFuncionario.Equals(rutFun)) { funcionarioActual.MenuCertificados(funcionarioActual); persEncon = 1; } } } if (persEncon == 0) { Console.Out.WriteLine("No se encontró ese usuario :/"); } break; case "5": universidad.ListarCarreras(); break; case "6": if (universidad.Estudiantes.Count == 0) { Console.WriteLine("\nNo hay alumnos ingresados en el sistema :/"); } else { Console.WriteLine("¿Desea ver la información principal de los alumnos[1] (Nombre completo, " + "carrera y numero de matricula) o toda la información [2]?"); Console.WriteLine("Ingrese el numero de la opcion deseada"); string opInfo = Console.ReadLine(); if (opInfo == "1" || opInfo == "2") { int contAlumn = 1; foreach (Estudiante estudianteActual in universidad.Estudiantes) { estudianteActual.ListarInfo(opInfo, contAlumn); contAlumn++; } } else { Console.WriteLine("Opción no valida :("); } } break; case "7": if (universidad.Funcionarios.Count == 0) { Console.WriteLine("\nNo hay funcionarios ingresados en el sistema :/"); } else { Console.WriteLine("¿Desea ver la información principal de los funcionarios[1] (Nombre completo, " + "departamento y RUT) o toda la información [2]?"); Console.WriteLine("Ingrese el numero de la opcion deseada"); string opInfo = Console.ReadLine(); if (opInfo == "1" || opInfo == "2") { int contFunc = 1; foreach (Funcionario funcionarioActual in universidad.Funcionarios) { funcionarioActual.ListarInfo(opInfo, contFunc); contFunc++; } } else { Console.WriteLine("Opción no valida :("); } } break; case "8": Console.WriteLine("Se ingreso al sistema de listado de certificado"); Console.WriteLine("¿Se listaran certificados de un alumno[1] o de funcionario[2]?"); string opPersC = Console.ReadLine(); bool exitCertificados = false; if (opPersC == "1") { Console.WriteLine("Ingresa tu numero de matricula a continuacion para iniciar sesion"); string numMa = Console.ReadLine(); foreach (Estudiante estudiante in universidad.Estudiantes) { if (estudiante.NumMatricula.Equals(numMa)) { estudiante.ListarCertificados(); exitCertificados = true; } } if (exitCertificados == false) { Console.Out.WriteLine("No se encontró a ese alumno"); } } else if (opPersC == "2") { Console.Out.WriteLine("Ingrese el RUT a continuacion para iniciar sesion"); string RUT = Console.ReadLine(); foreach (Funcionario funcionarioList in universidad.Funcionarios) { if (funcionarioList.RutFuncionario.Equals(RUT)) { funcionarioList.ListarCertificados(); exitCertificados = true; } } if (exitCertificados == false) { Console.Out.WriteLine("No se encontró ese funcionario"); } } else { Console.Out.WriteLine("Opcion no valida :("); } break; case "9": Console.Out.WriteLine("Se ingresó al sistema de editado de datos"); Console.Out.WriteLine("¿A que tipo de persona se le editarán sus datos? [1] Alumno o [2] Funcionario"); string opEdit = Console.ReadLine(); bool exitEdi = false; if (opEdit == "1") { Console.Out.WriteLine("Ingresa tu numero de matricula a continuacion para inicar sesion"); string numMatri = Console.ReadLine(); foreach (Estudiante estudianteEdi in universidad.Estudiantes) { if (estudianteEdi.NumMatricula.Equals(numMatri)) { estudianteEdi.CambiarDatos(universidad); exitEdi = true; } } if (exitEdi == false) { Console.Out.WriteLine("No se encontró a ese alumno"); } } else if (opEdit == "2") { Console.Out.WriteLine("Ingresa tu RUT a continuacion para iniciar sesion"); string RutFun = Console.ReadLine(); foreach (Funcionario funicionarioEdi in universidad.Funcionarios) { if (funicionarioEdi.RutFuncionario.Equals(RutFun)) { funicionarioEdi.CambiarDatos(universidad); exitEdi = true; } } if (exitEdi == false) { Console.Out.WriteLine("No se encontró ese funcionario"); } } else { Console.Out.WriteLine("Se ingresó una opcion no valida :("); } break; case "10": Console.Out.WriteLine("Actualmente la fecha es: " + DateTime.Now); Console.Out.WriteLine( "¿Desea comprobar el certificado por una fecha manual[1] o por la hora del sistema[2]?"); string fechaValid = Console.ReadLine(); if (fechaValid == "1") { try { Console.Out.WriteLine("Ingrese la fecha a continuación"); Console.Out.WriteLine("Ejemplo: 01/01/2019 13:00 (SI NO SE SIGUE EL FORMATO, SE LANZARÁ UNA EXCEPCION)"); string fechaManual = Console.ReadLine(); DateTime fecha = DateTime.ParseExact(fechaManual, "dd/MM/yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture); Console.Out.WriteLine("Ingrese el codigo de validacion del certificado:"); string codigo = Console.ReadLine(); int exitoVal = 0; // FALTA COMPROBAR CERTIFICADOS DE FUNCIONARIOS foreach (Estudiante estudiante in universidad.Estudiantes) { foreach (Certificado certificado in estudiante.CertificadosAlumno) { if (certificado.CodigoVerificacion.Equals(codigo)) { Console.Out.WriteLine("**********************************"); Console.Out.WriteLine("¡Certificado entontrado!"); if (DateTime.Compare(fecha, certificado.Vigencia) >= 0) { Console.Out.WriteLine("El certificado esta vencido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; break; } else { Console.Out.WriteLine("El certificado es valido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; break; } } } } foreach (Funcionario funcionarioActual in universidad.Funcionarios) { foreach (Certificado certificado in funcionarioActual.CertificadosFuncionario) { if (certificado.CodigoVerificacion.Equals(codigo)) { Console.Out.WriteLine("**********************************"); Console.Out.WriteLine("¡Certificado entontrado!"); if (DateTime.Compare(fecha, certificado.Vigencia) >= 0) { Console.Out.WriteLine("El certificado esta vencido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; break; } else { Console.Out.WriteLine("El certificado es valido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; break; } } } } if (exitoVal != 1) { Console.Out.WriteLine("**********************************"); Console.Out.WriteLine("El certificado no se encontro"); Console.Out.WriteLine("**********************************"); } } catch (Exception e) { Console.Out.WriteLine("Excepcion lanzada, error al detectar el parseo de la fecha. Revise la entrada e intente nuevamente"); Console.WriteLine(e); throw; } } else if (fechaValid == "2") { Console.Out.WriteLine("Se tomará la fecha " + DateTime.Now + " como la fecha actual"); Console.Out.WriteLine("Ingrese el codigo de validacion del certificado:"); string codigo = Console.ReadLine(); int exitoVal = 0; // FALTA COMPROBAR CERTIFICADOS DE FUNCIONARIOS foreach (Estudiante estudiante in universidad.Estudiantes) { foreach (Certificado certificado in estudiante.CertificadosAlumno) { if (certificado.CodigoVerificacion.Equals(codigo)) { Console.Out.WriteLine("**********************************"); Console.Out.WriteLine("¡Certificado entontrado!"); if (DateTime.Compare(DateTime.Now, certificado.Vigencia) >= 0) { Console.Out.WriteLine("El certificado esta vencido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; break; } else { Console.Out.WriteLine("El certificado es valido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; break; } } } } foreach (Funcionario funcionarioCert in universidad.Funcionarios) { foreach (Certificado certificado in funcionarioCert.CertificadosFuncionario) { if (certificado.CodigoVerificacion.Equals(codigo)) { Console.Out.WriteLine("**********************************"); Console.Out.WriteLine("¡Certificado entontrado!"); if (DateTime.Compare(DateTime.Now, certificado.Vigencia) >= 0) { Console.Out.WriteLine("El certificado esta vencido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; } else { Console.Out.WriteLine("El certificado es valido"); Console.Out.WriteLine("**********************************"); exitoVal = 1; } } } } if (exitoVal != 1) { Console.Out.WriteLine("**********************************"); Console.Out.WriteLine("El certificado no se encontro"); Console.Out.WriteLine("**********************************"); } } else { Console.Out.WriteLine("Opción no valida. Revise la entrada e intente nuevamente"); } break; case "11": Console.Out.WriteLine("Se procederá a eliminar un alumno o un funcionario"); Console.WriteLine("¿La persona a eliminar es un alumno[1] o funcionario[2]?"); string opPersElim = Console.ReadLine(); bool exitEliminacion = false; if (opPersElim == "1") { Console.WriteLine("Ingresa tu numero de matricula a continuacion para iniciar sesion y eliminar tu perfil"); string numMa = Console.ReadLine(); for (int j = 0; j < universidad.Estudiantes.Count; j++) { if (universidad.Estudiantes[j].NumMatricula.Equals(numMa)) { Console.Out.WriteLine("Alumno encontrado. Confirme eliminación [S/N]"); string confirm = Console.ReadLine(); exitEliminacion = true; if (confirm.Equals("s", StringComparison.InvariantCultureIgnoreCase)) { universidad.Estudiantes.RemoveAt(j); Console.Out.WriteLine("Alumno removido con exito"); } else if (confirm.Equals("n", StringComparison.InvariantCultureIgnoreCase)) { Console.Out.WriteLine("Operación cancelada"); } else { Console.WriteLine("Valor ingresado no valido, ingrese el valor nuevamente"); int exit = 0; do { Console.WriteLine("Alumno encontrado. Confirme eliminación [S/N]"); confirm = Console.ReadLine(); if (confirm.Equals("s", StringComparison.InvariantCultureIgnoreCase)) { universidad.Estudiantes.RemoveAt(j); Console.Out.WriteLine("Alumno removido con exito"); exit = 1; } else if (confirm.Equals("n", StringComparison.InvariantCultureIgnoreCase)) { Console.Out.WriteLine("Operación cancelada"); exit = 1; } } while (exit == 0); } } } } else if (opPersElim == "2") { Console.WriteLine("Ingresa tu RUT a continuación para eliminar tu perfil"); string RutEli = Console.ReadLine(); for (int i = 0; i < universidad.Funcionarios.Count; i++) { if (universidad.Funcionarios[i].RutFuncionario.Equals(RutEli)) { Console.Out.WriteLine("Funcionario encontrado. Confirme eliminación [S/N]"); exitEliminacion = true; string confirm = Console.ReadLine(); if (confirm.Equals("s", StringComparison.InvariantCultureIgnoreCase)) { universidad.Funcionarios.RemoveAt(i); Console.Out.WriteLine("Funcionario removido con exito"); } else if (confirm.Equals("n", StringComparison.InvariantCultureIgnoreCase)) { Console.Out.WriteLine("Operación cancelada"); } else { Console.WriteLine("Valor ingresado no valido, ingrese el valor nuevamente"); int exit = 0; do { Console.WriteLine("Funcionario encontrado. Confirme eliminación [S/N]"); confirm = Console.ReadLine(); if (confirm.Equals("s", StringComparison.InvariantCultureIgnoreCase)) { universidad.Funcionarios.RemoveAt(i); Console.Out.WriteLine("Funcionario removido con exito"); exit = 1; } else if (confirm.Equals("n", StringComparison.InvariantCultureIgnoreCase)) { Console.Out.WriteLine("Operación cancelada"); exit = 1; } } while (exit == 0); } } } } if (exitEliminacion == false) { Console.Out.WriteLine("No se encontró al usuario o la opcion ingresada no es valida :("); } break; default: Console.Out.WriteLine("La opción ingresada no es valida :("); break; } } while (op != "12"); }
public void MenuCertificados(Estudiante datos) { string opCert; do { Console.ForegroundColor = ConsoleColor.Yellow; Console.Out.WriteLine("\n¡Bienvenido " + NombrePersona + "!"); Console.Out.WriteLine("*********************************************"); Console.Out.WriteLine("Elige el certificado a emitir:"); Console.Out.WriteLine("[1] Año curso"); Console.Out.WriteLine("[2] Asignacion familiar"); Console.Out.WriteLine("[3] Canton reclutamiento"); Console.Out.WriteLine("[4] Rebaja transporte"); Console.Out.WriteLine("[5] Informe curricular"); Console.Out.WriteLine("[6] Informe curricular postgrado"); Console.Out.WriteLine("[7] Alumno regular postgrado"); Console.Out.WriteLine("[8] Salir"); Console.Out.WriteLine("*********************************************"); Console.Out.WriteLine("Ingrese la opcion del certificado a emitir"); opCert = Console.ReadLine(); switch (opCert) { case "1": CertificadoEstudiante certificado1 = new CertificadoEstudiante(); Console.Out.WriteLine("Porque periodo desea realizar la emision del certificado"); Console.Out.WriteLine("Por ejemplo: 2019-1"); string periodo = Console.ReadLine(); certificado1.CrearCertificado(datos, 1, periodo, "No aplica"); CertificadosAlumno.Add(certificado1); break; case "2": CertificadoEstudiante certificado2 = new CertificadoEstudiante(); Console.Out.WriteLine("¿Por que periodo desea realizar la emision del certificado? (Otoño o Verano)"); string periodoCert = Console.ReadLine(); if (periodoCert != null && (periodoCert.Equals("Otoño", StringComparison.OrdinalIgnoreCase) || periodoCert.Equals("Verano", StringComparison.OrdinalIgnoreCase))) { Console.Out.WriteLine("Ingrese el destinatario del certificado"); string dest = Console.ReadLine(); certificado2.CrearCertificado(datos, 2, periodoCert, dest); CertificadosAlumno.Add(certificado2); } else { Console.Out.WriteLine("No se ingresó un periodo valido. Revise la entrada e intente nuevamente"); } break; case "3": CertificadoEstudiante certificado3 = new CertificadoEstudiante(); Console.Out.WriteLine("¿Por que periodo desea realizar la emision del certificado? (Otoño o Verano)"); string periodoCert3 = Console.ReadLine(); if (periodoCert3 != null && (periodoCert3.Equals("Otoño", StringComparison.OrdinalIgnoreCase) || periodoCert3.Equals("Verano", StringComparison.OrdinalIgnoreCase))) { certificado3.CrearCertificado(datos, 3, periodoCert3, "No aplica"); CertificadosAlumno.Add(certificado3); } else { Console.Out.WriteLine("No se ingresó un periodo valido. Revise la entrada e intente nuevamente"); } break; case "4": CertificadoEstudiante certificado4 = new CertificadoEstudiante(); Console.Out.WriteLine("¿Por que periodo desea realizar la emision del certificado? (Otoño o Verano)"); string periodoCert4 = Console.ReadLine(); if (periodoCert4 != null && (periodoCert4.Equals("Otoño", StringComparison.OrdinalIgnoreCase) || periodoCert4.Equals("Verano", StringComparison.OrdinalIgnoreCase))) { certificado4.CrearCertificado(datos, 4, periodoCert4, "No aplica"); CertificadosAlumno.Add(certificado4); } else { Console.Out.WriteLine("No se ingresó un periodo valido. Revise la entrada e intente nuevamente"); } break; case "5": CertificadoEstudiante certificado5 = new CertificadoEstudiante(); certificado5.CrearCertificado(datos, 5, "No aplica", "No aplica"); CertificadosAlumno.Add(certificado5); break; case "6": if (IsEstudiantePosgrado == true) { CertificadoEstudiante certificado6 = new CertificadoEstudiante(); certificado6.CrearCertificado(datos, 6, "No aplica", "No aplica"); CertificadosAlumno.Add(certificado6); } else if (IsEstudiantePosgrado == false) { Console.Out.WriteLine("No eres un alumno de postgrado, por lo que no puedes sacar este certificado :/"); } break; case "7": if (IsEstudiantePosgrado == true) { CertificadoEstudiante certificado7 = new CertificadoEstudiante(); certificado7.CrearCertificado(datos, 7, "No aplica", "No aplica"); CertificadosAlumno.Add(certificado7); } else if (IsEstudiantePosgrado == false) { Console.Out.WriteLine("No eres un alumno de postgrado, por lo que no puedes sacar este certificado :/"); } break; case "8": Console.Out.WriteLine("Saliendo del menu..."); break; default: Console.Out.WriteLine("Opcion no valida :("); break; } } while (opCert != "8"); }