Practica 1 Programacion Visual

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 22

Programación Visual.

Práctica #01

Instituto Tecnológico de La Laguna


Programación visual.

Practica 01

Ingeniería Electrónica.

Odel Jaciel Mora Valenzuela.

21131472.

Ing. ALEJANDRO ENRIQUE DZUL LOPEZ

01/03/2023

1
Programación Visual. Práctica #01

Índice

Introducción…………………………………………………………………………………3
Planteamiento del problema………………………………………………………………4
Análisis del problema………………………………………………………………………5
Código utilizado…………………………………………………………………………….6
Ejecución del programa……………………………………………………………………15
Conclusiones………………………………………………………………………………..22

2
Programación Visual. Práctica #01

Introducción.
C++ es un lenguaje de programación muy versátil que permite crear programas de
consola de manera rápida y eficiente. La programación de consola se refiere a la creación
de programas que se ejecutan en una interfaz de línea de comandos, en la que el usuario
interactúa con el programa a través de la entrada y salida de texto en la consola.
En la programación de consola en C++, se utilizan las bibliotecas de entrada y salida
estándar, conocidas como "iostream", que permiten la lectura y escritura de datos en la
consola. Estas bibliotecas incluyen clases como "cout" para la salida de texto y "cin" para
la entrada de datos.
Para comenzar a programar en C++ para consola, es necesario tener un conocimiento
básico de la sintaxis del lenguaje, así como de los conceptos fundamentales de
programación, como la definición de variables, la estructura de control de flujo y las
funciones. También es importante tener un editor de texto o un entorno de desarrollo
integrado (IDE) configurado para C++.
En resumen, la programación en C++ para consola es una forma poderosa de crear
programas de línea de comandos que pueden ser utilizados en una variedad de
aplicaciones, desde utilidades de sistema hasta herramientas de administración de
redes. Con el conocimiento adecuado, cualquier programador puede aprender a crear
aplicaciones de consola eficientes y fiables en C++.

3
Programación Visual. Práctica #01

Planteamiento del problema.


Desarrollar un programa en lenguaje C++ (modo consola). El programa tendrá un menú
repetitivo como el siguiente:
MENU
1-Llenar el inventario.
2-Mostrar el inventario.
3-Ordenar por nombre.
4-Ordenar por precio.
5-Buscar un producto por nombre
6-Agregar un producto
7-Eliminar un producto
8-Guardar inventario en un archivo
9-Leer inventario de un archivo
10-Salir
El inventario estará compuesto por máximo 50 productos. Cada producto contiene:
Nombre (cadena de caracteres, máximo 79), Cantidad de productos en el inventario
(entero no negativo), Precio (real positivo). Utilizar una Estructura de Datos para elaborar
un nuevo tipo de dato. Elaborar cada opción (excepto salir) en una función. Desarrollar
funciones extra si lo consideran necesario. En la opción 1, el usuario define la cantidad
real de productos a llenar, donde esta cifra será utilizada en las demás opciones. En la
opción 5, se busca por nombre, y si existe, se proporcionan todos los datos del producto.
En la opción 6, se agrega un producto al final del inventario. En la opción 7, primero se
busca el producto, en caso de encontrarlo, se elimina sobre escribiendo el resto del
inventario. En el caso de la opción 8, el archivo llevará el siguiente formato:
Cantidad_productos_lista
Nombre_producto01 Cantidad_productos01 Precio_Producto01
Nombre_producto02 Cantidad_productos02 Precio_Producto02
Nombre_producto03 Cantidad_productos03 Precio_Producto03
Etc.
Este formato es el que se utilizará para leerlo. El nombre del archivo a crear es
“inventario.txt”.

4
Programación Visual. Práctica #01

Análisis del programa.


Para principiar a resolver este problema o encontrar la solución, comenzamos con la
lectura del mismo y nos topamos con la primera instrucción / requerimiento del programa,
que es un menú repetitivo y el mismo nos indica las funciones que se van a realizar con
los datos proporcionados por el usuario final, al decir que es repetitivo y lo que nos
muestra son opciones a seleccionar por el usuario, se deduce que se repetirá hasta que
el usuario introduzca una opción válida. (figura 1.0)
La primera opción nos pide “Llenar el inventario” aquí el usuario indicara el numero de
productos que compondrán al inventario, el cual el máximo es 50 productos. (figura 1.1)
De aquí nos pasamos a la sexta opción la cual nos permite agregar productos para
rellenar los espacios anteriormente declarados en la opción uno, cada producto contiene:
Nombre (cadena de caracteres, máximo 79), Cantidad de productos en el inventario
(entero no negativo), Precio (real positivo). Estos datos se le preguntan al usuario y el
los proporciona, si al agregar los productos, el inventario se llena, no se le permitirá
agregar más productos. (figura 1.2, figura 1.21, figura 1.22)
Al seleccionar la opción 2, el programa ya con todos los datos de cada producto, lo único
que hace es imprimirlos en la pantalla para que el usurario recuerde que productos tiene,
la cantidad de cada uno y el precio unitario. (figura 1.3)
Con la tercera y cuarta opción se crean dos funciones distintas, una para ordenar los
productos por nombre alfabéticamente y otra para ordenar los productos de menor a
mayor precio en la lista. (figura 1.4 y figura 1.41)
La quinta opción lo que nos dice es que el usuario, si lo desea, puede realizar la
búsqueda de un producto por medio del nombre y si este existe dentro del inventario este
lo muestra con todos los datos antes ingresados. (figura 1.5)
Lo que realiza la séptima opción es primero buscar el producto y en caso de encontrarlo
le cambia el nombre por “Eliminado”, la cantidad la convierte en “0” y de igual manera
con el precio lo convierte a “0”. Después de hacer esto, libera un espacio en el inventario
para que el usuario pueda agregar el artículo que el desee. (figura 1.6)
Para la octava opción, lo que realiza el programa es generar un archivo por nombre
“inventario.txt” y en el guarda el inventario ya antes generado. (figura 1.8)
Con la penúltima opción la acción a realizar es el leer el archivo generado en la opción 8
y mostrarlo en la consola. (figura 1.9)
Y a opción 10 como se indica, es salir del programa.
Para guardar los datos proporcionados se nos pedía crear una nueva estructura de
datos.

5
Programación Visual. Práctica #01

Código realizado.
#include <iostream.h>
#include <cstring>
#include <string>
#include<fstream.h>

using namespace std;


int cant=0;
int posicion=0;
struct producto {
char Nombre[79];
int Cantidad;
float Precio;
};
producto p[50];

int menu(void);
void llenar_inventario();
void mostrar_inventario();
void ordenar_nombre(producto p[]);
void ordenar_precio(producto p[]);
void buscar_producto();
void agregar_producto();
void eliminar_producto();
void guardar_archivo();
void leer_archivo();

6
Programación Visual. Práctica #01

void llenar_inventario()
{

cout<< "Ingresa la cantidad de productos\n";


cin>> cant;
if (cant>0&&cant<51)
{
cout<<"Cantidad aceptada"<<endl;

}
else
{
cout<<"ingresa una cantidad permitida (de 1 a 50)"<<endl;
llenar_inventario();
}

void mostrar_inventario()
{
for(int i=0;i<cant;i++)
{
cout<<"Producto "<< p[i].Nombre << "_pzs " << p[i].Cantidad << "_$ " <<
p[i].Precio<<endl;
}
}
void ordenar_nombre()
{

7
Programación Visual. Práctica #01

int i, j, tam;
producto tmp;

for(i=0;i<cant;i++)
{
tam=strlen(p[i].Nombre);
for(j=0;j<tam;j++)
{
p[i].Nombre[j]=tolower(p[i].Nombre[j]);
}
}
for(i=0;i<cant-1;i++)
{
for(j=0;j<cant-1;j++)
{
if(strcmp(p[j].Nombre, p[j+1].Nombre)>0)
{
tmp=p[j];
p[j]=p[j+1];
p[j+1]=tmp;
}
}
}
}
void ordenar_precio()
{
int i, j;
producto tmp;

for(i=0;i<cant-1;i++)

8
Programación Visual. Práctica #01

{
for(j=0;j<cant-1;j++)
{
if(p[j].Precio>p[j+1].Precio)
{
tmp=p[j];
p[j]=p[j+1];
p[j+1]=tmp;
}
}
}
}

void buscar_producto()
{
int i;
cout<< "¿Que producto buscas?";
char nombre[79];
cin>>nombre;

for(int i=0;i<cant;i++)
{
int resultado = strcmp(nombre,p[i].Nombre);
if(resultado==0)
{
cout<<"Producto "<< p[i].Nombre << "_" << p[i].Cantidad << "_" <<
p[i].Precio<<endl;
}

9
Programación Visual. Práctica #01

}
void agregar_producto()
{
if(posicion<cant)
{
cout<<"Ingresa el nombre del producto\n";
cin>>p[posicion].Nombre;
cout<<"Ingresa la cantidad de productos\n";
cin>>p[posicion].Cantidad;
cout<<"Ingresa el precio del producto\n";
cin>>p[posicion].Precio;
posicion++;
}

}
void eliminar_producto()
{
cout<< "¿Que producto deseas eliminar?";
char nombre[79];
cin>>nombre;
for(int i=0;i<cant;i++)
{
int resultado = strcmp(nombre,p[i].Nombre);
if(resultado==0)
{
strcpy(p[i].Nombre, "Eliminado_");
p[i].Cantidad = 0;
p[i].Precio = 0;
posicion--;

10
Programación Visual. Práctica #01

mostrar_inventario();
}
}

}
void guardar_archivo()
{
fstream f;
int i;

cout<<"\nParte de escritura del archivo\n";


f.open("Inventario.txt",ios::out);
for(i=0;i<cant;i++)
{
f<<p[i].Nombre;
f<<"_pzs "<<p[i].Cantidad;
f<<"_$ "<<p[i].Precio<<"\n";
}
f.close();

}
void leer_archivo()
{
fstream f;
int i;

cout<<"\nParte de lectura del archivo\n";


f.open("Inventario.txt",ios::in);
for(i=0;i<cant;i++)

11
Programación Visual. Práctica #01

{
f>>p[i].Nombre;
f>>p[i].Cantidad;
f>>p[i].Precio;
cout<<p[i].Nombre<<"_"<<p[i].Cantidad<<"_"<<p[i].Precio<<"\n";
}
f.close();

int main(int argc, char** argv)


{
//producto p[50];
int b1;
int opcion = 0;
do
{
cout<<"\n 1.- llenar el inventario\n 2.- Mostrar el inventario\n 3.- Ordenar por nombre\n 4.-
Ordenar precio \n 5.- Buscar un producto por nombre \n 6.- Agregar un producto \n 7.- Eliminar
producto \n 8.- Guardar inventario en un archivo \n 9.- Leer invetario de un archivo \n 10.-
Salir.\n\n";
cin>> opcion;
switch(opcion){
case 1:{
llenar_inventario();
b1=1;
break;
}

case 2:{

12
Programación Visual. Práctica #01

mostrar_inventario();

break;
}

case 3:{
if(b1==1)
{
ordenar_nombre();
for(int i=0;i<cant;i++)
{
cout<<"\n producto "<<i+1;
cout<<"\n Nombre: "<<p[i].Nombre;
cout<<"\n Cantidad: pzs "<<p[i].Cantidad;
cout<<"\n Precio: $ "<<p[i].Precio;
}
}
else
{
cout<<"\n Dar datos";
}

break;
}

case 4:{
if(b1==1)
{
ordenar_precio();
for(int i=0;i<cant;i++)

13
Programación Visual. Práctica #01

{
cout<<"\n producto "<<i+1;
cout<<"\n Nombre: "<<p[i].Nombre;
cout<<"_pzs"<<p[i].Cantidad;
cout<<"_$"<<p[i].Precio;
}
}
else
{
cout<<"\n Llenar primero la lista";
}

break;
}

case 5:{
buscar_producto();

break;
}

case 6:{
agregar_producto();

break;
}

case 7:{
eliminar_producto();
break;

14
Programación Visual. Práctica #01

case 8:{
guardar_archivo();

break;
}

case 9:{
leer_archivo();

break;
}

}while(opcion!=10);

15
Programación Visual. Práctica #01

Ejecución del programa.

FIGURA 1.0
En esta imagen se muestra el
menú repetitivo esperando la
opción del usuario.

FIGURA 1.1
} Aquí ya se indicó la opción 1 por el
usuario y también agrego la
cantidad de productos que tendrá el
inventario

16
Programación Visual. Práctica #01

FIGURA 1.21 FIGURA 1.22

FIGURA 1.2
Se selecciona la opción 6 para llenar
los campos en el inventario con los
datos requeridos, de igual manera
con 1.21 y 1.22

FIGURA 1.3
En la opción 2 se muestra
el inventario tal cual se
lleno

17
Programación Visual. Práctica #01

FIGURA 1.4
Se puede observar como en la
opción 3 los nombres se convierten
en minúsculas y se ordenan en orden
alfabético.

FIGURA 1.41
Se puede observar como en la opción
4 se ordenan de un precio menor a
uno mayor

18
Programación Visual. Práctica #01

FIGURA 1.5
En la opción 5 nos pregunta que
producto buscamos y lo muestra
con sus datos.

FIGURA 1.6
En la opción 7, pregunta que producto
deseamos eliminar, lo busca y lo elimina
escribiendo esa información y deja un espacio
libre para llenarlo después.

19
Programación Visual. Práctica #01

FIGURA 1.7
Después de borrar el producto, sin
problema se agrega otro y la
leyenda de “eliminado”,
desaparece.

FIGURA 1.8
Aquí no indica que se escribió el
archivo y podemos ir a buscarlo a
la dirección donde tenemos
nuestro proyecto.

FIGURA 1.81
Así aparece el archivo una vez lo
abres.

20
Programación Visual. Práctica #01

FIGURA 1.9
Aquí se aprecia que si jala pero no jala,
da los nombres de los componentes,
pero no da las cantidades correctas y ya
son las 3a.m. y ya me harte jajajaja.

Piedad ing, si le eche ganas jajaja

21
Programación Visual. Práctica #01

Conclusiones.
Para poder resolver cualquier problema o situación de la vida real mediante
programación con cualquier lenguaje, se necesita tener una gran capacidad de análisis
y comenzar a desarrollar la lógica, claro que también son demasiado importantes e
imprescindibles los conocimientos de programación, desde los conceptos más básicos
hasta la sintaxis, ya que conociendo como y para que se usan las cosas (funciones,
ciclos, clases, estructura de datos, librerías, hasta saber si va un “ ; ” o unas “ { } ” )
tenemos todo para poder satisfacer esa necesidad mediante la programación.
La base de esta practica fueron las funciones, las estructuras de datos, los ciclos y
switch con sus respectivos casos, a lo que quiero llegar con esto es que son cosas que
se nos enseñan como “conceptos básicos”, sin embargo no tienen nada de básicos ya
que con ellos se pueden resolver una infinidad de problemas, la única cosa, es
saberlos utilizar.

22

También podría gustarte