Logo Studenta

Actividad 2 Anidacion estructural - Fernando Cesar Sandoval Padilla

¡Estudia con miles de materiales!

Vista previa del material en texto

Actividad 2 La anidación estructural: Registros con Arreglos, Arreglos de Registros y Arreglos de Objetos
Sandoval Padilla Fernando Cesar
Resumen Personal
El problema fue abordado intentando dar el mejor orden posible al programa, para evitar que se viera mal escrito el código o dicho de otra forma, que se viera como borrador, la elaboración de esta actividad requirió de los apuntes de clase e investigaciones en internet para comprender el uso de las funciones y evaluar si el procedimiento era el correcto o no, por otra parte fue totalmente necesario el investigar ejemplo de aplicación parecidos para implementar algunas partes de estos en el programa. Finalmente creo yo que este programa tiene un nivel alto de dificultad para alguien como yo, pues no entiendo a la perfección estos temas que se supone debí haber visto en programación, es decir, solo debería estar reforzando los temas y aplicando lo nuevo, lo visto en clase, pues debido a esto la actividad se me intensifico por el simple echo de no tener un buen conocimiento previo.
Código fuente
#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std;
int counter=0;
const int S=500;
struct Inventario
{
 string eliminar;
 string name;
 string code;
 float weight;
 float pricemay;
 float pricemen;
 int existencia;
 int opt;
}inventario[S];
struct Fecha
{
 int day;
 int month;
 int year;
}fecha[S];
void agregar();
void eliminar();
void mostrar();
void salir();
enum OPTIONS
{
 OPT_ADD = 1,
 OPT_DELETE,
 OPT_SHOW,
 OPT_EXIT
};
int main()
{
int opt;
 do
 {
 system("cls");
 cout<<"\n\n\t\t\t* * * * * MENU DE OPCIONES * * * * *"<<endl
 <<OPT_ADD<<") Agregar producto" <<endl
 <<OPT_DELETE<<") Borrar/Restar cantidad de producto" <<endl
 <<OPT_SHOW<<") Mostrar productos" <<endl
 <<OPT_EXIT<<") Salir del programa" <<endl
 <<"Selecciona una opcion: ";
 cin>>opt;
 cin.ignore();
 system("cls");
 switch (opt)
 {
case OPT_ADD: agregar();
 break;
case OPT_DELETE: eliminar();
 break;
case OPT_SHOW: mostrar();
 break;
case OPT_EXIT: salir();
 break;
 }
 }
 while(opt != OPT_EXIT);
}
void agregar()
{
int opt;
if (counter < S)
{
 cout<<"Ingresa la siguiente informacion"<<endl
 <<"Nombre: ";
 getline(cin, inventario[counter].name);
 cout<<"Codigo de barras de 13 digitos: "<<endl;
 getline(cin, inventario[counter].code);
 cout<<"Peso:"<<endl;
 cin>>inventario[counter].weight;
 cout<<"Precio al mayoreo: "<<endl;
 cin>>inventario[counter].pricemay;
 cout<<"Precio al menudeo: "<<endl;
 cin>>inventario[counter].pricemen;
 cout<<"Cantidad en existencia: "<<endl;
 cin>>inventario[counter].existencia;
 cout<<"Proporciona la fecha dd/mm/aa presiona intro cada dos digitos"<<endl;
 cin>>fecha[counter].day>>fecha[counter].month>>fecha[counter].year;
 system("cls");
 counter++;
}
 else
 cout<<"No hay espacios disponibles"<<endl;
}
void eliminar()
{
 string borrar;
 cout<<"Proporcione el C. de Barras para eliminar o restar una cantidad de un producto"<<endl;
 getline(cin, borrar);
 for (int a(0);a<counter;a++)
 {
 if (borrar==inventario[a].code)
{
 inventario[a].existencia=(inventario[a].existencia)-1;
}
 }
 for (int a(0);a<counter;a++)
 {
 if(inventario[a].existencia<0)
 {
 inventario[a].existencia=(inventario[a].existencia)+1;
 cout<<"No se pueden restar mas productos porque estos ya son 0"<<endl;
 system ("pause");
 }
 }
}
void mostrar()
{
 for(int i(0);i<counter;i++)
 {
 cout<<"--------------------------------------------------------------"<<endl;
 cout<<"Nombre: "<<inventario[i].name<<endl;
 cout<<"Codigo de barras: "<<inventario[i].code<<endl;
 cout<<"Peso: "<<inventario[i].weight<<endl;
 cout<<"Precio al mayoreo: "<<inventario[i].pricemay<<endl;
 cout<<"Precio al menudeo: "<<inventario[i].pricemen<<endl;
 cout<<"Existencia actual: "<<inventario[i].existencia<<endl;
 cout<<"Fecha: "<<fecha[i].day<<"-"<<fecha[i].month<<"-"<<fecha[i].year<<endl;
 }
 system("pause");
 system("cls");
}
void salir()
{
cout<<"El programa ha finalizado, presione cualquier tecla para salir."<<endl;
}
Impresiones de pantalla
							2
1
3
4
5
7
6
8
100
9

Otros materiales