You are on page 1of 14

UNIVERSIDAD NACIONAL ABUIERTA Y A DISTANCIA

UNAD



CRISTIAN ANDRES RINCON RAMIREZ


ESTRUCTURAS DE DATOS
Cod: 301308_8


TRABAJO FINAL
FACULTAD DE INGENIERIA
ESCUELA DE INGENIERIA DE SISTEMAS
2012

INTRODUCCION

Un conjunto de informacin almacenada en memoria auxiliar que permite acceso
directo y un conjunto de programas que manipulan esos datos, o un conjunto de datos
pertenecientes a un mismo contexto y almacenados sistemticamente para su posterior
uso, es este el termino que conocemos como bases de datos.
En la actualidad la recopilacin de datos es fundamental para que una empresa u
organizacin mantenga sus relaciones. Por este motivo se le brinda una gran
importancia al mantenimiento de la base de datos y tambin al constante crecimiento de
la misma.

















OBJETIVO

Aplicar los conceptos avanzados en el desarrollo y codificacin de programas
informticos implementando el uso de apuntadores, la gestin dinmica de la
memoria a travs de las estructuras de datos en el desarrollo de soluciones
informticas que den solucin


















DESARROLLO DE LA ACTIVIDAD
Planteamiento del problema:
La distribuidora SUPERMAXI es una empresa que dedica su actividad econmica a la
comercializacin de productos de consumo, el cual se abastece de los proveedores a
nivel nacional, quienes a travs de rdenes de compra hacen entrega de los productos
que son almacenados en la bodega de la distribuidora, manteniendo as surtido su
negocio y su inventario al da. La distribuidora a travs del tiempo viene realizando este
proceso de forma manual archivado en carpetas fsicas, labor dispendiosa para los
controles de su inventario.
Por lo anterior en pro de mejorar su sistema de informacin ha decidido acudir a la
Universidad para dar solucin a su problema a travs de sus estudiantes en del curso
Estructura de datos.
Para lo cual se requiere disear un sistema de informacin que permita registrar la
informacin a travs de estructuras de datos as:

Informacin de los Proveedores: quienes surten los productos a la distribuidora. Para
lo cual se requieren los siguientes datos (Nombre del proveedor, Nit del proveedor,
direccin de correspondencia, telfono de contacto).

Informacin del Inventario existente en bodega: para lo cual se requieren los
siguientes datos (cdigo del producto, descripcin del producto, la cantidad en
unidades).

Informacin del registro de las Ventas: para lo cual se requieren los datos de la factura
(Nmero de la factura, Nombre del cliente, fecha de la venta, cdigo del producto,
descripcin del producto, valor del producto y un valor total de las ventas).


De acuerdo a la captura de requerimientos anteriores se plantean los siguientes
requerimientos funcionales:

Requerimientos funcionales

Una interfaz amigable con color de fondo donde est el nombre de la Universidad,
nombre del CEAD y el nombre de la aplicacin DISTRIMAXI y los datos bsicos de
quien disea el programa, (cdigo, nombre y grupo), adems de implementarle la
contrasea de ingreso genrica que ser: 123 la cual validar el ingreso a la aplicacin.

Tendr un men de opciones de Nivel general con las tres opciones ya descritas
(Proveedores, Inventario y Ventas).

Al seleccionar la opcin Proveedores lo lleva a un nuevo men donde tendr las
opciones de Insertar, visualizar, eliminar y salir de Proveedores, al salir lo debe regresar
al men principal.

Al seleccionar la opcin Inventario lo lleva a un nuevo men donde tendr las opciones
de Insertar, visualizar, eliminar y salir de inventarios, al salir lo debe regresar al men
principal.

Al seleccionar la opcin Ventas lo lleva a un nuevo men donde tendr las opciones
de registrar una venta, visualizarla venta, eliminar un producto de la venta, una opcin
para acumular el total de las ventas y la opcin de salir de ventas, al salir lo debe
regresar al men principal.

El desarrollo de este proyecto requiere mucha dedicacin, se hace necesario investigar
un poco acerca del tema manejo de estructuras, memoria dinmica y apuntadores. Pero
lo ms importante por tratarse de un proyecto final de transferencia donde se debe
mostrar sus competencias desarrolladas debe ser un producto realizado por usted de
forma autnoma.

Para facilitar la comprensin de los requerimientos funcionales del programa Se ha
diseado la arquitectura del programa a realizar de forma grfica, de tal manera que la
informacin a registrar p ara este caso est en tres categoras a lo que podramos
llamar mdulos del programa.


CODIGO DESARROLLADO EN C++ VERSION 4.2


#include "stdio.h"
#include "sctdlib.h"
#include "iostream.h"
#include <string.h>
#include <vector.h>
#include <fstream>.h
#include <conio>.h
using namespace nomp;
using namespace direc;
main () {
int n,t,clav=0,opc,x,ep[100],ei[100],ev[100],p=0,i=0,v=0;
string nom,d,fec,des;
printf ("\nUNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA\n");
printf ("\nSISTEMA DE INFORMACION PARA EL REGISTRO\n");
printf ("\nDE LA DISTRIBUIDORA SUPERAMAXI\n");
printf ("\n DISTRIMAXI\n");
printf ("\nDESARROLLADO POR \n");
printf ("\nCRISTIAN ANDRES RINCON RAMIREZ\n");
printf ("\n GRUPO 301308_8\n");
while (clav!=123){
printf ("INGRESE SU CONTRASEA__>>");
scanf ("%d",&clav);
}

clrscr();

system ("COLOR 8" );
cout<<"cecyten"<<endl
system("PAUSE";
return EXIT_SUCCESS;

printf ("\n MENU PRINCIPAL\n");
printf ("\n PROVEEDORES MARQUE ........1\n");
printf ("\n INVETARIOS MARQUE .........2\n");
printf ("\n VENTAS MARQUE .............3\n");
printf ("\n PARA SALIR MARQUE UNA OPCION DIFERENTE A 1,2,3\n");
printf ("\n\n\n INGRESE SU OPCION__>>");
scanf ("%d",&opc);
if (opc==1){
printf ("\n MENU PROVEEDORES\n");
printf ("\n INSERTAR PROVEEDOR ...........1\n");
printf ("\n VISUALIZAR PROVEEDOR .........2\n");
printf ("\n ELIMINAR PROVEEDOR ...........3\n");
printf ("\n PARA SALIR MARQUE UNA OPCION DIFERENTE A 1,2,3\n");
printf ("\n\n\n INGRESE SU OPCION__>>");
scanf ("%d",&x);
printf ("\n\n\n");
if (x==1){

printf("Nombre__>> ");
cin.getline((char*)nom.c_str(), 256);
printf("\nNit__>> ");
scanf ("%d",&n);
printf("Direccion__>> ");
cin.getline((char*)d.c_str(), 256);
printf("\nTelefono__>> ");
scanf ("%d",&t);
ep[p]=n;
p++;
}
if (x==2){

printf("Nombre__>> ");
cout<<((char*)nom.c_str(), 256);
printf("\nNit__>> %d",n);
printf("Direccion__>> ");
cout<<((char*)d.c_str(), 256);
printf("\nTelefono__>> %d",t);
}
if (x==3){

printf("\nNIT PROVEEDOR A ELIMINAR__>> ");
scanf ("%d",&n);
for (p=1;p<=100;p++){
if (ep[p]=n)
ep[p]=ep[p+1]
}
}
}
if (opc==2){
printf ("\n MENU INVENTARIOS\n");
printf ("\n INSERTAR INVENTARIO ...........1\n");
printf ("\n VISUALIZAR INVENTARIO .........2\n");
printf ("\n ELIMINAR INVENTARIO ...........3\n");
printf ("\n PARA SALIR MARQUE UNA OPCION DIFERENTE A 1,2,3\n");
printf ("\n\n\n INGRESE SU OPCION__>>");
scanf ("%d",&x);
if (x==1){

printf("\n\n\nDESCRIPCION DEL PRODUCTO __>> ");
cin.getline((char*)nom.c_str(), 256);
printf("\nCODIGO__>> ");
scanf ("%d",&n);
printf("CANTIDAD__>> ");
scanf ("%d",&t);
ei[i]=n;
i++;
}
if (x==2){

printf("DESCRIPCION DEL PRODUCTO__>> ");
cout<<((char*)nom.c_str(), 256);
printf("\nCODIGO__>> %d",c);
printf("\nCANTIDAD__>> %d",t);
}
if (x==3){

printf("\nNIT INVENTARIO A ELIMINAR__>> ");
scanf ("%d",&n);
for (i=1;i<=100;i++){
if (ei[i]=n)
ei[i]=ei[i+1]
}
}
}
if (opc==3){
printf ("\n MENU VENTASS\n");
printf ("\n REGISTRAR VENTA ...........1\n");
printf ("\n VISUALIZAR VENTA .............2\n");
printf ("\n ELIMINAR PRODUCTO ............3\n");
printf ("\n PARA SALIR MARQUE UNA OPCION DIFERENTE A 1,2,3\n");
printf ("\n\n\n INGRESE SU OPCION__>>");
scanf ("%d",&x);
if (x==1){

printf("\n\n\nNOMBRE DEL CLIENTE __>> ");
cin.getline((char*)nom.c_str(), 256);
printf("\nFACTURA__>> ");
scanf ("%d",&n);
printf("FECHA__>> \n");
cin.getline((char*)fec.c_str(), 256);
printf("DESCRIPCION DEL PRODUCTO __>> \n");
cin.getline((char*)des.c_str(), 256);
printf("VALOR__>> ");
scanf ("%d",&t);
ev[v]=n;
v++;
}
if (x==2){

printf("NOMBRE DEL CLIENTE__>> ");
cout<<((char*)nom.c_str(), 256);
printf("\nFACTURA__>> %d",n);
printf("\nFECHA__>> ");
cout<<((char*)nom.c_str(), 256);
printf("\nDESCRIPCION__>> ");
cout<<((char*)des.c_str(), 256);
}
if (x==3){

printf("\nNIT VENTA A ELIMINAR__>> ");
scanf ("%d",&n);
for (i=1;i<=100;i++){
if (ev[v]=n)
ev[v]=ev[v+1]
}
}
}

}

























PRUEBAS DE EL FUNCIONAMIENTO DEL PROGRAMA Y PASOS DE SU
FUNCIONAMIENTO













Esta es la portada propuesta
por la gua desarrollada con
mis datos
Aqu es el espacio que se da
para que el usuario digite la
contrasea en este caso
123
Esto es lo que sucede cada vez
que se le da la contrasea
incorrecta y as seguir pasando
hasta que se d el 123 que es la
contrasea establecida,
Luego de dar 123 enter se
cambiara el color de fondo como
lo exige la presente gua y dejara
ver su men (ver siguiente
figura)







PARA LOS PROVEEDORES:





Aqui introdujimos unos datos se puso como nombre de nuestro proveedor al seor
pepito jimenes su nit direccin y telfono en donde tenemos dos variables tipo int y 2
tipo string





PARA LOS INVENTARIOS:




PARA LAS VENTAS:






DESCRIPCION: El programa es el ya enunciado en el problema del siguiente trabajo
ataca al usuario malintencionado con un bucle sin fin realizado con un while hasta q
este sea el usuario verdadero y lo demuestre con la contrasea (123). Seguido de esto
deja pregunta que desea trabajar (Proveedores, Inventarios o Ventas), al insertar cada
una cada una de estas caractersticas las almacena en vectores para luego si el
usuario lo desea son eliminadas tipo cola desde el punto que el usuario desee ya que
corre todas las otras casillas (aclaracin este programa posee error en el caso de
insertar el proveedor numero 102) aunque para ete error solo hay que agrandar el
tamao del vector al comienzo y los limites en los for.














BIBLIOGRAFIA

Modulo unad Estructuras de datos

Modulo unad introduccin a la programacin

Lenguaje de programacin C, Becerra Cesar, 2000 Madrid-Espaa

You might also like