Logo Studenta

Actividad 2-Anidación 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 
 
 
[FECHA]:31/08/2019 
UNIVERSIDAD DE GUADALAJARA 
Centro universitario de ciencias exactas e ingenierías 
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 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1 
2 
3 
4 
5 
7 
6 
9 
8 
10
0

Otros materiales