static void Main(string[] args) { // evento AppDomain.CurrentDomain.ProcessExit += AcciondelEvento; AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(100, 1000, 1); var engine = new EscuelaEngine(); engine.Inicializar(); Printer.Title("Bienvenidos"); var reporteador = new Reporteador(engine.GetDiccionarioOjetos()); var evalList = reporteador.GetListaEvaluaciones(); var asigList = reporteador.GetListaAsignaturas(); var listEvaluaCAsignat = reporteador.GetDicdeEvalxAsignatura(); var listPromedios = reporteador.GetpromedioAlumnosXAsignatura(); Printer.Title("Reportes: "); var newEval = new Evaluacion(); string nombre, notaString; Console.WriteLine("Escriba su nombre y "); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrEmpty(nombre)) { Printer.Title("El Valor del nombre no puede ser vacio"); Console.WriteLine("Saliendo del programa"); } else { try { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la evaluacion ha sido ingresado!"); } catch { Printer.Title("El Valor del nombre no puede ser vacio"); Console.WriteLine("Saliendo del programa"); } } Console.WriteLine("Escriba la nota de la evaluacion "); Printer.PresioneEnter(); notaString = Console.ReadLine(); if (string.IsNullOrEmpty(notaString)) { Printer.Title("El Valor de la nota no puede ser vacio"); Console.WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5..."); } WriteLine("La nota ha sido ingresada!"); } catch (ArgumentOutOfRangeException arge) { Printer.Title(arge.Message); Console.WriteLine("Saliendo del programa"); } catch (Exception) { Printer.Title("El Valor de la nota no puede ser vacio"); Console.WriteLine("Saliendo del programa"); } finally { Printer.Title("Finalmente"); Printer.Beep(5000, 1000, 3); } } Dictionary <int, string> dicccionario = new Dictionary <int, string>(); dicccionario.Add(10, "Juan"); dicccionario.Add(11, "Yonathan"); foreach (var keyValPair in dicccionario) { WriteLine($"Key: {keyValPair.Key} Valor: {keyValPair.Value}"); } var dictmp = engine.GetDiccionarioOjetos(); engine.ImprimirDiccionario(dictmp, true); /* Printer.Title("Acceso al diccionario"); * dicccionario[0] = "Pekerman"; * WriteLine(dicccionario[0]); // accediendo al valor por medio de la llave dentro del diccionario * Printer.Title("Otro diccionario"); * * var dic = new Dictionary<string, string>(); * * dic["luna"] = "satelite de la tierra"; * WriteLine(dic["luna"]); */ // dic.Add("luna", "personaje de tv"); // WriteLine(dic["luna"]); // en este caso no sirve porque una cosa es remplazar el valor de la llave y otra adicionar una llave igual... }
static void Main(string[] args) { //Event = dispara las acciones AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(2000, 1000, 1); //AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento; var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); //Printer.Beep(10000, cantidad: 10); //ImprimirCursosEscuela(engine.Escuela); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); //var reporteador = new Reporteador(null); var evalList = reporteador.GetListaEvaluaciones(); var asgList = reporteador.GetListaAsignaturas(); var listaEvalXAsig = reporteador.GetDiccionarioEvalXAsig(); var listaPromeXAsig = reporteador.GetPromedioAlumnoPorAsignatura(); Printer.WriteTitle("Captura de una Evaluacion por Consola"); var newEval = new Evaluacion(); string nombre, notaString; float nota; WriteLine("Ingrese el nombre de la evaluación"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { //throw new ArgumentException("El valor del nombre no puede ser vacio"); Printer.WriteTitle("El valor del nombre no puede ser vacio"); WriteLine("SALIENDO DEL PROGRAMA"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la evaluación ha sido ingresado correctamente"); } WriteLine("Ingrese la nota de l aevaluación"); Printer.PresioneEnter(); notaString = Console.ReadLine(); if (string.IsNullOrWhiteSpace(notaString)) { //throw new ArgumentException("El valor de la nota no puede ser vacio"); Printer.WriteTitle("El valor de la nota no puede ser vacio"); WriteLine("SALIENDO DEL PROGRAMA"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5"); } WriteLine("La nota de la evaluación ha sido ingresado correctamente"); } catch (ArgumentOutOfRangeException arge) { WriteLine(arge.Message); WriteLine("SALIENDO DEL PROGRAMA"); } catch (Exception) { Printer.WriteTitle("El valor de la nota no es un número válido"); WriteLine("SALIENDO DEL PROGRAMA"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } } /* * //Obtener los objetos mediante una lista * var listaObjetos = engine.GetObjetosEscuela(); */ /* * //Obtener los objetos mediante un diccionario * var dictmp = engine.GetDiccionarioObjetos(); * engine.ImprimirDiccionario(dictmp, true); */ /* * //Implementacion de diccionarios * Dictionary<int, string> diccionario = new Dictionary<int, string>(); * diccionario.Add(10, "Pepito"); * diccionario.Add(20, "Loren"); * foreach (var keyValPair in diccionario) * { * WriteLine($"Key: {keyValPair.Key} Valor: {keyValPair.Value}"); * } * Printer.WriteTitle("Acceso a Diccionario"); * diccionario[0] = "Juanito"; * WriteLine(diccionario[0]); * Printer.WriteTitle("Otro Diccionario"); * var dic = new Dictionary<string, string>(); * dic["Luna"] = "Cuerpo celeste que gira alrededor de la tierra"; * WriteLine(dic["Luna"]); * dic["Luna"] = "Protagonista de Soy Luna"; * WriteLine(dic["Luna"]); */ /* * //Interfaces * var ListaILugar = from obj in listaObjetos * where obj is ILugar * select (ILugar)obj; */ /* * //is para preguntar si un objeto es de un tipo determinado * if (ob is Alumno) * { * Alumno alumnoRecuperado = (Alumno)ob; * } * //as tomar el objeto de cual estamos refiriendonos * Alumno alumnoRecuperado2 = ob as Alumno; */ }
private static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; //AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(1000, 1000, 1); //AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento; var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var EvalList = reporteador.GetListaEvaluaciones(); var AsignaturaList = reporteador.GetListAsignaturas(); var DicEval = reporteador.GetDicEvaluacionesPorAsignatura(); var ListaPromXAsignatura = reporteador.GetPromedioAlumnosPorAsignatura(); Printer.WriteTitle("Captura evaluación por consola"); string Nombre, notaString; var newEval = new Evaluación(); WriteLine("Ingrese el nombre de la evaluación:"); Printer.PresioneENTER(); Nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(Nombre)) { Printer.WriteTitle("El valor del nombre no puede ser vacio"); WriteLine("Saliendo del programa"); } else { newEval.Nombre = Nombre.ToLower(); WriteLine("El nombre de la evaluación ha sido ingresado correctamente."); } WriteLine("Ingrese la nota de la evaluación:"); Printer.PresioneENTER(); notaString = Console.ReadLine(); if (string.IsNullOrWhiteSpace(notaString)) { Printer.WriteTitle("El valor de la nota no puede ser vacio"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 | newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe de estar entre 0 y 5"); } WriteLine("la nota de la evaluación ha sido ingresado correctamente."); return; } catch (ArgumentOutOfRangeException arge) { Printer.WriteTitle(arge.Message); WriteLine("Saliendo del programa"); } catch (Exception) { Printer.WriteTitle("El valor de la nota no es un número valido"); WriteLine("Saliendo del programa"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } } // foreach (var item in ListaPromXAsignatura) // { // foreach (var alumn in item.Value) // { // var temp = alumn as Alumno; // } // } //Printer.Beep(10000, cantidad: 10); // ImpimirCursosEscuela(engine.Escuela); // var ListaObjetos = engine.GetObjetosEscuela(out int Conteo_Evaluaciones, // out int Conteo_Alumnos, // out int Conteo_Asignaturas, // out int Conteo_Cursos); // var DicTemp = engine.GetDiccionarioObjetos(); // engine.ImprimirDiccionario(DicTemp, true); // Dictionary<int, string> Diccionario = new Dictionary<int, string>(); // Diccionario.Add(10, "Juan"); // Diccionario.Add(23, "Lorem impsum"); // foreach (var llaveValor in Diccionario) // { // WriteLine(llaveValor.Value); // WriteLine(llaveValor.Key); // } // Printer.WriteTitle("Acceso a diccionario"); // WriteLine(Diccionario[10]); // Printer.DrawLine(20); // Printer.DrawLine(20); // Printer.DrawLine(20); // Printer.WriteTitle("Pruebas de poliformismo"); // var Alumno_Test = new Alumno { Nombre = "Pepito Perez" }; // ObjetoEscuelaBase objeto = Alumno_Test; // Printer.WriteTitle("Alumno_or"); // WriteLine($"Alumno: {Alumno_Test.Nombre}"); // WriteLine($"Alumno: {Alumno_Test.UniqueId}"); // WriteLine($"Alumno: {Alumno_Test.GetType()}"); // Printer.WriteTitle("Alumno_pol"); // WriteLine($"Alumno: {objeto.Nombre}"); // WriteLine($"Alumno: {objeto.UniqueId}"); // WriteLine($"Alumno: {objeto.GetType()}"); // var listaObjetos = engine.GetObjetosEscuela(); }
static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var evalList = reporteador.GetListaEvaluaciones(); var listaAsig = reporteador.GetListaAsignaturas(); var listaEvalXAsig = reporteador.GetDicEvaluacionesXAsig(); var promAlumXAsig = reporteador.GetPromAlumXAsig(); var promTopXAsig = reporteador.GetTopPromXAsign(5); Printer.WriteTitle("Captura de una Evaluación por Consola"); var newEval = new Evaluación(); string nombre, notastring; float nota; WriteLine("Ingrese el nombre de la evaluación"); Printer.PresioneENTER(); nombre = ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { Printer.WriteTitle("El valor del nombre no puede ser vacío"); WriteLine("Saliendo del programa"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la evaluación ha sido ingresado correctamente"); } WriteLine("Ingrese la nota de la evaluación"); Printer.PresioneENTER(); notastring = ReadLine(); if (string.IsNullOrWhiteSpace(notastring)) { Printer.WriteTitle("El valor de la nota no puede ser vacío"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notastring); if (newEval.Nota < 0 || newEval.Nota > 10) { throw new ArgumentOutOfRangeException("La nota debe estár entre 0 y 5"); } WriteLine("La nota de la evaluación ha sido ingresado correctamente"); } catch (ArgumentOutOfRangeException arge) { WriteLine(arge.Message); WriteLine("Saliendo del programa"); } catch (Exception) { Printer.WriteTitle("El valor de la nota no es un número valido"); WriteLine("Saliendo del programa"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } } }
static void Main(string[] args) { var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var evalList = reporteador.GetListaEvaluaciones(); var listaAsg = reporteador.GetListaAsignaturas(); var listaEvalXAsig = reporteador.GetDicEvaluaXAsig(); var listaPromXAsig = reporteador.GetPromedioPorAsignatura(); Printer.WriteTitle("Captura de una Evaluación por Consola"); var newEval = new Evaluación(); string nombre, notastring; //float nota; WriteLine("Ingrese el nombre de la evaluación"); Printer.PreioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { Printer.WriteTitle("El valor del nombre no puede estar vacio"); WriteLine("Saliendo del programa"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre ha sido capturado correctamente"); } WriteLine("Ingrese la nota de la evaluación"); Printer.PreioneEnter(); notastring = Console.ReadLine(); if (string.IsNullOrWhiteSpace(notastring)) { Printer.WriteTitle("El valor de la nota no puede estar vacio"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notastring); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 1 y 5"); } WriteLine("La nota ha sido capturado correctamente"); } catch (ArgumentOutOfRangeException arge) { Printer.WriteTitle(arge.Message); WriteLine("Saliendo del programa"); } catch (Exception) { Printer.WriteTitle("El valor de la nota no es un número valido"); WriteLine("Saliendo del programa"); } finally { //El finally dentro de las excepciones es ese fragmento de codigo que siempre se va a jecutar antes de terminar la apliación o proceso de la excepcion. Console.WriteLine("FINAllY"); } } Console.ReadLine(); }
static void Main(string[] args) { /// Evento delegado lanzado al terminar la ejecución del programa // Forma 1: //AppDomain.CurrentDomain.ProcessExit += AccionDelEvento(); // Forma 2: //.CurrentDomain.ProcessExit += (o,s)=> Imprimir.ImprimirBeepEnConsola(5000,1000); /// Remover un evento asignado //AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento(); var coreEscuela = new EscuelaEngine(); coreEscuela.Inicializar(); ImprimirEscuelas(coreEscuela.Escuela); Imprimir.ImprimirLineaEnConsola(20); Imprimir.ImprimirTituloEnConsola("Pruebas Polimorfismo"); var alumnoTest = new Alumno() { Nombre = "Carlo Amaya" }; var objSistema = alumnoTest; Imprimir.ImprimirTituloEnConsola("Alumno"); Console.WriteLine($"Nombre Alumno: {alumnoTest.Nombre}"); Console.WriteLine($"Id Alumno: {alumnoTest.Id}"); Console.WriteLine($"Id objSistema: {alumnoTest.GetType()}"); Imprimir.ImprimirTituloEnConsola("objSistema"); Console.WriteLine($"Nombre objSistema: {objSistema.Nombre}"); Console.WriteLine($"Id objSistema: {objSistema.Id}"); Console.WriteLine($"Id objSistema: {objSistema.GetType()}"); var listEscuela = new List <Escuela>(); listEscuela.Add(coreEscuela.Escuela); /// obtener objetos que implementen una interfaz var objILugar = from obj in listEscuela where obj is ILugar select(ILugar) obj; /// Diccionarios Dictionary <int, string> diccionario = new Dictionary <int, string>(); diccionario.Add(10, "Juank"); diccionario.Add(12, "CarlosA"); diccionario.Add(14, "DianaO"); // Forma de recorrer un diccionario. foreach (var keyValuePair in diccionario) { Console.WriteLine($"Key:{keyValuePair.Key}; Valor: {keyValuePair.Value}"); } Dictionary <string, string> diccionario2 = new Dictionary <string, string>(); diccionario2["Luna"] = "Cuerpo celeste que gira alrrededor de la tierra"; Console.WriteLine(diccionario2["Luna"]); // Cast IEnumerable <SalaDistante> listaSalasDistantes = new List <SalaDistante>(); List <Sala> salas = new List <Sala>(); //salas = listaSalasDistantes.Cast<Sala>(); var sala1 = new Sala() { CostoFijo = 1534, Descripcion = "ejemplo 1", Id = 1, IndiceOcupacion = 1, MaximoOcupacion = 1, Nombre = "Sala 1", OcupacionActual = 1 }; var sala2 = new Sala() { CostoFijo = 1534, Descripcion = "ejemplo 2", Id = 1, IndiceOcupacion = 1, MaximoOcupacion = 1, Nombre = "Sala 2", OcupacionActual = 1 }; var sala3 = new Sala() { CostoFijo = 1534, Descripcion = "ejemplo 3", Id = 1, IndiceOcupacion = 1, MaximoOcupacion = 1, Nombre = "Sala 3", OcupacionActual = 1 }; var sala4 = new Sala() { CostoFijo = 1534, Descripcion = "ejemplo 4", Id = 1, IndiceOcupacion = 1, MaximoOcupacion = 1, Nombre = "Sala 4", OcupacionActual = 1 }; salas.Add(sala1); salas.Add(sala2); salas.Add(sala3); salas.Add(sala4); listaSalasDistantes = salas.Cast <SalaDistante>(); Reporteador repo = new Reporteador(null); }
static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; //AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(2000, 1000, 1); var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); //new Reporteador(null); var evaluaciones = reporteador.GetListaEvaluaciones(); var asignaturas = reporteador.GetListaAsignaturas(); var dicEvalXAsig = reporteador.GetDicEvaluaXAsig(); var listaPromXAsig = reporteador.GetPromedioAlumnosPorAsignaturas(); var mejoresPromedios = reporteador.GetMejoresPromediosPorAsignaturas(10); Printer.WriteTitle("Captura de una evaluación por consola."); var eval = new Evaluación(); string nombre; WriteLine("Ingrese el nombre de la evaluación"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { throw new ArgumentException("El valor del nombre no puede ser vacio."); } else { eval.Nombre = nombre.ToLower(); System.Console.WriteLine("El nombre de la evaluación ha sido ingresado correctamente."); } WriteLine("Ingrese el valor de la nota"); Printer.PresioneEnter(); var notastring = Console.ReadLine(); if (string.IsNullOrWhiteSpace(notastring)) { throw new ArgumentException("El valor de la nota no puede ser vacio."); } else { try{ eval.Nota = double.Parse(notastring); if (eval.Nota < 0 || eval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5."); } System.Console.WriteLine("El valor de la nota ha sido ingresado correctamente."); } catch (ArgumentOutOfRangeException arge) { Printer.WriteTitle(arge.Message); WriteLine("Saliendo del programa."); } catch (Exception) { Printer.WriteTitle("El valor de la nota no es un número válido."); WriteLine("Saliendo del programa."); } } }
static void Main(string[] args) { //AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; //AppDomain.CurrentDomain.ProcessExit += (o,s)=>Printer.Beep(2000,1000,1); var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("Bienvenidos a la escuela"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); //reporteador.GetListaEscuela(); /* var evalList = reporteador.GetListaEvaluaciones(); * var listaAsig = reporteador.GetListaAsignaturas(); * var listaEvalAsig = reporteador.GetDiccionarioEvaluacionesXAsignatura(); * var listaPromXAsig = reporteador.GetPromeAlumnPorAsignatura(); * var topListaPromXAsig = reporteador.GetTopPromeAlumnPorAsignatura(5); */ Printer.WriteTitle("Captura de una Evaluación por Consola"); var newEval = new Evaluación(); string nombre, notaString; float nota; WriteLine("Ingrese el nombre de la Evaluación:"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { Printer.WriteTitle("El valor del nombre no puede ser vacio"); WriteLine("Saliendo del programa"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la evaluación ha sido ingresado correctamente"); } WriteLine("Ingrese la nota de la Evaluación:"); Printer.PresioneEnter(); notaString = Console.ReadLine(); if (string.IsNullOrWhiteSpace(notaString)) { Printer.WriteTitle("El valor de la nota no puede ser vacio"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5"); } WriteLine("La nota de la evaluación ha sido ingresado correctamente"); return; } catch (ArgumentOutOfRangeException e) { WriteLine(e.Message); WriteLine("Saliendo del programa"); } catch (Exception) { WriteLine("El valor de la nota no es valida"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } } }
static void Main(string[] args) { // AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; // AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(2000, 1000, 1); var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var evalList = reporteador.GetListaEvalucion(); var asigList = reporteador.GetListaAsignaturas(); var listaEval = reporteador.GetDicEvaluacionAsign(); var ListaPromexAsig = reporteador.GetPromedioAlumnoAsig(); Printer.WriteTitle("Captura de una evaluacion por consola"); var newEval = new Evaluacion(); string nombre, notastrig; WriteLine("Ingrese el Nombre de la evalucion"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrEmpty(nombre)) { throw new ArgumentException($"El valor del {nameof(nombre)} no puede ser vacio"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la evaluacion ha sido ingresado"); } /*////////////////////////////////////////////*/ WriteLine("Ingrese La NOTA de la evalucion"); Printer.PresioneEnter(); notastrig = Console.ReadLine(); if (string.IsNullOrEmpty(notastrig)) { throw new ArgumentException($"El valor del {nameof(notastrig)} no puede ser vacio"); } else { try { newEval.Nota = float.Parse(notastrig); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe de estar entre 0 y 5"); } WriteLine("La nota de la evaluacion ha sido ingresado"); } catch (ArgumentOutOfRangeException ex) { Printer.WriteTitle(ex.Message); } catch (Exception ex) { Printer.WriteTitle($"{ex.Message} El Valor de la nota no es un numero valido"); } finally { Printer.ExitProgram(); Printer.Beep(2500, 500, 3); } } }
static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; var engine = new EscuelaEngine(); engine.Inicializar(); var diccionarioObj = engine.ObtenerDiccionarioObjetos(); var reporteador = new Reporteador(diccionarioObj); while (true) { Clear(); Printer.DibujarMenuPrincipal(engine.Escuela.Nombre); var opcion = ReadKey(); try { switch (opcion.Key) { case ConsoleKey.D0: case ConsoleKey.NumPad0: Clear(); WriteLine("Terminando el programa..."); return; case ConsoleKey.D1: case ConsoleKey.NumPad1: var lsEvaluaciones = reporteador.ObtenerEvaluaciones(); if (lsEvaluaciones.Count() == 0) { WriteLine("No se encontraron registros"); } else { ReportePaginado(lsEvaluaciones, "Reporte de Evaluaciones"); } break; case ConsoleKey.D2: case ConsoleKey.NumPad2: var lsEvalAsig = reporteador.ObtenerEvaluacionesPorAsignatura(); if (lsEvalAsig.Count() == 0) { WriteLine("No se encontraron registros"); } else { SubMenu(lsEvalAsig, "Reporte de Evaluaciones por Asignatura"); } break; case ConsoleKey.D3: case ConsoleKey.NumPad3: var lsPromedio = reporteador.ObtenerPromedioAlumnoPorAsignatura(); if (lsPromedio.Count() == 0) { WriteLine("No se encontraron registros"); } else { SubMenu(lsPromedio, "Reporte de Promedio Alumno por Asignatura"); } break; case ConsoleKey.D4: case ConsoleKey.NumPad4: Clear(); WriteLine("Ingrese la cantidad Top"); var cantidadStr = ReadLine(); if (int.TryParse(cantidadStr, out int cantidad)) { var lsTopPromedio = reporteador.ObtenerPromedioAlumnoPorAsignatura(cantidad); if (lsTopPromedio.Count() == 0) { WriteLine("No se encontraron registros"); } else { SubMenu(lsTopPromedio, $"Reporte de Top {cantidad} Promedio Alumno por Asignatura"); } } break; } } catch (Exception) { WriteLine("Ocurrió un error inesperado"); WriteLine("Volviendo al menú"); } finally { } } }
static void Main(string[] args) { //Se ejecutan en orden cuando el proceso termina AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(2000, 1000, 1); AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento; //Se elimina este var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("¡Bienvenido a la escuela!"); //var reporteador = new Reporteador(engine.getDiccionarioObjetos()); var reporteador = new Reporteador(null); var evalList = reporteador.GetListaEvaluaciones(); var listaAsig = reporteador.GetListaAsignaturas(); var listaEvalXAsig = reporteador.GetDicEvaluaXAsig(); var listaPromXAsig = reporteador.GetPromAlumPorAsignatura(); Printer.WriteTitle("Captura de una evaluación por consola"); WriteLine("Ingrese el nombre de la evaluación"); Printer.PressEnter(); string nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { Printer.WriteTitle("El valor del nombre no puede ser vacio"); WriteLine("Saliendo del programa"); } else { nombre = nombre.ToLower(); WriteLine("Nombre ingresado correctamente"); } WriteLine("Ingrese la nota de la evaluación"); Printer.PressEnter(); string notaStr = Console.ReadLine(); float nota; try { nota = float.Parse(notaStr); if (nota < 0 || nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5"); } WriteLine("La nota de la evaluacion ha sido ingresada correctamente"); return; } catch (ArgumentOutOfRangeException argE) { Printer.WriteTitle(argE.Message); WriteLine("Saliendo del programa"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } }
static void Main(string[] args) { // multicast delegate // puede tomar cuantos delegados le demos ->AppDomain... // evento llamado cuando termina el programa AppDomain.CurrentDomain.ProcessExit += AccionDelEvento; // en la funcion lambda debemos enviarle en objeto y el sender de // el evento o marcará error AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.PrintTitle("Segundo evento agregado."); // Podemos remover el primer evento //AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento; //inicializando una instancia principal var engine = new EscuelaEngine(); engine.Inicializar(); WriteLine($"BIENVENIDO A {engine.Escuela.Nombre}"); MostrarCursosEscuela(engine.Escuela); var todosEscuelaBases = engine.GetDiccionarioEscuelaBases(); // filtros opcionales al traer el diccionario //engine.MostrarDiccionario(todosEscuelaBases, // impEval:false, impAl:false, impEsc:false); //Printer.PrintTitle("Test del Reporter"); // trae todos los objetos sin excepcion var myRep = new Reporter(engine.GetDiccionarioEscuelaBases()); //var myRep = new Reporter(null); var evaluaciones = myRep.GetListaEvaluaciones(); //if(evaluaciones.Any()) WriteLine(evaluaciones.ToList()[0]); var asignaturas = myRep.GetListaAsignaturas(); //foreach (var asignatura in asignaturas.ToList()) //{ // WriteLine(asignatura); //} var evalXAsig = myRep.GetEvaluacionesPorAsignatura(); //foreach (var e in evalXAsig) //{ // Printer.PrintTitle(e.Key); // WriteLine($"{e.Key} => Cantidad de evaluaciones: {e.Value.Count()}"); // //foreach (var ev in e.Value) // //{ // //Write($"{ev.Asignatura} | "); // //} //} var alumnosNotas = myRep.GetPromedioAlumnosxAsignatura(); //foreach (var asignatura in alumnosNotas) //{ // Printer.PrintTitle(asignatura.Key); // // foreach (var alumno in asignatura.Value) // { // WriteLine($"{alumno.AlumnoNombre} => {alumno.Promedio}"); // } //} // mandando a reportear top 5 por cada asignatura var mejoresPromedios = myRep.mejoresPromediosPorAs(5); //---------------------------Menu Printer.PrintTitle("Captura de una evaluación por consola."); var nuevaEvaluacion = new Evaluacion(); string nombre, notaString = ""; WriteLine("Ingresar el nombre de la evaluación"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { throw new ArgumentException("El valor del nombre no puede estar vacío."); } else { nuevaEvaluacion.Nombre = nombre.ToUpper(); WriteLine("El nombre de la evaluacion ha sido guardada exitosamente."); } // capturando una nota valida while (true) { WriteLine("Ingresar la nota de la evaluación"); Printer.PresioneEnter(); notaString = Console.ReadLine(); try { nuevaEvaluacion.Nota = float.Parse(notaString); if (nuevaEvaluacion.Nota < 0.0 || nuevaEvaluacion.Nota > 5.0) { throw new FormatException(); } break; } catch (FormatException) { // en caso de no poder transformar a float // se repite la peticion WriteLine("[***Por favor ingrese una nota valida***]"); } finally // se ejecuta inclusive esté el break { Printer.PrintTitle("Beeep beeep beeep..."); } } WriteLine("La nota de la evaluacion ha sido guardada exitosamente."); // end main }
static void Main(string[] args) { var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("Bienvenidos a la Escuela"); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var evalList = reporteador.GetListaEvaluaciones(); Printer.WriteTitle("Captura de una Evaluación por Consola"); var nEval = new Evaluación(); string nombre, notaString; float nota; WriteLine("Ingrese el nombre de la evaluación"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrEmpty(nombre)) { throw new ArgumentException("El valor del nombre no puede ser vacio"); } else { nEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la evaluación ha sido ingresado correctamente"); } WriteLine("Ingrese la nota de la evaluación"); Printer.PresioneEnter(); notaString = Console.ReadLine(); if (string.IsNullOrEmpty(nombre)) { throw new ArgumentException("El valor de la nota no puede ser vacio"); } else { try { nEval.Nota = float.Parse(notaString); if (nEval.Nota < 0 || nEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe ser entre 0 y 5"); } WriteLine("La nota de la evaluación ha sido ingresado correctamente"); } catch (ArgumentOutOfRangeException arge) { Printer.WriteTitle(arge.Message); } catch (Exception) { WriteLine("La nota de la evaluación no es un número válido"); } finally { //finally siempre se va a ejecutar Printer.WriteTitle("Se ejecuto el finally"); } } }
static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += ActionDelEvento; AppDomain.CurrentDomain.ProcessExit += (o, s) => Printer.Beep(2000, 1000, 1); AppDomain.CurrentDomain.ProcessExit -= ActionDelEvento; var engine = new EscuelaEngine(); engine.Inicializar(); Printer.WriteTitle("BIENVENIDOS A LA ESCUELA"); //Printer.Beep(10000, cantidad: 10); //ImprimirCursosEscuela(engine.Escuela); var reporteador = new Reporteador(engine.GetDiccionarioObjetos()); var evalList = reporteador.GetListaEvaluaciones(); var listAsg = reporteador.GetListaAsignaturas(); var listaEvalXAsig = reporteador.GetDicEvaluacionesXAsig(); var listaPromXAsig = reporteador.GetPromeAlumnPorAsignatura(); Printer.WriteTitle("Captura de una Evaluación por Consola"); var newEval = new Evaluación(); string nombre, notaString; float nota; WriteLine("Ingrese el nombre de la Evaluación"); Printer.PresioneEnter(); nombre = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nombre)) { Printer.WriteTitle("El valor del nombre no puede ser vacio"); WriteLine("Saliendo del programa"); } else { newEval.Nombre = nombre.ToLower(); WriteLine("El nombre de la Evaluación ha sido ingresado correctamente"); } WriteLine("Ingrese la nota de la Evaluación"); Printer.PresioneEnter(); notaString = Console.ReadLine(); if (string.IsNullOrWhiteSpace(notaString)) { Printer.WriteTitle("El valor de la nota no puede ser vacio"); WriteLine("Saliendo del programa"); } else { try { newEval.Nota = float.Parse(notaString); if (newEval.Nota < 0 || newEval.Nota > 5) { throw new ArgumentOutOfRangeException("La nota debe estar entre 0 y 5"); } WriteLine("La nota de la Evaluación ha sido ingresada correctamente"); return; } catch (ArgumentOutOfRangeException arge) { Printer.WriteTitle(arge.Message); WriteLine("Saliendo del programa"); } catch (Exception) { Printer.WriteTitle("El valor de la nota no es número válido"); WriteLine("Saliendo del programa"); } finally { Printer.WriteTitle("FINALLY"); Printer.Beep(2500, 500, 3); } } // Dictionary<int, string> diccionario = new Dictionary<int, string>(); // diccionario.Add(10, "Duvan"); // diccionario.Add(23, "Lorem Ipsum"); // foreach (var keyValPair in diccionario) // { // WriteLine($"key: {keyValPair.Key} Valor: {keyValPair.Value}"); // } // var dictmp = engine.GetDiccionarioObjetos(); // engine.ImprimirDiccionario(dictmp, true); //////////////////EJECICIOS DICCIONARIO////////////////// // Printer.WriteTitle("Acceso a Diccionario"); // //WriteLine(diccionario[23]); // diccionario[0] = "Pekerman"; // WriteLine(diccionario[0]); // Printer.WriteTitle("Otro diccionario"); // var dic = new Dictionary<string, string>(); // dic["Luna"] = "Cuerpo celeste que gira alrededor de la tierra"; // WriteLine(dic["Luna"]); // dic["Luna"] = "Protagonista de soy Luna"; // dic.Add("Luna", "Protagonista de Soy Luna");//Saca error // WriteLine(dic["Luna"]); /////////////////////////////////////////////////////////// //////////////PRUEBAS DE POLIMORFISMO///////////////// //var obj = new ObjetoEscuelaBase(); // Printer.DrawLine(20); // Printer.DrawLine(20); // Printer.DrawLine(20); // Printer.WriteTitle("Pruebas de Polimorfismo"); // var alumnoTest = new Alumno { Nombre = "Claire UnderWood" }; // Printer.WriteTitle("Alumno"); // WriteLine($"Alumno: {alumnoTest.Nombre}"); // WriteLine($"Alumno: {alumnoTest.UniqueId}"); // WriteLine($"Alumno: {alumnoTest.GetType()}"); // ObjetoEscuelaBase ob = alumnoTest; // Printer.WriteTitle("ObjetoEscuela"); // WriteLine($"Alumno: {ob.Nombre}"); // WriteLine($"Alumno: {ob.UniqueId}"); // WriteLine($"Alumno: {ob.GetType()}"); // var objDummy = new ObjetoEscuelaBase() { Nombre = "Frank Underwood" }; // Printer.WriteTitle("ObjetoEscuelaBase"); // WriteLine($"Alumno: {objDummy.Nombre}"); // WriteLine($"Alumno: {objDummy.UniqueId}"); // WriteLine($"Alumno: {objDummy.GetType()}"); // var evaluación = new Evaluación() { Nombre = "Evaluación de math", Nota = 4.5f }; // Printer.WriteTitle("Evaluación"); // WriteLine($"Evaluación: {evaluación.Nombre}"); // WriteLine($"Evaluación: {evaluación.UniqueId}"); // WriteLine($"Evaluación: {evaluación.Nota}"); // WriteLine($"Evaluación: {evaluación.GetType()}"); // ob = evaluación; // Printer.WriteTitle("ObjetoEscuela"); // WriteLine($"Alumno: {ob.Nombre}"); // WriteLine($"Alumno: {ob.UniqueId}"); // WriteLine($"Alumno: {ob.GetType()}"); // alumnoTest = (Alumno)evaluación; // if (ob is Alumno) // { // Alumno alumnoRecuperado = (Alumno)ob; // } // Alumno alumnoRecuperado2 = ob as Alumno; // if (alumnoRecuperado2 != null) // { // } ///////////////////////////////////////////////////// //engine.Escuela.LimpiarLugar(); //////Obtener objetos a través de linq////////////// // var listaILugar = from obj in listaObjetos // where obj is ILugar // select (ILugar) obj; // var listaILugar = from obj in listaObjetos // where obj is Alumno // select (Alumno) obj; /////////////////////////////////////////////////// ////////////////PARAMETROS DE SALIDAD///////////// ///Forma 1 // int dummy = 0; // var listaObjetos = engine.GetObjetoEscuelas( // out int conteoEvaluaciones, // out dummy, // out dummy, // out dummy); //Forma 2 *Utilizar variable dummy // int dummy = 0; // var listaObjetos = engine.GetObjetoEscuelas( // out int conteoEvaluaciones, // out int conteoCursos, // out int conteoAsignaturas, // out int conteoAlumnos // ); //Forma 3 *Utilizando sobrecargas de metodos // int dummy = 0; // var listaObjetos = engine.GetObjetoEscuelas(); // listaObjetos.Add(new Evaluación { Nombre = "Curso Loco" }); ///////////////////////////////////////////////////////////////////// }
static void Main(string[] args) { Printer.writeTitle("Bienvenidos a la Escuela"); var engine = new EscuelaEngine(); engine.Inicializar(); Console.WriteLine(engine.Escuela); imprimirCursosEscuela(engine.Escuela); //int dummy = 0; //variable dummy var listaObjetos = engine.getObjetosEscuela ( out int ConteoEvaluaciones, out int ConteoCursos, out int ConteoAsignaturas, out int ConteoAlumnos, true, true, true, true ); // var listaLugar = from obj in listaObjetos //Se usa LINQ, esto es un query para filtrar // where obj is ILugar //el where de SQL donde el objeto sea de cierto tipo // select (ILugar)obj; //seleccionar el objeto con un casting de tipo x #region pruebas polimorfismo //engine.Escuela.LimpiarLugar(); // // Printer.DrawLine(20); // Printer.DrawLine(20); // Printer.DrawLine(20); // Printer.writeTitle("Pruebas de polimorfismo"); // var alumnoTest = new Alumno{Nombre = "Claire Underwood"}; // ObjetoEscuelaBase ob = alumnoTest; // Printer.writeTitle("Alumno"); // WriteLine($"Alumno: {alumnoTest.Nombre}"); // WriteLine($"Alumno: {alumnoTest.UniqueID}"); // WriteLine($"Alumno: {alumnoTest.GetType()}"); // Printer.writeTitle("Objeto Escuela"); // WriteLine($"Alumno: {ob.Nombre}"); // WriteLine($"Alumno: {ob.UniqueID}"); // WriteLine($"Alumno: {ob.GetType()}"); // // var objDummy = new ObjetoEscuelaBase(){ Nombre = "Frank Underwood"}; // // Printer.writeTitle("Objeto Escuela Base"); // // WriteLine($"Alumno: {objDummy.Nombre}"); // // WriteLine($"Alumno: {objDummy.UniqueID}"); // // WriteLine($"Alumno: {objDummy.GetType()}"); // alumnoTest = (Alumno) ob; // //Se puede trabajar un objeto con caracteristicas de padre a hijo pero de hijo a padre no // //al menos que tenga la informacion sea del mismo tipo // var evaluacionx = new Evaluacion(){Nombre = "Evaluacion de math", Nota = 4.5f}; // Printer.writeTitle("Evaluacion"); // WriteLine($"evaluacion: {evaluacionx.Nombre}"); // WriteLine($"evaluacion: {evaluacionx.UniqueID}"); // WriteLine($"evaluacion: {evaluacionx.Nota}"); // WriteLine($"evaluacion: {evaluacionx.GetType()}"); // if (ob is Alumno) // { // Alumno alumnoRecuperado = (Alumno)ob; // } // // Alumno alumnoRecuperado2 = ob as Alumno; // el as valida si es del tipo si no solo devuelve null #endregion }