Académique Documents
Professionnel Documents
Culture Documents
GRUPO
301304_57
TUTOR
INGENIERÍA DE SISTEMAS
CALI, COLOMBIA.
MAYO 2015.
1
Contenido
Introducción. .................................................................................................................................. 3
Objetivos. ........................................................................................................................................ 4
Código fuente.............................................................................................................................. 9
Conclusiones. ............................................................................................................................... 31
Bibliografía................................................................................................................................... 32
2
Introducción.
3
Objetivos.
Objetivo General.
Presentar un programa “prototipo” empresa “ABC” cerámicas, con los criterios de evaluación
establecidos por el tutor, contemplados en la guía y rubrica de actividades.
Objetivos específicos
Participar de forma activa y significativa en la elaboración del trabajo final teniendo en
cuenta lo realizado en la fase 3.
Generar acuerdos al interior del grupo de trabajo colaborativo que permitan un buen
desarrollo de las actividades de la guía de la fase 4 del curso Introducción a la Programación.
Corregir los problemas de software que surgieron en la fase 3 y que no se pudieron mejorar
en su momento.
Hacer un análisis de los temas visto en estas unidades para complementar el trabajo final.
Saber y aplicar algunos de los métodos de ordenación y búsqueda.
4
Tabla de coevaluación.
Desarrollado por: Daniel F. Urreste B.
Cuenta de Skype:
diegotrullo1
5
CEAD Palmira Valle del
Cauca
CEAD: Palmira
Nota: Para verificación de la información de la tabla anterior, consultar los aportes en el foro de la
fase 4 del curso académico.
6
Desarrollo de actividades.
Descripción del problema.
La empresa “ABC” produce y distribuye cerámica para pisos y requiere un software que le
permita llevar el control de sus productos, registrando: código, existencia en metros, color, valor
de costo y valor de venta (el valor de venta se obtiene incrementando el 30% al valor de costo).
En esta fase tres el prototipo debe cumplir con las siguientes características:
Modificar el programa para que se trabaje con N cantidad de artículos, que serán almacenados
en arreglos.
El programa debe tener el siguiente Menú:
1. Autores
2. Ingresar datos
3. Consultas
4. Informes
4. Salir
Opción 1 (Autores): presenta los nombres de los estudiantes que participaron en el trabajo.
Opción 2 (Ingresar datos): permite al usuario final agregar los datos requeridos.
Opción 3: (Consultas): muestra el siguiente submenú:
A. Todos los datos (ordenados por código de menor a mayor)
B. Un producto (solicitar código de producto).
C. Datos ordenados por existencia (de mayor a menor).
D. Datos ordenados por costo (de menor a mayor).
E. Datos ordenados por valor de venta (de mayor a menor).
7
Algoritmo de solución (Diagrama de flujo).
8
Código fuente.
#include <iostream>
#include <stdlib.h>
#include<conio.h>
#include <string>
using namespace std;
int codigo[1000];
int existencia[1000];
int costo[1000] ;
int valor[1000];
int numero,i,j,Buscar1,Buscar2, prod;
string color[1000];
int num=0;
int main()
{
system ("color 30");
inicio:
long Menu;
system("COLOR 3f");
cout<<"\n\n ";
cout<<"\n=========EMPRESA ""ABC"" CERAMICAS=========\n";
cout<<"\n=================MENU==================\n";
cout<<"\n 1 DATOS DEL AUTOR \n\n";
cout<<"\n 2 INGRESAR DATOS \n\n ";
cout<<"\n 3 BUSCAR \n\n";
cout<<"\n 4 INFORME \n\n";
cout<<"\n 5 SALIR DEL PROGRAMA\ \n\n";
cout<<"DIGITAR LA OPCION QUE DESEE \n\n ";
cin>>Menu;
system("cls");
switch (Menu){
case 1:
system("COLOR 6B");
cout<<" 1 DATOS DE LOS AUTORES \n\n";
cout<<"\n\n";
cout<<" DANIEL URRESTE\n\n";
cout<<" CODIGO: 14622701\n\n";
cout<<" JHON FREDDY AGUIRRE GOMEZ\n\n";
cout<<" CODIGO: 6405316\n\n";
cout<<" INTRODUCCION A LA PROGRAMACION\n\n";
cout<<" INGENIERIA DE SISTEMAS \n\n";
cout<<" CEAD PALMIRA VALLE\n\n";
cout<<" PULSE CUALQUIER TECLA PARA VOLVER AL MENU\n\n";
getch();
system("cls");
goto inicio;
break;
case 2:
system("COLOR 5A");
cout<<"\n 2 INGRESAR DATOS \n\n ";
9
cout<<"\n\n";
goto Ingresarvalores;
break;
case 3:
system("COLOR 2F");
cout<<"\n 3 BUSCAR \n\n ";
cout<<"\n\n";
goto buscar;
break;
case 4:
system("COLOR 5F");
cout<<"\n4 INFORME \n\n ";
cout<<"\n\n";
goto informe;
break;
case 5:
system("COLOR 7E");
cout<<"\n 5 SALIR DEL PROGRAMA \n\n ";
cout<<"\n\n PRESIONES ENTER PARA SALIR";
cin.ignore();
break;
while (Menu<=4);
return 0;
//ingresar valores
Ingresarvalores:
cout<<"INGRESE LA CANTIDAD DE PRODUCTOS A REGISTRAR: ";
cin>>numero;
num=numero;
for(i=1;i<=num;i++)
{
cout<<"INGRESE EL CODIGO DEL PRODUCTO: "<<i<<" ES: ";
cin>>codigo[i];
valor[i]=(costo[i]+0.3*costo[i]+1);
cout<<"\n";
}
cout<<" PULSE CUALQUIER TECLA PARA VOLVER AL MENU\n\n";
getch();
system("cls");
goto inicio;
10
//Busqueda de datos
buscar:
cout<<"\n";
cout<<"\n 31 DATOS ORDENADOS POR CODIGO MENOR A MAYOR\n\n";
cout<<"\n 32 SOLICITAR CODIGO DE PRODUCTO \n\n ";
cout<<"\n 33 DATOS EXISTENCIA MAYOR A MENOR \n\n";
cout<<"\n 34 DATOS VALOR COSTO DE PRODUCTO MENOR A MAYOR \n\n";
cout<<"\n 35 DATOS VALOR VENTA DE PRODUCTOS MAYOR A MENOR\n\n";
cout<<"\n ELIGE UNA OPCION\n\n";
cin>>Buscar1;
system("cls");
switch (Buscar1)
{
case 31:
cout<<"\n 31 DATOS ORDENADOS POR CODIGO MENOR A MAYOR
\n\n";
goto Cod_orden;
break;
case 32:
cout<<"\n 32 SOLICITAR CODIGO DE PRODUCTO \n\n ";
goto producto;
break;
case 33:
cout<<"\n 33 DATOS EXISTENCIA MAYOR A MENOR \n\n";
goto existen;
break;
case 34:
cout<<"\n 34 DATOS VALOR COSTO DE MENOR A MAYOR\n\n";
goto vcosto;
break;
case 35:
cout<<"\n 35 DATOS VALOR VENTA DE MAYOR A MENOR \n\n";
goto vvalor;
break;
codigo[i]=codigo[j];
11
existencia[i]=existencia[j];
costo[i]=costo[j];
valor[i]=valor[j];
codigo[j]=tmp;
existencia[j]=tmp1;
costo[j]=tmp2;
valor[j]=tmp3;
}
}
}
cout<<"=========LISTADO DE LOS PRODUCTOS, CODIGO
DE MENOR A MAYOR========= \n";
for (int i = 1; i <=num;i++)
system("COLOR 5F");
cout<<"\n\n ";
cout<<"=================================================================\n";
cout<<"\n\n ";
cout<<"\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
system("COLOR 5F");
cout<<"\n\n INGRESAR EL CODIGO DEL PRODUCTO A BUSCAR ";
cin>>prod;
for (i = 0; i <= num;i++)
{
12
if (prod==codigo[i])
{
cout<<"\n\n ";
cout<<"=========PRODUCTO BUSCADO========= \n";
cout<<"\n\n ";
system("cls");
goto inicio;
}
cout<<"EL NUMERO DIGITADO NO SE ENCUENTRA EN LA BASE DE
DATOS\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU
PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
13
tmp2=costo[i];
tmp3=valor[i];
codigo[i]=codigo[j];
existencia[i]=existencia[j];
costo[i]=costo[j];
valor[i]=valor[j];
codigo[j]=tmp;
existencia[j]=tmp1;
costo[j]=tmp2;
valor[j]=tmp3;
}
}
}
cout<<"=========LISTADO DE LOS PRODUCTOS,
EXISTENCIA DE MAYOR A MENOR========= \n";
for (int i = 0; i <num;i++)
{
system("COLOR 5F");
cout<<"\n\n ";
cout<<"================================================================== \n";
cout<<"\n\n ";
cout<<"\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU
PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
vcosto:
system("cls");
cout<<" "<<endl;
for (int i=0;i<=num;i++)
14
{
for (int j=0;j<=num-1;j++)
{
if(costo[i]<costo[j])
{
codigo[i]=codigo[j];
existencia[i]=existencia[j];
costo[i]=costo[j];
valor[i]=valor[j];
codigo[j]=tmp;
existencia[j]=tmp1;
costo[j]=tmp2;
valor[j]=tmp3;
}
}
}
cout<<"=========LISTADO DE LOS PRODUCTOS, VALOR
COSTO MENOR A MAYOR========= \n";
for (int i = 1; i <=num;i++)
{
system("COLOR 5F");
cout<<"\n\n ";
cout<<"================================================================= \n";
cout<<"\n\n ";
cout<<"\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU
PRINCIPAL\n\n";
getch();
system("cls");
15
goto inicio;
vvalor:
system("cls");
cout<<" "<<endl;
for (int i=1;i<=num;i++)
{
for (int j=0;j<=num-1;j++)
{
if(valor[i]>valor[j])
{
codigo[i]=codigo[j];
existencia[i]=existencia[j];
costo[i]=costo[j];
valor[i]=valor[j];
codigo[j]=tmp;
existencia[j]=tmp1;
costo[j]=tmp2;
valor[j]=tmp3;
}
}
}
cout<<"=========LISTADO DE LOS PRODUCTOS, VALOR
VENTA DE MAYOR A MENOR========= \n";
for (int i = 0; i <num;i++)
{
system("COLOR 5F");
cout<<"\n\n ";
cout<<"================================================================== \n";
cout<<"\n\n ";
16
cout<<"COSTO POR METRO DEL PRODUCTO " <<" ES:
"<<costo[i]<< endl;
cout<<"PRECIO VENTA DEL PRODUCTO " <<" ES:
"<<valor[i]<< endl;
}
cout<<"\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU
PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
// MENU INFORME
informe:
cout<<"\n";
cout<<"\n 41 PRECIO VENTA DE X PRODUCTO SOLICITADO\n\n";
cout<<"\n 42 EXISTENCIA DE PRODUCTOS MENORES QUE 100 \n\n ";
cout<<"\n ELIGE UNA OPCION\n\n";
cin>>Buscar2;
system("cls");
switch (Buscar2)
{
case 41:
cout<<"\n 41 INFORME DE PRECIO DE VENTA DE UN PRODUCTO
SOLICITADO\n\n";
goto infventa;
break;
case 42:
cout<<"\n 42 INFORME DE EXISTENCIA DE PRODUCTOS MENORES QUE
100\n\n";
cout<<"\n ORDENADOS POR CODIGO\n\n";
goto infexistencia;
break;
}
// INFORME, PRECIO DE VENTA DE UN PRODUCTO SOLICITADO
infventa:
system("COLOR 0A");
cout<<"\n\n INGRESAR EL CODIGO DEL PRODUCTO A BUSCAR ";
cin>>prod;
for (i = 0; i <= num;i++)
{
if (prod==codigo[i])
{
cout<<"\n\n ";
cout<<"=========PRODUCTO BUSCADO========= \n";
cout<<"\n\n ";
cout<<"NUMERO DEL CODIGO DEL PRODUCTO " <<" ES:
"<<codigo[i]<< endl;
cout<<"\n\n ";
17
cout<<"PRECIO VENTA DE LA MERCANCIA DEL PRODUCTO "<<" ES:
"<<valor[i]<<endl;
cout<<"\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU
PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
}
}
cout<<"\n\n ";
cout<<"EL NUMERO DIGITADO NO SE ENCUENTRA EN LA BASE DE
DATOS\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU
PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
codigo[i]=codigo[j];
existencia[i]=existencia[j];
costo[i]=costo[j];
valor[i]=valor[j];
codigo[j]=tmp;
existencia[j]=tmp1;
costo[j]=tmp2;
valor[j]=tmp3;
}
}
}
cout<<"=========LISTADO DE LOS PRODUCTOS
EXISTENCIA MENOR QUE 100========= \n";
for (int i = 1; i <=num;i++)
if (existencia[i]<100)
18
{
system("COLOR 0A");
cout<<"\n\n ";
cout<<"========================================================================
\n";
cout<<"\n\n ";
cout<<"\n\n ";
cout<<"PULSE CUALQUIER TECLA PARA VOLVER AL MENU PRINCIPAL\n\n";
getch();
system("cls");
goto inicio;
19
Funcionamiento del programa.
El programa inicia con el menú de apertura, como se muestra en la figura 1.
La opción 1 del menú principal, lleva al apartado de autores del programa, donde se relacionan
aspectos académicos generales de estos, como se muestra en la figura 2.
20
Si el usuario del programa escoge la opción 2 del menú principal, el programa le solicitara que
ingrese la cantidad de productos que desea crear o para los cuales desea ingresar datos.
Para el desarrollo del documento de explicación, se realizara la prueba para 5 productos, los
cuales se ingresan al sistema de manera secuencial, como se muestra en la figura 2, se plantearan
ingresos aleatorios en los ítems de búsqueda y ordenamiento para cada producto, buscando
demostrar el funcionamiento del programa.
21
Figura 4. Ingreso de los datos de producto por parte del usuario.
Una vez se han ingresado los datos de producto, se ejecuta en el programa la opción de
búsqueda, que es la opción 3 del menú, la cual despliega el submenú mostrado en la figura 5.
22
En la figura 6 se muestra la ejecución del programa para ordenar los datos ingresados por el
usuario de menor a mayor, recordando la aleatoriedad en el ingreso de los datos.
23
Figura 7. Ejecución de la opción de búsqueda de un producto por código. Código valido.
24
Siguiendo con la presentación de las opciones del submenú de búsqueda, se presenta a
continuación la lista ordenada de mayor a menor de los datos ingresados por existencia en metros
cuadrados.
Figura 10. Ejecución de la opción del submenú de búsqueda que ordena datos por
existencia de mayor a menor cantidad del producto en existencia.
Se ejecuta la opción del submenú de búsqueda que muestra los datos ingresados por el usuario
ingresados de menor a mayor, pero esta vez teniendo como referencia su costo de compra.
25
Figura 11. Ejecución de la opción del submenú de búsqueda que ordena datos por costo de
menor a mayor.
Por último, dentro de la opción de búsqueda se ejecuta en el submenú, la opción que presenta los
datos ingresados por el usuario de mayor a menor, pero esta vez teniendo como referencia el
valor de venta de cada producto.
26
Figura 12. Ejecución de la opción del submenú de búsqueda que ordena datos por valor de
venta de mayor a menor.
27
Informes.
Ahora se muestra de nuevo el menú principal del programa, en el cual se observa la opción 4 como
informes.
En las figuras 14 y 15 se muestra la presentación del precio de venta de un producto que el usuario
desea consultar a través del código de producto.
Figura 14. Presentación del informe o precio de venta de un producto consultado a través de su
código.
28
Figura 15. Presentación del informe o precio de venta de un producto consultado a través de su
código.
Figura 16. Presentación del informe o precio de venta de un producto consultado a través de su
código. Código no valido.
Se verifica a continuación los informes de productos, presentados solo para aquellos productos cuya
existencia sea inferior a los 100 metros cuadrados, presentando la información ordenada por código
de menor a mayor.
29
Figura 17. Informe de productos cuya existencia es inferior a los 100 metros cuadrados,
presentados en lista ordenada por código de menor a mayor.
30
Conclusiones.
Gracias a este trabajo y la participación de los compañeros se pudo hacer una
retroalimentación, permitiéndonos despejar dudas con referente a la programación por medio
de este ejercicio.
Este trabajo nos permite tener un orden en los procesos para poder completar lo que nos pide
la guía, siguiendo una serie de parámetros y métodos de evaluación como son las rubricas.
El desarrollo de la fase 4 del curso académico Introducción a la programación permite al
estudiante afianzar conocimiento previos necesarios para el desarrollo de las temáticas del
curso, en lo relacionado con arreglos o vectores y métodos de ordenación y búsqueda.
A través del desarrollo de este prototipo sobre La empresa “ABC” produce y distribuye
cerámica para pisos en esta fase 4 se halló la forma de encontrar la mejor solución al
problema planteado, además se evidencio diferentes técnicas de complejidad, variedad y
alternativa para la solución, por eso un algoritmo es el conjunto de operaciones y
procedimientos que debemos seguir para resolver un problema, es por ellos que debemos de
estudiarlo, analizarlo y conocerlo.
31
Bibliografía.
Joyanes Aguilar, L & Zahonero Martínez, I. (2000). Programación en C. Madrid:
McGraw-Hill.
Garrido, Antonio. Fundamentos de Programación en C. Cadenas de caracteres (pp. 143 -
148). Disponible en
http://books.google.com.co/books?id=OC17arE5xukC&lpg=PR4&hl=es&pg=PA143#v=
onepage&q&f=false
32