예제 #1
0
 public bool iniciarSesion(Carrera carrera, int rut, string clave)
 {
     foreach (Administrativo admin in carrera.admins)
     {
         if (admin.rut == rut && admin.clave == clave)
         {
             return(true);
         }
     }
     foreach (Curso curso in carrera.cursos)
     {
         foreach (Seccion seccion in curso.secciones)
         {
             if (seccion.profesor.rut == rut && seccion.profesor.clave == clave)
             {
                 return(true);
             }
             foreach (Persona p in seccion.alumnos)
             {
                 if (p.rut == rut && p.clave == clave)
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
예제 #2
0
        static void Main(string[] args)
        {
            BinaryFormatter formateador = new BinaryFormatter();
            Stream          miStream    = new FileStream("Universidades.un", FileMode.Open, FileAccess.Read, FileShare.None);
            Universidad     Uandes      = (Universidad)formateador.Deserialize(miStream);

            miStream.Close();
            Uandes.MostrarCarreras();
            Console.WriteLine(Uandes.nombre);

            Console.ReadLine();
            string carreraAlumno = "";
            int    rut           = 0;
            bool   menuActivo    = true;
            bool   elBool        = false;

INICIOSESION:
            while (elBool == false)
            {
                Console.WriteLine("Ingrese su carrera: ");
                carreraAlumno = (Console.ReadLine()); elBool = Uandes.VerificarCarrera(Uandes, carreraAlumno);
            }
            Carrera carrera = Uandes.carreras.First(c => c.nombre == carreraAlumno);

            elBool = false;
            while (elBool == false)
            {
                Console.WriteLine("si o no");
                string q = Console.ReadLine();
                if (q == "si")
                {
                    Console.WriteLine("Ingrese su rut: ");
                    rut = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Ingrese su clave: ");
                    string clave = Console.ReadLine();
                    elBool = carrera.VerificarAlumno(rut, clave);

                    elBool = carrera.VerificarAdmin(rut, clave);///
                    if (elBool == false)
                    {
                        elBool = carrera.VerificarProfe(rut, clave);
                    }
                    /////
                }
                else
                {
                    goto FINAL;
                }
            }
            personas.Clear();
            //foreach (Alumno alumno in carrera.alumnos) {if (alumno.rut == rut) { personas.Add(alumno);  } }
            foreach (Curso curso in carrera.cursos)
            {
                foreach (Seccion seccion in curso.secciones)
                {
                    if (seccion.profesor.rut == rut)
                    {
                        personas.Add(seccion.profesor);
                    }
                }
            }



            //persona = carrera.alumnos.First(per => per.rut == rut);

            Persona persona = personas[0];

            if (persona.tipo == "alumno")
            #region ALUMNO
            {
                Persona alumno = personas[0];
                Console.WriteLine("Para cerrar por completo el software, ingrese un cero (0)");
                Console.WriteLine("Bienvenido {0},", persona.nombre);
                Console.WriteLine("Presione Enter para continuar o 0 para salir del programa");
                string cerrar = Console.ReadLine();
                if (cerrar == "0")
                {
                    goto FINAL;
                }
                while (menuActivo == true)
                {
MENU:
                    Console.Clear();
                    Console.WriteLine("Que deseas hacer" +
                                      " 1.-Tomar Ramo" +
                                      " 2.-Botar Ramo" +
                                      " 3.-Mostrar Ramos" +
                                      " 4.-Cerrar Sesion");
                    int opcion = Convert.ToInt32(Console.ReadLine());
                    try
                    {
                        if (opcion < -1 || opcion > 4)
                        {
                            throw new DivideByZeroException();
                        }
                    }
                    catch
                    {
                        Console.BackgroundColor = ConsoleColor.Yellow;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Elija una opción válida entre 1 y 4");
                        Console.Beep(); Console.Beep(); Console.ResetColor();
                        goto MENU;
                    }
                    if (opcion == 0)
                    {
                        goto FINAL;
                    }
                    if (opcion == 4)
                    {
                        goto INICIOSESION;
                    }
                    if (opcion == 1)
                    {
MENUTOMADERAMOS:
                        foreach (Curso curso in carrera.cursos)
                        {
                            Console.WriteLine(curso.nombre);
                        }
                        Console.WriteLine("Escriba el nombre del curso que desea tomar");
                        string cursoTomar = Console.ReadLine();
                        if (cursoTomar == "0")
                        {
                            goto FINAL;
                        }
                        try
                        {
                            //string MostrarCursos = "";
                            foreach (Curso c in carrera.cursos)
                            {
                                if (c.nombre == cursoTomar)
                                {
                                    if (alumno.creditos < c.creditos)
                                    {
                                        Console.WriteLine("No tiene los creditos suficientes. Volviendo al menu principal");
                                        goto MENU;
                                    }
                                    else
                                    {
SECCIONES:
                                        c.MostrarSecciones();

                                        /*foreach (Seccion s in c.secciones)
                                         * {
                                         *  List<Horario> horarioSemana = s.horario.Where(x => x.inicio > DateTime.Today && x.inicio < DateTime.Now.AddDays(7)).ToList();
                                         *  Console.WriteLine("---------------");
                                         *  Console.WriteLine(s.numero);
                                         *  foreach (Horario horario in horarioSemana)
                                         *  {
                                         *      Console.WriteLine(horario.inicio);
                                         *  }
                                         *  Console.ReadKey();
                                         * }*/
                                        Console.WriteLine("Ingrese la seccion que desea ");
                                        int seccionTomar = int.Parse(Console.ReadLine());
                                        if (seccionTomar == 0)
                                        {
                                            goto FINAL;
                                        }

                                        try
                                        {
                                            foreach (Seccion s in c.secciones)
                                            {
                                                if (seccionTomar == s.numero)
                                                {
                                                    if (s.RevisarSiTopa(alumno))
                                                    {
                                                        Console.WriteLine("Hay un tope de horario por lo que no es posible agregar su eleccion.\nVolviendo al menu de secciones"); goto SECCIONES;
                                                    }
                                                    else
                                                    {
                                                        if (s.vacantes > 0)
                                                        {
                                                            s.AgregarAlumno(alumno);
                                                            alumno.secciones.Add(s);
                                                            alumno.creditos = alumno.creditos - c.creditos;
                                                            s.vacantes--;
                                                        }
                                                        else
                                                        {
                                                            Console.WriteLine("No hay cupos, volviendo al menu de secciones");
                                                            goto SECCIONES;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        catch
                                        {
                                            Console.WriteLine("Ingrese una seccion valida");
                                            goto SECCIONES;
                                        }
                                    }
                                }
                            }
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Elija un curso valido");
                            Console.Beep(); Console.Beep(); Console.ResetColor();
                            goto MENUTOMADERAMOS;
                        }
                    }
                    if (opcion == 2)
                    {
MENUBOTARRAMOS:

                        List <Curso> cc    = new List <Curso>();
                        List <Seccion> ids = new List <Seccion>();
                        foreach (Curso curso in carrera.cursos)
                        {
                            foreach (Seccion seccion in curso.secciones)
                            {
                                foreach (Seccion sexion in alumno.secciones)
                                {
                                    if (seccion == sexion)
                                    {
                                        cc.Add(curso);
                                        ids.Add(seccion);
                                    }
                                }
                            }
                        }
                        Console.WriteLine("Los cursos que estas cursando son los siguientes: ");
                        foreach (Curso s in cc)
                        {
                            Console.WriteLine("Nombre: {0}    /     NRC: {1}", s.nombre, s.nrc);
                        }
                        Console.ReadKey();
                        Console.WriteLine("Escribe el NRC del curso que deseas eliminar. ");
                        string nrcBotar = Console.ReadLine();
                        if (nrcBotar == "0")
                        {
                            goto FINAL;
                        }
                        try
                        {
                            int index = cc.FindIndex(curso => curso.nrc == nrcBotar);
                            alumno.QuitarSeccion(ids[index]);
                            ids[index].QuitarAlumnos(alumno);
                            //Console.BackgroundColor = ConsoleColor.Green;
                            Console.WriteLine("Curso eliminado con exito :) ");
                            //Console.BackgroundColor = ConsoleColor.Gray;
                            Console.WriteLine("Deseas eliminar otro curso?");
                            string q = Console.ReadLine();
                            if (q == "si")
                            {
                                goto MENUBOTARRAMOS;
                            }
                            else
                            {
                                goto MENU;
                            }
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Elija un curso valido");
                            Console.Beep(); Console.Beep(); Console.ResetColor();
                            goto MENUBOTARRAMOS;
                        }
                    }
                    if (opcion == 3)
                    {
                        carrera.MostrarCursosAlumno(alumno);
                    }
                }
            }
            #endregion
            else if (persona.tipo == "profe")
            #region PROFESOR
            {
                Persona profesor = personas[0];
                Console.WriteLine("Para cerrar por completo el software, ingrese un cero (0)");
                Console.WriteLine("Bienvenido {0},", persona.nombre);
                Console.WriteLine("Presione Enter para continuar");
                Console.ReadKey();
                while (menuActivo == true)
                {
MENUPROFE:
                    Console.Clear();
                    Console.WriteLine("Que deseas hacer" +
                                      " 1.-Ver Secciones" +
                                      " 2.-Ver Horario" +
                                      " 3.-Cerrar Sesion");
                    int opcion = Convert.ToInt32(Console.ReadLine());
                    try
                    {
                        if (opcion < -1 || opcion > 3)
                        {
                            throw new DivideByZeroException();
                        }
                    }
                    catch
                    {
                        Console.BackgroundColor = ConsoleColor.Yellow;
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Elija una opción válida entre 1 y 3");
                        Console.Beep(); Console.Beep(); Console.ResetColor();
                        goto MENUPROFE;
                    }
                    if (opcion == 0)
                    {
                        goto FINAL;
                    }
                    if (opcion == 1)
                    {
                        carrera.MostrarCursosProfe(profesor);
                        foreach (Curso curso in carrera.cursos)
                        {
                            foreach (Seccion seccion in curso.secciones)
                            {
                                if (seccion.profesor == profesor)
                                {
                                    Console.WriteLine("El curso donde hace clases es " + curso.nombre + "\nEn la seccion "); Console.Write(seccion.numero);
                                    Console.WriteLine("Desea ver los alumnos de esta seccion?");
                                    string R = Console.ReadLine();
                                    if (R == "si")
                                    {
                                        seccion.MostrarAlumnos(); Console.ReadKey();
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("Usted no posee secciones");
                                }
                            }
                        }
                    }
                    if (opcion == 2)
                    {
                        foreach (Curso curso in carrera.cursos)
                        {
                            foreach (Seccion seccion in curso.secciones)
                            {
                                if (seccion.profesor == profesor)
                                {
                                    foreach (Horario horario in seccion.horario)
                                    {
                                        Console.WriteLine(horario.inicio);
                                    }
                                    Console.ReadKey();
                                }
                                else
                                {
                                    Console.WriteLine("Usted no posee horario");
                                }
                            }
                        }
                    }
                    if (opcion == 3)
                    {
                        goto INICIOSESION;
                    }
                }
            }
            #endregion
            else if (persona.tipo == "admin")
            #region ADMINISTRADOR
            {
                Persona admin = personas[0];
MENUADMIN:
                Console.WriteLine("Para cerrar por completo el software, ingrese un cero (0)");
                Console.WriteLine("Bienvenido {0}" +
                                  " 1.-Agregar alumno" +
                                  " 2.-Agregar carrera" +
                                  " 3.-Eliminar alumno" +
                                  " 4.-Cerrar sesion", admin.nombre);
                int opcion = Convert.ToInt32(Console.ReadLine());
                if (opcion == 0)
                {
                    goto FINAL;
                }

                else if (opcion == 1)
                {
                    Console.WriteLine("Ingrese el rut:");
                    int rutN = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Ingrese el nombre:");
                    string nombreN = Console.ReadLine();
                    Console.WriteLine("Ingrese el apellido:");
                    string apellidoN = Console.ReadLine();
                    Console.WriteLine("Ingrese el anio en que ingreso");
                    DateTime anoN = Convert.ToDateTime(Console.ReadLine());
                    Console.WriteLine("Ingrese una clave");
                    string claveN = Console.ReadLine();
                    try { Alumno alumnoNuevo = new Alumno(rutN, nombreN, apellidoN, anoN, claveN); Console.WriteLine("Persona creada con exito"); }
                    catch { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error al crear el alumno"); Console.ResetColor(); goto MENUADMIN; }
                }
                else if (opcion == 2)
                {
                    Console.WriteLine("Ingrese el nombre de la carrera:");
                    string nombreC = Console.ReadLine();
                    Console.WriteLine("Ingrese el nombre de la facultad a la que pertenece:");
                    string facultadC = Console.ReadLine();
                    try { Carrera carreraNueva = new Carrera(nombreC, facultadC); Console.WriteLine("Carrera creada con exito"); }
                    catch { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error al crear la carrera"); Console.ResetColor(); goto MENUADMIN; }
                }
                else if (opcion == 3)
                {
                    Console.WriteLine("Ingrese el rut del alumno que desea eliminar:");
DENUEVO:
                    int rutAl = Convert.ToInt32(Console.ReadLine());
                    try { Alumno alumno = alumnos.First(al => al.rut == rutAl); alumnos.Remove(alumno); }
                    catch { Console.WriteLine("Ingrese un rut valido:"); goto DENUEVO; }
                }
                else if (opcion == 4)
                {
                    goto INICIOSESION;
                }
            }
            #endregion
FINAL:
            Console.WriteLine("Gracias por preferirnos, hasta luego !");
            Console.ReadKey();
        }