Anuncios

Bienvenidos sean a este post, hoy les traigo todos los codigos finales de los proyectos que posee la solucion Universidad, sin explicacion ni nada, codigo hecho y derecho, las caracteristicas de la solucion Universidad y los proyectos es:

  • Lenguaje: C#
  • Plataforma: Windows
  • Tipo de Proyecto: Consola (Net Framework)
  • Nombre Solucion: Universidad
  • Version Framework: La ultima disponible.
Anuncios

Proyecto: Alumnos

Program.cs

using System;
using System.Collections.Generic;
using Alumnos.Clases;

namespace Alumnos
{
    class Program
    {
        static void Main(string[] args)
        {
            int opcion;
            
            Estudiantes estudiante = new Estudiantes();
            do
            {
                Console.Clear();
                Console.WriteLine("Bienvenidos a la universidad");
                Console.WriteLine("Tienes este listado de opciones:");
                Console.WriteLine("(1) Listado de alumnos");
                Console.WriteLine("(2) Notas del alumno");
                Console.WriteLine("(3) Salir del programa");
                Console.Write("Elige una opcion: ");
                opcion = int.Parse(Console.ReadLine());

                switch (opcion)
                {
                    case 1:
                        Console.Clear();
                        estudiante.ListarAlumnos();
                        break;
                    case 2:
                        estudiante.MostrarNotas();
                        break;
                    case 3:
                        break;
                    default:
                        Console.WriteLine("Debes elegir una opcion del menu!!!");
                        Console.ReadLine();
                        break;
                }
            } while (opcion != 3);
        }
    }
}
Anuncios

Carpeta Clases

Estudiantes.cs

using System;
using System.IO;

namespace Alumnos.Clases
{
    /// <summary>
    /// Esta es la clase que concede los metodos de consulta
    /// a los alumnos.
    /// <list type="bullet">
    /// <item>
    /// <term>ListarAlumnos</term>
    /// <description>Listado el codigo y nombre de todos los alumnos</description>
    /// </item>
    /// <item>
    /// <term>MostrarNotas</term>
    /// <description>Devuelve las notas de un alumno.</description>
    /// </item>
    /// </list>
    /// </summary>
    /// <remarks>
    /// Esta clase sirve solo para los alumnos pero comparte el metodo
    /// MostrarNotas con los profesores.
    /// </remarks>
    public class Estudiantes
    {

        Inifile configuracion = new Inifile("config.ini");

        string pathAlumnos;
        string pathExamenes;
        string pathNotas;

        /// <summary>
        /// <para>Este es el metodo encargado de listar el ID junto al</para>
        /// <para>Nombre y Apellido de los Alumnos.</para>
        /// </summary>
        public void ListarAlumnos()
        {
            pathAlumnos = configuracion.mostrar("rutas","alumnos");
            Console.WriteLine("Codigos de los alumnos: ");
            using (StreamReader sr = File.OpenText(pathAlumnos))
            {
                string linea;
                string[] s;
                while ((linea = sr.ReadLine()) != null)
                {
                    s = linea.Split(',');
                    Console.WriteLine(s[0] + " - " + s[2] + "," + s[1]);
                }
            }
            Console.Write("Presiona Enter para volver al menu");
            Console.ReadLine();
        }
        /// <summary>
        /// <para>Se encarga de buscar las notas del alumno informado</para>
        /// Mira <see cref="Estudiantes.ListarAlumnos()"/>si no sabes el ID del Alumno 
        /// </summary>
        /// <returns>
        /// Este metodo devuelve un listado de las notas del alumno
        /// </returns>
        public void MostrarNotas()
        {
            string alumno;
            pathNotas = configuracion.mostrar("rutas", "notas");
            pathExamenes = configuracion.mostrar("rutas", "examenes");
            Console.Clear();
            Console.Write("Ingresa el ID del alumno: ");
            alumno = Console.ReadLine();
            using (StreamReader sr = File.OpenText(pathNotas))
            {
                float total = 0;
                int cuenta = 0;
                string examen = "";
                string linea,t;
                string[] s, u;
                while ((linea = sr.ReadLine()) != null)
                {
                    s = linea.Split(',');
                    if (s[1] == alumno.ToUpper())
                    {
                        using(StreamReader sr2 = File.OpenText(pathExamenes))
                        {
                            while((t = sr2.ReadLine())!=null)
                            {
                                u = t.Split(',');
                                if (u[0] == s[0])
                                    examen = u[1];
                            }
                        }
                        Console.WriteLine(s[1] + "\t" + examen + "\t" + s[2]);
                        total += float.Parse(s[2]);
                        cuenta++;
                    }
                }
                Console.WriteLine("Tu promedio es: " + (total/cuenta));
            }
            Console.Write("Presiona Enter para volver al menu");
            Console.ReadLine();
        }
    }
}
Anuncios

Inifile.cs

using System;
using System.Collections.Generic;
using System.IO;

namespace Alumnos.Clases
{
    /// <summary>
    /// <para>Esta clase se encarga de tomar la informacion de nuestro</para>
    /// <para>archivo de configuracion local, se hereda a los otros proyectos</para>
    /// </summary>
    public class Inifile
    {
        private string _archivo;
        private string ComentLimit;
        private Dictionary<string,string> diccionario=new Dictionary<string, string>();
        /// <summary>
        /// <para>Constructor que recibe el nombre del archivo de configuracion y</para>
        /// <para>tambien de forma opcional el parametro que usamos para los </para>
        /// <para>comentarios, sino informamos ninguno utiliza el ; como predeterminado</para>
        /// </summary>
        /// <param name="archivo">Un dato de tipo cadena</param>
        /// <param name="comentLimit">Un caracter de tipo cadena</param>
        public Inifile(string archivo, string comentLimit = ";")
        {
            ComentLimit = comentLimit;
            elarchivo = archivo;
        }

        /// <summary>
        /// Variable que por medio de get y set se encarga de abrir el
        /// archivo, mirar su interior y en base a las instrucciones
        /// que posee almacena los datos en un Diccionario.
        /// </summary>
        public string elarchivo
        {
            get
            {
                return _archivo;
            }

            set
            {
                _archivo = null;
                if (File.Exists(value))
                {
                    _archivo = value;
                    using (StreamReader sr = File.OpenText(_archivo))
                    {
                        string linea, seccion = "", clave = "", clave2 = "", valor = "";
                        while ((linea = sr.ReadLine()) != null)
                        {
                            if (linea.Length == 0)
                                continue;

                            if ((!String.IsNullOrEmpty(ComentLimit)) 
                                && (linea.StartsWith(ComentLimit)))
                                continue;

                            if (linea.StartsWith("[") && linea.Contains("]"))
                            {
                                int indice = linea.IndexOf(']');
                                seccion = linea.Substring(1, indice - 1).Trim();
                                // Console.WriteLine(seccion);
                            }
                            if (linea.Contains("="))
                            {
                                int indice = linea.IndexOf('=');
                                clave = linea.Substring(0, indice).Trim();
                                valor = linea.Substring(indice + 1).Trim();
                                if (valor.StartsWith("\"") && valor.EndsWith("\""))
                                {
                                    valor = valor.Substring(1, valor.Length - 2);
                                }
                            }

                            // Console.WriteLine(seccion + "->" + clave + "->" + valor);
                            if (seccion != "" && clave != "")
                            {
                                clave2 = seccion + "-" + clave;
                                diccionario.Add(clave2, valor);
                            }
                        }
                    }
                }
            }
        }

        /// <summary>
        /// <para>
        /// Es el encargado de buscar entre los datos del diccionario
        /// al parametro que necesitamos
        /// </para>
        /// </summary>
        /// <remarks>
        /// Esto lo hace por medio de dos valores de tipo string.
        /// </remarks>
        /// <param name="seccion">El nombre que esta entre corchetes</param>
        /// <param name="dato">El valor que esta antes del igual</param>
        /// <returns>Devuelve un valor de tipo string</returns>
        public string mostrar(string seccion, string dato)
        {
            string clave = seccion + "-" + dato;
            return diccionario[clave];
        }
        
    }
}
Anuncios

Proyecto Profesores

Program.cs

using System;
using Profesores.Clases;
using Alumnos.Clases;

namespace Profesores
{
    /// <summary>
    /// Esta es la clase ejecutante
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            int opcion;
            Profesor profesor = new Profesor();
            Estudiantes alumno = new Estudiantes();

            do
            {
                Console.Clear();
                Console.WriteLine("Bienvenido a la Universidad.");
                Console.WriteLine("Opciones disponibles:");
                Console.WriteLine("(1) Agregar Examen");
                Console.WriteLine("(2) Agregar notas");
                Console.WriteLine("(3) Ver notas de alumno");
                Console.WriteLine("(4) Salir del programa");
                Console.Write("Elige una opcion:");
                opcion = int.Parse(Console.ReadLine());

                switch (opcion)
                {
                    case 1:
                        profesor.CrearExamen();
                        break;
                    case 2:
                        profesor.AgregarNota();
                        break;
                    case 3:
                        alumno.MostrarNotas();
                        break;
                    case 4:
                        break;
                    default:
                        Console.WriteLine("Debes elegir una opcion entre 1-4");
                        Console.ReadLine();
                        break;
                }
            } while (opcion!=4);
        }
    }
}
Anuncios

Carpeta Clases

Profesor.cs

using System;
using System.IO;
using Alumnos.Clases;

namespace Profesores.Clases
{
    class Profesor
    {
        Inifile config = new Inifile("config.ini");

        string pathAlumnos;
        string pathExamenes;
        string pathNotas;
        public void CrearExamen()
        {
            pathExamenes = config.mostrar("rutas", "examenes");
            string codigo, fecha, tipo;
            int pos = 0;
            Console.Clear();
            Console.Write("Ingresa la fecha de examen: ");
            fecha = Console.ReadLine();
            Console.Write("Elige el tipo de examen (P) Parcial o (F) Final: ");
            tipo = Console.ReadLine();

            if (!File.Exists(pathExamenes))
                using (StreamWriter sw = File.CreateText(pathExamenes)) { }

            using(StreamReader sr = File.OpenText(pathExamenes))
            {
                while ((sr.ReadLine()) != null)
                {
                    pos++;
                }
            }
            if (tipo.ToUpper() == "P")
                codigo = "PA100" + pos;
            else
                codigo = "FI100" + pos;

            using (StreamWriter sw = File.AppendText(pathExamenes))
            {
                sw.WriteLine(codigo + "," + fecha);
            }
            Console.Write("Presiona Enter para volver al Menu");
            Console.ReadLine();
        }

        public void AgregarNota()
        {
            pathExamenes = config.mostrar("rutas", "examenes");
            pathAlumnos = config.mostrar("rutas", "alumnos");
            pathNotas = config.mostrar("rutas", "notas");
            string alumno, examen, nota;
            Console.Clear();
            Console.WriteLine("Codigo de alumnos:");
            using(StreamReader sr = File.OpenText(pathAlumnos))
            {
                string linea;
                string[] s;
                
                while((linea = sr.ReadLine()) != null)
                {
                    s = linea.Split(',');
                    Console.WriteLine(s[0] + " - " + s[2] + ", " + s[1]);
                }
            }
            Console.Write("Ingresa el codigo del alumno: ");
            alumno = Console.ReadLine();
            Console.WriteLine("Codigos de examenes:");
            using (StreamReader sr = File.OpenText(pathExamenes))
            {
                string linea;
                string[] s;

                while ((linea = sr.ReadLine()) != null)
                {
                    s = linea.Split(',');
                    Console.WriteLine(s[0] + " - " + s[1]);
                }
            }
            Console.Write("Ingresa el codigo del examen: ");
            examen = Console.ReadLine();
            Console.Write("Ingresa la nota: ");
            nota = Console.ReadLine();
            using(StreamWriter sw = File.AppendText(pathNotas))
            {
                sw.WriteLine(examen.ToUpper() + "," 
                    + alumno.ToUpper() + "," + nota);
            }
            Console.Write("Presiona Enter para volver al menu");
            Console.ReadLine();
        }
    }
}
Anuncios

Proyecto Secretaria

Program.cs

using System;
using Secretaria.Clases;

namespace Secretaria
{
    class Program
    {
        static void Main(string[] args)
        {
            int opcion;
            Alumno alumno = new Alumno();

            do
            {
                Console.Clear();
                Console.WriteLine("Bienvenido a la secretaria.");
                Console.WriteLine("Acciones disponibles:");
                Console.WriteLine("1) Borrar todos los alumnos");
                Console.WriteLine("2) Agregar nuevo Alumno");
                Console.WriteLine("3) Listar Alumnos");
                Console.WriteLine("4) Calidad Academica");
                Console.WriteLine("5) Salir");
                Console.Write("Elija una opcion:");
                opcion = int.Parse(Console.ReadLine());

                switch(opcion)
                {
                    case 1:
                        alumno.CrearArchivo();
                        break;
                    case 2:
                        alumno.AgregarAlumno();
                        break;
                    case 3:
                        alumno.ListarAlumnos();
                        break;
                    case 4:
                        alumno.CalidadAcademica();
                        break;
                    case 5:
                        break;
                    default:
                        Console.WriteLine("Eliga una opcion entre 1-5");
                        Console.ReadLine();
                        break;
                }
            } while (opcion != 5);
        }
    }
}
Anuncios

Carpeta Clases

Alumno.cs

using System;
using System.IO;
using Alumnos.Clases;
namespace Secretaria.Clases
{
    class Alumno
    {
        Inifile config = new Inifile("config.ini");
        string nombre,apellido,edad,pcia;
        string path;
        string pathNotas;

        public void CrearArchivo()
        {
            path = config.mostrar("rutas", "alumnos");
            if (File.Exists(path))
                File.Delete(path);
            using(StreamWriter sw = File.CreateText(path)){}
        }
        public void AgregarAlumno()
        {
            path = config.mostrar("rutas", "alumnos");
            if(!File.Exists(path))
                using (StreamWriter sw = File.CreateText(path)) { }

            int pos = 0;
            using (StreamReader sr = File.OpenText(path))
            {
                string s;
                while((s = sr.ReadLine()) != null)
                {
                    pos++;
                }
            }
            Console.Write("Ingrese el nombre: ");
            nombre = Console.ReadLine();
            Console.Write("Ingrese el apellido: ");
            apellido = Console.ReadLine();
            Console.Write("Ingrese el edad: ");
            edad = Console.ReadLine();
            Console.Write("Ingrese el Provincia: ");
            pcia = Console.ReadLine();

            using (StreamWriter sw = File.AppendText(path))
            {   
                sw.WriteLine("ID100" + pos + "," + nombre 
                    + "," + apellido + "," + edad + "," + pcia);
            }

            Console.Write("Presione Enter para volver al menu");
            Console.ReadLine();
        }

        public void ListarAlumnos()
        {
            path = config.mostrar("rutas", "alumnos");
            Console.Clear();
            Console.WriteLine("Listado de alumnos regulares");
            using(StreamReader sr = File.OpenText(path))
            {
                string linea;
                string[] s;
                while ((linea = sr.ReadLine()) != null)
                {
                    s = linea.Split(',');
                    Console.WriteLine("Usuario: " + s[0] + "\t\t" 
                        + "Nombre: " + s[2] + ", " + s[1] + "\n" 
                        + "Edad: " + s[3] + "\t\t" + "Provincia: " + s[4] + "\n");
                }
                Console.ReadLine();
            }
        }

        public void CalidadAcademica()
        {
            path = config.mostrar("rutas", "alumnos");
            pathNotas = config.mostrar("rutas", "notas");
            float notaAlta = 0;
            float notaBaja = float.MaxValue;
            float promedio = 0;
            int cuenta = 0;

            string linea;
            string[] s;
            Console.Clear();
            Console.WriteLine("La calidad academica: ");
            using(StreamReader sr = File.OpenText(pathNotas))
            {
                while((linea = sr.ReadLine()) != null)
                {
                    s = linea.Split(',');
                    promedio += float.Parse(s[2]);
                    cuenta++;
                    notaAlta = Math.Max(float.Parse(s[2]), notaAlta);
                    notaBaja = Math.Min(float.Parse(s[2]), notaBaja);
                }
            }
            Console.WriteLine("La media general es de: " + (promedio/cuenta));
            Console.WriteLine("La nota mas alta es de: " + notaAlta);
            Console.WriteLine("La nota mas baja es de: " + notaBaja);
            Console.Write("Presione Enter para volver al menu");
            Console.ReadLine();
        }
    }
}
Anuncios

Estos son todos los codigos de la solucion Universidad si necesitas una explicacion te paso el listado de todos los posts donde comento cada uno de estos codigos:

Anuncios

Espero te sea util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00