Reporte de Programación Basica en C#
Reporte de Programación Basica en C#
INTRODUCCIÓN 1
OBJETIVOS 1
DESARROLLO DEL CASO 2
ENUNCIADO 2
PLANTEAMIENTO GENERAL DEL PROBLEMA 3
ANÁLISIS DEL PROBLEMA 3
DEFINICIÓN DE VARIABLES DE ENTRADA 3
DEFINICIÓN DE VARIABLES DE SALIDA. 3
RESTRICCIONES 3
PROCESO 4
DEFINICIÓN DE VARIABLES DE PROCESO 5
DISEÑO DE LA SOLUCIÓN 5
ALGORITMO NARRADO. 5
SINTAXIS EN C# 6
CONCLUSIONES 9
RECOMENDACIONES 9
BIBLIOGRAFÍA UTILIZADA 9
INTRODUCCIÓN
El presente trabajo contiene el desarrollo de un caso sobre estructuras de control
repetitivas, estructuras de datos y persistencia de datos.
OBJETIVOS
Aplicar el conocimiento de las adquirido sobre Estructuras de control repetitivas,
Estructuras de datos y Persistencia de datos en el desarrollo de una herramienta de
administración de libros de una librería de aplicación de consola, utilizando el lenguaje
C# y el IDE Visual Studio 2015.
OBJETIVOS ESPECIFICOS
Aplicar el conocimiento de las adquirido sobre Estructuras de control repetitivas,
Utilizar las estructuras de datos y la Persistencia de datos en el desarrollo de una
herramienta de administración de libros de una librería de aplicación de consola,
utilizando el lenguaje C# y el IDE Visual Studio 2015.
1
DESARROLLO DEL CASO
ENUNCIADO
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:
i. Código de libro: De tipo texto (números y letras) y digitado por el usuario.
ii. Título: Título del libro.
iii. Autor: Nombre del autor del libro.
iv. Editorial: Nombre de la editorial que publico el libro.
v. Edición: Numero de edición del libro.
vi. ISBN: Numero de ISBN del libro.
vii. Precio: Precio del libro en dólares.
viii. Cantidad: Cantidad de unidades disponibles.
El programa debe contener un menú principal que presente al usuario las siguientes
opciones:
1. Registrar Libro: Permite crear un nuevo libro y registrar todos sus datos.
2. Ver todos los libros registrados: Muestra en pantalla todos los libros registrados
en el archivo.
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. Salir.
2
PLANTEAMIENTO GENERAL DEL PROBLEMA
RESTRICCIONES
los valores permitidos para el menú son los números 1, 2, 3, 4.
3
PROCESO
El proceso inicia estableciendo un menú de inicio con las opciones:
REGISTRAR UN LIBRO solicitará los siguientes datos: Código de libro, Título, Autor,
Editorial, Edición. ISBN, Precio, Cantidad y se guardan en el archivo de texto
inventariolibros.
VER LIBROS GUARDADOS imprime en pantalla todos los libros que se han guardado
en el archivo de texto.
BÚSQUEDA DE LIBRO buscará el código de libro digitado y lo imprimirá en pantalla.
SALIR DEL PROGRAMA permite de salir del sistema.
DEFINICIÓN DE VARIABLES DE PROCESO
NOMBRE TIPO DESCRIPCIÓN
Opcion INT Utilizada controlar la opción de menú
seleccionada
Linea, Lineauno, STRING Muestra el contenido de cada línea al buscar
Linea_dos, Lineatres, por código.
Lineacuatro,
Lineacinco, Lineaseis
codigo_libro STRING Permite buscar el código de libro ingresado.
DISEÑO DE LA SOLUCIÓN
ALGORITMO NARRADO.
namespace EjercicioPersistencia
{
class Program
{
public struct GestionarInventarioLibros
{
public static string Codigo;
public static string Titulo;
public static string Autor;
public static string Editorial;
public static string Edicion;
public static string Isbn;
public static double Precio;
public static int Cantidad;
}
static StreamReader lecturadearchivo;
static StreamWriter almacenar_archivo;
static void Main(string[] args)
{
int Opcion;
do
{
Console.Clear();
Console.WriteLine("SISTEMA DE GESTIÓN DE LIBROS");
Console.WriteLine("MENÚ PRINCIPAL");
Console.WriteLine("1 - REGISTRAR UN LIBRO");
Console.WriteLine("2 - VER TODOS LOS LIBROS REGISTRADOS");
Console.WriteLine("3 - BÚSQUEDA DE LIBRO");
Console.WriteLine("4 - SALIR DEL PROGRAMA");
Console.WriteLine("DIGITE LA OPCION DE DESEA UTILIZAR Y PRESIONE
ENTER:");
Opcion = int.Parse(Console.ReadLine());
switch (Opcion)
{
case 1://Registrar Libro: Permite crear un nuevo libro y registrar
todos sus datos.
Console.Clear();
Console.WriteLine("SISTEMA DE GESTIÓN DE LIBROS");
Console.WriteLine("DIGITE LOS DATOS DEL LIBRO QUE DESEA
GUARDAR:");
Console.Write("CODIGO: ");
GestionarInventarioLibros.Codigo = (Console.ReadLine());
Console.Write("TITULO: ");
GestionarInventarioLibros.Titulo = Console.ReadLine();
Console.Write("AUTOR: ");
GestionarInventarioLibros.Autor = Console.ReadLine();
Console.Write("EDITORIAL: ");
GestionarInventarioLibros.Editorial = Console.ReadLine();
Console.Write("EDICION: ");
GestionarInventarioLibros.Edicion = (Console.ReadLine());
Console.Write("ISBN: ");
GestionarInventarioLibros.Isbn = (Console.ReadLine());
Console.Write("PRECIO: $ ");
GestionarInventarioLibros.Precio =
double.Parse(Console.ReadLine());
Console.Write("CANTIDAD DE LIBROS: ");
GestionarInventarioLibros.Cantidad =
int.Parse(Console.ReadLine());
almacenar_archivo = new StreamWriter("inventariolibros.txt",
true);
almacenar_archivo.WriteLine("________________________________________");
almacenar_archivo.WriteLine(GestionarInventarioLibros.Codigo);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Titulo);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Autor);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Editorial);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Edicion);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Isbn);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Precio);
almacenar_archivo.WriteLine(GestionarInventarioLibros.Cantidad);
almacenar_archivo.WriteLine("________________________________________");
almacenar_archivo.Close();
Console.WriteLine("PRESIONE ENTER PARA REGRESAR AL MENU");
break;
case 2:
Console.Clear();
Console.WriteLine("SISTEMA DE GESTIÓN DE LIBROS");
Console.WriteLine("LIBROS GUARDADOS");
lecturadearchivo = new StreamReader("inventariolibros.txt");
int i = 0;
string linea = "";
while (!lecturadearchivo.EndOfStream)
{
linea = lecturadearchivo.ReadLine();
Console.WriteLine("{0}", linea);
i++;
}
lecturadearchivo.Close();
Console.WriteLine("PARA REGRESAR AL MENU PRESIONE ENTER");
break;
case 3:
Console.Clear();
string Linea;
string Lineauno;
string Linea_dos;
string Lineatres;
string Lineacuatro;
string Lineacinco;
string Lineaseis;
int contadordelinea = 0;
string codigo_libro;
Console.WriteLine("SISTEMA DE GESTIÓN DE LIBROS");
Console.WriteLine("BUSCAR LIBRO GUARDADO");
lecturadearchivo = new StreamReader("inventariolibros.txt",
true);
Console.Write("DIGITE EL CODIGO DE LIBRO QUE DESEA ENCONTRAR: ");
codigo_libro = Console.ReadLine();
do
{
Linea = lecturadearchivo.ReadLine();
}
while (Linea != codigo_libro && Linea != null);
Console.Clear();
Console.WriteLine("SISTEMA DE GESTIÓN DE LIBROS");
Console.WriteLine("LIBROS GUARDADOS");
Console.WriteLine("NO EXISTEN DATOS CON ESE CODIGO");
if ((Linea == codigo_libro))
{
Console.Clear();
Console.WriteLine("SISTEMA DE GESTIÓN DE LIBROS");
Console.WriteLine("LIBROS GUARDADOS");
Console.WriteLine("LOS DATOS GUARDADOS SON: ");
do
{
Console.WriteLine("________________________________________");
Linea = lecturadearchivo.ReadLine();
Console.WriteLine("CODIGO DEL LIBRO:{0}", codigo_libro);
Console.WriteLine("TITULO:{0}", Linea);
contadordelinea = contadordelinea + 1;
}
while (contadordelinea < 1);
do
{
Lineauno = lecturadearchivo.ReadLine();
Console.WriteLine("AUTOR DEL LIBRO:{0}", Lineauno);
}
while (contadordelinea < 1);
do
{
Linea_dos = lecturadearchivo.ReadLine();
Console.WriteLine("NOMBRE DE EDITORIAL:{0}", Linea_dos);
}
while (contadordelinea < 1);
do
{
Lineatres = lecturadearchivo.ReadLine();
Console.WriteLine("EDICION:{0}", Lineatres);
}
while (contadordelinea < 1);
do
{
Lineacuatro = lecturadearchivo.ReadLine();
Console.WriteLine("ISBN:{0}", Lineacuatro);
}
while (contadordelinea < 1);
do
{
Lineacinco = lecturadearchivo.ReadLine();
Console.WriteLine("PRECIO DEL LIBRO:$ {0}", Lineacinco);
}
while (contadordelinea < 1);
do
{
Lineaseis = lecturadearchivo.ReadLine();
Console.WriteLine("CANTIDAD DE LIBROS:{0}", Lineaseis);
Console.WriteLine("________________________________________");
}
while (contadordelinea < 1);
}
lecturadearchivo.Close();
Console.WriteLine("PRESIONE ENTER PARA REGRESAR AL MENU");
break;
case 4: //Salir del programa
Console.WriteLine("USTED VA A SALIR DEL SISTEMA");
Console.WriteLine("PULSE CUALQUIER TECLA PARA FINALIZAR");
break;
default:
Console.WriteLine("LA OPCION QUE DIGITO NO EXISTE");
Console.WriteLine("PRESIONE ENTER PARA REGRESAR AL MENU");
break;
}
Console.ReadKey();
} while (Opcion != 4);
}
}
}
CONCLUSIONES
Es necesaria la practica constante de las diferentes sentencias y estructuras del lenguaje
de programación c#, de esta forma el desarrollo de las tareas y practicas será mucho
más fácil y de provecho para el aprendizaje.
RECOMENDACIONES
Se recomienda la aplicación de estructuras repetitivas en tareas en las que es necesario
repetir el código ya escrito, de esta forma se hará eficiente el programa y el código sea
mas entendible.
BIBLIOGRAFÍA UTILIZADA
Material de Clases de unidades 5, 6 y 7.
Búsqueda en internet en https://docs.microsoft.com/es-es/dotnet/csharp/tour-of-csharp/