Persistencia de datos Programación C#
Inventario de Libreria.
Utilizando
la herramienta de lenguaje de programación Visual Studio se ha desarrollado un
programa usando el lenguaje C#, dicho programa consiste en gestionar y
catalogar el inventario de una librería, almacenando en una archivo de texto
plano (.txt) los datos que son digitados por el usuario.
El
programa contiene un menú con cuatro opciones que son: Registrar nuevo libro,
Ver todos los libros registrados, Buscar libro por código y Salir.
En
la primera opción del menú; Registro de libro pide al usuario los siguientes
datos: Ingresar el código, Titulo, Autor, Editorial, Edicion, ISBN, Precio y
Cantidad.
La
segunda opción muestra la lista de todos los libros registrados por el usuario
en formato de columnas y filas.
La
tercera opción que es Buscar libro por código, pide al usuario que ingrese el
código de un libro que se haya registrado en la base de datos, si el código fue
ingresado correctamente el programa imprimirá en pantalla la información
completa del libro registrado con el código ingresado. Si el código no se
encuentra en la base de datos este imprimirá un mensaje explicando que el libro
con el código ingresado no se encuentra en la base de datos. También esta
muestra dos opciones extra, las cuales consisten en eliminar el libro que se encontró con el
código ingresado y la opción de regresar al menú principal.
La
cuarta y última opción es la de cerrar el programa.
Indicaciones del ejercicio desarrollado.
Desarrolle un programa haciendo uso de
estructuras repetitivas, estructuras de datos y persistencia hacia un archivo
de texto plano (extensión TXT) que permita gestionar y catalogar el inventario
de libros de una librería, para ello solicita sus servicios para crear un
programa que, haciendo uso de estructuras, permita almacenar los datos de los
libros que posee la librería, El programa debe permitir al usuario introducir
todos los libros que desee mediante un menú con las opciones que se mencionan
más abajo en este ejercicio y los datos a almacenar de cada libro son los
siguientes:
Ø Código de libro: De tipo texto (números y letras) y digitado por el
usuario.
Ø Título: Título del libro.
Ø Autor: Nombre del autor del libro.
Ø Editorial: Nombre de la editorial que publico el libro.
Ø Edición: Numero de edición del libro.
Ø ISBN: Numero de ISBN del libro.
Ø Precio: Precio del libro en dólares.
Ø Cantidad: Cantidad de unidades disponibles.
El programa debe contener un menú principal
que presente al usuario las siguientes opciones:
1. 1- Registrar Libro: Permite crear un
nuevo libro y registrar todos sus datos.
2. 2- Ver todos los libros registrados:
Muestra en pantalla todos los libros registrados en el archivo.
3. 3- Buscar libro por código: Mediante
un código de libro que el usuario digita, se busca el libro coincidente y si
hay resultados, se despliegan los datos completos del libro buscado, si no se
encuentra el libro se presenta un mensaje que no se encontró.
4. 4- Salir
El nombre del archivo de texto en donde se
almacena la información de los libros debe ser inventariolibros.txt.
Donar:
SINTAXIS EN C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Inventario_Libreria
{
class Program
{
static StreamReader lectura;
static StreamWriter escritura, temporal;
static string cadena, respuesta;
static string codLibro, titulo, autor, editorial, edicion,isbn;
static double precio, cantidad;
static bool encontrado;
static string[] campos = new string[7];
static void Main(string[] args)
{
menu();
Console.ReadKey(true);
}
static void menu()
{
byte opcion = 0;
do
{
try
{
Console.WriteLine("/////////////////////////////////////////////////////");
Console.WriteLine("_________________________MENU________________________");
Console.WriteLine(" 1. Registrar Nuevo Libro \n");
Console.WriteLine(" 2. Ver todos los libros registrados\n");
Console.WriteLine(" 3. Buscar libro por código\n");
Console.WriteLine(" 4. Salir");
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(" SELECCIONE EL NUMERO DE LA OPCION ");
Console.WriteLine("/////////////////////////////////////////////////////");
opcion = Convert.ToByte(Console.ReadLine());
switch (opcion)
{
case 1:
CrearArchivo();
regLibro();
break;
case 2:
consultar();
break;
case 3:
busqueda();
break;
case 4:
Console.WriteLine("//////////////////////////////////////////////////////////////////");
Console.WriteLine(" Aplicaciom Finalizada ");
Console.WriteLine("//////////////////////////////////////////////////////////////////");
break;
default:
Console.WriteLine("//////////////////////////////////////////////////////////////////");
Console.WriteLine(" Opcion Incorrecta ");
Console.WriteLine("//////////////////////////////////////////////////////////////////");
break;
}
}
catch(FormatException fe)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("¡Error !" + fe.Message);
Console.WriteLine("-----------------------------------------------------");
}
catch (Exception e)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("¡Error !" + e.Message);
Console.WriteLine("-----------------------------------------------------");
}
} while (opcion != 4);
}
//Metodo para crear el archivo
static void CrearArchivo()
{
escritura = File.AppendText("inventariolibros.txt");
escritura.Close();
}
//Metodo para crear el Registro
static void regLibro()
{
encontrado = (false);
try
{
lectura = File.OpenText("inventariolibros.txt");
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ingrese codigo del libro: ");
Console.WriteLine("-----------------------------------------------------");
codLibro = Console.ReadLine();
codLibro = codLibro.ToUpper();
cadena = lectura.ReadLine();
//Aqui buscamos que no exista un codigo repetido
while (cadena != null)
{
campos = cadena.Split(',');
if (campos[0].Trim().Equals(codLibro))
{
encontrado = true;
break;
}
cadena = lectura.ReadLine();
}
lectura.Close();
escritura = File.AppendText("inventariolibros.txt");
if (encontrado == false)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ingresa el Titulo del libro: ");
Console.WriteLine("-----------------------------------------------------");
titulo = Console.ReadLine();
titulo = titulo.ToUpper();
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ingrese el autor del libro: ");
Console.WriteLine("-----------------------------------------------------");
autor = Console.ReadLine();
autor = autor.ToUpper();
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ingrese la editorial del libro: ");
Console.WriteLine("-----------------------------------------------------");
editorial = Console.ReadLine();
editorial = editorial.ToUpper();
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ingrese la edicion del libro: ");
Console.WriteLine("-----------------------------------------------------");
edicion = Console.ReadLine();
edicion = edicion.ToUpper();
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("ingrese el ISBN: ");
Console.WriteLine("-----------------------------------------------------");
isbn = Console.ReadLine();
isbn = isbn.ToUpper();
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("ingrese el precio: ");
Console.WriteLine("-----------------------------------------------------");
precio = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ingrese la cantidad de libros: ");
Console.WriteLine("-----------------------------------------------------");
cantidad = Convert.ToDouble(Console.ReadLine());
//ESCRIBIENDO DATOS EN EL ARCHIVO
escritura.WriteLine(codLibro + "," + titulo + "," + autor + "," + editorial + "," + edicion + "," + precio + "," + cantidad);
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("_________REGISTRO AGREGADO CORRECTAMENTE_____________");
Console.WriteLine("-----------------------------------------------------");
}
else
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Ya existe un libro registrado con el codigo: " + codLibro + ", Intentelo nuevamente");
Console.WriteLine("-----------------------------------------------------");
}
escritura.Close();
}
catch(FileNotFoundException fn)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("¡Error !" + fn.Message);
Console.WriteLine("-----------------------------------------------------");
}
catch (Exception e)
{
Console.WriteLine("//////////////////////////////////////////////////////////////////");
Console.WriteLine("¡Error !" + e.Message);
Console.WriteLine("//////////////////////////////////////////////////////////////////");
}
finally
{
lectura.Close();
escritura.Close();
}
}
//para visualizar todos los libros registrados
static void consultar()
{
encontrado = false;
try
{
lectura = File.OpenText("inventariolibros.txt");
cadena = lectura.ReadLine();
while (cadena != null)
{
campos = cadena.Split(',');
encontrado = true;
Console.WriteLine("/////////////////////////////////////////////////////");
Console.WriteLine(" libro encontrado con los siguientes datos ");
Console.WriteLine("_____________________________________________________\n");
Console.WriteLine(" Codigo del Libro:____ " + campos[0].Trim());
Console.WriteLine("\n Titulo:____________ " + campos[1].Trim());
Console.WriteLine("\n Autor:_____________ " + campos[2].Trim());
Console.WriteLine("\n Editorial:_________ " + campos[3].Trim());
Console.WriteLine("\n Edicion: __________ " + campos[4].Trim());
Console.WriteLine("\n Precio:____________ $" + campos[5].Trim());
Console.WriteLine("\n Cantidad:__________ " + campos[6].Trim());
cadena = lectura.ReadLine();
}
if (encontrado == false)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(" No hay libros en la base de datos ");
Console.WriteLine("-----------------------------------------------------");
}
lectura.Close();
}
catch (FileNotFoundException fn)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("¡Error !" + fn.Message);
Console.WriteLine("-----------------------------------------------------");
}
catch (Exception e)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("¡Error !" + e.Message);
Console.WriteLine("-----------------------------------------------------");
}
finally
{
lectura.Close();
}
}
//Busqueda de libro por codigio
static void busqueda()
{
encontrado = false;
try
{
lectura = File.OpenText("inventariolibros.txt");
temporal = File.CreateText("tmp.txt");
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("_______Ingresa el Codigo del libro que buscas________");
Console.WriteLine("-----------------------------------------------------");
codLibro = Console.ReadLine();
codLibro = codLibro.ToUpper();
cadena = lectura.ReadLine();
while (cadena != null)
{
campos = cadena.Split(',');
if (campos[0].Trim().Equals(codLibro))
{
encontrado = true;
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(" Libro encontrado ");
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(" Codigo del libro:__>" + campos[0]);
Console.WriteLine(" Titulo:____________>" + campos[1]);
Console.WriteLine(" Autor:_____________>" + campos[2]);
Console.WriteLine(" Editorial:_________>" + campos[3]);
Console.WriteLine(" Editorial:_________>" + campos[4]);
Console.WriteLine(" Precio:____________> $" + campos[5]);
Console.WriteLine(" Cantidad:__________>" + campos[6]);
Console.WriteLine("--------------------------------------------------------------------");
Console.WriteLine("______Si deseas eliminar este libro oprime la tecla (E) + Enter_____");
Console.WriteLine("_________Para regresar al menu principal presione (R) + Enter_______");
Console.WriteLine("--------------------------------------------------------------------");
respuesta = Console.ReadLine();
respuesta = respuesta.ToUpper();
if (!respuesta.Equals("E"))
{
temporal.WriteLine(cadena);
}
}
else
{
temporal.WriteLine(cadena);
}
cadena = lectura.ReadLine();
}
if (encontrado == false)
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("El libro con el codigo: " + codLibro + ", No existe");
Console.WriteLine("-----------------------------------------------------");
}
else if (respuesta.Equals("E"))
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(" El libro se a eliminado ");
Console.WriteLine("-----------------------------------------------------");
}
else
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(" MENU PRINCIPAL ");
Console.WriteLine("-----------------------------------------------------");
}
lectura.Close();
temporal.Close();
File.Delete("inventariolibros.txt");
File.Move("tmp.txt", "inventariolibros.txt");
}
catch (FileNotFoundException fn)
{
Console.WriteLine("******************************************************************");
Console.WriteLine("¡Error !" + fn.Message);
Console.WriteLine("******************************************************************");
}
catch (Exception e)
{
Console.WriteLine("******************************************************************");
Console.WriteLine("¡Error !" + e.Message);
Console.WriteLine("******************************************************************");
}
finally
{
lectura.Close();
temporal.Close();
}
}
}
}
_________________________________________________________________________
Desarrollado por: Tanya Carolina Menjivar Perez.
_________________________________________________________________________
Comentarios
Publicar un comentario