#include #include #include #include #define MAXIMO 100 float totalnovo; float salario[MAXIMO]; float novosal[MAXIMO]; char nome[MAXIMO][50]; int entrada_de_dados() { int i; int resp; printf ("## SUB-ROTINA DE ENTRADA DE DADOS ##\n"); i=0; while (1) { printf ("Digite o nome: "); scanf ("%s",nome[i]); printf ("Digite o salario: "); scanf ("%f",&salario[i]); i++; printf ("Deseja entrar mais dados? (0=nao, 1=sim) "); scanf ("%d",&resp); if (resp==0) return(i); if (i == MAXIMO) { printf ("## Numero maximo de dados excedido! ##\n"); return(i); } } } lista_dados(int ndados) { int i; printf("\n## SUB-ROTINA DE LISTA SALARIOS (%d) ##\n",ndados); printf ("LISTA DE SALARIOS\n"); for (i=0; i < ndados; i++) { printf ("O funcionario %s tem o salario: %.2f \n",nome[i],salario[i]); } } float total_salario(int qtde) { int i; float soma; printf ("\n## SUB-ROTINA CALCULA TOTAL DE SALARIOS ##\n"); printf ("TOTAL DE SALARIOS\n"); soma=0.0; for (i=0; i < qtde; i++) { soma = soma + salario[i]; } return(soma); } float media_salario(int qtde) { int i; float soma; printf ("\n## SUB-ROTINA CALCULA A MEDIA DE SALARIOS ##\n"); printf ("MEDIA DE SALARIOS\n"); soma=0.0; for (i=0; i < qtde; i++) { soma = soma + salario[i]; } return(soma/qtde); } float desvio_salario(int qtde) { int i; float media; float soma; float total; float desvpadp; printf ("\n## SUB-ROTINA CALCULA A DESVIO PADRAO DE SALARIOS ##\n"); media=media_salario(qtde); soma=0.0; for (i=0; i < qtde; i++) { soma = soma + (salario[i] - media) * (salario[i] - media); } total = soma / qtde; desvpadp = sqrt(total); return(desvpadp); } float maior_salario(int qtde) { int i; float max; printf ("\n## SUB-ROTINA CALCULA DETERMINA O MAIOR SALARIO ##\n"); if (qtde > 0) max=salario[0]; else max=0.0; for (i=0; i < qtde; i++) { if (salario[i] >= max) max=salario[i]; } return(max); } float menor_salario(int qtde) { int i; float min; printf ("\n## SUB-ROTINA CALCULA DETERMINA O MENOR SALARIO ##\n"); if (qtde > 0) min=salario[0]; else min=0.0; for (i=0; i < qtde; i++) { if (salario[i] <= min) min=salario[i]; } return(min); } int main() { int opcao, resp; int totdados=0; float totalsalario; float mediasalario; float dp; float maior,menor; /* Laco de leitura e processamento de dados */ printf ("\n\n> Controle de Salarios ACME <\n\n"); totdados=0; while(1) { printf ("\nMENU:\n"); printf ("1. Ler dados dos funcionarios\n"); printf ("2. Soma dados (salarios)\n"); printf ("3. Media dados (salarios)\n"); printf ("4. Desvio padrao\n"); printf ("5. Maior dado\n"); printf ("6. Menor dado\n"); printf ("7. Listar dados\n"); printf ("8. Apagar dados\n"); printf ("0: SAIR\n"); printf ("Digite a sua opcao: "); scanf ("%d",&opcao); printf ("\n"); if (opcao == 1) { totdados=entrada_de_dados(); printf("Total de dados digitados = %d\n",totdados); } else if (opcao == 2) { totalsalario=total_salario(totdados); printf("Total de salarios = %.2f\n",totalsalario); } else if (opcao == 3) { mediasalario=media_salario(totdados); printf("Media de salarios = %.2f\n",mediasalario); } else if (opcao == 4) { dp=desvio_salario(totdados); printf("Desvio padrao = %.4f\n",dp); } else if (opcao == 5) { maior=maior_salario(totdados); printf("Maior salario = %.2f\n",maior); } else if (opcao == 6) { menor=menor_salario(totdados); printf("Menor salario = %.2f\n",menor); } else if (opcao == 7) { lista_dados(totdados); } else if (opcao == 8) { printf("Confirma: apagar todos os dados? (0=nao, 1=sim) "); scanf ("%d",&resp); if (resp==1) { totdados=0; printf("# Dados APAGADOS!\n"); } else printf("# Dados PRESERVADOS!\n"); } else if (opcao == 0) { printf("Confirma: Deseja finalizar o programa? (0=nao, 1=sim) "); scanf ("%d",&resp); if (resp==1) break; } else printf("\n## Opcao invalida ##\n"); } printf("FIM!\n"); system("pause"); return 0; }