Ejemplos de C - Funciones II

1.- Programa que lleva los datos y facturas de los usuarios de una compañía eléctrica:

#include<stdio.h>
#include<string.h>

void fentrada(char *nom,char *ape,char *dir,int *potencia,int *lectura_anterior,int *lectura_actual);
int fcuota(int potencia);
int fconsumo(int lectura_anterior,int lectura_actual);
int fprecio_consumo(int consumo);
int fimp_consumo(int consumo,int precio_consumo);
int fiva(int total_imp);
void fsalida(char *nom,char *ape,char *dir,int potencia,int imp_potencia,int consumo,
int precio,int imp_consumo,int total_imp,int imp_iva,int total_pagar);

void main()
{ /*declaracion de variables*/
char nom[15],ape[30],dir[30],res;
int potencia,lectura_anterior,lectura_actual,cuota,consumo,precio;
int imp_consumo,imp_iva,total_imp,total_pagar,imp_potencia;

/*cuerpo principal*/

puts("\t\t\tHIDROELECTRICA DEL CANTABRICO");
puts("\n\t\t\t-------------------------------------------------------");
do /*inicio bucle principal*/
{
fentrada(nom,ape,dir, &potencia, &lectura_anterior, &lectura_actual);
cuota=fcuota(potencia);
consumo=fconsumo(lectura_anterior,lectura_actual);
precio=fprecio_consumo(consumo);
imp_consumo=fimp_consumo(consumo,precio);
total_imp=cuota+imp_consumo;
imp_iva=fiva(total_imp);
total_pagar=imp_iva+total_imp;
fsalida(nom,ape,dir,potencia,imp_potencia,consumo,precio,imp_consumo,total_imp,imp_iva,
total_pagar);
puts("\n¿Desea tratar otro cliente?");
fflush(stdin);
res=getchar();
} /*fin bucle principal*/
while((res=='s') || (res=='S'));

}

/*funciones*/
void fentrada(char *nom,char *ape,char *dir,int *potencia,int *lectura_anterior,int *lectura_actual)
/*toma de datos*/
{
puts("\t\tTOMA DE DATOS PERSONALES");
puts("\nTeclee nombre:");
fflush(stdin);
gets(nom);
puts("\nTeclee apellidos:");
fflush(stdin);
gets(ape);
puts("\nTeclee direccion:");
fflush(stdin);
gets(dir);
puts("\nTeclee potencia contratada:");
scanf("%d",potencia);
while((*potencia!=1500) && (*potencia!=3500) && (*potencia!=4500))
{
puts("\n!TIPO DE POTENCIA ERRONEA...!");
puts("\ndebe ser 1500, 3500 o 4500 KW");
scanf("%d",potencia);
}
puts("\nTeclee lectura anterior:");
scanf("%d",lectura_anterior);
puts("\nTeclee lectura actual:");
scanf("%d",lectura_actual);
while(*lectura_actual<*lectura_anterior)
{puts("\n¡LECTURA ACTUAL ERRONEA...!");
puts("\n introduzca lectura actual correctamente...");
scanf("%d",lectura_actual);
}
}

int fcuota(int potencia) /*calculo de la cuota fija*/
{
int cuota_fija ;
switch(potencia)
{
case 1500: cuota_fija=1000;
break;
case 3500: cuota_fija=2000;
break;
case 4500: cuota_fija=3000;
break;
}
return(cuota_fija);
}

int fconsumo(int lectura_anterior,int lectura_actual) /*calculo del consumo*/
{
int consumo;
consumo=lectura_actual-lectura_anterior;
return(consumo);
}

int fprecio_consumo(int consumo) /*calculo del precio por Kw*/
{
int precio_consumo;
if (0<=consumo<100)
precio_consumo=10*consumo;
else
{
if(consumo<300)
precio_consumo=20*consumo ;
else
precio_consumo=30*consumo;
}
return(precio_consumo);
}

int fimp_consumo(int consumo,int precio_consumo) /*importe por consumo*/
{
int imp_consumo;
imp_consumo=consumo*precio_consumo;
return(imp_consumo);
}

int fiva(int total_imp) /*iva (16% de todos los importes)*/
{
int iva;
iva=total_imp*16/100;
return(iva);
}

void fsalida(char *nom,char *ape,char *dir,int potencia,int imp_potencia,int consumo,
int precio,int imp_consumo,int total_imp,int imp_iva,int total_pagar)
/*resultados finales*/
{
printf("\nAPELLIDOS Y NOMBRE:%s %s",ape,nom);
printf("\nDIRECCION:%s",dir);
puts("DETALLE DE CONCEPTOS\t\t\tIMPORTES");
puts("\n------------------------------------\t\t\t------------------");
puts("\n1. CUOTA FIJA");
printf("\nTIPO DE POTENCIA %d kw\t\t\t%d",potencia,imp_potencia);
puts("\n2. CONSUMOS");
printf("\nKW: %d PRECIO: %d\t\t\t%d",consumo,precio,imp_consumo);
puts("\n \t\t\t -----------------------------------");
printf("\n\t\t\tTOTAL IMPORTES\t\t\t%d",total_imp);
printf("\nIVA (16%%)\t\t\t%d",imp_iva);
puts("\n \t\t\t -----------------------------------");
printf("\n\t\t\tTOTAL IMPORTES\t\t\t%d",total_pagar);
}

 

 


VOLVER

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

1