Вы находитесь на странице: 1из 42

/*

Escribir un algoritmo que defina una tabla de proveedores teniendo cada proveedor los
siguientes datos:
nombre, cantidad vendida, precio unitario (introducidos por teclado) e importe (calculado).
Visualizar los datos de cada proveedor, el importe total de compra así como el nombre del
proveedor
Más barato y el del Más caro.

*/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <iomanip>

#define dim 20

using namespace std;


struct proveedor
{int cod;
char nom[20];

int can;

float pu,imp;
};
void ingresar(proveedor p[dim], int &c);
void mostrar(proveedor p[dim], int c);
float imptotal(proveedor p[dim],int c);
int mayor(proveedor p[], int c);
int menor(proveedor p[], int c);
int menu();
int busxcod(proveedor p[],int c,int codigo);

int main()
{int n,j,op;
n=0;
proveedor p[dim];
float total;

do
{
system ("cls");
op=menu();
switch(op){
case 1:
ingresar(p,n);
break;
case 2:
mostrar(p,n);
break;
case 3:
total=imptotal(p,n);
cout<<setw(55)<<" El Importe Total Es : "<<setw(10)<<total<<endl;
getche();
break;
case 4:
j=mayor(p,n);

cout<<"Proveedor mas caro : "<<p[j].nom<<endl;


getche();
break;
case 5: j=menor(p,n);
cout<<"Proveedor mas barato : "<<p[j].nom<<endl;
getche();
break;
case 6: system ("cls");
cout<<" fin proceso ";
getch();break;
}
}while(op!=6);

getch();
return 0;
}
int busxcod(proveedor p[],int c,int codigo)
{int i,pos;
pos=-1;
for(i=0;i<c;i++)
if(p[i].cod==codigo)
pos=i;
return pos;
}

void ingresar(proveedor p[dim], int &c)


{
system("cls");
int i,pos;
cout<< "Ingreso de datos de los proveedore : "<<endl;
cout<<"codigo : ";
cin>>p[c].cod;

pos=busxcod(p,c,p[c].cod);
if(pos==-1)
{cout<<"nombre : ";
fflush(stdin);
gets(p[c].nom);
cout<<"Cantidad Vendida : ";
cin>>p[c].can;
do{
cout<<"Precio Unitario ";
cin>>p[c].pu;
}while(p[c].pu<=0);
p[c].imp=p[c].can * p[c].pu;
cout<<endl<<endl;
c=c+1;
}
else
cout<<"El codigo ya esta registrado "<<endl;
getche();
}

void mostrar(proveedor p[dim], int c)


{
system("cls");
int i;
cout<<setw(20)<<"Nombre "<<setw(15)<<"Cantidad Vendida"<<setw(20)<<"Precio Unitario
"<<setw(10)<<"Importe"<<endl;
cout<<endl;
for(i=0;i<c;i++){
cout<<setw(20)<<p[i].nom<<setw(15)<<p[i].can<<setw(20)<<p[i].pu<<setw(10)<<p[i].imp;
cout<<endl;
}
getch();
}

float imptotal(proveedor p[dim],int c)


{
system("cls");

int i;
float tot=0;
for(i=0;i<c;i++)
tot=tot + p[i].imp;
return tot;
}
int mayor(proveedor p[], int c)
{
system("cls");
int i,indma;
float ma;
ma=p[0].imp;
indma=0;
for(i=1;i<c;i++)
{if(p[i].imp>ma)
{ma=p[i].imp;
indma=i;
}
}

return indma;

int menor(proveedor p[], int c)


{
system("cls");
int i,indme;
float me;
me=p[0].imp;
indme=0;
for(i=1;i<c;i++)
if(p[i].imp<me)
{
me=p[i].imp;
indme=i;
}
return indme;
}

int menu()
{
int op;

do{
system ("cls");
cout<<"\t\tMENU"<<endl;
cout<<"\t\t****"<<endl;
cout<<"\t[1].Ingresar proveedores"<<endl;
cout<<"\t[2].Mostrar proveedores"<<endl;
cout<<"\t[3].Calcula Importe total de compra"<<endl;
cout<<"\t[4].Proveedor mas caro"<<endl;
cout<<"\t[5].Proveedor mas barato"<<endl;
cout<<"\t[6]Salir"<<endl;
cout<<"\tIngrese su opcion [ ]"<<"\b\b";
cin>>op;
}while(op<1 || op>6);
return op;
}
/*
.- Ingresar el nombre, edad, y sexo de N personas, los almacene en un array de estructura
y mediante un menú de opciones se muestre ordenados por:
• Nombre
• Edad
• Sexo
• Finalizar
Desarrolle usando funciones para cada caso

*/
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iomanip>
#define dim 10
using namespace std;
struct personal{

char nombre[20];
int edad;
char sexo;

};
int menu();
int menu1();
void ingresar();
void ordenar(int opc);
void mostrar();
personal p[5];
int opc,n;
int main()
{system("cls");
int opc1;
cout<<"Ingrese numero de personas :";
cin>>n;

do
{opc1=menu1();
switch (opc1)
{case 1: ingresar();break;
case 2:opc=menu();
ordenar(opc);break;
}

}while(opc1!=3);
system("cls");
cout<<"Fin proceso .... ";
system("pause");
return 0;
}
int menu1()
{int opc1;
system("cls");
cout<<"MENU PRINCIPAl"<<endl;

cout<<"\n[1]: Ingresar Datos ";


cout<<"\n[2]: Ordenar";
cout<<"\n[3]: Salir ";

do
{cout<<"INGRESE UNA OPCION : ";
cin>>opc1;
}while (opc1<1 || opc1>3);
return opc1;
}

int menu()
{
system("cls");
cout<<"MENU DE ORDENAMIENTO"<<endl;
cout<<"ORDENAR POR"<<endl;
cout<<"\n[1]: Nombre ";
cout<<"\n[2]: Edad ";
cout<<"\n[3]: Sexo ";
cout<<"\n[4]: Finalizar ";
do
{cout<<"INGRESE UNA OPCION : ";
cin>>opc;
}while (opc<1 || opc>4);
return opc;
}

void ingresar()
{int i;
for (i=0;i<n;i++)
{ system ("cls");
cout<<"Datos del personal : "<<(i+1)<<endl;
cout<<"Nombre :";
fflush(stdin);
gets(p[i].nombre);
cout<<"Edad : ";cin>>p[i].edad;
cout<<"Sexo : ";cin>>p[i].sexo;
}
}

void ordenar(int opc)


{int i,j;
personal t;

for(i=0;i<n;i++ )
for(j=i+1;j<n;j++)
switch(opc)
{case 1:
if (strcmp(p[i].nombre,p[j].nombre)>0)
{t=p[i];

p[i]=p[j];
p[j]=t;
}
break;
case 2: if(p[i].edad >p[j].edad)
{t=p[i];
p[i]=p[j];
p[j]=t;
}
break;
case 3: if(p[i].sexo >p[j].sexo)
{t=p[i];
p[i]=p[j];
p[j]=t;
} break;

}
mostrar();
}

void mostrar()
{int i;
system("cls");
cout<<setw(25)<<"NOMBRES "<<setw(10)<<" EDAD "<<setw(10)<<"SEXO "<<endl;
for(i=0;i<n;i++)
cout<<setw(25)<<p[i].nombre<<setw(10)<<p[i].edad<<setw(10)<<p[i].sexo<<endl;
cout<<"Presione cualquier tecla para continuar ";
getch();
}
/*
Escribir un algoritmo que gestiona las notas de una clase de 20 alumnos
de los cuales sabemos el nombre y la nota. El programa debe ser capaz de:
1. Buscar un alumno.
2. Modificar su nota.
3. Realizar la media de todas las notas.
4. Realizar la media de las notas menores de 5.
5. Mostrar el alumno que mejores notas ha sacado.
6. Mostrar el alumno que peores notas ha sacado.

*/
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

using namespace std;


struct alumno
{
char nombre[50];
float nota;
};
void ingresaDato(alumno alum[20]);
void buscaAlum(alumno alum[20]);
void modificaNot(alumno alum[20]);
void mediaTot(alumno alum[]);
void mediainf5(alumno alum[]);
void mejores(alumno alum[]);
void peores(alumno alum[]);
int menu();

int main ()
{
alumno alm[20];
int op;

do
{
op=menu();
switch(op)
{
case 1:ingresaDato(alm);
getche();break;
case 2:buscaAlum(alm);
getche();break;
case 3:modificaNot(alm);
getche();break;
case 4:mediaTot(alm);
getche();break;
case 5:mediainf5(alm);
getche();break;
case 6:mejores(alm);
getche();break;
case 7:peores(alm);
getche();break;

}while(op!=8);

system("cls");
cout<<"GRACIAS POR USAR ESTA APLICACION"<<endl;

getche();
return(0);
}
void ingresaDato(alumno alum[20])
{
system("cls");
int i;
for (i=0;i<2;i++)
{
cout<<"Introduzca nombre alumno["<<i+1<<"]: ";
fflush(stdin);
gets(alum[i].nombre);
do
{
cout<<"Introduzca nota del alumno["<<i+1<<"]:";
cin>>alum[i].nota;
}while(alum[i].nota<0||alum[i].nota>20);

}
cout<<"\n\nDatos ingresados con exito...!!"<<endl;

}
void buscaAlum(alumno alum[20])
{
system("cls");
int i,aux;
char al[50];//alumno

cout<<"Digite el nombre a buscar: ";


fflush(stdin);
gets(al);

for(i=0;i<2;i++)
{
if (strcmp(alum[i].nombre,al)==0)
{
aux=1;

cout<<"Alumno encontrado..!"<<endl;
cout<<endl<<endl;
cout<<"ALUMNO:"<<alum[i].nombre<<endl;
cout<<"NOTA DEL ALUMNO:"<<alum[i].nota<<endl;
}

}
if(aux!=1)
{
cout<<"\nNO EXISTE AQUEL ALUMNO ....!"<<endl;
}
cout<<endl;

}
void modificaNot(alumno alum[20])
{
system("cls");
int i;
char al[20];//alumno

printf("Introduzca un nombre: ");


fflush(stdin);
gets(al);

for(i=0;i<2;i++)
{
if(strcmp(alum[i].nombre,al)==0)
{
cout<<"Introduzca una nota: ";
cin>>alum[i].nota;
cout<<"Nota modificada con exito....!";
}
}

}
void mediaTot(alumno alum[])
{
system("cls");
int i;
float sum=0;
for(i= 0;i<2;i++)
{
sum=sum+alum[i].nota;
}
sum=sum/5;
cout<<"\nLA MEDIA DE LAS NOTAS ES "<<sum<<endl;
}
void mediainf5(alumno alum[])
{
system("cls");
int i,cont=0;
float sum=0,media;
for(i=0;i<2;i++)
{
if (alum[i].nota<5)
{

sum=sum+alum[i].nota;
cont++;
}

}
media=sum/cont;
if (cont>=1)
{
cout<<"\nLa media de las notas inferiores a 5 es "<<sum/cont<<endl;
}
else
{
cout<<"\nNo hay notas inferiores a 5"<<endl;
}

void mejores(alumno alum[])//procedimiento para hallar las mejor(es) nota


{
system("cls");
int i;
float mejor=0;
char al[20];
cout<<"\nLISTA DE ALUMNOS CON MEJORES NOTAS (en caso tengan la misma nota)"<<endl;
for(i=0;i<2;i++)
{

if(alum[i].nota>mejor)
{

mejor=alum[i].nota;

}
cout<<setw(15)<<"NOTA"<<setw(15)<<"ALUMNO"<<endl;
for(i=0;i<2;i++)
{
if(alum[i].nota==mejor)

cout<<setw(15)<<alum[i].nota<<setw(15)<<alum[i].nombre<<endl;
}

}
void peores(alumno alum[])
{
system("cls");
int i;
float peor=999;
char al[20];
cout<<"\nPEORES ALUMNOS (en caso tengan la misma nota).."<<endl;
for(i=0;i<2;i++)
{
if (alum[i].nota<peor)
{
peor=alum[i].nota;

}
}
cout<<setw(15)<<"NOTA"<<setw(15)<<"ALUMNO"<<endl;
for(i=0;i<2;i++)
{
if(alum[i].nota==peor)
{
cout<<setw(15)<<alum[i].nota<<setw(15)<<alum[i].nombre<<endl;
}
}

}
int menu()
{
int op;
do
{
system("cls");
cout<<"\t\tMENU"<<endl;
cout<<"\t\t****"<<endl;
cout<<"\t1.Ingresar alumnos"<<endl;
cout<<"\t2.Buscar un alumno"<<endl;
cout<<"\t3.Modificar nota"<<endl;
cout<<"\t4.Media de todas las notas"<<endl;
cout<<"\t5.Media de todas las notas inferiores a 5"<<endl;
cout<<"\t6.Alumno con mejores notas"<<endl;
cout<<"\t7.Alumno con peores notas"<<endl;
cout<<"\t8.Salir"<<endl;
cout<<"\tESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;

}while(op<1||op>8);
}
/*
.- En una escuela almacenan la información de sus alumnos utilizando arreglos
unidimensionales. La siguiente información de cada alumno en una estructura.
• Matricula (entero)
• Nombre y apellido (cadena de caracteres)
• Promedios de las materias (arreglo unidimensional de reales)

*/
#include<iostream>
#include <stdlib.h>
#include<conio.h>
#include <iomanip>
#include <stdio.h>
#include<string.h>
#define max 100
using namespace std;
struct Alumno
{ char nombre[40];
float nota;
};
void numAlumnos(int &n);
void ingreso(Alumno A[], int n);
void reporte(Alumno A[], int n);
void ordenAlfabetico(Alumno A[], int n);
void ordenMerito(Alumno A[], int n);
int main()
{Alumno A[max];
int n;
numAlumnos(n);
ingreso(A,n);
ordenAlfabetico(A,n);
cout<<"Lista en orden alfabetico"<<endl;
reporte(A,n);
ordenMerito(A,n);
cout<<"Lista en orden de Merito"<<endl;
reporte(A,n);
system("pause");
return 0;
}
void numAlumnos(int &n)
{
do
{cout<<"Numero de alumnos : ";
cin>>n; }while(n<=0);
}
void ingreso(Alumno A[], int n)
{int i;
for(i=0;i<n;i++)
{cout<<"Datos del alumno"<<i+1<<endl;
cout<<"Nombre : ";
fflush(stdin);
gets(A[i].nombre);
do
{cout<<"Nota : ";
cin>>A[i].nota;
}while(A[i].nota<0 || A[i].nota>20);
}
}
void reporte(Alumno A[], int n)
{int i;
for(i=0;i<n;i++)
cout<<A[i].nombre<<"t "<<A[i].nota<<endl;
}
void ordenAlfabetico(Alumno A[], int n)
{int i,j; Alumno temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(strcmp(A[i].nombre,A[j].nombre)>0)
{temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
void ordenMerito(Alumno A[], int n)
{int i,j;
Alumno temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(A[i].nota<A[j].nota)
{ temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
/*
Una comercializadora farmacéutica distribuye productos a distintas farmacias de la ciudad
de Lima.
Para ello almacena en un arreglo unidimensional, ordenado de menor a mayor en función de
la clave,
toda la información relativa a sus productos:
• Clave del producto (entero)
• Nombre del producto (cadena de caracteres)
• Existencia (entero)
• Precio unitario (real)
Realice un algoritmo o programa en C++ que construya los siguientes módulos:
a) Ventas. El modulo registra la venta de diferentes productos a un cliente.
Obtiene el total de la venta y actualiza el inventario correspondiente.
El fin de datos para la venta de un cliente es 0.

b) Reabastecimiento. Este módulo permite incorporar productos cantidades al inventario.


El fin de datos es 0.

c) Nuevos productos. El modulo permite incorporar nuevos productos al inventario.


Los productos se encuentran ordenados en el arreglo por su clave. El fin de datos es 0.

d) Inventario. El modulo permite mostrar el inventario completo.

*/
struct producto /* Declaración de la estructura producto. */
{
int clave;
char nombre[15];
float precio;
int existencia;
};
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define almacenaMAX 30//capacidad limite del inventario

using namespace std;


void NumeroDatos(int &n);
void LecturaDatos( producto A[],int &n);
int busxcod(producto A[],int n,int codigo);
void ventas(producto A[],int n);
void NuevoProducto(producto A[],int &n);
void reabastecimiento(producto A[],int n);
void inventario(producto A[],int n);
int menu();

int main ()
{
int op,tm;
producto inven[100];
do{
system("cls");
op=menu();
switch(op){
case 1:
system("cls");
LecturaDatos(inven,tm);
getche();break;
case 2:
system("cls");
ventas(inven,tm);
getche();break;
case 3:
system("cls");
reabastecimiento(inven,tm);
getche();break;
case 4:
system("cls");
NuevoProducto(inven,tm);
getche();break;
case 5:
system("cls");
inventario(inven,tm);
getche();break;

}while(op!=6);
system("cls");
cout<<"GRACIAS POR USAR ESTA APLICACION....!!!!"<<endl;

getche();
return(0);
}

int busxcod(producto A[],int n,int codigo)


{int i,pos;
pos=-1;
for(i=0;i<n;i++)
{
if(A[i].clave==codigo)
{
pos=i;
}

return pos;
}
void LecturaDatos( producto A[],int &n)
{
int i,op,p;
n=0;

do
{
cout<<"Digite la clave del producto["<<n+1<<"]: ";
cin>>A[n].clave;

p=busxcod(A,n,A[n].clave);
if(p==-1)
{cout<<"Digite el nombre del producto["<<n+1<<"]: ";
fflush(stdin);
gets(A[n].nombre);
cout<<"Existencia: ";//cantidad actual
cin>>A[n].existencia;
cout<<"Precio unitario en soles:";
cin>>A[n].precio;
n++;
}
else
cout<<"El codigo ya esta registrado "<<endl;
cout<<"\nHay mas productos por ingresar?si[1]-no[0]: ";
cin>>op;
}while(op==1);

void ventas(producto A[],int n)


{
system("cls");

int cla, can,i,res;


float tot,par;
cout<<"Ingrese la clave del producto a vender ";
cin>>cla;

tot= 0;
while(cla!=0)
{

i=0;
while((i<n)&&(A[i].clave<cla))
{
i++;
}
if((i==n)||A[i].clave>cla)
{
cout<<"La clave del producto no existe...!";

}
else
{

if(A[i].existencia>=can)
{
cout<<"\nIngrese cantidad a vender de"<<A[i].nombre<<":";
cin>>can;
A[i].existencia=A[i].existencia-can;/* Se actualiza el stock del
producto. */
par=A[i].precio*can;
tot=tot+par;

else
{
cout<<"No existe en el inventario la cantidad solicitada , solo hay
"<<A[i].existencia<<" unidades"<<endl;
cout<<"Desea llevar todos los que quedan? SI[1]--NO[0]"<<endl;
cin>>res;

if(res==1)
{
par=A[i].precio*A[i].existencia;
A[i].existencia=0;
tot=tot+par;
}
}

}/**/
cout<<"Ingrese el codigo de otro producto: --->PRESIONE [0] PARA SALIR";
cin>>cla;
}

cout<<"TOTAL DE VENTAS ES :"<<tot<<" soles"<<endl;

void reabastecimiento(producto A[],int n)


{
int cla,can,i;
cout<<"Ingrese clave del producto : ";
cin>>cla;
while(cla!=0)
{

i=0;
while((i<n)&&(A[i].clave<cla))
i++;
if((i==n)||(A[i].clave>cla))
cout<<"LA CLAVE DEL PRODUCTO INGRESADO NO EXISTE!!"<<endl;
else
{

cout<<"\nPRODUCTO ENCONTRADO....!"<<endl;
cout<<"Producto: "<<A[i].nombre<<endl;
cout<<endl<<endl;
cout<<"\nCantidad a reabastecer:";
cin>>can;
A[i].existencia+=can;

}
cout<<"Ingrese el codigo de otro producto: --->PRESIONE [0] PARA SALIR"<<endl ;
cin>>cla;
}

void NuevoProducto(producto A[],int &n)


{
int cla,i,j;
cout<<"Ingrese el codigo del nuevo producto: --->PRESIONE [0] PARA SALIR ";
cin>>cla;
while((n<30)&&(cla!=0))
{
i=0;
while((i<n)&&(A[i].clave<cla))

i++;
if(i==n)
{

A[i].clave=cla;
cout<<"\nNombre:";
fflush(stdin);
gets(A[i].nombre);
cout<<"\nPrecio:";
cin>>A[i].precio;
cout<<"\nExistencia:";
cin>>A[i].existencia;
n=n+1;
}
else
if(A[i].clave==cla)
{
cout<<"\nEl producto ya se encuentra en el inventario!!";

}
else
{

for(j=n;j>i;j--)//insertar nuevo prodcuto en el array


{

A[j]=A[j-1];
A[i].clave=cla;
}
cout<<"Digite el nombre:";
fflush(stdin);
gets(A[i].nombre);
cout<<"precio:";
cin>>A[i].precio;
cout<<"cantidad:";
cin>>A[i].existencia;
n=n+1;//aumenta el maño del array , ya que se ingreso un producto nuevo
}
cout<<"Ingrese otra clave de prodcuto:PRESIONE [0] SI DESEA SALIR";
cin>>cla;
if(n==almacenaMAX)//capacidad maxima del inventario
{
cout<<"SUPERO LA CANTIDA LIMITE DE ESPACIO EN EL INVENTARIO";
}

}
void inventario(producto A[],int n)
{
int i;
cout<<setw(40)<<"INVENTARIO"<<endl;
cout<<setw(40)<<"**********"<<endl;
cout<<endl<<endl;
cout<<setw(15)<<"CODIGO"<<setw(15)<<"NOMBRE"<<setw(15)<<"Precio"<<setw(20)<<"CANTIDAD
ACTUAL"<<endl;
cout<<"\t--------------------------------------------------------"<<endl;
for(i=0;i<n;i++)
{

cout<<setw(13)<<A[i].clave<<setw(15)<<A[i].nombre<<setw(13)<<A[i].precio<<setw(17)<<A[i].exi
stencia<<endl;
}

}
int menu()
{

int op;
do{
system("cls");
cout<<"\t\tMENU"<<endl;
cout<<"\t\t****"<<endl;
cout<<"\t1.Ingreso de datos"<<endl;
cout<<"\t2.Ventas"<<endl;
cout<<"\t3.Reabastecimiento"<<endl;
cout<<"\t4.Nuevos productos"<<endl;
cout<<"\t5.Inventario"<<endl;
cout<<"\t6.SALIR"<<endl;
cout<<"\tESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;

}while(op<1||op>6);

return op;

}
/*
Diseñar un algoritmo que imprima todos los nombres, apellidos y edades de todos los
varones nacidos entre dos fechas ingresadas desde el teclado. Para lo cual deberá tener
en cuenta el siguiente esquema:
Persona.

*/
#include<iostream>
#include <stdlib.h>
#include<conio.h>
#include <iomanip>
#include <stdio.h>
#include<string.h>
#define dim 20
using namespace std;
struct fecha
{
int dia;
int mes;
int ano;
};

struct persona
{int codigo;
char ape[20];
char nom[20];
fecha fechanac;
int edad;
char sexo;
};
int main()
{int i,n,di,mi,ai,df,mf,af;
persona p[dim];
cout<<"Ingrese Numero de personas ";
cin>>n;
for (i=0; i<n; i++)
{cout<<"Ingrese datos de la persona "<<i+1<<endl;
cout<<"Codigo : ";
cin>>p[i].codigo;
cout<<"Apellidos ";
fflush(stdin);
gets(p[i].ape);
cout<<"Nombres ";
fflush(stdin);
gets(p[i].nom);
cout<<"Ingresar fecha de nacimiento : ";
cout<<"Dia : ";
cin>>p[i].fechanac.dia;
cout<<"Mes : ";
cin>>p[i].fechanac.mes;
cout<<"Año : ";
cin>>p[i].fechanac.ano;
cout<<"Edad : ";
cin>>p[i].edad;
cout<<"Sexo : ";
cin>>p[i].sexo;
}
system("cls");
cout<<" datos de la persona "<<endl;
for (i=0; i<n; i++)
{cout<<"-----------------------------------------------------"<<endl;
cout<<"Codigo : "<<p[i].codigo<<endl;
cout<<"Apellidos : "<<p[i].ape<<endl;
cout<<"Nombres : "<<p[i].nom<<endl;
cout<<"Edad : "<<p[i].edad<<endl;
cout<<"Sexo : "<<p[i].sexo<<endl;
cout<<"Fecha de Nac :
"<<p[i].fechanac.dia<<"/"<<p[i].fechanac.mes<<"/"<<p[i].fechanac.ano<<endl;
cout<<"-----------------------------------------------------"<<endl;
}
getche();
return 0;
}
/*

cout<<"Ingrese fecha Inicial : ";


cout<<"dia : ";
cin>>di;
cout<<"Mes : ";
cin>>mi;
cout<<"Año : ";
cin>>ai;
cout<<"Ingrese fecha Final : ";
cout<<"dia : ";
cin>>df;
cout<<"Mes : ";
cin>>mf;
cout<<"Año : ";
cin>>af;

for (i=0; i<n; i++)


{if(p[i].fechanac.ano>=ai && p[i].fechanac.ano<=af)
if(p[i].fechanac.mes>=mi && p[i].fechanac.mes<=mf)
if( p[i].fechanac.dia>=di && p[i].fechanac.dia<=df)
if( p[i].sexo=='v')
{cout<<"Nombres : "<<p[i].nom<<endl;
cout<<"Apellidos : "<<p[i].ape<<endl;
cout<<"Edad "<<p[i].edad<<endl;
}

}
*/
En una escuela se almacena información sobre los alumnos, en un arreglo unidimensional de
registros llamada ESC.
Por cada alumno se almacena la siguiente información: Código, nombre, número de semestres
cursados,
calificación promedio por semestre (arreglo unidimensional de tipo real, máxima para 10
elementos),
especialidad.
Dada la información de N alumnos, realizar las siguientes operaciones;
a) listar nombre y matricula de los estudiantes que tengan un promedio general mayor 10
b) Listar nombre y matricula de los estudiantes, de Economía, que hayan obtenido un
promedio superior a 10 en
todos los semestres cursados hasta el momento.
c) Escribir nombre y matricula del alumno que tiene el mayor promedio en Ingeniería de
Sistemas.

*/

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MAX 20

using namespace std;


//estructura
struct alumno{
char nombre[20];
char especialidad[20];
int clave;
int semestrescursados;
float semestre[MAX];
float calificacion;
};
//prototipos
int menu();
int buscaCod(alumno alum[],int n,int codigo);
void ingresoDato(alumno alum[],int &n);

void mostrareco(alumno Al[],int n);


void mostrarmay10(alumno Al[],int n);
void primerpuesto(alumno Al[],int n);

int main ()
{
alumno al[MAX];
int n,op;
do
{
system("cls");
op=menu();
switch(op)
{
case 1:
ingresoDato(al,n);
getche();break;

case 2:
mostrarmay10(al,n);
getche();break;
case 3: mostrareco(al,n);
getche();break;
case 4: primerpuesto(al,n);
getche();break;
}

}while(op!=5);
system("cls");
cout<<"GRACIAS POR USAR ESTA APLICACION"<<endl;

getche();
return(0);
}
int buscaCod(alumno Al[],int n,int codigo)

{
int i,pos;
pos=-1;
for(i=0;i<n;i++)
if(Al[i].clave==codigo)
pos=i;
return pos;

}
void ingresoDato(alumno Al[],int &n)
{
system("cls");
int op,p,j,cantidad;
float suma;
n=0;

do
{
cout<<endl<<endl;
suma=0;
do
{
cout<<"Ingrese codigo del alumno["<<n+1<<"]: ";
cin>>Al[n].clave;
}while(Al[n].clave<1);

p=buscaCod(Al,n,Al[n].clave);
if(p==-1)
{
cout<<"Ingrese nombre del alumno["<<n+1<<"]: ";
fflush(stdin);
gets(Al[n].nombre);
cout<<"Ingrese la especialidad: ";
fflush(stdin);
gets(Al[n].especialidad);
strupr(Al[n].especialidad);

cout<<"semestres cursados del alumno["<<n+1<<"]: ";


cin>>Al[n].semestrescursados;
cantidad=Al[n].semestrescursados;
for(j=0;j<cantidad;j++)
{
do
{
cout<<"Promedio del semestre["<<j+1<<"]:";
cin>>Al[n].semestre[j];

}while(Al[n].semestre[j]<0||Al[n].semestre[j]>20);
suma = suma + Al[n].semestre[j];

}
Al[n].calificacion = suma / (Al[n].semestrescursados);
cout<<"calificacion Promedio del alumno["<<n+1<<"]:"<<Al[n].calificacion<<endl;
n++;
}
else
{
cout<<"EL CODIGO YA FUE REGISTRADO ANTERIORMENTE"<<endl;
cout<<"\n";

}
cout<<"HAY MAS ALUMNOS POR INGRESAR? SI[1]--NO[0]: ";
cin>>op;
if(op<0||op>1)
{
cout<<"Error,HAY MAS ALUMNOS POR INGRESAR?SI[1]--NO[0]: ";
cin>>op;
}

}while(op!=0||op==1);
system("cls");
cout<<"Ingreso de datos de alumnos con exito....!!"<<endl;
}

void mostrarmay10(alumno Al[],int n)


{
system("cls");
int i;
float prom,mayor=0;
cout<<"\n";
cout<<setw(15)<<"Nota"<<setw(15)<<"Nombre"<<endl;
cout<<setw(15)<<"****"<<setw(15)<<"******"<<endl;
cout<<endl;

for(i=0;i<n;i++)
{
if(Al[i].calificacion>10)
{
mayor=Al[i].calificacion;
cout<<setw(15)<<Al[i].calificacion<<setw(15)<<Al[i].nombre<<endl;

}
}
void mostrareco(alumno Al[],int n)
{
system("cls");
int i,j,aux=0;
float prom,mayor;

cout<<"ALUMNOS CON NOTAS MAYORES DE 10 y ESPACIALIDAD 'ECONOMIA'"<<endl;


cout<<"\n";
cout<<setw(15)<<"PROMEDIO
GENERAL"<<setw(15)<<Al[i].nombre<<setw(15)<<Al[i].especialidad<<endl;

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{

if(Al[i].semestre[j]>10&&(strcmp(Al[i].especialidad,"ECONOMIA")==0))
{
for(i=0;i<n;i++)
{
if(strcmp(Al[i].especialidad,"ECONOMIA")==0)
{

cout<<setw(15)<<Al[i].calificacion<<setw(15)<<Al[i].nombre<<setw(15)<<Al[i].especialidad<<en
dl;
}

}
}

}
void primerpuesto(alumno Al[],int n)
{
system("cls");
cout<<"\nALUMNO CON MAYOR PROMEDIO EN LA FACULTAD DE INGENIERIA DE SISTEMAS"<<endl;
system("cls");
char nom[MAX],esp[MAX];
int i,cod,pos;
float mayor=0,cal;
//proceso

cout<<setw(15)<<"Codigo"<<setw(15)<<"Nombre"<<setw(15)<<"Especialidad"<<setw(15)<<"Promedio
"<<endl;
cout<<endl;
for(i=0;i<n;i++)
{
if(Al[i].calificacion > mayor)
{
mayor= Al[i].calificacion;

}
for(i=0;i<n;i++)
{
if(Al[i].calificacion==mayor)

cout<<setw(15)<<Al[i].clave<<setw(15)<<Al[i].nombre<<setw(15)<<Al[i].especialidad<<setw(15)<
<Al[i].calificacion<<endl;
}

}
int menu()
{
int op;
do
{
system("cls");
cout<<"\tMENU"<<endl;
cout<<"\t****"<<endl;
cout<<"1.Ingreso informacion de alumnos"<<endl;
cout<<"2.Mostrar alumnos con promedio general mayor 10"<<endl;
cout<<"3.Mostrar alumnos de 'ECONOMIA' con notas >= a 10 en todos los
semestres"<<endl;
cout<<"4.Alumno con mayor promedio"<<endl;
cout<<"5.SALIR"<<endl;
cout<<"ESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;

}while(op<1||op>5);
return op;
}
/*
Al momento de su ingreso al hospital, a un paciente se le solicita los siguientes datos:
Nombre, edad, sexo, domicilio (calle, numero, ciudad), teléfono y seguro (1 si el
paciente tiene seguro medico y 0 en caso contrario)
Construya un programa para realizar las siguientes operaciones.
a) Listar los nombres de todos los pacientes hospitalizados
b) Obtener el porcentaje de hombres y mujeres hospitalizados
c) Dado el nombre de un paciente, listar todos los datos relacionados con dicho paciente
d) Calcular el porcentaje de pacientes que poseen seguro.

*/
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define max 20
struct hospital
{
char nombre[max];
int clave;
int edad;
char sexo[max];
long telefono;
int seguro;

};
struct domicilio
{
char calle[max];
int numero;
char ciudad[max];
struct hospital dom;

};
//prototipos
void ingresaDato(hospital pa[],domicilio dom[],int &n);
int busxcod(hospital pa[],int n,int codigo);
void mostrarPorcentaje(hospital pa[],domicilio dom[],int n);
void mostrarPacientes(hospital pa[],domicilio dom[],int n);
void buscarpaciente(hospital pa[],domicilio dom[],int n);
void porcentajeSeguro(hospital pa[],domicilio dom[],int n);
int menu();

using namespace std;

int main ()
{
int op,n;
do
{
hospital p[max];
domicilio d[max];
system("cls");
op=menu();
switch(op)
{
case 1:ingresaDato(p,d,n);
getche();break;

case 2: mostrarPacientes(p,d,n);
getche();break;
case 3: mostrarPorcentaje(p,d,n);
getche();break;
case 4: buscarpaciente(p,d,n);
getche();break;
case 5: porcentajeSeguro(p,d,n);
getche();break;
}

}while(op!=6);
system("cls");
cout<<"GRACIAS POR USAR ESTA APLICACIO"<<endl;

getche();
return(0);
}
int busxcod(hospital pa[],int n,int codigo)
{
int i,pos;
pos=-1;
for(i=0;i<n;i++)
if(pa[i].clave==codigo)
pos=i;
return pos;
}
void ingresaDato(hospital pa[],domicilio dom[],int &n)
{
system("cls");
int op,p;

n=0;
do
{
cout<<"Ingrese el codigo del paciente ["<<n+1<<"]: ";
cin>>pa[n].clave;
p=busxcod(pa,n,pa[n].clave);
if(p==-1)
{
cout<<"Ingrese el nombre del paciente ["<<n+1<<"]: ";
fflush(stdin);
gets(pa[n].nombre);
do
{
cout<<"Ingrese la edad del paciente ["<<n+1<<"]: ";
cin>>pa[n].edad;
}while(pa[n].edad<0);
do
{
cout<<"Ingrese sexo M/F:";
fflush(stdin);
cin>>pa[n].sexo;
strupr(pa[n].sexo);
}while((strcmp(pa[n].sexo,"M")!=0)&&(strcmp(pa[n].sexo,"F")!=0));

/*if(strcmp(pa[n].sexo,"M")==0)
{
contar++;
}*/

cout<<"Ingrese informacion del domicilio del paciente["<<n+1<<"]: ";


cout<<"\nIngrese la ciudad: ";
fflush(stdin);
gets(dom[n].ciudad);
cout<<"Ingrese la calle: ";
fflush(stdin);
gets(dom[n].calle);
do
{
cout<<"Ingrese numero de la calle: ";
cin>>dom[n].numero;
}while(dom[n].numero<0);
do
{
cout<<"Ingrese el telefono: ";
cin>>pa[n].telefono;
}while(pa[n].telefono<1);
do
{
cout<<"Cuenta con seguro? Si[1]/No[0]: ";
cin>>pa[n].seguro;
}while(pa[n].seguro<0||pa[n].seguro>1);
n++;

}
else
{
cout<<"Error,el codigo ya existe...!"<<endl;
}
cout<<"\nHay mas pacientes por ingresar?si[1]-no[0]: ";
cin>>op;
if(op<0||op>1)
{
cout<<"\nHay mas pacientes por ingresar?si[1]-no[0]: ";
cin>>op;
}
}while(op!=0||op==1);

}
void mostrarPacientes(hospital pa[],domicilio dom[],int n)
{
system("cls");
int i;
cout<<setw(10)<<"CODIGO"<<setw(15)<<"NOMBRE"<<setw(15)<<"EDAD"<<endl;
for(i=0;i<n;i++)
{
cout<<setw(10)<<pa[i].clave<<setw(15)<<pa[i].nombre<<setw(15)<<pa[i].edad<<endl;
}
}
void mostrarPorcentaje(hospital pa[],domicilio dom[],int n)

{
system("cls");
int i,contar=0;
float promedio1,promedio2;
for(i=0;i<n;i++)
{
if(strcmp(pa[i].sexo,"M")==0)
{
contar++;
}
}

promedio1=contar/n;//promedio de hombres
promedio1=promedio1*100;
promedio2=(n-contar)/n;//promedio mujeres
promedio2=promedio2*100;
cout<<"El promedio de hombres es: "<<promedio1<<endl;
cout<<"El promedio de mujeres es: "<<promedio2<<endl;

void buscarpaciente(hospital pa[],domicilio dom[],int n)


{
system("cls");
int i,aux;
char nom[30];

cout<<"Ingrese el nombre del paciente : ";


cin>>nom;

for(i=0;i<n;i++)
{if(strcmp(pa[i].nombre,nom)==0)
{
aux=1;
cout<<"EDAD : "<<pa[i].edad<<endl;
cout<<"SEXO : "<<pa[i].sexo<<endl;
cout<<"TELEFONO : "<<pa[i].telefono<<endl;
cout<<"*DIRECCION*"<<endl;
cout<<"CIUDAD: "<<dom[i].ciudad<<endl;
cout<<"CALLE : "<<dom[i].calle<<endl;
cout<<"NUMERO : "<<dom[i].numero<<endl;
i=n;
}

}
if(aux!=1)
{
cout<<"\nNombre no registrado."<<endl;
}
}

void porcentajeSeguro(hospital pa[],domicilio dom[],int n)


{
system("cls");
int i,contar=0;
float promedio;
for(i=0;i<n;i++)
{
if(pa[i].seguro==1)
{
contar++;
}
}
promedio=contar/n;
promedio=promedio*100;
cout<<"\nEL PROMEDIO DEPACIENTES CON SEGURO ES :"<<promedio<<endl;
}
int menu()
{
int op;
do
{
system("cls");
cout<<"\t\tMENU"<<endl;
cout<<"\t\t****"<<endl;
cout<<"\t1.Ingresar pacientes"<<endl;
cout<<"\t2.Mostrar pacientes"<<endl;
cout<<"\t3.Mostrar porcentajes de varones y muejres e.e"<<endl;
cout<<"\t4.Buscar paciente por nombre"<<endl;
cout<<"\t5.Porcentaje de personas con seguro"<<endl;
cout<<"\t6.SALIR"<<endl;
cout<<"\tESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;

}while(op<1||op>6);
return op;
}
/*
/*

.- Una inmobiliaria tiene información disponible sobre departamentos en renta.


De cada departamento se conoce:
Clave, Extensión, Ubicación (E,B,R,M), Precio y Disponible(0,1).
Diariamente acuden muchos clientes a la inmobiliaria solicitando información.
Escriba un algoritmo o programa capaz de realizar las siguientes operaciones:
• Listar los datos de todos los departamentos disponibles que tengan un precio
inferior o igual a un precio P.
• Listar los datos de los departamentos disponibles que tengan una superficie mayor o
igual a un cierto valor dado E y una ubicación excelente.
• Listar el monto de la renta de todos los departamentos alquilados.

*/

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define max 20

using namespace std;


struct departamento
{
int clave;
float extension;
char ubicacion[max];
float precio;
int disponible;

};
int menu();
int busxcod(departamento depa[],int n,int codigo);
void ingresaDato(departamento depa[],int &n);
void precioReferen(float &p, float &e);
void listarDisponible(departamento depa[],int n,float p);
void listarDisponible2(departamento depa[],int n,float e);
void mostrarDepas(departamento depa[],int n);

int main ()
{
departamento depa[max];
int op,n;
float p,e;
do
{
system("cls");
op=menu();
switch(op)
{
case 1:
ingresaDato(depa,n);
getche();break;
case 2:
precioReferen(p,e);
getche();break;

case 3:
listarDisponible(depa,n,p);
getche();break;
case 4:
listarDisponible2(depa,n,e);
getche();break;

case 5:mostrarDepas(depa,n);
getche();break;
}

}while(op!=6);
system("cls");
cout<<"GRACIAS POR USA ESTA APLICACION....!"<<endl;

getche();
return(0);
}
int busxcod(departamento depa[],int n,int codigo)
{
int i,pos;
pos=-1;
for(i=0;i<n;i++)
if(depa[i].clave==codigo)
pos=i;
return pos;
}
void ingresaDato(departamento depa[],int &n)
{
system("cls");
int op,p,d;

n=0;
do
{
cout<<"Digite la clave del departamento ["<<n+1<<"]: ";
cin>>depa[n].clave;
p=busxcod(depa,n,depa[n].clave);
if(p==-1)
{
cout<<"Digite la extension del departamento["<<n+1<<"]: ";
cin>>depa[n].extension;
cout<<"Digite la ubicacion del departamento ["<<n+1<<"]: ";
fflush(stdin);
gets(depa[n].ubicacion);
cout<<"Digite el precio del departamento ["<<n+1<<"]: ";
cin>>depa[n].precio;
cout<<"Digite si esta disponible el departamento["<<n+1<<"]----> Si[1]/No[0]: ";
cin>>depa[n].disponible;
n++;

}
else
{
cout<<"ERROR, EL CODIGO YA EXISTE"<<endl;
}
cout<<"\nHay mas productos por ingresar?si[1]-no[0]: ";
cin>>op;
}while(op!=0);

}
void precioReferen(float &p,float &e)
{

system("cls");
cout<<"Digite el precio de referencia 'p': ";
cin>>p;
cout<<"Digite la superficie de referencia 'E':"<<endl;
cin>>e;
cout<<"\nREFERENCIAS INGRESAS CON EXITO....!"<<endl;
}
void listarDisponible(departamento depa[],int n,float p)
{
system("cls");
int i,d;
cout<<"DEPARTAMENTOS DISPONIBLES"<<endl;
cout<<endl<<endl;

cout<<setw(10)<<"CODIGO"<<setw(10)<<"UBICACION"<<setw(10)<<"PRECIO"<<endl;
cout<<setw(10)<<"******"<<setw(10)<<"*********"<<setw(10)<<"******"<<endl;
cout<<endl;
for(i=0;i<n;i++)
{
if(depa[i].disponible==1&&p>=depa[i].precio)
{

cout<<setw(10)<<depa[i].clave<<setw(10)<<depa[i].ubicacion<<setw(10)<<depa[i].precio<<setw(1
0)<<endl;

}
void listarDisponible2(departamento depa[],int n,float e)
{

system("cls");
int i,d,p,aux;
cout<<"DEPARTAMENTOS DISPONIBLES "<<endl;
cout<<endl<<endl;
cout<<setw(15)<<"CODIGO"<<setw(15)<<"UBICACION"<<setw(15)<<"EXTENION"<<endl;
cout<<setw(15)<<"******"<<setw(15)<<"*********"<<setw(15)<<"********"<<endl;
cout<<endl<<endl;

for(i=0;i<n;i++)
{
if(depa[i].disponible==1&&depa[i].extension>=e)
{
aux=1;

cout<<setw(15)<<depa[i].clave<<setw(15)<<depa[i].ubicacion<<setw(15)<<depa[i].extension<<set
w(15)<<endl;

}
void mostrarDepas(departamento depa[],int n)
{
system("cls");
int i;
cout<<setw(40)<<"DEPARTAMENTOS"<<endl;
cout<<setw(40)<<"*************"<<endl;

cout<<setw(15)<<"CODIGO"<<setw(15)<<"EXTENSION"<<setw(15)<<"UBICACION"<<setw(15)<<"PRECIO"<
<endl;

cout<<setw(15)<<"******"<<setw(15)<<"*********"<<setw(15)<<"*********"<<setw(15)<<"******"<
<endl;
cout<<endl<<endl;
for(i=0;i<n;i++)
{

cout<<setw(15)<<depa[i].clave<<setw(15)<<depa[i].extension<<setw(15)<<depa[i].ubicacion<<set
w(15)<<depa[i].precio<<endl;
}

}
int menu()
{
int op;
do
{
system("cls");
cout<<"\tMENU"<<endl;
cout<<"\t****"<<endl;
cout<<"1.Ingresar informacion de departamentos"<<endl;
cout<<"2.Ingresar referencias"<<endl;
cout<<"3.Mostrar departamentos disponiblescon precio <= a P"<<endl;
cout<<"4.Mostrar departamentos disponibles con superficie >= a E + ubicacion
excelente"<<endl;
cout<<"5.Listar el monto de la renta de todos los departamentos alquilados"<<endl;
cout<<"6.SALIR"<<endl;
cout<<"ESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;
}while(op<1||op>6);
}
/*
.- Tenemos un array con la información de nuestros productos, por cada producto
almacenamos su código,
descripción, stock actual y stock mínimo.
Se trata de obtener otro array que contenga
los productos de los que halla que hacer pedidos porque su stock sea inferior al mínimo,
tal que al
proveedor le tenemos que dar como datos la identificación del producto y la cantidad que
pedimos,
que coincidirá con el stock mínimo.
Normalmente trabajamos con 100 productos.

*/
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define max 20

using namespace std;


//esturcturas
struct producto
{
int clave;
char nombre[max];
int stock;
int stock_minimo;

};
struct pedidos
{
struct producto cod;
int cantidad;
};
//prototipos
int menu();

int busxcod(producto fijo[],int &n,int codigo);


void ingresaDato(producto A[],int &n);
void mostrarProductos(producto A[],int n);
void necesita(producto A[],pedidos B[],int n);

int main ()
{
producto fijo[max];
pedidos ped[max];
int op,i,n;
do
{
system("cls");
op=menu();
switch(op)
{
case 1:
ingresaDato(fijo,n);
getche();break;

case 2:mostrarProductos(fijo,n);
getche();break;

case 3:
necesita(fijo,ped,n);
getche();break;

}
}while(op!=4);
system("cls");
cout<<"GRACIAS POR USAR ESTA APLICACION"<<endl;

getche();
return(0);
}

//funcion para buscar codigo


int busxcod(producto A[],int &n,int codigo)
{
int i,pos;
pos=-1;
for(i=0;i<n;i++)
if(A[i].clave==codigo)
pos=i;
return pos;
}
//proceso para ingresar datos de los N productos
void ingresaDato(producto A[],int &n)
{
system("cls");
int op,posi;

n=0;
do
{
cout<<"Digite el codigo del producto["<<n+1<<"]: ";
cin>>A[n].clave;
posi=busxcod(A,n,A[n].clave);
if(posi==-1)
{
cout<<"Nombre del producto["<<n+1<<"]: ";
fflush(stdin);
gets(A[n].nombre);
cout<<"Digite el stock actual del producto["<<n+1<<"]: ";
cin>>A[n].stock;
cout<<"Digite el stock minimo del producto["<<n+1<<"]: ";
cin>>A[n].stock_minimo;
n=n+1;

}
else
{
cout<<"\nERROR,EL CODIGO YA EXSITE"<<endl;
cout<<"HAY MAS PRODUCTOS POR INGRESAR? SI[1]--NO[0]: ";
cin>>op;

cout<<"HAY MAS PRODUCTOS POR INGRESAR? SI[1]--NO[0]: ";


cin>>op;

}while(op!=0);

}
void mostrarProductos(producto A[],int n)
{
system("cls");
int i;

cout<<setw(15)<<"CODIGO"<<setw(20)<<"NOMBRE DE PRODUCTO"<<setw(20)<<"CANTIDAD
ACTUAL"<<setw(20)<<"STOCK MINIMO"<<endl;

cout<<setw(15)<<"******"<<setw(20)<<"******************"<<setw(20)<<"***************"<<setw
(20)<<"************"<<endl;
for(i=0;i<n;i++)
{
cout<<setw(15)<<A[i].clave<<setw(20)<<A[i].nombre<<setw(20)<<A[i].stock<<setw(20)<<A[i].stoc
k_minimo<<endl;

}
cout<<endl<<endl;

}
void necesita(producto A[],pedidos B[],int n)
{
system("cls");
int i;
for(i=0;i<n;i++)
{
if(A[i].stock_minimo>A[i].stock)
{
B[i].cantidad=A[i].stock_minimo-A[i].stock;
B[i].cod.clave=A[i].clave;

}
cout<<setw(15)<<"CANTIDAD A PEDIR"<<setw(15)<<"PRODUCTO"<<endl;
cout<<setw(15)<<"******************"<<setw(15)<<"********"<<endl;
cout<<endl<<endl;

for(i=0;i<n;i++)
{
// cout<<"EL producto "<<i+1<<" se le necesita agregar "<<B[i].cantidad<<" mas
"<<endl;
cout<<setw(15)<<B[i].cantidad<<setw(15)<<A[i].nombre<<endl;

int menu()
{
int op;
do
{
system("cls");
cout<<"\t\tMENU"<<endl;
cout<<"\t\t****"<<endl;
cout<<"\t1.Ingresar datos de productos"<<endl;
cout<<"\t2.Mostrar datos de productos "<<endl;
cout<<"\t3.Cantidades a perdir"<<endl;
cout<<"\t4.SALIR"<<endl;
cout<<"\tESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;

}while(op<1||op>4);

return op;
}
/*
El departamento de personal de una facultad tiene registrado los siguientes campos:
Nombre, sexo y edad de cada uno de sus profesores.
Escriba un programa que calcule y muestre lo siguiente:
• Edad promedio del grupo de profesores.
• Nombre del profesor más joven del grupo.
• Nombre del profesor de mayor edad.
• Número de profesores con edad mayor al promedio.
• Número de profesores con edad menor al promedio.

*/
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define max 20

using namespace std;


struct profesores
{
char nombre[max];
int edad;
char sexo[5];

};

void ingresaDato(profesores p[],int &n);


void mostrarDato(profesores p[],int n);
float promEd(profesores p[],int n);
void masLongevo(profesores p[],int n);
void masJoven(profesores p[],int n);
void mayorAprom(profesores p[],int n);
void menorAprom(profesores p[],int n);
int menu();

int main ()
{
profesores prof[max];
int op,c;
float p;

do{

system("cls");
op=menu();
switch(op)
{
case 1:
ingresaDato(prof,c);
getche();break;
case 2:
mostrarDato(prof,c);
getche();break;
case 3: system("cls");
p=promEd(prof,c);
cout<<"EL PROMEDIO DE PROFESORES ES: "<<p<<endl;
getche();break;

case 4:
masLongevo(prof,c);

getche();break;
case 5:
masJoven(prof,c);
getche();break;
case 6:
mayorAprom(prof,c);
getche();break;
case 7:
menorAprom(prof,c);
getche();break;

} while(op!=8);
system("cls");
cout<<"GRACIAS POR USAR ESTA APLICACION"<<endl;

getche();
return(0);
}

void ingresaDato(profesores p[],int &n)


{
system("cls");
int op;
n=0;

cout<<"INGRESO DE DATOS"<<endl;
do
{
cout<<"Digite su nombre del profesor["<<n+1<<"]: ";
fflush(stdin);
gets(p[n].nombre);
do
{
cout<<"Digite su edad: ";
cin>>p[n].edad;
}while(p[n].edad<1);

cout<<"Digite su sexo M/F:";


fflush(stdin);
gets(p[n].sexo);
n++;
cout<<"\nDesea ingresar mas datos? SI[1]--NO[0]: "<<endl;
cin>>op;
if(op<0||op>1)
{
cout<<"Digite SI[1]--NO[0]: "<<endl;
cin>>op;
}
}while(op!=0||op==1);

void mostrarDato(profesores p[],int n)


{
system("cls");
int i;
cout<<setw(15)<<"NOMBRE"<<setw(20)<<"EDAD"<<setw(20)<<"SEXO"<<endl;
for(i=0;i<n;i++)
{
cout<<setw(15)<<p[i].nombre<<setw(19)<<p[i].edad<<setw(19)<<p[i].sexo<<endl;

}
}

float promEd(profesores p[],int n)


{
int i,suma;
float promedio;
suma=0;
for(i=0;i<n;i++)
{
suma=suma+p[i].edad;
}
promedio=suma/n;
cout<<endl<<endl;
return promedio;
}

void masLongevo(profesores p[],int n)


{
system("cls");
int i,pos,mayor=0;

cout<<endl<<endl;
for(i=0;i<n;i++)
{
if(mayor<p[i].edad)
{
mayor=p[i].edad;

}
cout<<endl<<endl;
for(i=0;i<n;i++)
{
if(p[i].edad==mayor)
cout<<"El profesor mas longevo es "<<p[i].nombre<<" con "<<p[i].edad<<" anyos."<<endl;
}

void masJoven(profesores p[],int n)


{
system("cls");
int i,pos,menor=999;

cout<<endl<<endl;
for(i=0;i<n;i++)
{
if(menor>p[i].edad)
{
menor=p[i].edad;

}
cout<<endl<<endl;
for(i=0;i<n;i++)
{
if(menor==p[i].edad)
{
cout<<"El profesor mas joven es "<<p[i].nombre<<" con "<<p[i].edad<<"
anyos."<<endl;
}
}

}
void mayorAprom(profesores p[],int n)
{
system("cls");
int i,promedio,contar=0;
promedio=promEd(p,n);

for(i=0;i<n;i++)
{
if(p[i].edad>promedio)
{

contar++;
}
}
cout<<"Numero de profesores con edad mayor al promedio es: "<<contar<<endl;
}
void menorAprom(profesores p[],int n)
{
system("cls");
int i,promedio,contar1=0;
promedio=promEd(p,n);

for(i=0;i<n;i++)
{
if(p[i].edad<promedio)
{

contar1++;
}
}
cout<<"Numero de profesores con edad menor al promedio es: "<<contar1<<endl;
}

int menu()
{
int op;
do
{
cout<<"\t\tMENU"<<endl;
cout<<"\t\t****"<<endl;

cout<<"\t1.Ingresar datos de profesores"<<endl;


cout<<"\t2.Mostrar informacion de profesores"<<endl;
cout<<"\t3.Edad promedio del grupo de profesores"<<endl;
cout<<"\t4.Nombre del profesor mas joven"<<endl;
cout<<"\t5.Nombre del profesor con mayor edad"<<endl;
cout<<"\t6.Numero de profesores con edad mayor al promedio"<<endl;
cout<<"\t7.Numero de profesores con edad menor al promedio"<<endl;
cout<<"\t8.SALIR"<<endl;
cout<<"\tESCOJA UNA OPCION [ ]"<<"\b\b";
cin>>op;

}while(op<1||op>8);
return op;

}
/*Una compañía distribuye N productos a distintos comercios de la ciudad. Para ello
almacena en un arreglo toda la información relacionada a su mercancía:
• Clave
• Descripción
• Existencia
• Mínimo a mantener en existencia
• Precio unitario
Realizar las siguientes operaciones:
a) Venta de un producto: Se deben actualizar los campos que correspondan.
b) Reabastecimiento de un producto: Se deben actualizar los campos que correspondan.
c) Actualizar el precio de un producto. (Dato: clave, porcentaje de aumento)
d) Informar sobre un producto: Se deben proporcionar todos los datos .*/

#include<iostream>
#include <iomanip>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#define dim 1000
using namespace std;

struct mercancia
{ char clave[10];
char descrip[100];
int exist;
int stock;
float preuni;
};

void ingresprod(mercancia P[], int n)


{ int i;
for(i=0;i<n;i++)
{ cout<<endl;
cout<<" ~ Ingrese datos del producto "<<i+1<<": "<<endl;
cout<<" -----------------------------";
cout<<"\n\n";
cout<<"\t\tCodigo.........................: ";
cin>>P[i].clave;
cout<<"\t\tDescripcion....................: ";
cin>>P[i].descrip;
cout<<"\t\tExistencia en almacen..........: ";
cin>>P[i].exist;
cout<<"\t\tMinimo a mantener en existencia: ";
cin>>P[i].stock;
cout<<"\t\tPrecio unitario (S/.)..........: ";
cin>>P[i].preuni;
cout<<endl;
}
}

void mostrarinv(mercancia P[], int n)


{ int i;
cout<<"\n\n";
cout<<"\t--------- INVENTARIO ACTUALIZADO ---------";

for(i=0;i<n;i++)
{ cout<<"\n\n";
cout<<"\t Codigo.....................: "<<P[i].clave<<endl;
cout<<"\t Nombre.....................: "<<P[i].descrip<<endl;
cout<<"\t Existencia actual..........: "<<P[i].exist<<endl;
cout<<"\t Existencia minima requerida: "<<P[i].stock<<endl;
cout<<"\t Precio unitario............: "<<P[i].preuni<<endl;
cout<<"\t-------------------------------------";
}
getch();
}
int buscar(mercancia P[],int n)
{ int i,pos;
char codbus[10];
pos=-1;
cout<<"\n\n";
cout<<"\tIngrese el codigo a buscar: ";
cin>>codbus;
for(i=0;i<n;i++)
{ if(strcmp(P[i].clave,codbus)==0)
{ pos=i;
i=n;
}
}
return pos;
}
void ventaprod(mercancia P[],int n)
{ int i,pos,can;
pos=buscar(P,n);
if (pos>=0)
{

cout<<"\n\n";
cout<<"\t--------- VENTA DE PRODUCTOS ---------";
cout<<"\n\n";
cout<<"\t Ingrese la cantidad a vender: ";
cin>>can;
if(P[pos].exist-can>=P[pos].stock)
{ P[pos].exist=P[pos].exist-can;
cout<<"\n\t\"La venta ha sido realizada\"!!\n";
}
else
cout<<"\n\n\t\"no cuenta con la cantidad suficiente\"!!";

}
else
cout<<"\n\n\tERROR: Codigo no registrado"<<endl;

void actprec(mercancia P[], int n)


{ int i,pos;
float pau;
pos=buscar(P,n);
if (pos>=0)
{
cout<<"\n";
cout<<"\tIngrese el porcentaje de aumento (%): ";
cin>>pau;
P[pos].preuni=P[pos].preuni + P[pos].preuni*(pau/100.0);
}
else
cout<<"\n\n\tERROR: Codigo no registrado"<<endl;

void reabaspro(mercancia P[],int n)


{ int i,pos,compra;
pos=buscar(P,n);
if (pos>=0)
{ if(P[pos].stock>=P[pos].exist)
{ cout<<"Numero de productos a comprar: ";
cin>>compra;
if(compra>=(P[pos].stock - P[pos].exist))
{P[pos].exist=P[pos].exist + compra;
cout<<"\n\t\tLa operacion se hizo efectiva"<<endl;
}
else
cout<<"\n\n\tEste monto no abastece el stock minimo";

}
else
cout<<"\n\t\tno requiere reabastecimiento";

}
else
cout<<"\n\n\tERROR: Codigo no registrado"<<endl;

void infopro(mercancia P[],int n)


{ int i,pos;
pos=buscar(P,n);
if (pos>=0)
{ cout<<"\n\n";
cout<<"\t--------- DATOS DE PRODUCTO ----------";
cout<<"\n\n";
cout<<"\t\tCodigo.........: "<<P[pos].clave<<endl;
cout<<"\t\tDescripcion....: "<<P[pos].descrip<<endl;
cout<<"\t\tExistencia.....: "<<P[pos].exist<<endl;
cout<<"\t\tMinimo stock...: "<<P[pos].stock<<endl;
cout<<"\t\tPrecio unitario: "<<P[pos].preuni<<endl;
getch();
}
else
cout<<"\n\n\tERROR: Codigo no registrado"<<endl;

void modificardatos(mercancia P[], int n)


{ int i,pos;
pos=buscar(P,n);

if(pos>=0)
{ cout<<"Nuevo nombre: ";
cin>>P[pos].descrip;
cout<<"Nuevo Existencia actual: ";
cin>>P[pos].exist;
cout<<"Nuevo stock: ";
cin>>P[pos].stock;
cout<<"Nuevo Precio unitario: ";
cin>>P[pos].preuni;
}
else
cout<<"\n\n\tERROR: Codigo no registrado"<<endl;

int menu()
{ int opcion;
cout<<"\n\n\n";
cout<<"\t********************* MENU PRINCIPAL *********************"<<endl;
cout<<"\n\n\n\t\t[1]..............MOSTRAR INVENTARIO"<<endl;
cout<<"\t\t[2]..............VENTA DE UN PRODUCTO"<<endl;
cout<<"\t\t[3]..............REABASTECIMIENTO DE UN PRODUCTO"<<endl;
cout<<"\t\t[4]..............ACTUALIZAR EL PRECIO DE UN PRODUCTO"<<endl;
cout<<"\t\t[5]..............MODIFICAR DATOS"<<endl;
cout<<"\t\t[6]..............INFORMAR SOBRE UN PRODUCTO"<<endl;
cout<<"\t\t[7]..............SALIR"<<endl;
do
{ cout<<"\n\n\n\n\t\t";
cout<<"* Ingrese una opcion: ";
cin>>opcion;
}while(opcion<1 || opcion>7);
return opcion;
}

int main()
{ int n,op;
char resp;
mercancia P[dim];

do
{ cout<<"\n\n";
cout<<"\t***********************************************************"<<endl;
cout<<"\t----------------- INVENTARIO DE ALMACEN -----------------"<<endl;
cout<<"\t***********************************************************"<<endl;
cout<<"\n\n";
cout<<" ~ Ingrese el numero de productos: ";
cin>>n;
cout<<endl;
cout<<" --------------------------------------------------------------------"<<endl;
}while(n>dim);

ingresprod(P,n);

resp='s';
while(resp=='s' || resp=='S')
{ system("cls");
op=menu();
switch(op)
{ case 1: system("cls");
mostrarinv(P,n);
break;

case 2: system("cls");
ventaprod(P,n);
break;

case 3: system("cls");
reabaspro(P,n);
break;

case 4: system("cls");
actprec(P,n);
break;

case 5: system("cls");
modificardatos(P,n);
break;

case 6: system("cls");
infopro(P,n);
break;

case 7: exit(1);
break;

default: system("cls");
cout<<"OPCION NO DISPONIBLE"<<endl;
break;
}
cout<<"\n\n\n\n\t\tDesea realizar otra operacion (s/n): ";
cin>>resp;
}
getch();
return 0;
}

Вам также может понравиться