You are on page 1of 4

/* TEMA: Estructura de datos dinamica PILA

realizar el programa de ingrese a una estructura dinmica


PILA NOMBRES de
personas y luego imprimir */
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
typedef struct enlace {char nombre[10];
struct enlace *anterior;
} pila;
#define TAM sizeof(pila)
void main (void)
{
pila *ultimo, *nuevo, *q;
char n[10];
clrscr();
ultimo=0;
cout<<"Ingrese nombre"<<endl;
cin>>n;
while(strcmp(n,"*")!=0)
{
nuevo=(pila *) malloc(TAM);
strcpy(nuevo->nombre,n);
nuevo->anterior=ultimo;
ultimo=nuevo;
cout<<"Ingrese nombre"<<endl;
cin>>n;
}
cout<<" Datos de la pila : "<<endl;
q=ultimo;
while(q!=0)
{
cout<<q->nombre<<endl;
q=q->anterior;
}
getche();
}
***********************************************************

/* REALIZAR EL PROGRAMA QUE INGRESE A UNA ESTRUCTURA DINAMICA


PILA LOS DATOS DE LOS TRABAJADORES DE UNA EMPRESA: CODIGO,
APELLIDOS Y NOMBRES, CATEGORIA (PUEDE SER AUXILIAR, TECNICO
O PROFESIONAL), SUELDO BASICO, BONIFICACION Y DESCUENTO.
SE PIDE CALCULAR E IMPRIMIR UN REPORTE CON LOS DE ENTRADA
QUE INCLUYA EL SUELDO NETO DE CADA TRABAJADOR.
b) en base al programa anterior agregue un nuevo elemento a
la pila y luego imprima la pila.
c) en base al programa anterior elimine un elemento de la
pila y luego imprima la pila.
*/

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
typedef struct enlace{ char cod[10];
char apnom[20];
char cat[15];
float sb;
float bon;
float des;
float sn;
struct enlace *anterior;
}pila;
#define TAM sizeof(pila)
pila *ultimo,*nuevo,*q;
char n[10],resp;
void imprimir(),agregar(),eliminar();
void main()
{
ultimo=0;
cout<<"Ingrese codigo del trabajador ";
cin>>n;
while(strcmp(n,"*")!=0)
{
nuevo=(pila *)malloc(TAM);
strcpy(nuevo->cod,n);
cout<<"Ingrese apellidos y nombres ";
gets(nuevo->apnom);
cout<<"Ingrese categoria ";
cin>>nuevo->cat;
cout<<"ingrese sueldo basico ";
cin>>nuevo->sb;
cout<<"Ingrese bonificacion ";
cin>>nuevo->bon;
cout<<"Ingrese descuento ";
cin>>nuevo->des;
nuevo->sn=nuevo->sb+nuevo->bon-nuevo->des;
nuevo->anterior=ultimo;
ultimo=nuevo;
cout<<"Ingrese codigo del trabajador ";
cin>>n;
}
imprimir();
cout<<"Desea agregar un nuevo elemento a la pila ";
cin>>resp;
if(resp=='s')
{
agregar();
imprimir();
}
cout<<"Desea eleiminar un elemento de la pila ";
cin>>resp;
if(resp=='s')
{
eliminar();
imprimir();
}
}

void imprimir()
{
clrscr();
cout<<"
REPORTE DE TRABAJADORES "<<endl;
cout<<" -------------------------------------------------------------"<<endl;
cout<<" CODIGO APELLIDOS Y NOMBRES CATEGORIA S.BAS
BONF DESC SNETO"<<endl;
cout<<" -------------------------------------------------------------"<<endl;
q=ultimo;
while(q!=0)
{
cout<<q->cod<<" "<<q->apnom<<" "<<q->cat<<" "<<q->sb
<<" "<<q->bon<<" "<<q->des<<" "<<q->sn<<endl;
q=q->anterior;
}
cout<<" --------------------------------------------------------------"<<endl;
}
void agregar()
{
nuevo=(pila *)malloc(TAM);
cout<<"Ingrese el codigo del trabajador ";
cin>>nuevo->cod;
cout<<"Ingrese apellidos y nombres ";
gets(nuevo->apnom);
cout<<"Ingrese categoria ";
cin>>nuevo->cat;
cout<<"ingrese sueldo basico ";
cin>>nuevo->sb;
cout<<"Ingrese bonificacion ";
cin>>nuevo->bon;
cout<<"Ingrese descuento ";
cin>>nuevo->des;
nuevo->sn=nuevo->sb+nuevo->bon-nuevo->des;
nuevo->anterior=ultimo;
ultimo=nuevo;
}
void eliminar()
{
ultimo=ultimo->anterior;
}

****************************
/*Realizar el programa que ingrese a una estructura dinamica PILA los datos
de los trabajadores de una empresa; CODIGO, APELLIDOS Y NOMBRES, CATEGORIA
(Puede ser auxiliar, tecnico o profesional), SUELDO BASICO, BONIFICACIOIN
y DESCUENTO.
Se pide calcular e imprimir un reporte con los datos de
entrada que incluya el sueldo neto de cada trabajador */
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
typedef struct enlace {char cod[10];
char apnom[20];
char cat[15];
float sb;
float bon;
float des;
float sn;
struct enlace *anterior;
} pila;

#define TAM sizeof(pila)


void main()
{
pila *ultimo, *nuevo, *q;
char n[10];
ultimo=0;
cout<<"Ingrese el codigo del trabajador ";
cin>>n;
while(strcmp(n,"*")!=0)
{
nuevo=(pila *) malloc(TAM);
strcpy(nuevo->cod,n);
cout<<"Ingrese apellidos y nombres ";
cin>>nuevo->apnom;
cout<<"Ingrese Categoria ";
cin>>nuevo->cat;
cout<<"Ingrese sueldo basico ";
cin>>nuevo->sb;
cout<<"Ingrese bonificacion ";
cin>>nuevo->bon;
cout<<"Ingrese Descuento ";
cin>>nuevo->des;
nuevo->sn=nuevo->sb+nuevo->bon-nuevo->des;
nuevo->anterior=ultimo;
ultimo=nuevo;
cout<<"Ingrese Codigo del trabajador"<<endl;
cin>>n;
}
clrscr();
cout<<"
REPORTE DE TRABAJADORES
"<<endl;
cout<<" ------------------------------------------------------------------------- "<<endl;
cout<<" CODIGO APELLIDOS_NOMBRES CATEGORIA S_BASICO BONF
DSCTO S_NETO"<<endl;
cout<<" ------------------------------------------------------------------------- "<<endl;
cout<<" ------------------------------------------------------------------------- "<<endl;
cout<<" Datos de la pila : "<<endl;
q=ultimo;
while(q!=0)
{
cout<<q->nombre<<endl;
q=q->anterior;
}
getche();
}

You might also like