Sunteți pe pagina 1din 60

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

MABIL JULIETH MARTINEZ

CDIGO DE CURSO: 301305_66


HERMES MOSQUERA ANGULO
(DIRECTOR DEL CUSO)

MAGDALENA SANTA MARTA


2012

INTRODUCCIN
Una estructura de datos define la organizacin e interrelacin de estos y un
conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones
bsicas son:
En programacin, una estructura de datos es una forma de organizar un conjunto
de datos elementales con el objetivo de facilitar su manipulacin. Un dato
elemental es la mnima informacin que se tiene en un sistema.

OBJETIVOS

Implementar la aplicacin de la gestin dinmica de la memoria del computador a


travs de las funciones Malloc() y Free() y de los operadores New y Delete por
medio del desarrollo de programas codificados en C++.
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
Fundamentar al estudiante del curso de Estructura de datos en el manejo e
implementacin de los apuntadores,

JUSTIFICACIN

Con el desarrollo del proyecto, el estudiante tiene la oportunidad de dar


soluciones a problemas reales del entorno a travs de las estructuras de datos, ya
que estas se ocupan del manejo y tratamiento de la informacin a travs de un
conjunto de variables agrupadas y organizadas de tal manera que puedan
representar el comportamiento de un proceso. En algunos casos la dificultad para
resolver un problema radica en definir claramente la estructura de datos
adecuada que d respuesta a los requerimientos del sistema propuesto.

Con el desarrollo del proyecto se fortalecen las buenas prcticas de


programacin a la vez que se pone en prctica los conocimientos adquiridos en
las fases de reconocimiento y profundizacin.

ESTRUCTURA DE DATOS
Unidad 1: Memoria dinmica

Unidad 2. Estructuras de datos lineales

Unidad 3. Estructuras de datos no lineales

PRACTICA No. 1 APLICACIN A LA GESTIN DE MEMORIA DINMICA

Fundamentacin Terica
Los apuntadores son la base fundamental para la gestin dinmica de memoria, la
cual hace referencia a la forma en que se almacenan los datos en la computadora
a travs de los operadores y funciones para asignar y liberar memoria. Se tiene en
cuenta los tipos de datos que manejan el lenguaje C++ y el nmero de bytes
requeridos para almacenar cada tipo de datos, pues, son los programadores, los
llamados a optimizar los recursos tanto fsicos como lgicos de un sistema
informtico. Las estructuras de datos lineales influyen directamente con el
manejo de la memoria del computador cuando se implementan las Pilas, Colas y

listas con sus respectivas clasificaciones profundizando en las operaciones que


se pueden realizar con este tipo de estructuras. Esta temtica tiene gran
aplicabilidad en situaciones reales cotidianas que pueden ser representadas por
medio de la pilas, colas y listas, es muy comn y fcil de llevar a la realidad, por
ejemplo una lista de clientes, proveedores, una pila de productos, una cola para
realizar una consignacin en un banco o un servidor para el manejo de
impresiones, al igual que lo vemos representado a diario en el uso de cualquier
herramienta de Office con la opcin deshacer, al eliminar la ltima orden recibida.

Descripcin del Proyecto a desarrollar


Con base en la lectura, el seguimiento y anlisis de los programas que se incluyen
en el mdulo, con los conocimientos adquiridos y las consultas en las diferentes
fuentes bibliogrficas propuestas, cada estudiante de forma individual, desarrolla
el proyecto que consiste en un programa codificado en C++ que de solucin al
requerimiento planteado a continuacin. El proyecto final a entregar como 40% lo
va desarrollando a medida que va avanzando en la temtica de cada una de las
unidades didcticas, puede contar con el apoyo del tutor de prcticas en su Cead,
aunque estas prcticas no tienen valoracin puede serle de utilidad para despejar
inquietudes propias de la temtica
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:
Para lo cual se requieren los siguientes datos (Nombre del proveedor, Nit del
proveedor, direccin de correspondencia, telfono de contacto).
siguientes datos (cdigo del producto, descripcin del producto, la cantidad en
unidades).
factura (Numero 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
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.
con las tres opciones ya descritas
(Proveedores, Inventario y Ventas).
opciones de Insertar, visualizar, eliminar y salir de Proveedores, al salir lo debe
regresar al men principal.
opciones de Insertar, visualizar, eliminar y salir de inventarios, al salir lo debe
regresar al men principal.
n 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
Descripcin

Las aplicaciones se trabajaron en borland c

Archivos de la practica 1 (la carpeta contiene dos tipos de archivos .cpp y .exe)

Este es un sencillo programa, con intencin de visualizar la manera como


funciona un men en borlan c
1. Se muestra la presentacin de la aplicacin con el nombre del estudiante

2. Se realizo un men en el cual se visualizan cuatro opciones. Con cuatro opcin


fciles de identificar y visualizar.
Se escribe el nmero que est entre las cuatro opciones y presionamos la tecla
enter

3. se visualizan cuatro opciones donde el administrador d ela aplicacin con un


mero escoge la opcin que requiera realizar

4. volvemos al men principal, escogemos la segunda opcin de inventarios

5. se visualizan opciones de inventario q tambin son escogidas con nmero del


uno al cuatro

6. men principal, escogemos la tercera opcin de ventas

7 se visualizan opciones de inventario q tambin son escogidas con nmero del


uno al cuatro

8. regresamos al men principal y la ltima opcin es la nmero cuatro salir.


Con esta opcin terminamos el recorrido de nuestra aplicacin

Cdigo fuente de la primera practica


#include <iostream.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
void marco();
struct PROVEDOR {
long NIT ;
char NOMBRE[30];
char DIR[20];
long TELEFONO ;
PROVEDOR *ANT ;
PROVEDOR *SIG ;
};
PROVEDOR *CABEZA, *FIN ;
/////////////////// INVENTARIOS //////////
struct INVENTARIO {
long NIT ;
char NOMBRE[30];
long VALOR ;
INVENTARIO *ANT ;
INVENTARIO *SIG ;
};
INVENTARIO *CABEZAI, *FINI ;
///////////////// VENTAS /////////////////
struct VENTAS {
long FACTURA ;
char NOMBRE_CLIENTE[30];
char

FECHA[30];

long NIT ;
long VALOR ;
long TOTAL ;
VENTAS *ANT ;
VENTAS *SIG ;
};
VENTAS *CABEZAV, *FINV ;

int PORTADA()
{
int OP ;
textcolor(BLUE);textbackground(WHITE);
clrscr() ;
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";
gotoxy(36,8); cout << "DISTANCIA" ;
gotoxy(27,14); cout << "SISTEMA DE INFORMACION PARA EL ";
gotoxy(28,16); cout << "REGISTRO DE INVENTARIO DE LA ";
gotoxy(30,18); cout << "DISTRIBUIDORA SUPERMAXI";
gotoxy(35,22); cout << "DISTRIMAXI";
gotoxy(33,26); cout << "DESARROLLADO POR :";
gotoxy(32,28); cout << "DEYANIS MARTINEZ";
do {
gotoxy(22,40); cout << "INGRESE SU CONTRASEA : ";
cin >> OP ;
gotoxy(30,42); cout << "CONTRASEA INCORRECTA";
} while(OP != 123) ;
gotoxy(30,22); clreol();
return OP ;
}
////////////////////// PROVEDORES ////////////////////////////////
void CREAR_PROVEDOR()
{
PROVEDOR *P ;
char OP = 'S';
while (OP == 'S')
{
clrscr();
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "INSERTAR PROVEDORES";
gotoxy(20,12); cout <<"NIT

: ";

gotoxy(20,14); cout <<"NOMBRE

: ";

gotoxy(20,16); cout <<"DIRECCION : ";


gotoxy(20,18); cout <<"TELEFONO : ";
P = new PROVEDOR;
if ( P == NULL )
{

gotoxy(25,22); cout << "NO HAY ESPACIO DE MEMORIA PARA ASIGNAR";


getch(); OP = 'N';
}
else
{
do {
gotoxy(34,12); cin >> P->NIT ;
gotoxy(30,22); cout << "VALOR FUERA DE RANGO";
} while((P->NIT < 0) || (P->NIT > 999999999)) ;
gotoxy(30,22); clreol();
gotoxy(34,14); gets(P->NOMBRE);
gotoxy(34,16); gets(P->DIR);
gotoxy(30,22); clreol();
gotoxy(34,18); cin >> P->TELEFONO ;
P->SIG = NULL ;
P->ANT = NULL ;
if (CABEZA == NULL)
CABEZA = P ;
else
{
FIN->SIG = P ;
P->ANT = FIN ;
}
FIN = P;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
}
void CONSULTA_PROVEDOR()
{
char OP = 'S' ;
PROVEDOR *INICIO = CABEZA;
int TIPO ;

if (CABEZA == NULL)
{
gotoxy(22,31); cout << " NO EXISTE LISTA";
OP = 'N'; getch();
}
else
{
clrscr();
gotoxy(32,6) ; cout << "DISTRIMAXI";
gotoxy(30,7) ; cout << "VISUALIZAR PROVEDORES";
gotoxy(32,10) ; cout << "1. POR EL INICIO";
gotoxy(32,11) ; cout << "2. POR EL FINAL ";
gotoxy(32,13) ; cout << "3. SALIR

";

do {
gotoxy(22,16); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> TIPO;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((TIPO < 1)|| (TIPO > 3)) ;
gotoxy(30,22) ; clreol();
switch (TIPO) {
case 1 : INICIO = CABEZA;
break;
case 2 : INICIO = FIN;
break ;
case 3 : OP = 'N' ;
}
}
while(( INICIO != NULL) && (OP == 'S'))
{
clrscr() ;
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "VISUALIZAR PROVEDORES";
gotoxy(20,12); cout <<"NIT : " << INICIO->NIT;
gotoxy(20,14); cout <<"NOMBRE : " << INICIO->NOMBRE;
gotoxy(20,16); cout <<"DIRECCION : " << INICIO->DIR;
gotoxy(20,18); cout <<"TELEFONO
if (TIPO == 1)
INICIO = INICIO->SIG ;

: " << INICIO->TELEFONO;

else
INICIO = INICIO->ANT;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
//////////////////////////// INVENTARIOS //////////////////////
void CREAR_INVENTARIO()
{
INVENTARIO *P ;
char OP = 'S';
while (OP == 'S')
{
clrscr();
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "INSERTAR INVENTARIO";
gotoxy(20,12); cout <<"NIT

: ";

gotoxy(20,14); cout <<"NOMBRE : ";


gotoxy(20,16); cout <<"VALOR : ";
P = new INVENTARIO;
if ( P == NULL )
{
gotoxy(25,22); cout << "NO HAY ESPACIO DE MEMORIA PARA ASIGNAR";
getch(); OP = 'N';
}
else
{
do {
gotoxy(30,12); cin >> P->NIT ;
gotoxy(30,22); cout << "VALOR FUERA DE RANGO";
} while((P->NIT < 0) || (P->NIT > 999999999)) ;
gotoxy(30,22); clreol();
gotoxy(30,14); gets(P->NOMBRE);
gotoxy(30,16); cin>>P->VALOR;
gotoxy(30,22); clreol();

P->SIG = NULL ;
P->ANT = NULL ;
if (CABEZAI == NULL)
CABEZAI

=P;

else
{
FINI->SIG = P ;
P->ANT = FINI ;
}
FINI = P;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}

void CONSULTA_INVENTARIO()
{
char OP = 'S' ;
INVENTARIO *INICIO = CABEZAI;
int TIPO ;
if (CABEZAI == NULL)
{
gotoxy(22,31); cout << " NO EXISTE LISTA";
OP = 'N'; getch();
}
else
{
clrscr();
gotoxy(32,6) ; cout << "DISTRIMAXI";
gotoxy(30,7) ; cout << "VISUALIZAR INVENTARIO";
gotoxy(32,10) ; cout << "1. POR EL INICIO";
gotoxy(32,11) ; cout << "2. POR EL FINAL ";
gotoxy(32,13) ; cout << "3. SALIR

";

do {
gotoxy(22,16); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";

cin >> TIPO;


gotoxy(30,22) ; cout << " Opcion no valida ";
} while((TIPO < 1)|| (TIPO > 3)) ;
gotoxy(30,22) ; clreol();
switch (TIPO) {
case 1 : INICIO = CABEZAI;
break;
case 2 : INICIO = FINI;
break ;
case 3 : OP = 'N' ;
while(( INICIO != NULL) && (OP == 'S'))
{
clrscr() ;
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "VISUALIZAR INVENTARIO";
gotoxy(20,12); cout <<"NIT : " << INICIO->NIT;
gotoxy(20,14); cout <<"NOMBRE : " << INICIO->NOMBRE;
gotoxy(20,16); cout <<"VALOR : " << INICIO->VALOR;
if (TIPO == 1)
INICIO = INICIO->SIG ;
else
INICIO = INICIO->ANT;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
///////////////////////////////// VENTAS ///////////////////////////
void CREAR_VENTA()
{
VENTAS *P ;
char OP = 'S';
while (OP == 'S')
{
clrscr();
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "INSERTAR VENTAS";
gotoxy(20,10); cout <<"FACTURA

: ";

gotoxy(20,12); cout <<"NOMBRE CLIENTE : ";


gotoxy(20,14); cout <<"FECHA

: ";

gotoxy(20,16); cout <<"CODIGO PRODUCTO : ";


gotoxy(20,18); cout <<"VALOR UNITARIO : ";
gotoxy(20,20); cout <<"TOTAL VENTA

: ";

P = new VENTAS;
if ( P == NULL )
{
gotoxy(25,22); cout << "NO HAY ESPACIO DE MEMORIA PARA ASIGNAR";
getch(); OP = 'N';
}
else
{
do {
gotoxy(38,10); cin >> P->FACTURA ;
gotoxy(30,22); cout << "VALOR FUERA DE RANGO";
} while((P->FACTURA < 0) || (P->FACTURA > 999999999)) ;
gotoxy(30,22); clreol();
gotoxy(38,12); gets(P->NOMBRE_CLIENTE);
gotoxy(38,14); gets(P->FECHA);
gotoxy(38,16); cin>>P->NIT;
gotoxy(38,18); cin>>P->VALOR;
gotoxy(38,20); cin>>P->TOTAL;
gotoxy(30,22); clreol();
P->SIG = NULL ;
P->ANT = NULL ;
if (CABEZAV == NULL)
CABEZAV = P ;
else
{
FINV->SIG = P ;
P->ANT = FINV ;
}
FINV = P;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();

OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
void CONSULTA_VENTAS()
{
char OP = 'S' ;
VENTAS *INICIO = CABEZAV;
int TIPO ;
if (CABEZAV == NULL)
{
gotoxy(22,31); cout << " NO EXISTE LISTA";
OP = 'N'; getch();
}
else
{
clrscr();
gotoxy(32,6) ; cout << "DISTRIMAXI";
gotoxy(30,7) ; cout << "VISUALIZAR VENTAS";
gotoxy(32,10) ; cout << "1. POR EL INICIO";
gotoxy(32,11) ; cout << "2. POR EL FINAL ";
gotoxy(32,13) ; cout << "3. SALIR

";

do {
gotoxy(22,16); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> TIPO;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((TIPO < 1)|| (TIPO > 3)) ;
gotoxy(30,22) ; clreol();
switch (TIPO) {
case 1 : INICIO = CABEZAV;
break;
case 2 : INICIO = FINV;
break ;
case 3 : OP = 'N' ;
}
} while(( INICIO != NULL) && (OP == 'S'))
{
clrscr() ;
gotoxy(26,6) ; cout << "DISTRIMAXI";

gotoxy(20,7) ; cout << "VISUALIZAR INVENTARIO";


gotoxy(20,10); cout <<"FACTURA

: " << INICIO->FACTURA;

gotoxy(20,12); cout <<"NOMBRE CLIENTE : " << INICIO->NOMBRE_CLIENTE;


gotoxy(20,14); cout <<"FECHA

: " << INICIO->FECHA;

gotoxy(20,16); cout <<"CODIGO PRODUCTO: " << INICIO->NIT;


gotoxy(20,18); cout <<"VALOR UNITARIO : " << INICIO->VALOR;
gotoxy(20,20); cout <<"TOTAL VENTA

: " << INICIO->TOTAL;

if (TIPO == 1)
INICIO = INICIO->SIG ;
else
INICIO = INICIO->ANT;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
////////////////////////// MENU PRINCIPAL //////////////////////////////
void marco(void)
{ int j;
for(j=15;j<=65;j++)
{
gotoxy(j,2);cout<<"=";
gotoxy(j,24);cout<<"=";
void marcop(void)
{ int j;
for(j=15;j<=65;j++)
{
gotoxy(j,2);cout<<"=";
gotoxy(j,24);cout<<"=";
}
}
void main(void)
{
char CONTROL = 'S';
int OPCION,OPC ;
CABEZA = NULL ;
OPCION = PORTADA();

if (OPCION ==123){
while ( CONTROL == 'S')
{
clrscr();
marco();
gotoxy(34,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "MENU PRIMCIPAL";
gotoxy(32,10) ; cout << "[1]-PROVEEDORES";
gotoxy(32,12) ; cout << "[2]-INVENTARIOS ";
gotoxy(32,14) ; cout << "[3]-VENTAS
gotoxy(32,16) ; cout << "[4]-SALIR
do

";
";

gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";


cin >> OPC;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OPC < 1)|| (OPC > 4)) ;
switch (OPC) {
case 1 :
int OP ;
char CONTROL_P='S';
while ( CONTROL_P == 'S')
{
clrscr();
marco();
gotoxy(36,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "ADMINISTRAR PROVEEDORES";
gotoxy(30,10) ; cout << "[1]-INGRESAR PROVEEDORES";
gotoxy(30,12) ; cout << "[2]-VISUALIZAR PROVEEDORES ";
gotoxy(30,14) ; cout << "[3]-ELIMINAR PROVEEDORES

";

gotoxy(30,16) ; cout << "[4]-VOLVER AL MENU PRINCIPAL

";

do {
gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> OP;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OP < 1) || (OP > 4)) ;
switch (OP) {
case 1 ://CREAR_PROVEDOR();

break;
case 2://CONSULTA_PROVEDOR();
break;
case 3 :
break;
case 4 : CONTROL_P = 'N';
}
}
break;
case 2 :
int OPI ;
char CONTROL_I='S';
while ( CONTROL_I == 'S')
{
clrscr();
marco();
gotoxy(36,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "ADMINISTRAR INVENTARIOS";
gotoxy(30,10) ; cout << "[1]-INGRESAR INVENTARIO";
gotoxy(30,12) ; cout << "[2]-VISUALIZAR INVENTARIO

";

gotoxy(30,14) ; cout << "[3]-ELIMINAR INVENTARIO

";

gotoxy(30,16) ; cout << "[4]-VOLVER AL MENU PRINCIPAL

";

do {
gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> OPI;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OPI < 1) || (OPI > 4)) ;
switch (OPI) {
case 1 ://CREAR_INVENTARIO();
break;
case 2://CONSULTA_INVENTARIO();
break;
case 3 :
break;
case 4 : CONTROL_I = 'N';
}
}
break;

case 3 :
int OPVEN ;
char CONTROL_V='S';
while ( CONTROL_V == 'S')
{
clrscr();
marco();
gotoxy(36,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "ADMINISTRAR VENTAS";
gotoxy(30,10) ; cout << "[1]-INGRESAR VENTAS";
gotoxy(30,12) ; cout << "[2]-VISUALIZAR VENTAS";
gotoxy(30,14) ; cout << "[3]-ELIMINAR VENTAS";
gotoxy(30,16) ; cout << "[4]-VOLVER AL MENU PRINCIPAL

";

do {
gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> OP;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OP < 1) || (OP > 4)) ;
switch (OP) {
case 1 ://CREAR_VENTA();
break;
case 2://CONSULTA_VENTAS();
break;
case 3 :
break;
case 4 : CONTROL_V = 'N';
break;
case 4 : CONTROL = 'N';
PRACTICA No. 2 APLICACIN A LAS ESTRUCTURAS DE DATOS LINEALES

Descripcin de la prctica
En la prctica No1 se realiz la interfaz inicial del proyecto, se identificaron los
requerimientos generales y funcionales y se implement el men principal y el
men para el mdulo de administrar Proveedores se compil y se depur el
programa.

En esta segunda prctica se realizar la implementacin de las tres funciones o


mdulos para administrar proveedores, administrar inventario y administrar las
ventas de los productos con su respectivo men de opciones y las funciones
necesarias para ingresar, visualizar, eliminar datos de las respectivas estructuras
creadas y por su puesto la funcin para retornar al men principal.
Entrando en materia como ya se tiene el men de opciones y la estructura de
Proveedores, se inicia con la implementacin de las tres funciones asociadas a
esta estructura, estas funciones son: (Ingresar proveedores, visualizar
proveedores, eliminar proveedores y regresar al men principal), no olvide tener
en cuenta si las variables que va utilizar en cada funcin son locales o globales,
de esto depende que la funcin responda a los requerimientos correctamente.
Compile y ejecute el programa, si no presenta errores de sintaxis todo va bien ya
tiene asegurado la mitad del desarrollo de su proyecto, porque para los dos
mdulos restantes, es decir el de administrar inventario y administrar ventas se
sigue la misma metodologa, pues ya tiene buena parte del cdigo del mdulo de
Proveedores que puede reutilizar y adecuar, como son los mens y por su puesto
las funciones, en algunos casos solo tiene que renombrar las funciones y las
variables. No olvide que para la gestin dinmica de memoria de cada estructura
se realiza de forma independiente, es decir para cada estructura su respectiva
instruccin. Recuerde que todo el desarrollo debe ser en un nico programa a
travs de funciones, en ningn caso se debe utilizar archivos externos .h.
Solo resta depurar errores y probar el programa asegurndose que cumpla con los
requerimientos generales y funcionales del proyecto.

Presentacin del programa

Ingresamos la contrasea: 123

Se despliega un men principal con 4 opciones

Al ingresar el nmero 1 nos muestra un submen donde estn las siguientes


opciones

Al momento de anotar el nmero 1 ingresar proveedores, donde se escriben los


siguientes datos

Al momento de ingresar los datos obligatorios nos muestra si queremos seguir o


no

La segunda opcin del submen de proveedores presenta la visualizacin de


proveedores donde hay 3 opciones
Opcin 1 se muestran datos al inicio
Opcin 2 se muestran datos al final

Visualizacin de los datos del proveedor y muestra la opcin de continuar si o no

Regresamos al men principal de inventarios la cual es la segunda opcin


Desplegando 4 opciones importantes en un inventario

Ingresamos los siguientes datos en la opcin insertar inventario se piden 3 datos


q son guardados

Muestra la opcin de seguir s o no escogiendo cualquiera de

las dos letras s o n

La segunda opcin del submen de proveedores presenta la visualizacin de


proveedores donde hay 3 opciones
Opcin 1 se muestran datos al inicio
Opcin 2 se muestran datos al final

Regresamos al men principal de ventas la cual es la segunda opcin


Desplegando 4 opciones importantes en un inventario

Ingresamos los datos necesarios para una empresa en l opcin ventas

Si deseamos continuar ingresamos la opcin s, en caso de no seguir escribimos


la opcin n

La segunda opcin del submen de proveedores presenta la visualizacin de


proveedores donde hay 3 opciones
Opcin 1 se muestran datos al inicio
Opcin 2 se muestran datos al final

La ltima opcin numero 4 se refiere al fin del submen de ventas para ir al men
principal

Ingresamos la opcin 4 en el men principal para salir definitivamente y darle fin


a la aplicacin

Cdigo fuente

#include <iostream.h>

#include <conio.h>
#include <ctype.h>
#include <stdio.h>
void marco();
struct PROVEDOR {
long NIT ;
char NOMBRE[30];
char DIR[20];
long TELEFONO ;
PROVEDOR *ANT ;
PROVEDOR *SIG ;
};
PROVEDOR *CABEZA, *FIN ;
/////////////////// INVENTARIOS //////////
struct INVENTARIO {
long NIT ;
char NOMBRE[30];
long VALOR ;
INVENTARIO *ANT ;
INVENTARIO *SIG ;
};
INVENTARIO *CABEZAI, *FINI ;
///////////////// VENTAS /////////////////
struct VENTAS {
long FACTURA ;
char NOMBRE_CLIENTE[30];
char

FECHA[30];

long NIT ;
long VALOR ;
long TOTAL ;
VENTAS *ANT ;
VENTAS *SIG ;
};
VENTAS *CABEZAV, *FINV ;
int PORTADA()
{
int OP ;

textcolor(BLUE);textbackground(WHITE);
clrscr()
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";
gotoxy(36,8); cout << "DISTANCIA" ;
gotoxy(27,14); cout << "SISTEMA DE INFORMACION PARA EL ";
gotoxy(28,16); cout << "REGISTRO DE INVENTARIO DE LA ";
gotoxy(30,18); cout << "DISTRIBUIDORA SUPERMAXI";
gotoxy(35,22); cout << "DISTRIMAXI";
gotoxy(33,26); cout << "DESARROLLADO POR :";
gotoxy(32,28); cout << "DEYANIS MARTINEZ";
do {
gotoxy(22,40); cout << "INGRESE SU CONTRASEA : ";
cin >> OP ;
gotoxy(30,42); cout << "CONTRASEA INCORRECTA";
} while(OP != 123) ;
gotoxy(30,22); clreol();
return OP ;
}
////////////////////// PROVEDORES ////////////////////////////////
void CREAR_PROVEDOR()
{
PROVEDOR *P ;
char OP = 'S';
while (OP == 'S')
{
clrscr();
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "INSERTAR PROVEDORES";
gotoxy(20,12); cout <<"NIT

: ";

gotoxy(20,14); cout <<"NOMBRE

: ";

gotoxy(20,16); cout <<"DIRECCION : ";


gotoxy(20,18); cout <<"TELEFONO : ";
P = new PROVEDOR;
if ( P == NULL )
{
gotoxy(25,22); cout << "NO HAY ESPACIO DE MEMORIA PARA ASIGNAR";
getch(); OP = 'N';
}

else
{
do {
gotoxy(34,12); cin >> P->NIT ;
gotoxy(30,22); cout << "VALOR FUERA DE RANGO";
} while((P->NIT < 0) || (P->NIT > 999999999)) ;
gotoxy(30,22); clreol();
gotoxy(34,14); gets(P->NOMBRE);
gotoxy(34,16); gets(P->DIR);
gotoxy(30,22); clreol();
gotoxy(34,18); cin >> P->TELEFONO ;
P->SIG = NULL ;
P->ANT = NULL ;
if (CABEZA == NULL)
CABEZA = P ;
else
{
FIN->SIG = P ;
P->ANT = FIN ;
}
FIN = P;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
}
void CONSULTA_PROVEDOR()
{
char OP = 'S' ;
PROVEDOR *INICIO = CABEZA;
int TIPO ;
if (CABEZA == NULL)
{
gotoxy(22,31); cout << " NO EXISTE LISTA";
OP = 'N'; getch();

}
else
{
clrscr();
gotoxy(32,6) ; cout << "DISTRIMAXI";
gotoxy(30,7) ; cout << "VISUALIZAR PROVEDORES";
gotoxy(32,10) ; cout << "1. POR EL INICIO";
gotoxy(32,11) ; cout << "2. POR EL FINAL ";
gotoxy(32,13) ; cout << "3. SALIR

";

do {
gotoxy(22,16); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> TIPO;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((TIPO < 1)|| (TIPO > 3)) ;
gotoxy(30,22) ; clreol();
switch (TIPO) {
case 1 : INICIO = CABEZA;
break;
case 2 : INICIO = FIN;
break ;
case 3 : OP = 'N' ;
}
}
while(( INICIO != NULL) && (OP == 'S'))
{
clrscr() ;
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "VISUALIZAR PROVEDORES";
gotoxy(20,12); cout <<"NIT : " << INICIO->NIT;
gotoxy(20,14); cout <<"NOMBRE : " << INICIO->NOMBRE;
gotoxy(20,16); cout <<"DIRECCION : " << INICIO->DIR;
gotoxy(20,18); cout <<"TELEFONO

: " << INICIO->TELEFONO;

if (TIPO == 1)
INICIO = INICIO->SIG ;
else
INICIO = INICIO->ANT;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";

OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
//////////////////////////// INVENTARIOS //////////////////////
void CREAR_INVENTARIO()
{
INVENTARIO *P ;
char OP = 'S';
while (OP == 'S')
{
clrscr();
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "INSERTAR INVENTARIO";
gotoxy(20,12); cout <<"NIT

: ";

gotoxy(20,14); cout <<"NOMBRE : ";


gotoxy(20,16); cout <<"VALOR : ";
P = new INVENTARIO;
if ( P == NULL )
{
gotoxy(25,22); cout << "NO HAY ESPACIO DE MEMORIA PARA ASIGNAR";
getch(); OP = 'N';
}
else
{
do {
gotoxy(30,12); cin >> P->NIT ;
gotoxy(30,22); cout << "VALOR FUERA DE RANGO";
} while((P->NIT < 0) || (P->NIT > 999999999)) ;
gotoxy(30,22); clreol();
gotoxy(30,14); gets(P->NOMBRE);
gotoxy(30,16); cin>>P->VALOR;
gotoxy(30,22); clreol();
P->SIG = NULL ;
P->ANT = NULL ;

if (CABEZAI == NULL)
CABEZAI

=P;

else
{
FINI->SIG = P ;
P->ANT = FINI ;
}
FINI = P;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
}
void CONSULTA_INVENTARIO()
{
char OP = 'S' ;
INVENTARIO *INICIO = CABEZAI;
int TIPO ;
if (CABEZAI == NULL)
{
gotoxy(22,31); cout << " NO EXISTE LISTA";
OP = 'N'; getch();
}
else
{
clrscr();
gotoxy(32,6) ; cout << "DISTRIMAXI";
gotoxy(30,7) ; cout << "VISUALIZAR INVENTARIO";
gotoxy(32,10) ; cout << "1. POR EL INICIO";
gotoxy(32,11) ; cout << "2. POR EL FINAL ";
gotoxy(32,13) ; cout << "3. SALIR

";

do {
gotoxy(22,16); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> TIPO;
gotoxy(30,22) ; cout << " Opcion no valida ";

} while((TIPO < 1)|| (TIPO > 3)) ;


gotoxy(30,22) ; clreol();
switch (TIPO) {
case 1 : INICIO = CABEZAI;
break;
case 2 : INICIO = FINI;
break ;
case 3 : OP = 'N' ;
while(( INICIO != NULL) && (OP == 'S'))
{
clrscr() ;
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "VISUALIZAR INVENTARIO";
gotoxy(20,12); cout <<"NIT : " << INICIO->NIT;
gotoxy(20,14); cout <<"NOMBRE : " << INICIO->NOMBRE;
gotoxy(20,16); cout <<"VALOR : " << INICIO->VALOR;
if (TIPO == 1)
INICIO = INICIO->SIG ;
else
INICIO = INICIO->ANT;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
///////////////////////////////// VENTAS ///////////////////////////
void CREAR_VENTA()
{
VENTAS *P ;
char OP = 'S';
while (OP == 'S')
{
clrscr();
gotoxy(26,6) ; cout << "DISTRIMAXI";
gotoxy(20,7) ; cout << "INSERTAR VENTAS";
gotoxy(20,10); cout <<"FACTURA

: ";

gotoxy(20,12); cout <<"NOMBRE CLIENTE : ";


gotoxy(20,14); cout <<"FECHA

: ";

gotoxy(20,16); cout <<"CODIGO PRODUCTO : ";


gotoxy(20,18); cout <<"VALOR UNITARIO : ";
gotoxy(20,20); cout <<"TOTAL VENTA

: ";

P = new VENTAS;
if ( P == NULL )
{
gotoxy(25,22); cout << "NO HAY ESPACIO DE MEMORIA PARA ASIGNAR";
getch(); OP = 'N';
}
else
{
do {
gotoxy(38,10); cin >> P->FACTURA ;
gotoxy(30,22); cout << "VALOR FUERA DE RANGO";
} while((P->FACTURA < 0) || (P->FACTURA > 999999999)) ;
gotoxy(30,22); clreol();
gotoxy(38,12); gets(P->NOMBRE_CLIENTE);
gotoxy(38,14); gets(P->FECHA);
gotoxy(38,16); cin>>P->NIT;
gotoxy(38,18); cin>>P->VALOR;
gotoxy(38,20); cin>>P->TOTAL;
gotoxy(30,22); clreol();
P->SIG = NULL ;
P->ANT = NULL ;
if (CABEZAV == NULL)
CABEZAV = P ;
else
{
FINV->SIG = P ;
P->ANT = FINV ;
}
FINV = P;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);

} while((OP != 'S') && (OP != 'N'));


}
}
}
void CONSULTA_VENTAS()
{
char OP = 'S' ;
VENTAS *INICIO = CABEZAV;
int TIPO ;
if (CABEZAV == NULL)
{
gotoxy(22,31); cout << " NO EXISTE LISTA";
OP = 'N'; getch();
}
else
{
clrscr();
gotoxy(32,6) ; cout << "DISTRIMAXI";
gotoxy(30,7) ; cout << "VISUALIZAR VENTAS";
gotoxy(32,10) ; cout << "1. POR EL INICIO";
gotoxy(32,11) ; cout << "2. POR EL FINAL ";
gotoxy(32,13) ; cout << "3. SALIR

";

do {
gotoxy(22,16); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> TIPO;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((TIPO < 1)|| (TIPO > 3)) ;
gotoxy(30,22) ; clreol();
switch (TIPO) {
case 1 : INICIO = CABEZAV;
break;
case 2 : INICIO = FINV;
break ;
case 3 : OP = 'N' ;
while(( INICIO != NULL) && (OP == 'S'))
{
clrscr() ;
gotoxy(26,6) ; cout << "DISTRIMAXI";

gotoxy(20,7) ; cout << "VISUALIZAR INVENTARIO";


gotoxy(20,10); cout <<"FACTURA

: " << INICIO->FACTURA;

gotoxy(20,12); cout <<"NOMBRE CLIENTE : " << INICIO->NOMBRE_CLIENTE;


gotoxy(20,14); cout <<"FECHA

: " << INICIO->FECHA;

gotoxy(20,16); cout <<"CODIGO PRODUCTO: " << INICIO->NIT;


gotoxy(20,18); cout <<"VALOR UNITARIO : " << INICIO->VALOR;
gotoxy(20,20); cout <<"TOTAL VENTA

: " << INICIO->TOTAL;

if (TIPO == 1)
INICIO = INICIO->SIG ;
else
INICIO = INICIO->ANT;
do {
gotoxy(29,24); cout <<"DESEA CONTINUAR S/N : ";
OP = getche();
OP = toupper(OP);
} while((OP != 'S') && (OP != 'N'));
}
}
////////////////////////// MENU PRINCIPAL /////////////////////////////
void marco(void)
{ int j;
for(j=15;j<=65;j++)
{
gotoxy(j,2);cout<<"=";
gotoxy(j,24);cout<<"=";
}
void marcop(void)
{ int j;
for(j=15;j<=65;j++)
{
gotoxy(j,2);cout<<"=";
gotoxy(j,24);cout<<"=";
}
}
void main(void)
{
char CONTROL = 'S';
int OPCION,OPC ;

CABEZA = NULL ;
OPCION = PORTADA();
if (OPCION ==123){
while ( CONTROL == 'S')
{
clrscr();
marco();
gotoxy(34,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "MENU PRIMCIPAL";
gotoxy(32,10) ; cout << "[1]-PROVEEDORES";
gotoxy(32,12) ; cout << "[2]-INVENTARIOS ";
gotoxy(32,14) ; cout << "[3]-VENTAS
gotoxy(32,16) ; cout << "[4]-SALIR
do

";
";

gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";


cin >> OPC;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OPC < 1)|| (OPC > 4)) ;
switch (OPC) {
case 1 :
int OP ;
char CONTROL_P='S';
while ( CONTROL_P == 'S')
{
clrscr();
marco();
gotoxy(36,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "ADMINISTRAR PROVEEDORES";
gotoxy(30,10) ; cout << "[1]-INGRESAR PROVEEDORES";
gotoxy(30,12) ; cout << "[2]-VISUALIZAR PROVEEDORES ";
gotoxy(30,14) ; cout << "[3]-ELIMINAR PROVEEDORES

";

gotoxy(30,16) ; cout << "[4]-VOLVER AL MENU PRINCIPAL

";

do {
gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> OP;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OP < 1) || (OP > 4)) ;
switch (OP) {

case 1 :CREAR_PROVEDOR();
break;
case 2:CONSULTA_PROVEDOR();
break;
case 3 :
break;
case 4 : CONTROL_P = 'N';
}
}
break;
case 2 :
int OPI ;
char CONTROL_I='S';
while ( CONTROL_I == 'S')
{
clrscr();
marco();
gotoxy(36,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "ADMINISTRAR INVENTARIOS";
gotoxy(30,10) ; cout << "[1]-INGRESAR INVENTARIO";
gotoxy(30,12) ; cout << "[2]-VISUALIZAR INVENTARIO

";

gotoxy(30,14) ; cout << "[3]-ELIMINAR INVENTARIO

";

gotoxy(30,16) ; cout << "[4]-VOLVER AL MENU PRINCIPAL

";

do {
gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS : ";
cin >> OPI;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OPI < 1) || (OPI > 4)) ;
switch (OPI) {
case 1 :CREAR_INVENTARIO();
break;
case 2:CONSULTA_INVENTARIO();
break;
case 3 :
break;
case 4 : CONTROL_I = 'N';
}

}
break;
case 3 :
int OPVEN ;
char CONTROL_V='S';
while ( CONTROL_V == 'S')
{
clrscr();
marco();
gotoxy(36,6) ; cout << "DISTRIMAXI";
gotoxy(32,8) ; cout << "ADMINISTRAR VENTAS";
gotoxy(30,10) ; cout << "[1]-INGRESAR VENTAS";
gotoxy(30,12) ; cout << "[2]-VISUALIZAR VENTAS";
gotoxy(30,14) ; cout << "[3]-ELIMINAR VENTAS";
gotoxy(30,16) ; cout << "[4]-VOLVER AL MENU PRINCIPAL

";

do {
gotoxy(22,20); cout << "SELECIONE UNA DE LAS ALTERNATIVAS :
cin >> OP;
gotoxy(30,22) ; cout << " Opcion no valida ";
} while((OP < 1) || (OP > 4)) ;
switch (OP) {
case 1 :CREAR_VENTA();
break;
case 2:CONSULTA_VENTAS();
break;
case 3 :
break;
case 4 : CONTROL_V = 'N';
}
}
break;
case 4 : CONTROL = 'N'
PRACTICA No. 3 APLICACIN AL MODO GRAFICO DE C++
Descripcin de la prctica

En esta prctica se propone desarrollar un programa diferente al del proyecto


final que se desarroll en las prcticas 1 y 2, con el objetivo de dar aplicacin a
las estructuras de datos no lineales especialmente a la teora general de rboles
y rboles binarios de bsqueda. El programa debe dar respuesta por medio de un
men de opciones a:
Opcin1. Portada: En una interfaz grfica incluir datos como: Universidad, Nombre
del curso, Nombre del Tutor, nombre del estudiante autor del programa y la fecha.
Opcin2. Grafica: Visualiza la interfaz grfica de un rbol binario de bsqueda
cuyos nodos estn compuestos por datos numricos algo similar al que se
muestra en la grafica No. 2.
opcin3. Recorridos del rbol: Se debe desplegar en mensajes de pantalla la
informacin del resultado de los tres recorridos en inorden, preorden y postorden.

En la siguiente aplicacin de arboles se puede visualizar varios archivos, esos


archivos hacen parte de la librera de borland c y se manifiestan en forma fsica
como complemento del .exe

Se crea un men principal con 7 opciones fciles de identificar


Escogemos la primera opcin llamada portada

La primera opcin visualiza los datos personales del realizador de la palicacion y


a quien va dirigida

Al escoger la segunda opcin insertar

Se muestra un entorno donde se escribe un elemento entre 0-99 despus de los


dos puntos, se escribe un nmero por insercin

La tercera opcin hacer referencia al orden en que se muestran los nmeros


digitados

El nmero del rbol se ordenan de manera in orden

La cuarta opcin hacer referencia al pre orden

Los nmeros ingresados se ordenan de manera pre ordenada

Este entorno muestra los nmeros ordenados de la forma antes mencionada

La ltima opcin, nmero 7 es para salir definitivamente de la aplicacin

Cdigo fuente
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<graphics.h>
#include <interfac.h>
#include <arbol.h>
void marco(){
int j,i;
for(j=15;j<=65;j++)
{
gotoxy(j,2);cout<<"=";
gotoxy(j,24);cout<<"=";
}
for(i=2;i<=24;i++)
{

gotoxy(15,i);cout<<"=";
gotoxy(65,i);cout<<"=";
}
}
void main(void){
int gdriver = DETECT, gmode;
int elemento, valor, opcion, i;
char *dato;
NODOARBOL *raiz=NULL;
clrscr();
for(;;){
nuevo:
opcion=menu();
if((opcion>=10 && opcion<=16) && raiz==NULL){
window(52,8,80,12);
textattr(YELLOW + BLINK);
textbackground(BLACK);
cprintf("\n\r n\r No hay nodos \n\r en el rbol ");
window(1,1,80,25);
getch(); continue;
}
switch(opcion){
case 6:
clrscr() ;
textcolor(BLUE);textbackground(WHITE);
marco();
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";
gotoxy(36,8); cout << "DISTANCIA" ;
gotoxy(18,12); cout << "NOMBRE DEL PROGRAMA:INGENIERIA DE SISTEMAS ";
gotoxy(18,14); cout << "PRESENTADO A:HERMES MOSQUERA ";
gotoxy(18,16); cout << "DESARROLLADO POR:DEYANIS MARTINEZ";
gotoxy(18,18); cout << "FECHA DE PRESENTACION: 17/11/2012";
getch();
break;
case 8:
clrscr();
marco();
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";

gotoxy(36,8); cout << "DISTANCIA" ;


gotoxy(26,12); printf("DIGITE ELEMEMTO ENTRE [0 : 99]:"); gets(dato);
for(i=0;i<strlen(dato);i++)
if(!isdigit(dato[i])){ printf("\nDato inv lido"); getch(); goto nuevo;}
elemento=atoi(dato);
if(elemento<0 || elemento>99){
printf("\nDato desbordado"); getch(); break;}
insertar(&raiz, elemento);
break;
case 10:
clrscr();
marco();
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";
gotoxy(36,8); cout << "DISTANCIA" ;
gotoxy(26,12); printf("El rbol inorder es: "); inorder(raiz);
getch();
break;
case 12:
clrscr();
marco();
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";
gotoxy(36,8); cout << "DISTANCIA" ;
gotoxy(26,12); printf("El rbol preorder es: "); preorder(raiz);
getch();
break;
case 14:
clrscr();
marco();
gotoxy(26,6) ; cout << "UNIVERSIDAD NACIONAL ABIERTA Y A";
gotoxy(36,8); cout << "DISTANCIA" ;
gotoxy(26,12); printf("El rbol postorder es: "); postorder(raiz);
getch();
break;
case 16:
clrscr();
initgraph(&gdriver, &gmode, "");
dibujar(raiz, 15, 3, 7, 0);
getch();

cleardevice();
closegraph();
break;
case 18: exit(0);

CONCLUSIN

En programacin, una variable es un espacio de memoria reservado


para almacenar un valor que corresponde a un tipo de dato soportado
por el lenguaje de programacin. Una variable es representada y usada
a travs de una etiqueta (un nombre) que le asigna un programador o
que ya viene predefinida.

S-ar putea să vă placă și