Thursday, October 18, 2018

Diario de Aprendizaje #10

Proyecto Ejemplo
Diario de Aprendizaje #10 – Semana del 15 de Octubre 2018

En esta semana nos centramos en aplicar los conocimientos de archivos de texto en algo más práctico como lo fue un Proyecto Ejemplo.

En este Proyecto Ejemplo hicimos un programa que primeramente permitía validar si un nombre de usuario ya existía o no, así como pedir detalles al usuario para almacenar información en un archivo de texto.
También se podía registrar usuarios y revisar si una contraseña era escrita correctamente o no.

En el Proyecto Ejemplo, el cual aún está por terminar en las próximas sesiones, se utilizaron estructuras for, do-while, switch, if, así como el manejo de escribir y leer archivos de texto.


Otro tema que tocamos durante la semana fue el cómo podría una persona descifrar qué sistema operativo o qué herramientas de software una plataforma estaría utilizando por medio de la consulta de errores y mensajes de error en nuestros programas y navegadores.

Es importante saber manejar los mensajes de error de manera correcta para que así no seamos hackeados por algún tercero desconocido en un futuro.
Mientras más ocultemos y cifremos nuestra información, mayor será la seguridad de nuestros programas y menor la probabilidad de que ocurra un robo de identidad o información.

Aquí se presenta el código del programa realizado durante esta semana:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Proyecto_Usuarios
{
    class Program
    {
        static void Main(string[] args)
        {
            // Ejemplo de proyecto
            int opcion = 0;
            do
            {
                // Inicio de menú
                Console.WriteLine("Ingresa la opción que deseas realizar");
                Console.WriteLine("Opción 1: Inicio de Sesión");
                Console.WriteLine("Opción 2: Registro");
                opcion = int.Parse(Console.ReadLine());
                // Fin de menú
                switch (opcion)
                {
                    case 1: // Opción de inicio de sesión
                        {
                            // Llevar archivo a RAM
                            StreamReader lectura = File.OpenText(@"usuarios.txt");
                            string contenido = lectura.ReadToEnd();
                            lectura.Close();
                            string[] elementos = contenido.Split('\n');
                            // Fin de creación de copia de archivo

                            Console.WriteLine("Bienvenido al inicio de sesión");
                            Console.WriteLine("Ingresa tu nombre de usuario");
                            string temporal = Console.ReadLine();
                            bool validacion = false;
                            for(int x=0; x<elementos.Length; x=x+2)
                            {
                                if(elementos[x].Trim().Equals(temporal))
                                {
                                    Console.WriteLine("Ingresa tu contraseña");
                                    temporal = Console.ReadLine();
                                    if(elementos[x+1].Trim().Equals(temporal))
                                    {
                                        validacion = true;
                                        break;
                                    } else
                                    {
                                        validacion = false;
                                        break;
                                    }
                                } else
                                {
                                    validacion = false;
                                }
                            }
                           
                            if(validacion == true) // if(validacion)
                            {
                                Console.Clear();
                                Console.WriteLine("Bienvenido");
                                // Inicio del menú de la aplicación
                                int opcionMenu = 0;
                                Console.WriteLine("Ingresa la opción que deseas realizar");
                                Console.WriteLine("Opción 1: Menú usuarios");
                                Console.WriteLine("Opción 2: Menú productos");
                                Console.WriteLine("Opción 3: Reportes");
                                opcionMenu = int.Parse(Console.ReadLine());
                                // Fin del menú
                                switch(opcionMenu)
                                {
                                    case 1: // Menú usuarios
                                        {

                                            break;
                                        }
                                    case 2: // Menú productos
                                        {
                                            break;
                                        }
                                    case 3: // Reportes
                                        {
                                            break;
                                        }
                                    default:
                                        {
                                            Console.WriteLine("Opción no válida");
                                            break;
                                        }
                                }
                            } else
                            {
                                Console.WriteLine("El usuario o contraseña no son correctos");
                            }

                            break;
                        }
                    case 2: // Registro
                        {
                            // Creación de archivo de texto
                            StreamWriter escritura = File.AppendText(@"u_detalle.txt");
                            string temporal = null;
                            Console.WriteLine("Registro de usuarios");

                            Console.WriteLine("Ingresa el nombre/nombres");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Ingresa el apellido paterno");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Ingresa el apellido materno");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Fecha de Nacimiento: DD/MM/AAAA");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Dirección");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Teléfono");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Sexo: H/M");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            Console.WriteLine("Entidad de Nacimiento");
                            temporal = Console.ReadLine();
                            escritura.WriteLine(temporal);

                            escritura.Close();
                            Console.Clear();
                            Console.WriteLine("Los datos se almacenaron");
                            // Creación de usuario y contraseña en txt
                            Console.WriteLine("Elige un nombre de usuario");
                            temporal = Console.ReadLine();
                            if (File.Exists(@"usuarios.txt")) // Validación si el archivo existe
                            {
                                // Cuando el archivo sí existe
                                StreamReader lectura = File.OpenText(@"");
                                string contenido = lectura.ReadToEnd();
                                lectura.Close();
                                string[] datos = contenido.Split('\n');
                                bool validacion = true;
                                do
                                {
                                    Console.WriteLine("Ingresa el nombre de usuario");
                                    temporal = Console.ReadLine();
                                    // Inicio de validación de usuario único
                                    for(int x=0; x < datos.Length; x=x+2)
                                    {
                                        if(datos[x].Trim().Equals(temporal)) // Trim: borrar el formato a una cadena de texto.
                                        {
                                            Console.WriteLine("El usuario ya existe...");
                                            validacion = false;
                                        } else
                                        {
                                            StreamWriter creacion = File.AppendText(@"");
                                            creacion.WriteLine(temporal);
                                            Console.WriteLine("Ingresa la contraseña");
                                            temporal = Console.ReadLine();
                                            creacion.WriteLine(temporal);
                                            creacion.Close();
                                            validacion = true;
                                        }
                                    }
                                    // Fin de validación de usuario único
                                }
                                while (validacion != true);
                            } else
                            {
                                // Cuando el archivo no existe
                                StreamWriter creacion = File.CreateText(@"");
                                Console.WriteLine("Ingresa tu nombre de usuario");
                                temporal = Console.ReadLine();
                                creacion.WriteLine(temporal);

                                Console.WriteLine("Ingresa tu contraseña");
                                temporal = Console.ReadLine();
                                creacion.WriteLine(temporal);
                                                              
                                creacion.Close();
                                Console.WriteLine("Usuario y Contraseña creados correctamente");
                            }
                            // Fin de creación de usuario y contraseña
                            break;
                        } // Fin de registro
                    default: // Cualquier otra opción
                        {
                            Console.WriteLine("La opción que elegiste no es válida");
                            break;
                        }
                }
                Console.WriteLine("¿Deseas continuar en el programa? Ingresa 1 para SI, cualquier otro número para NO");
                opcion = int.Parse(Console.ReadLine());
            }
            while (opcion == 1);
        }
    }
}

Te invito a probarlo y darme tu opinión al respecto.

Como conclusión, yo personalmente me divertí y aprendí mucho a lo largo de la semana. Me gustó cómo poco a poquito pude crear un programa muy útil que podría ser incluso posteriormente desarrollado para tener un sistema completo de ventas y manejo de información.

Referencias:

  • Ejercicios y teoría vista en las clases de “Introducción a la Programación” impartidas por el M.S.I. José Alejandro Vargas Díaz en la Facultad de Informática de la Universidad Autónoma de Querétaro.

No comments:

Post a Comment