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