예제 #1
0
        static void Main(string[] args)
        {
            ///EVENTOS
            AppDomain.CurrentDomain.ProcessExit += AccionDelEvento;
            AppDomain.CurrentDomain.ProcessExit += (o, e) => Console.Beep(2000, 500); // Multicast : Se ejecutan los 2 eventos de diferente manera
            //AppDomain.CurrentDomain.ProcessExit -= AccionDelEvento; // saco ese evento con el - es  decir no se ejecuta
            //Este es un evento de finalizacion del programa
            // El  EVENTO se genera en cualquier momento que termine la ejecucion
            var engine = new EscuelaEngine();

            engine.Inicializar();
            // ImprimirCursos(engine.escuela);
            WriteLine("Hola");


            var dic = new Dictionary <int, string>();

            dic.Add(2, "joaquin"); //agregando mediante funcion add, donde 2 es la llave y joaquin la definicion
            dic[0] = "tomas";      //asi agregamos al dic la llave 0 son valor "tomas"
            Console.WriteLine("Imprimimos el Diccionario");
            // foreach (var keydic in dic)
            // {
            //     Console.WriteLine($"llave: {keydic.Key} valor: {keydic.Value}");
            //  }
            var dicc = engine.GetDiccionarioDeObjetos();

            Console.WriteLine();
            //var dic2 = engine.GetDiccionarioDeObjetos();
            //engine.ImprimirDiccionario(dic2,true);
            var    reporteardor            = new Reporteador(dicc);
            var    listEval                = reporteardor.GetListaEvaluaciones();
            var    listaMaterias           = reporteardor.GetListaMaterias();
            var    DiccionarioEvaluaciones = reporteardor.GetDicEvaluacionesXMateria();
            var    promedio                = reporteardor.GetPromedioAlumnosPorMateria();
            var    newEval = new Evaluacion();
            string nombre, notaString;

            WriteLine("Ingrese nombre de la evaluacion");
            nombre = ReadLine();
            if (string.IsNullOrWhiteSpace(nombre))
            {
                throw new ArgumentException("Debe ingresar un nombre");
            }
            else
            {
                newEval.Nombre = nombre.ToLower();
                WriteLine("El nombre fue ingresado correctamente");
            }
            WriteLine("Ingrese nota de la evaluacion");
            notaString = ReadLine();
            if (string.IsNullOrWhiteSpace(notaString))
            {
                WriteLine("Debe ingresar una nota");
                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");
                        //este throw se usa para que salga del programa y no continue
                    }
                    WriteLine("La nota fue ingresada correctamente");
                }
                catch (ArgumentOutOfRangeException arge)  //se le puede hacer un objeto
                {
                    WriteLine(arge.Message);
                    WriteLine("La nota debe ser un numero entre 0 y 5");
                }
                catch (Exception)
                {
                    WriteLine("El valor de la nota no es un numero valido");
                }
                //dependiendo el tipo de exception ejecuta un catch o el otro
                // las excepciones tiene un orden en cascada, EL ORDEN ES IMPORTANTE
                finally
                {
                    //permite atrapar excepciones inesperaddas o q no podemos controlar
                    //Se ejecuta siempre no importa donde termine el programa siempre se ejecuta,
                    //siempre antes de terminar el programa se ejecuta el finally se ejecuta y luego termina el programa
                    Console.Beep(4500, 500);
                    WriteLine("FINALLY");
                }
            }
        }
예제 #2
0
        //private static Cursos cursotemp;

        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");
            //Printer.Beep(10000, cantidad:10);
            //imprimirCursosEscuela(engine.Escuela);

            var reporteador          = new Reporteador(engine.GetDiccionarioObjetos());
            var evalList             = reporteador.GetListaEvaluaciones();
            var listaAsig            = reporteador.GetListaAsignaturas();
            var listaEvalXAsignatura = reporteador.GetDicEvaluacionesXAsig();
            var listaProemdioXAsig   = reporteador.GetPromeAlumPorAsignatura();
            var mejorPromedio        = reporteador.GetMejoresPromedioXAsig("Matematicas", 10);

            Printer.WriteTitle("Captura de una Evaluacion por Consola");
            var    newEval = new Evaluaciones();
            string nombre, notaString;
            float  nota;

            WriteLine("Ingrese el nombre de la Evaluacion");
            Printer.PrecioneENTER();
            nombre = 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 Evaluacion ha sido ingresado correctamente");
            }

            WriteLine("Ingrese la nota de la Evaluacion");
            Printer.PrecioneENTER();
            notaString = 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 Evaluacion ha sido ingresado correctamente");
                }
                catch (ArgumentOutOfRangeException arge)
                {
                    Printer.WriteTitle(arge.Message);
                    WriteLine("Saliendo del programa");
                }
                catch (System.Exception)
                {
                    Printer.WriteTitle("El valor de la nota no parece es un numero valido");
                    WriteLine("Saliendo del programa");
                }
                finally
                {
                    Printer.WriteTitle("FINALLY");
                    Printer.Beep(2500, 500, 3);
                }
            }



            /* foreach (var item in listaProemdioXAsig)
             * {
             *  foreach (var alum in item.Value)
             *  {
             *      var tmp = alum as Alumnos;
             *
             *  }
             * } */
            /* var dictmp = engine.GetDiccionarioObjetos();
             *
             * engine.ImprimirDiccionario(dictmp,true); */

            /* Printer.WriteTitle("Diccionario");
             * var dic = new Dictionary<String, String>();
             * dic["luna"] = "cuerpo celeste que gira alrededor de la tierra";
             * WriteLine(dic["luna"]);
             * /* dic.Add("luna", "Protagonista de soy Luna");
             * WriteLine("luna"); */


            //var obj = new ObjetoEscuelaBase();

            /* Printer.DrawLine(20);
             * Printer.DrawLine(20);
             * Printer.DrawLine(20);
             * Printer.WriteTitle("Pruebas de Polimorfismo");
             * var alumnoTest = new Alumnos{Nombre = "Nahuel Schimpf"};
             * Printer.WriteTitle("Alumno");
             * WriteLine($"Alumno: {alumnoTest.Nombre}");
             * WriteLine($"Id: {alumnoTest.UniqueId}");
             * WriteLine($"Typo: {alumnoTest.GetType()}");
             *
             * ObjetoEscuelaBase ob = alumnoTest;
             * WriteLine("ObjetoEscuela");
             * WriteLine($"Nombre: {ob.Nombre}");
             * WriteLine($"Id: {ob.UniqueId}");
             * WriteLine($"Typo: {ob.GetType()}");
             *
             * var evaluacion = new Evaluaciones(){Nombre="Evaluacion de Matematicas",Nota=4.5f};
             * Printer.WriteTitle("Evaluacion");
             * WriteLine($"Evaluacion: {evaluacion.Nombre}");
             * WriteLine($"Id: {evaluacion.Nota}");
             * WriteLine($"Id: {evaluacion.UniqueId}");
             * WriteLine($"Typo: {evaluacion.GetType()}");
             *
             * //ob = evaluacion;
             * WriteLine("ObjetoEscuela");
             * WriteLine($"Nombre: {ob.Nombre}");
             * WriteLine($"Id: {ob.UniqueId}");
             * WriteLine($"Typo: {ob.GetType()}");
             *
             * if(ob is Alumnos)
             * {
             *  Alumnos alumnoRecuperado = (Alumnos)ob;
             * }
             *
             * Alumnos alumnoRecuperado2 = ob as Alumnos;*/

            /* var escuela = new Escuela("Platzi Academy", 2012,TiposEscuela.Primaria,
             *          ciudad: "Bogota", pais: "Colombia");
             *
             * // es una coleccion
             * var listaCursos = new List<Cursos>(){
             *              new Cursos(){Nombre = "101", Jornada = TipoJornada.Mañana},
             *              new Cursos(){Nombre = "201", Jornada = TipoJornada.Mañana},
             *              new Cursos(){Nombre = "301", Jornada = TipoJornada.Mañana}
             * };
             * escuela.Curso = listaCursos;
             * escuela.Curso.Add( new Cursos{Nombre = "102", Jornada = TipoJornada.Tarde});
             * escuela.Curso.Add(new Cursos { Nombre = "202", Jornada = TipoJornada.Tarde});
             *
             * // otra coleccion
             * var otraColeccion = new List<Cursos>(){
             *                  new Cursos(){Nombre = "401", Jornada = TipoJornada.Mañana},
             *                  new Cursos(){Nombre = "501", Jornada = TipoJornada.Mañana},
             *                  new Cursos(){Nombre = "501", Jornada = TipoJornada.Tarde}
             * };
             *
             * //cursotemp = new Cursos{Nombre = "101-Vacacional", Jornada = TipoJornada.Noche};
             * escuela.Curso.AddRange(otraColeccion);
             * //escuela.Curso.Add(cursotemp); */


            /* imprimirCursosEscuela(escuela);
             * //WriteLine("Curso hash" + cursotemp.GetHashCode());
             * //escuela.Curso.Remove(cursotemp);
             *
             * // una manera de buscar el indice y borrarlo
             * //Predicate<Cursos> miAlgoritmo = Predicado;
             * //escuela.Curso.RemoveAll(Predicado);
             *
             * // otra manera
             * escuela.Curso.RemoveAll(delegate (Cursos cur)
             *                      {
             *                          return cur.Nombre == "301";
             *                      });
             *
             * // otra manera mas reducida, llamada expresion lambda
             * escuela.Curso.RemoveAll((cur)=> cur.Nombre == "501" && cur.Jornada == TipoJornada.Mañana); */

            // array

            /* escuela.Curso = new Cursos[]{
             *              new Cursos(){Nombre = "101"},
             *              new Cursos(){Nombre = "201"},
             *              new Cursos(){Nombre = "301"}
             * }; */


            // otra manera de asignacion

            /* escuela.Pais = "Colombia";
            *  escuela.Ciudad = "Bogota"; */

            // una forma de declarar el arreglo

            /* var arregloCursos = new Cursos[]{
             *      new Cursos()
             *          {
             *              Nombre = "101"
             *
             *          },
             *      new Cursos()
             *          {
             *              Nombre = "201"
             *
             *          },
             *      new Cursos()
             *          {
             *              Nombre = "301"
             *
             *          }
             * }; */

            // otra forma

            /* Cursos[] arregloCursos = {
             *      new Cursos(){Nombre = "101"},
             *      new Cursos(){Nombre = "201"},
             *      new Cursos(){Nombre = "301"}
             * }; */

            /* Console.WriteLine(escuela);
             * System.Console.WriteLine("While ===================");
             * imprimirArregloWhile(arregloCursos);
             * System.Console.WriteLine("Do While ===================");
             * imprimirArregloDoWhile(arregloCursos);
             * System.Console.WriteLine("For ===================");
             * imprimirArregloFor(arregloCursos);
             * System.Console.WriteLine("ForEach ===================");
             * imprimirArregloForEach(arregloCursos); */
        }