| Ejemplos de C - Contadores, acumuladores e indicadores III |
1.- Programa que gestiona las comisiones de venta de varios vendedores:
#include<stdio.h>
void main()
{
long int cod_v,cod_o,nvend,canta,acucomi,cantb,cantc,impcomia,impcomib,impcomic,totcomi,media,max,min,impventaa,impventab,impventac;
char nom[15],ape[20],dir[30],tipoart,res1,res2;
nvend=0;
acucomi=0;
do
{
nvend++;
printf("Introduce codigo de vendedor\n");
scanf("%ld",&cod_v);
printf("Teclea nombre, apellidos y direccion\n");
fflush(stdin);
scanf("%s%s%s",&nom,&ape,&dir);
totcomi=0;
canta=0;cantb=0;cantc=0;impcomia=0;impcomib=0;impcomic=0;
do
{
printf("Teclea codigo operacion y tipo de articulo\n");
scanf("%ld",&cod_o);
fflush(stdin);
tipoart=getchar();
switch(tipoart)
{
case 'A':
case 'a': printf("Teclea cantidad vendida\n");
scanf("%ld",&canta);
impventaa=canta*4000;
impcomia=impventaa*40/100;
break;
case 'B':
case 'b': printf("Teclea cantidad vendida\n");
scanf("%ld",&cantb);
impventab=cantb*3000;
impcomib=impventab*30/100;
break;
case 'C':
case 'c': printf("Teclea cantidad vendida\n");
scanf("%ld",&cantc);
impventac=cantc*2000;
impcomic=impventac*20/100;
break;
default: printf("Tipo de articulo erroneo. Teclea a,b,c\n");
tipoart=getchar();
break;
}
totcomi=impcomia+impcomib+impcomic;
acucomi=acucomi+totcomi;
printf("Hay mas operaciones?\n");
fflush(stdin);
res1=getchar();
}
while (res1!='n');
printf("CODIGO: %ld\n",cod_v);
printf("NOMBRE: %s APELLIDOS: %s \n",nom,ape);
printf("DIRECCION: %s \n",dir);
printf("\n");
printf("LIQUIDACION DE COMISIONES\n");
printf("\n");
printf("TIPO ARTICULO CANTIDAD IMPORTE COMISION\n");
printf("------------- -------- ----------------\n");
printf(" A %ld %ld\n",canta,impcomia);
printf(" B %ld %ld\n",cantb,impcomib);
printf(" C %ld %ld\n",cantc,impcomic);
printf(" ----------------\n");
printf(" TOTAL %ld\n",totcomi);
printf("\n");
printf("Desea dar datos de otro vendedor?\n");
fflush(stdin);
res2=getchar();
if (nvend==1)
{min=totcomi;max=totcomi;}
else if (totcomi<min)
min=totcomi;
else if (totcomi>max)
max=totcomi;
}
while (res2=='s');
printf("RESUMEN DE LIQUIDACION DE COMISIONES\n");
printf("------------------------------------\n");
media=acucomi/nvend;
printf(" COMISION MEDIA: %ld\n",media);
printf(" COMISION MAXIMA: %ld\n",max);
printf(" COMISION MINIMA: %ld\n",min);
}
2.- Programa que gestiona los boletines de notas de los alumnos de un centro:
#include<stdio.h>
#include<string.h>
#define N_ASIG 3
void main()
{
char nom[15],ape[15],espe,dir[30],res,asig[15],curso,liternota[15],literespe[15];
long int dni;
int swapro,nota,nroalu,nroaluapro,paluapro,nroasig;
nroalu=0;
nroaluapro=0;
do
{
printf("Teclea DNI, nombre, apellidos y direccion\n");
scanf("%ld%s%s%s",&dni,&nom,&ape,&dir);
printf("Teclea ciclo formativo\n");
fflush(stdin);
espe=getchar();
while (espe!='a' && espe!='A' && espe!='d' && espe!='D'
&& espe!='e' && espe!='E' && espe!='i' && espe!='I')
{
printf("Especialidad erronea. Teclea a,d,e,i\n");
espe=getchar();
}
printf("Teclea curso\n");
scanf("%d",&curso);
switch(espe)
{
case 'a':
case 'A': strcpy(literespe,"Administrativo");
break;
case 'D':
case 'd': strcpy(literespe,"Delineacion");
break;
case 'e':
case 'E': strcpy(literespe,"Electricidad");
break;
case 'i':
case 'I': strcpy(literespe,"Informatica");
break;
default:;
break;
}
printf(" BOLETIN DE NOTAS\n");
printf("------------------------------------\n");
printf("APELLIDOS Y NOMBRE: %s %s \n",ape,nom);
printf("DIRECCION: %s \n",dir);
printf("CICLO FORMATIVO: %s CURSO: %d \n",literespe,curso);
printf("------------------------------------\n");
printf("ASIGNATURA NOTA\n");
printf("------------ --------\n");
swapro=0;
for (nroasig=1;nroasig<=N_ASIG;nroasig++)
{
printf("Teclea nombre de la asignatura\n");
fflush(stdin);
gets(asig);
printf("Teclea nota de la asignatura\n");
scanf("%d",¬a);
while(nota<1 || nota>10)
{
printf("Nota %d erronea. Teclea un valor entre 1 y 10\n",nota);
scanf("%d",¬a);
}
{if (nota<5)
{strcpy(liternota,"Suspenso\n");
swapro=1;}
else if (nota<6)
strcpy(liternota,"Aprobado\n");
else if (nota<7)
strcpy(liternota,"Bien\n");
else if (nota<9)
strcpy(liternota,"Notable\n");
else strcpy(liternota,"Sobresaliente\n");}
printf("%s %s",asig,liternota);
}
nroalu++;
{if (swapro==0)
{ nroaluapro++;}
else;}
printf("Si desea dar datos de otro alumno teclea -s-");
fflush(stdin);
res=getchar();
}while (res=='s' || res=='S');
paluapro=nroaluapro*100/nroalu;
printf("Alumnos matriculados: %d\n",nroalu);
printf("Porcentaje de alumnos con todas las asignaturas aprobadas %d\n",paluapro);
}