Vous êtes sur la page 1sur 7

1:REALIZAR EL PROGRAMA QUE INGRESE A UNA LISTA CIRCULAR LOS DATOS DE LOS ARTICULOS DE UN

ALMACEN:CODIGO ,DISCRIPCION,TIPO DE ARTICULO(PUEDE SER MANUAL,MECANICO O


ELECTRICO),PRECIO UNITARIO Y CANTIDAD. SE PIDE IMPRIMIR UN REPORTE EN DONDE DEBE HABERSE
ELIMINADO TODOS LOS ARTICULOS CUYO CODIGO EMPIEZE EN UNO.

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
typedef struct enom{ char cod[10];
char des[15];
char tipo[15];
float pu;
int cant;
float imp;
struct enom *sig;
} listanom;
#define TAM sizeof(listanom)
#define FIN_CODIGO "*"
void imprimir();
void crearlista();
void eliminar();
listanom *comienzo, *nuevo, *p, *q,*t;
char temp[10];
int opc;
void main(void)
{
clrscr();
do
{
cout<<" MENU"<<endl<<endl;
cout<<" 1.- Crear lista"<<endl;
cout<<" 2.- Imprimir"<<endl;
cout<<" 3.- Eliminar un nodo con informacion"<<endl;
cout<<" 4.- Salir"<<endl<<endl<<endl;
cout<<" Ingrese su opcion ===> ";
cin>>opc;
switch (opc)
{
case 1: crearlista();break;
case 2: imprimir();break;
case 3: eliminar();break;
}
}
while(opc>=1 && opc<=3);
getch();
}
void crearlista()
{
clrscr();
cout<<"Procedimiento Crear Lista"<<endl;
comienzo=0;
while (1)
{
cout<<"Ingrese Codigo del articulo : ";
gets(temp);
if (strcmp(temp,FIN_CODIGO)==0)
break;
nuevo=(listanom *) malloc(TAM);
strcpy(nuevo->cod,temp);
cout<<"Ingrese Descripcion ";
cin>>(nuevo->des);
cout<<"Ingrese Tipo de Articulo ";
cin>>nuevo->tipo;
cout<<"Ingrese Precio Unitario ";
cin>>nuevo->pu;
cout<<"Ingrese Cantidad ";
cin>>nuevo->cant;
nuevo->imp=nuevo->pu*nuevo->cant;
if (comienzo==0)
{
comienzo=nuevo;
}
else
{
q=comienzo;
while(q->sig!=0)
{
q=q->sig;
}
q->sig=nuevo;
}
nuevo->sig=0;
}
}
void imprimir()
{
clrscr();
cout<<"Impresion de lista "<<endl;
p=comienzo;
cout<<" REPORTE DE ARTICULOS "<<endl;
cout<<"---------------------------------------------------------------------------------------------"<<endl;
cout<<" CODIGO DESCRIPCION TIPO PRECIO CANTIDAD IMPORTE "<<endl;
cout<<"---------------------------------------------------------------------------------------------"<<endl;
while (p!=0)
{
cout<<p->cod<<" "<<p->des<<" "<<p->tipo<<" "<<p->pu<<" "<<p->cant<<" "<<p->imp<<endl;
p=p->sig;
}
cout<<"---------------------------------------------------------------------------------------------"<<endl;
getch();
}

void eliminar()
{
cout<<"Procedimiento Eliminar un nodo con informacion"<<endl;
p=comienzo;
int band=1;
q=p;
while(strcmp(q->cod,20000)>=0 && band==1)
{
if (q->sig!=0)
{
nuevo=q;
q=q->sig;
}
else
{
band=0;
}
}
if (band==0)
{
cout<<"No se encontro codigo que empieze con 1 "<<endl;
}
else
{
if (p==q)
p=q->sig;
else
nuevo->sig=q->sig;
q=0;
}
comienzo=p;
imprimir();
}
2:REALIZAR EL PROGRAMA QUE INGRESE A UNA LISTA DOBLEMENTE ENLAZADA LOS DATOS DE LOS
PACIENTES DE UN HOSPITAL: CODIGO,APELLIDO Y NOMBRES,ESPECIALIDAD EN LA QUE SE ATIENDE(PUEDE
SER CIRUGIA,TRAUMATOLOGIA O NEUROLOGIA),DIAS DE HOSPITALIZACION,COSTO POR DIA.SE PIDE
INSERTAR UN NUEVO PACIENTE EN LA LISTA ANTES DE UN CODIGO DE UN PACIENTE DE LA LISTA.

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
typedef struct enom{ struct enom *ant;
char cod[10];
char apnom[15];
char esp[15];
int dia;
float cd;
struct enom *sig;
} listanom;

#define TAM sizeof(listanom)


#define INI_LISTA 0
#define FIN_LISTA 0
#define FIN_CODIGO "*"
void insertar();
void imprimir();
void crearlista();
listanom *comienzo, *nuevo, *p, *q,*t,*ultimo;
char temp[10];
int opc;
void main(void)
{
do
{
clrscr();
cout<<" MENU"<<endl<<endl;
cout<<" 1.- Crear lista"<<endl;
cout<<" 2.- Imprimir"<<endl;
cout<<" 3.- Insertar antes de un nodo"<<endl;
cout<<" 4.- Salir"<<endl<<endl<<endl;
cout<<" Ingrese su opcion ===> ";
cin>>opc;
switch (opc)
{
case 1: crearlista();break;
case 2: imprimir();break;
case 3: insertar();break;
}
}
while(opc>=1 && opc<=3);

}
void crearlista()
{
clrscr();
cout<<"Procedimiento Crear Lista"<<endl;
comienzo=FIN_LISTA;
while (1)
{
cout<<"Ingrese codigo : ";
cin>>temp;
if (strcmp(temp,FIN_CODIGO)==0)
break;
nuevo=(listanom *) malloc(TAM);
strcpy(nuevo->cod,temp);
cout<<"Ingrese apellidos y nombre ";
gets(nuevo->apnom);
cout<<"Ingrese especialidad ";
cin>>nuevo->esp;
cout<<"Ingrese numero dias ";
cin>>nuevo->dia;
cout<<"Ingrese costo por dia ";
cin>>nuevo->cd;

if (comienzo==FIN_LISTA)
{
comienzo=nuevo;
nuevo->ant=INI_LISTA;
nuevo->sig=FIN_LISTA;
}
else
{
q=comienzo;
p=q;
while(q->sig!=FIN_LISTA)
{
p=q;
q=q->sig;
q->ant=p;
}
q->sig=nuevo;
nuevo->sig=FIN_LISTA;
nuevo->ant=q;
}
ultimo=nuevo;
}
}
void imprimir()
{
clrscr();
cout<<endl<<"Impresion de lista desde el comienzo";
p=comienzo;
cout<<" REPORTE DE PACIENTES "<<endl;
cout<<"----------------------------------------------------------------------------------------"<<endl;
cout<<" CODIGO APELL.Y NOMB. ESPECIALIDAD NDIAS COSTO*DIA "<<endl;
cout<<"---------------------------------------------------------------------------------------"<<endl;
while (p!=FIN_LISTA)
{
cout<<p->cod<<" "<<p->apnom<<" "<<p->esp<<" "<<p->dia<<" "<<p->cd<<endl;
p=p->sig;
}
cout<<"----------------------------------------------------------------------------------------"<<endl;
cout<<endl<<"Impresion de lista desde el ultimo";
p=ultimo;
cout<<" REPORTE DE PACIENTES "<<endl;
cout<<"---------------------------------------------------------------------------------------"<<endl;
cout<<" CODIGO APELL.Y NOMB. ESPECIALIDAD NDIAS COSTO*DIA "<<endl;
cout<<"---------------------------------------------------------------------------------------"<<endl;
while (p!=INI_LISTA)
{
cout<<p->cod<<" "<<p->apnom<<" "<<p->esp<<" "<<p->dia<<" "<<p->cd<<endl;
p=p->ant;
}
cout<<"----------------------------------------------------------------------------------------"<<endl;
getche();
}
void insertar()
{
int band=1;
char ref[10];
clrscr();
cout<<"Procedimiento insertar antes de un nodo"<<endl;
p=comienzo;
q=p;
cout<<"Antes de que nodo desea insertar"<<endl;
cin>>ref;
while(strcmp(q->cod,ref)!=0 && band==1)
{
if (q->sig!=FIN_LISTA)
{
t=q;
q=q->sig;
}
else
{
band=0;
}
}
if (band==1)
{
cout<<"Ingrese codigo : ";
cin>>temp;
nuevo=(listanom *) malloc(TAM);
strcpy(nuevo->cod,temp);
cout<<"Ingrese apellidos y nombres ";
gets(nuevo->apnom);
cout<<"Ingrese especialidad ";
cin>>nuevo->esp;
cout<<"Ingrese numero de dias ";
cin>>nuevo->dia;
cout<<"Ingrese costo por dia ";
cin>>nuevo->cd;
if (p==q)
{
nuevo->sig=p;
p=nuevo;
}
else
{
t->sig=nuevo;
nuevo->sig=q;
nuevo->ant=t;
q->ant=nuevo;
}
}
}

Vous aimerez peut-être aussi