Ejemplos de C - Contadores, acumuladores e indicadores II

1.- Programa que lleva los datos de los clientes y facturas de una empresa telefónica:

#include<stdio.h>
void main()
{
long int num,tlin,ttel,npasos,imppasos,implinea,imptelef,timp,iva,tpagar,media,min,max,acu_imp,c_usu;
char nom[9],ape[14],dir[23],res;
acu_imp=0;
c_usu=0;
do
{
printf("Teclea numero de abonado\n");
scanf("%ld",&num);
printf("Teclea nombre\n");
scanf("%s",&nom);
printf("Teclea apellidos\n");
scanf("%s",&ape);
printf("Teclea direccion\n");
scanf("%s",&dir);
printf("Teclea tipo de linea, tipo de telefono y numero de pasos\n");
scanf("%ld%ld%ld",&tlin,&ttel,&npasos);
{if (tlin<5)
{implinea=1200;}
else if (tlin<=10)
implinea=1500;
else implinea=2000;
}
switch (ttel)
{
case 1: imptelef=250;
break;
case 2: imptelef=300;
break;
case 3: imptelef=400;
break;
default: imptelef=500;
break;
}
imppasos=6*npasos;
timp=implinea+imptelef+imppasos;
iva=(timp/100)*16;
tpagar=timp+iva;
printf("\n");
printf("NUMERO DE ABONADO: %ld\n",num);
printf("APELLIDOS Y NOMBRE: %s %s\n",ape,nom);
printf("DIRECCION: %s\n",dir);
printf("DETALLE DE CONCEPTOS IMPORTES\n");
printf("---------------------------------------------\n");
printf("1.CUOTAS DE ABONO\n");
printf("TIPO LINEA %ld %ld\n",tlin,implinea);
printf("TIPO TELEFONO %ld %ld\n",ttel,imptelef);
printf("\n");
printf("2.SERVICIO AUTOMATICO\n");
printf("NUMERO DE PASOS %ld %ld\n",npasos,imppasos);
printf(" --------\n");
printf(" TOTAL IMPORTES %ld\n",timp);
printf("I.V.A. %ld\n",iva);
printf(" --------\n");
printf(" TOTAL A PAGAR %ld\n",tpagar);
c_usu++;
acu_imp=acu_imp+tpagar;
{if (c_usu==1)
{max=tpagar;min=tpagar;}
else if (tpagar<min)
min=tpagar;
else if (tpagar>max)
max=tpagar;}
printf("Si quieres dar datos de otro usuario teclea s\n");
fflush(stdin);
scanf("%c",&res);
}
while (res=='s');
media=acu_imp/c_usu;
printf("\n");
printf(" RESUMEN DE LA FACTURACION\n");
printf(" -------------------------------\n");
printf("1.NUMERO DE ABONADOS: %ld\n",c_usu);
printf("2.TOTAL IMPORTES A COBRAR: %ld\n",acu_imp);
printf("3.MEDIA DE IMPORTES A COBRAR: %ld\n",media);
printf("4.MAYOR IMPORTE A COBRAR: %ld\n",max);
printf("5.MENOR IMPORTE A COBRAR: %ld\n",min);

}

2.- Programa que lleva los datos de los empleados de una empresa y sus salarios:

#include<stdio.h>
void main()
{
int des,ant,hijos,cod;
long int sbase,sdest,horas,shoras,strienios,sbruto,issocial,iirpf,tipoirpf,irete,sneto,sneto_medio,sneto_max,sneto_min,trienios,salario,salario_anual,nemple,acusneto;
char empresa[30],nom[30],ape[30],dir[30],cat;
acusneto=0;
for (nemple=1;nemple<=100;nemple++)
{
printf("Teclea empresa, codigo, nombre, apellidos y direccion\n");
scanf("%s%ld%s%s%s",&empresa,&cod,&nom,&ape,&dir);
printf("Teclea categoria\n");
fflush(stdin);
scanf("%c",&cat);
while (cat!='a' && cat!='o' && cat !='t')
{
printf("Categoria %c erronea\n",cat);
printf("Teclea a,o,t\n");
fflush(stdin);
scanf("%c",&cat);
}
printf("Teclea destino,antigüedad, horas y numero de hijos\n");
scanf("%d%d%ld%d",&des,&ant,&horas,&hijos);
switch (cat)
{
case 'A':
case 'a': sbase=125000;
break;
case 'O':
case 'o': sbase=150000;
break;
case 'T':
case 't': sbase=200000;
break;
default:;
break;
}
{if (des<25)
{sdest=25000;}
else if (des<=50)
sdest=50000;
else sdest=75000;}
{if (horas<=10)
{shoras=horas*1000;}
else if (horas<=20)
shoras=10000+(horas-10)*2000;
else shoras=10000+20000+(horas-20)*3000;}
trienios=ant/3;
switch(trienios)
{
case 0: strienios=0;
break;
case 1: strienios=20000;
break;
case 2: strienios=35000;
break;
case 3: strienios=45000;
break;
default:strienios=45000+(trienios-3)*5000;
break;
}
sbruto=sbase+sdest+shoras+strienios;
salario=sbase+sdest+strienios;
{if (salario<=200000)
{issocial=10000;}
else if (salario<=300000)
issocial=15000;
else issocial=20000;}
salario_anual=salario*14;
{if (salario_anual<2000000)
{tipoirpf=16;}
else if (salario_anual<3000000)
tipoirpf=18;
else if (salario_anual<4000000)
tipoirpf=20;
else tipoirpf=25;}
tipoirpf=tipoirpf-hijos;
iirpf=sbruto*tipoirpf/100;
irete=issocial+iirpf;
sneto=sbruto-irete;
printf("\n");
printf("EMPRESA: %s\n",empresa);
printf("NOMBRE: %s APELLIDOS: %s\n",nom,ape);
printf("DIRECCION: %s\n",dir);
printf("CODIGO DE EMPLEADO: %d CATEGORIA: %c DESTINO: %d\n",cod,cat,des);
printf("CONCEPTO DE INGRESOS IMPORTES\n");
printf("---------------------- ------------\n");
printf("SALARIO BASE: %ld\n",sbase);
printf("COMPLEMENTO DESTINO: %ld\n",sdest);
printf("HORAS EXTRAS: %ld\n",shoras);
printf("TRIENIOS: %ld\n",strienios);
printf("SALARIO BRUTO: %ld\n",sbruto);
printf("\n");
printf("CONCEPTO DE RETENCIONES IMPORTES\n");
printf("------------------------ ------------\n");
printf("SEGURIDAD SOCIAL: %ld\n",issocial);
printf("I.R.P.F. (TIPO %ld) %ld\n",tipoirpf,iirpf);
printf("RETENCIONES: %ld\n",irete);
printf(" ------------\n");
printf("SALARIO NETO: %ld\n",sneto);
acusneto=acusneto+sneto;
{if(nemple==1)
{sneto_max=sneto;sneto_min=sneto;}
else if(sneto<sneto_min)
sneto_min=sneto;
else if(sneto>sneto_max)
sneto_max=sneto;}
}
sneto_medio=acusneto/100;
printf("TOTAL S.NETOS: %ld\n",acusneto);
printf("SALARIO NETO MEDIO: %ld\n",sneto_medio);
printf("SALARIO NETO MAXIMO: %ld\n",sneto_max);
printf("SALARIO NETO MINIMO: %ld\n",sneto_min);
}



VOLVER

A PROGRAMAR © 2002. All Rights Reserved.
Hosted by www.Geocities.ws

1