[C] Sistema de Venta de Boletos - Mejorar codigo

Iniciado por LitionGeek, Mayo 11, 2020, 12:49:35 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 11, 2020, 12:49:35 PM Ultima modificación: Mayo 11, 2020, 03:50:34 PM por Gabriela
Hola buenos dias, soy nuevo en el foro, estoy realizando un programa el cual, debe pedir Numero de empleado,numero de sucursal(Donde se compro el boleto),cantidad de boletos comprados, y valor de cada uno, luego debe imprimir la cantidad de boletos que vendio cada empleado. Pude realizarlo pero la verdad podria mejorarse, segun entiendo con una matriz podria mejorarse. Les dejo el Codigo.

Muchas gracias.

Código: php
#include <stdio.h>
#define EXIT_SUCCESS 0

//PROTOTIPOS
void ventaVuelo();
//Matriz que quedo sin utilizar
//int ventasEmp[6][10];

int emp1;
int emp2;
int emp3;
int emp4;
int emp5;
int emp6;



int main()
{

ventaVuelo();
return 0;

}

int seguir=1,cant;
int cantExcedentes,cantVendido,numAeropuerto;
int legajo;
float bolMayor,vPasaje;

void ventaVuelo()
{
do
{
fflush(stdin);
//Pide el Numero del Empleado
printf("Ingrese el Numero del Empleado: ");
scanf("%i",&legajo);
//Verifica el legajo del empleado sea distinto de cero y menor a 6
while(legajo!=0 && legajo > 6)
{
printf("\nEl legajo no existe");
printf("Ingrese el Numero del Empleado: ");
scanf("%i",&legajo);
}


printf("Ingrese el Numero del Aeropuerto: ");
scanf("%i",&numAeropuerto);

printf("Ingrese la cantidad de pasajes: ");
scanf("%i",&cantVendido);

printf("Cantidad vendido %i legajo %i",cantVendido,legajo);
//ventasEmp[legajo][cantVendido];
//Valida segun el legajo , realiza un acumulador de cantidad vendidas
if(legajo ==1)
{
emp1 = emp1 + cantVendido;
}
if(legajo ==2)
{
emp2 = emp2 + cantVendido;
}
if(legajo ==3)
{
emp3 = emp3 + cantVendido;
}
if(legajo ==4)
{
emp4 = emp4 + cantVendido;
}
if(legajo ==5)
{
emp5 = emp5 + cantVendido;
}
if(legajo ==6)
{
emp6 = emp6 + cantVendido;
}
//Pide el precio de cada boleto
for(int i = 0 ; i < cantVendido; i++ )
{
fflush(stdin);
printf("\nIngrese el valor del pasaje %i: ",i+1);
scanf("%i",&vPasaje);
if(bolMayor<vPasaje);
{
bolMayor = vPasaje;
}
if(vPasaje > 1000)
{
cantExcedentes++;
}
}

printf("Desea seguir: ");
scanf("%i",&seguir);
//cant++;

}while(seguir);

//Solo imprime el los boletos junto a los empleados

printf("\n%i Boletos vendido por el empleado 1",emp1);
printf("\n%i Boletos vendido por el empleado 2",emp2);
printf("\n%i Boletos vendido por el empleado 3",emp3);
printf("\n%i Boletos vendido por el empleado 4",emp4);
printf("\n%i Boletos vendido por el empleado 5",emp5);
printf("\n%i Boletos vendido por el empleado 6",emp6);


printf("\nCantidad de ventas que excedieron los $1000: %i",cantExcedentes);
printf("Boleto mayor valor %f.2: ",bolMayor);

}

Lo modifiqué según como está su código, si falta algo es porque no ha colocado el enunciado completo:

Código: c

#include <stdio.h>
#define EXIT_SUCCESS 0

//PROTOTIPOS
void ventaVuelo();

/*

debe pedir Numero de empleado,numero de sucursal
(Donde se compro el boleto),cantidad de boletos comprados,
y valor de cada uno, luego debe imprimir la cantidad de boletos
que vendio cada empleado.

*/


int main()
{
   
   ventaVuelo();
   return EXIT_SUCCESS;

}

void ventaVuelo()
{
   
    int cantExcedentes=0,
        terminado = 0,
        cantVendido,
        numAeropuerto,
        legajo,
        empleados[6] = {0,0,0,0,0,0};
       
    char resp;
       
    float bolMayor=0,vPasaje=0;
   
   
    while (terminado!=1){
       
        //Pide el Numero del Empleado
        printf("Ingrese el Numero del Empleado: ");
        scanf("%d",&legajo);
       
         // Verifica que el legajo del empleado sea menor a 0 y mayor a 6
       
        while (legajo<=0 || legajo>6){
               
            printf("\nEl legajo no existe\n");
            printf("Ingrese el Numero del Empleado: ");
            scanf("%d",&legajo);
               
        }
   
       
        printf("Ingrese el Numero del Aeropuerto: ");
        scanf("%d",&numAeropuerto);
       
        printf("Ingrese la cantidad de pasajes: ");
        scanf("%d",&cantVendido);
       
        switch (legajo){
           
            case 1:
            empleados[legajo-1] += cantVendido;
            break;
           
            case 2:
            empleados[legajo-1] += cantVendido;
            break;
           
            case 3:
            empleados[legajo-1] += cantVendido;
            break;
           
            case 4:
            empleados[legajo-1] += cantVendido;
            break;
           
            case 5:
            empleados[legajo-1] += cantVendido;
            break;
           
            case 6:
            empleados[legajo-1] += cantVendido;
            break;
           
        }
       
        printf("\n");
       
        for (int a=0; a<cantVendido; a++){
           
            printf("Ingrese el valor del pasaje %d: ",a+1);
            scanf("%f",&vPasaje);
           
            if(bolMayor<vPasaje){
               
                bolMayor = vPasaje;
               
            }   
           
            if(vPasaje > 1000){
               
                  cantExcedentes++;
                 
            }         
           
        }
       
        printf("\nDesea continuar? (s/n): ");
        scanf(" %c",&resp);
       
        if (resp=='n'){
           
            terminado = 1;
           
        }
       
    }
   
    printf("\n");
   
    for (int i=0; i<6; i++){
       
     printf("\n\n%d Boletos vendido por el empleado %d",empleados[i],i+1);   
       
    }
   
    printf("\n\nCantidad de ventas que excedieron los $1000: %d",cantExcedentes);
    printf("\nBoleto mayor valor %.2f: ",bolMayor);
 
   
}


Espero le sirva de algo. Saludos!
-Kirari