Anuncios

Bienvenidos sean a este post, hoy vamos a agregar un nuevo proyecto a nuestra solucion porque necesitamos al sector que se encarga de administrar a los alumnos, en el caso de hoy haremos a la secretaria la cual le daremos la posibilidad de agregar alumnos con todos sus datos.

Anuncios

Para lo primero debemos hacer es abrir la solucion Universidad y sobre la mismo en el Explorador de Soluciones hacen click con el boton derecho y seleccionan Agregar -> Nuevo Proyecto como se ve en la siguiente imagen

Anuncios

Esto nos abrira una nueva ventana como se ve en la siguiente imagen

Anuncios

Como pueden observar nos aparece nuevamente el asistente de proyectos, volveremos elegir de nuevo Consola de Net Framework, presionamos Siguiente para pasar a la siguiente ventana

Anuncios

En nombre del proyecto usaremos Secretaria, dejemos el mismo lugar donde esta la solucion, la version de Framework debe ser la misma que la utilizada en la solucion, un solo detalle en este caso no nos da a elegir la solucion a diferencia del original, pulsamos Crear y nos quedara asi

Anuncios

Ahora tenemos dos proyectos en la misma solucion, si hicieramos la compilacion por medio de Compilar -> Compilar Solucion tendremos todos nuestros ejecutables pero ahora vamos a centrarnos principalmente en el nuevo proyecto.

Anuncios

Lo primero sera hacer click con el boton derecho y crearemos un nuevo directorio por medio de Agregar -> Nueva Carpeta, la llamaremos Clases y una vez creada haremos click con el boton derecho y elegiremos de nuevo Agregar->Clase, cuando aparezca la nueva ventana seleccionaremos Clase y la llamaremos Alumno.cs, una vez generada nuestra nueva clase modificaremos el codigo generado por el siguiente:

Alumno.cs

using System;
using System.IO;

namespace Secretaria.Clases
{
    class Alumno
    {
        string nombre,apellido,edad,pcia;
        string path = "..\\..\\..\\alumnos.txt";

        public void CrearArchivo()
        {
            if (File.Exists(path))
                File.Delete(path);
            using(StreamWriter sw = File.CreateText(path)){}
        }
        public void AgregarAlumno()
        {
            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()
        {
            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();
            }
        }
    }
}
Anuncios
Nota: El valor de path es medio raro porque esta pensado para crear el archivo donde se crea el archivo ejecutable, y mas adelante veremos para que nos servira.
Anuncios

Este es el codigo de nuestra clase y basicamente sera usada para crear nuestra “base de datos” de los alumnos, para agregar los alumnos y poder listarlos, para esta clase vamos a definir primero cuatro variables, y despues una quinta llamada path que sera para la ubicacion de nuestro archivo, vamos a ver el primer metodo:

        public void CrearArchivo()
        {
            if (File.Exists(path))
                File.Delete(path);
            using(StreamWriter sw = File.CreateText(path)){}
        }
Anuncios

Este metodo lo usaremos para generar nuevamente nuestro archivo, primero chequea si existe el archivo, si existe lo borra, luego por medio de StreamWriter creamos un archivo vacio, esta funcion es lo unico que hace, pasemos a la siguiente:

        public void AgregarAlumno()
        {
            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();
        }
Anuncios
Anuncios

Este metodo lo usaremos para agregar los nuevos alumnos, lo primero que haremos sera lo inverso del metodo anterior, es decir por medio del simbolo de negacion verificamos si no existe el archivo, en caso de ser verdad generamos uno vacio, despues definimos una variable llamada pos de tipo int con el valor 0, nuestro siguiente paso sera usar un StreamReader por medio de using le pedimos que abra el archivo informado en path, dentro del bloque definimos una variable de tipo string llamada s, luego por medio de while leeremos linea por linea mientras sea distinta de null, y lo que haremos es incrementar pos vuelta por vuelta, despues vendra el bloque de ReadLine donde iremos ingresando los distintos datos del usuario, luego usaremos otra vez un using con el StreamWriter pero esta vez usaremos AppendText para agregar la linea del bloque, en este caso gracias a pos iremos generando los usuarios automaticamente e iremos agregando los distintos datos todos separados por comas, una vez finalizado mostraremos un mensaje y esperaremos un Enter por medio de ReadLine, pasemos al ultimo metodo:

        public void ListarAlumnos()
        {
            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();
            }
        }
Anuncios
Anuncios

Esta ultima funcion la usaremos para Listar todos los alumnos, la primera linea limpiara la pantalla, luego mostraremos un titulo en pantalla, para despues por medio de un using llamaremos a StreamReader con OpenText para abrir el archivo, en el bloque declaramos una variable llamada linea, luego un array de tipo string llamada s, lo siguiente sera un while donde usaremos el ReadLine y lo guardaremos en linea, y lo iremos comparando mientras sea distinta de null, durante el bucle usaremos a Split en linea para almacenarlo en s, luego utilizaremos el WriteLine para mostrar los distintos usuarios y gracias al split los iremos acomodando, a nuestro placer, recuerden que Split se dedica a crear de una cadena en un array de cadena y cada elemento lo podemos acomodar como queramos, yo lo hice de esta forma pero pueden hacerlo como ustedes quieran, luego quedara un ReadLine para volver al menu de inicio, con esto ya cubrimos esta clase, para nuestro siguiente paso vamos a modificar el Program.cs de la siguiente forma:

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) 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:
                        break;
                    default:
                        Console.WriteLine("Eliga una opcion entre 1-4");
                        Console.ReadLine();
                        break;
                }
            } while (opcion != 4);
        }
    }
}
Anuncios
Anuncios

Primero crearemos una variable llamada opcion de tipo int, luego crearemos el objeto de la clase Alumno y la llamaremos alumno, que original no?, un detalle para poder usar Alumno directamente agregamos entre los using el Secretaria.Clases porque de lo contrario no lo encontraria y deberiamos usar el nombre completo como comente en el post anterior, nuestro siguiente paso sera usar un bucle do…while que lo estara activo mientras opcion sea distinto de 4, dentro del do primero limpiamos la pantalla, luego mostraremos el menu con las opciones de disponibles y por ultimo usaremos un ReadLine el cual almacenara el valor que ingresemos en opcion, luego tendremos un switch para analizar el contenido de opcion.

Nota: Recuerden que ReadLine solo devuelve valores tipo string y para evitar error de tipo usamos el int.Parse para que lo convierta en tipo int.
                switch(opcion)
                {
                    case 1:
                        alumno.CrearArchivo();
                        break;
                    case 2:
                        alumno.AgregarAlumno();
                        break;
                    case 3:
                        alumno.ListarAlumnos();
                        break;
                    case 4:
                        break;
                    default:
                        Console.WriteLine("Eliga una opcion entre 1-4");
                        Console.ReadLine();
                        break;
                }
Anuncios
Anuncios

En este si ingresamos el valor 1 llamara CrearArchivo para limpiar todos los alumnos, si el valor es 2 llamara a AgregarAlumno para agregar nuevos alumnos, si el valor es 3 procedera a llamar a ListarAlumnos y nos mostara los alumnos cargados con sus datos, para ir terminando si el valor es 4 tendra solo un break y se cumplira la condicion para salir del do…while, por ultimo tenemos el default que nos mostrara un mensaje en pantalla diciendo que debe ser entre 1 y 4, espera un enter y vuelve al menu principal, vamos a compilar nuestra solucion y vamos a probar como funciona nuestro programa a traves del siguiente video

Anuncios

En el video podemos ver la situacion de cuando queremos ver un listado de los alumnos y el archivo no existe devolviendo una excepcion, pero si volvemos a entrar y generamos algunos funciona correctamente, luego si lo borramos y volvemos a hacer el listado no nos vuelve a dar el error porque recuerden que lo dejamos vacio, por ultimo vemos como son las cargas de los usuarios, como podemos listarlo, esta es una forma, y por ultimo vemos donde se creo el archivo y cual es su contenido.

Anuncios

En resumen, hoy ya tenemos la seccion de la universidad que se encargara de administrar los alumnos, ya sea para eliminarlos de un plumon, para agregarlos y generar su id unico en la universidad como tambien para listar todos sus datos personales, espero les haya gustado 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 $