Está en la página 1de 7

Egunda

1. Se desea realizar un mantenimiento de registros de los alumnos de COMPUTACION I,


para esto vamos a utilizar la siguiente estructura:
struct alumno{ int código;
char nombre [40];
int exampar; //Examen Parcial
int examfin; //Examen Final
float pp; }; // Promedio de Practicas
En el mantenimiento considere:
a) Adicionar Registros
b) Eliminar Registros.

PROGRAMA
/* CODIGO: POOC7PROB2
FECHA: 21 DE MARZO DE 2013
OBJETIVO: Programa que crea un menú con registros de empleados */
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<iomanip.h>
struct empleado
{ int codemp; // código del empleado
char nomemp[40]; // nombre del empleado
char nivemp; // nivel remunerativo del empleado A,B,C
float sueemp; // sueldo del empleado
};
void leer(empleado p[50], int *n);
void adicionar (empleado p[50], int *n);
void eliminar (empleado p[50], int *n);
void escribir(empleado p[50], int n);
void main( )
{ empleado v[50];
int num;
char opcion;
system(“cls”);
do { system(“cls”);
cout<< "MANTENIMIENTO EMPLEADOS";
cout<< "1.- Leer";
cout<< "2.- Adicionar";
cout<< "3.- Eliminar";
cout<< "4.- Escribir";
cout<< "5.- Salir ";
cout<< "Ingrese Opcion ==> "; cin >> opcion;
switch(opcion)
{ case '1' : leer(v, &num);break;
case '2' : adicionar(v, &num);break;
case '3' : eliminar(v, &num);break;
case '4' : escribir(v, num);break; }
}while(opcion != '5');
}
void leer(empleado p[50], int *n)
{ int i;
clrscr();
cout << " Ingrese n => ";
cin >> (*n);
clrscr();
cout<< "LECTURA";
cout<< "=======";
endl<<endl;
for ( i=1; i<=(*n);i++)
{ cout<< " Ingrese Codigo del Empleado "<< i<<" : "; cin>> p[i].codemp;
cout<< " Ingrese Nombre y Apellido "<< i<<" : "; gets(p[i].nomemp);
cout<< " Ingrese Nivel Remunerativo "<< i<<" : "; cin>> p[i].nivemp;
cout<< " Ingrese Sueldo del Empleado "<< i<<" : "; cin>> p[i].sueemp;
}
}
void adicionar (empleado p[50], int *n)
{ int codx,i;
empleado aux;
system(“cls”);
cout<< "ADICION";
cout<< "=======";
cout<<endl<<endl;
cout<<"Ingrese codigo : "; cin>> codx;
for( i=1;i<=(*n);i++)
if(p[i].codemp == codx)
break;
if(i==((*n)+1)) i--;
if(p[i].codemp == codx)
{cout<< "Error Codigo ya existe "; getch();}
else
{ aux.codemp = codx;
cout<< " Ingrese nombre : "; gets(aux.nomemp);
cout<< " Ingrese nivel remunerativo: "; cin>> aux.nivemp;
cout<< " Ingrese sueldo : "; cin>> aux.sueemp;
(*n)=(*n) +1; cout<< " Registro adicionado...";
p[*n] = aux;
_getch();
}
}
void eliminar(empleado p[50], int *n)
{ int i,j, codx;
char rpta;
system(“cls”);
cout<< "ELIMINACION";
cout<< "===========";
cout<<endl<<endl;
cout<<"Ingrese Codigo a Buscar : ";
cin>> codx;
for( i=1;i<=(*n);i++)
if ( p[i].codemp == codx)
{ j = i;
break ;
}
if ( p[i].codemp == codx)
{cout<< " Registro Hallado "<<endl;
cout<< p[j].nomemp<<" ";
cout<< p[j].nivemp<<" ";
cout<< p[j].sueemp<<endl;
cout<<"Desea eliminar s/n => "; cin>> rpta;
if((rpta == 's') || (rpta == 'S'))
{ if ( j!=(*n))
for( i=j+1 ; i<=(*n);i++)
p[i-1] = p[i];
(*n)=(*n) - 1; }// Se elimina registro
}
else
{cout<< " Registro no Hallado ";
getch();
}
}
void escribir(empleado p[50], int n)
{int i;
syste(“cls”);
;
cout<<"|CODIGO |";
cout<<NOMBRE |";
cout<<"NIVEL|";
cout<<"SUELDO |";
cout<<endl;
cout<<"==========================================="<<endl;
for ( i=1; i<=n;i++)
{ cout<<p[i].codemp;
cout<<p[i].nomemp;
cout<<p[i].nivemp;
cout<<p[i].sueemp<<endl;
}
getch(); }
2. Se desea escribir un programa que procese el examen sustitutorio de “n” alumnos,
considerar el registro.
struct notas
{ char codalu [10]; // Código del alumno
char codcur [7]; // Código del curso
float pp ; // Promedio de practicas
int ep ; // Examen parcial
int ef ; // Examen final
int es ; // Examen sustitutorio
float pf ; } // Promedio final
para hallar el promedio final (pf) debe considerarse lo siguiente:
a. Si no se ha rendido un examen (ep,ef) la nota que figura es 99(OJO).
pp + ep + 2 * ef
b. El promedio final se halla pf =
4
c. El examen sustitutorio solo se considera si pp 6.0
d. Al considerar el examen sustitutorio este reemplazara al examen no rendido o al
mas desfavorable de haber rendido los dos.
e. Ordenar los promedios finales por merito.

PROGRAMA
/* CODIGO: POOC7PROB3
FECHA: 21 DE MARZO DE 2013
OBJETIVO: Programa que procesa notas, considerando las pruebas no rendidas como 99, para cálculos el 99 se
transforma en cero */
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<iomanip.h>
struct notas
{
char codalu[10];
char codcur[7];
float pp;
int ep;
int ef;
int es;
float pf;
};
void leer( notas libreta[50] , int *n);
void promedio ( notas nota[50] , int n);
void orden( notas nota[50] , int n);
void main( )
{ int num;
notas registro[50];
cout<<"REGISTRO"<<endl;
leer ( registro , &num );
promedio ( registro , num );
orden( registro , num ); }
void leer( notas libreta[50] , int *n)
{ int i;
clrscr();
cout<<"REGISTRO DE NOTAS"<<endl<<endl;;
cout<<"Numero de alumnos: ";cin>>*n;
cout<<endl;
for(i=1;i<=*n;i++)
{ cout<<"CODIGO ALUMNO: ";cin>>libreta[i].codalu;
cout<<"CODIGO CURSO: ";cin>>libreta[i].codcur;
cout<<"PROM. PRACTICAS: ";cin>>libreta[i].pp;
cout<<"EX. PARCIAL: ";cin>>libreta[i].ep;
cout<<"EX. FINAL: ";cin>>libreta[i].ef;
cout<<"EX. SUSTITUTORIO: ";cin>>libreta[i].es; }
}
void promedio ( notas nota[50] , int n)
{ int i,condicion1,condicion2,condicion3;
for(i=1;i<=n;i++)
{ condicion1=(nota[i].es!=99);
condicion2=(nota[i].ep==99);
condicion3=(nota[i].ef==99);
if (nota[i].ep==99) nota[i].ep=0;
if (nota[i].ef==99) nota[i].ef=0;
nota[i].pf = ( nota[i].pp + nota[i].ep + 2*nota[i].ef )/4.0;
if( condicion1 )
{
if(nota[i].pp>=6.0)
{
if ( condicion2 || condicion3 )
{
if(condicion2)
nota[i].pf=( nota[i].pp+nota[i].es+2*nota[i].ef) /4.0;
if(condicion3)
nota[i].pf=( nota[i].pp+2*nota[i].es+nota[i].ep) /4.0;
}
else
if ( (nota[i].pp+nota[i].es+nota[i].ef*2)>(nota[i].pp+nota[i].ep+nota[i].es*2) )
nota[i].pf=(nota[i].pp+nota[i].es+nota[i].ef*2)/4.0;
else
nota[i].pf=(nota[i].pp+nota[i].ep+nota[i].es*2)/4.0;
}
}
}
}
void orden( notas nota[50] , int n)
{
int i,j;
notas temp;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if( nota[i].pf<nota[j].pf )
{ temp=nota[i];
nota[i]=nota[j];
nota[j]=temp; }
clrscr( );
cout<<setiosflags(ios::fixed);
cout<<setiosflags(ios::showpoint);
cout<<setprecision(2);
cout<<setiosflags(ios::left);
cout<<" LISTADO POR ORDEN DE MERITO"<<endl;
cout<<" ==========================="<<endl;
cout<<endl<<endl;
cout<<setw(10)<<"|CODIGO ";
cout<<setw(7)<<"|CURSO ";
cout<<setw(8)<<"|PROM.FINAL|"<<endl;
cout<<"==========================="<<endl;
for(i=1;i<=n;i++)
{cout<<setw(10)<<nota[i].codalu;
cout<<setw(7)<<nota[i].codcur;
cout<<setw(8)<<nota[i].pf<<endl; }
getch(); }
3. Se desea escribir un programa que procese la planilla de “n” trabajadores, considerar el
registro dado.
struct empleado
{ int codemp; // Código del empleado
float sb ; // Sueldo Bruto
int diasf; // Días faltos
float descuentos ; // Descuentos
float sn; // Sueldo Neto }
Para hallar los descuentos y el sueldo neto de cada trabajador debe considerar lo
siguiente:
• 13% de descuento del sueldo bruto por seguro social.
• Descuento por cada día falto.

SOLUCIÓN

#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<cstring>
using namespace std;
struct empleado
{
int codemp; // Código del empleado
char nomemp[40]; // Nombre del empleado
float sb; // Sueldo Bruto
int diasf; // Días faltos
float descuentos; // Descuentos
float sn; // Sueldo Neto }
}e1[10];
int main() {
int n;
float DS, DF, DD = 0.2;
cout << "Ingrese la cantidad de trabajadores: "; cin >> n;
for (int i = 0; i < n; i++)
{
fflush(stdin);
cout << "Ingrese el codigo del empleado: "; cin >> e1[i].codemp;
fflush(stdin);
cout << "Ingrese el sueldo bruto del empleado: "; cin >> e1[i].sb;
fflush(stdin);
cout << "Ingrese los dias faltos del empleado: "; cin >> e1[i].diasf;
cout << endl;
fflush(stdin);
DS = 0.13 * e1[i].sb;
if (e1[i].diasf % 2 == 0) {
DF = e1[i].sb * DD * ((pow(1 - DD, e1[i].diasf)) / (DD - 2.0));
}
else {
DF = e1[i].sb * DD * ((-pow(1 - DD, e1[i].diasf)) / (DD - 2.0));
}
e1[i].descuentos = -(DS + DF);
fflush(stdin);
e1[i].sn = e1[i].sb + e1[i].descuentos;
}
for (int i = 0; i < n; i++)
{
cout << "\nCodigo del empleado: " << e1[i].codemp;
cout << "\nSueldo bruto: " << e1[i].sb;
cout << "\nDias faltos: " << e1[i].diasf;
cout << "\nDescuento: " << e1[i].descuentos;
cout << "\nSueldo neto: " << e1[i].sn;
cout << endl;
}
}

También podría gustarte