Está en la página 1de 3

#include<stdio.

h>
#include<stdlib.h>
#include<string.h>

#define MAX 100

struct empleado
{
int departamento;
int num_vendedor;
float ventas;

};

void archivo(struct empleado empleados[MAX], int posicion);


void ordenar(struct empleado empleados[MAX], int posicion);

int main()
{

struct empleado empleados[MAX];


char repetir;
int posicion = 0;
float acumulado = 0;
int total;

for(int i = 0; i < MAX; i++)


{
printf("Ingrese el numero de departamento: ");
scanf("%d",&empleados[i].departamento);
fflush(stdin);
while(empleados[i].departamento < 1 || empleados[i].departamento > 9)
{
printf("Departamento inexistente ingrese de nuevo: ");
scanf("%d",&empleados[i].departamento);
fflush(stdin);
}
printf("Ingrese el numero de vendedor: ");
scanf("%d",&empleados[i].num_vendedor);

printf("Ingrese el valor de las ventas: ");


scanf("%f",&empleados[i].ventas);
fflush(stdin);

posicion++;

printf("Desea ingresar otro empleado<S/N>: ");


scanf("%c",&repetir);

if(repetir == 'n' || repetir == 'N')


{
break;
}
}
ordenar(empleados,posicion);
printf("\t\tVENTAS TOTALES\n");
printf("_________________________________\n");
for(int j = 1; j < 10; j++)
{
total = 0;
printf("Numero de departamento:\t%d Vendedor\tVentas\n",j);
for(int i = 0; i < posicion; i ++)
{
if(empleados[i].departamento == j)
{
printf("\t\t\t%d\t%f\n", empleados[i].num_vendedor,
empleados[i].ventas);
total+= empleados[i].ventas;
}
}
printf("\t\tTotal departamento: %d \n",total);
acumulado+=total;
}
printf("\t\t\t\tGRAN TOTAL: %f",acumulado);
archivo(empleados,posicion);
return 0;
}

void archivo(struct empleado empleados[MAX], int posicion)


{
FILE *pt;
float acumulado = 0;
int total;
if((pt = fopen("texto.txt","w")) == NULL)
{
printf("No se puede abrir el archivo");
exit(1);
}

fprintf(pt,"\t\tVENTAS TOTALES\n");
fprintf(pt,"_________________________________\n");
for(int j = 1; j < 10; j++)
{
total = 0;
fprintf(pt,"Numero de departamento:\t%d Vendedor\tVentas\n",j);
for(int i = 0; i < posicion; i ++)
{
if(empleados[i].departamento == j)
{
fprintf(pt,"\t\t\t%d\t%f\n", empleados[i].num_vendedor,
empleados[i].ventas);
total+= empleados[i].ventas;
}
}
acumulado+=total;
fprintf(pt,"\t\tTotal departamento: %d \n",total);
}
fprintf(pt,"\t\t\t\tGRAN TOTAL: %f",acumulado);
fclose(pt);
}

void ordenar(struct empleado empleados[MAX], int posicion)


{
struct empleado aux;
for(int i = 0; i < posicion-1; i++)
{
for(int j = i+1; j < posicion; j++)
{
if(empleados[i].num_vendedor < empleados[j].num_vendedor)
{
aux = empleados[i];
empleados[i] = empleados[j];
empleados[j] = aux;
}
}
}