me ajudem ai

1. me ajudem ai

Andrah
Andrah

(usa Outra)

Enviado em 02/05/2020 - 18:32h

/*
1. Escreva uma função, que insira dados de N funcionários da Universidade Cabo Verde e envia-los para ficheiro como o nome
funcionarios.txt (o programa deverá informar quantos funcionários deseja inserir no sistema?);
2. Escreva uma função, que imprima registos de todos os funcionários que se encontra no ficheiro com o nome funcionarios.txt, inserido
anteriormente?
3. Escreva uma função, que imprima os funcionários por categoria.
4. Escreva uma função, que permite calcular quanto gasta a universidade com os funcionários por categoria?
5. Temos três tipos de categorias dos funcionários [Docente, Diretor e Técnico], sabendo que o funcionário que é Docente recebe 2500$
por cada hora, um Diretor recebe 3500$ por hora, e um Técnico recebe 1500$ por hora. Escreva uma função, que mostra o salário de
um determinado funcionário dependendo do seu salário liquido por hora, sabendo que INPS é de 12%, IUR é de 20% e sindicato é de
1%;
6. Escreva uma função, que ordena os funcionários na ordem crescentes e envia-los para o ficheiro com o nome
ordenar_funcionarios.txt;
7. Escreva uma função, que imprima todos os funcionários com salario maior que 75000$.
8. Escreva uma função, que dado nº de NIF permite eliminar todas as informações desse funcionário.

//bibliotecas
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <time.h>


//Dados do funcionário
struct Funcionario {
char nome[20];
int NIF;
char categoria;
float salario;
int Hora_Trabalhados;
//Verificar se está ativo no Sistema
int ativo;
};

// Para não atrapalhar o bom funcionamento
void pressioneEnter() {
char c;
do {
c = getch();
} while (c != 13);
}


void IncerirFuncionario(struct Funcionario funcionario[],int n) {
system("COLOR 0F");
int i;
FILE *file; // cria variável ponteiro para o arquivo
file= fopen("funcionarios.txt", "w"); //abrindo o arquivo
if(file == NULL) //testando se o arquivo foi realmente criado
printf("\n-->Nao foi possivel abrir o fecheiro\n\n");
else {
printf ("\n\n\n\n\tUNICV \n\n");
printf("\n\n\n\t\tDigite o numero de Funcionarios que pretende registrar: ");
scanf("%i",&n);
fflush(stdin);
system("cls");
static int i=0;
int y=n+i;
if(y>99)
menu(funcionario,n);
printf("\n\n\n\t\t-------- INSCRIÇÃO DE FUNCIONÁRIO --------\n\n");
fprintf(file,"\n\n\t----- LISTA DOS FUNCIONÁRIOS ----\n\n");
fprintf(file,"\tNome NIF Salário Categoria Horas\n\n");
for(; i<y; i++) {
system("COLOR 0B");
// para obter dados e armazenar no arquivo
printf("\n\tDigite o nome do funcionário: ");
scanf(" %s",&funcionario[i].nome);
printf("\n\tDigite o NIF do funcionário: ");
scanf("%d",&funcionario[i].NIF);
printf("\n\tDigite o salario do funcionario: ");
scanf("%f", &funcionario[i].salario);
printf("\n\tDigite a categoria do funcionário: ");
scanf(" %c", &funcionario[i].categoria);
printf("\n\tDigite a Hora trabalhados pelo funcionário: ");
scanf("%d", &funcionario[i].Hora_Trabalhados);
printf("\n\n");
//A Escrevendo no arquivo
fprintf(file,"\t%s \t %d \t %.1f \t %c\t %d\n",funcionario[i].nome,funcionario[i].NIF,funcionario[i].salario,funcionario[i].categoria,funcionario[i].Hora_Trabalhados);
}
printf("\n\t\t-------------------------<3--------------------------\n");
printf("\n\t Incritos com sucesso! \n\n\t Registado no fecheiro -> funcionarios.txt\n\n");
printf ("\n\n\n\t\t\tPressione ENTER para Continuar->");
fflush(stdin);
pressioneEnter();
system("cls");
menu(funcionario,y);
}
fclose(file); // para fechar o arquivo
}

void ImprimirFuncionarios(struct Funcionario funcionario[],int n) {
FILE *file;

file = fopen("C:\\Users\\alex\\Desktop\\teste4\\funcionarios.txt", "r");
if(file == NULL)
printf("\n-->Nao foi possivel abrir o fecheiro\n\n");

else {
int i;
printf("\n\n\n\t\t------- LISTA DOS FUNCIONÁRIOS ------\n\n");
for(i=0; i<n; i++) {
system("COLOR 0F");
fscanf(file,"%s",funcionario[i].nome);
fscanf(file,"%d",funcionario[i].NIF);
fscanf(file,"%.1f $00",funcionario[i].salario);
fscanf(file,"%c",funcionario[i].categoria);
fscanf(file,"%d horas",funcionario[i].Hora_Trabalhados);
printf("\n\tNome: %s",funcionario[i].nome);
printf("\n\tNIF: %d",funcionario[i].NIF);
printf("\n\tSalario: %.1f $00", funcionario[i].salario);
printf("\n\tCategoria: %c",funcionario[i].categoria);
printf("\n\tHoras de trabalho: %d horas", funcionario[i].Hora_Trabalhados);
printf("\n\n----------------------------------------------------------\n");
}
}

printf ("\n\n\n\t\t\tPressione ENTER para Continuar->");
fflush(stdin);
pressioneEnter();
system("cls");
fclose(file);

}
void OrdenarFuncionario(struct Funcionario funcionario[],int n){



}


void EliminarFuncionario(struct Funcionario funcionario[],int n) {
FILE *file;

//Abre o arquivo novamente para leitura
file = fopen("funcionarios.txt", "r+");
if(file == NULL)
printf("\n-->Nao foi possivel abrir o fecheiro\n\n");

else {
int nif, i;
char resp;
printf("\n\tInforme o NIF do funcionario a ser Eliminado: ");
scanf("%d",&nif);

while( funcionario[i].NIF == nif ) {
// FALTOU

if ( funcionario[i].ativo== 1 ) {

printf("\n\tNome: %s",funcionario[i].nome);
printf("\n\tNIF: %d",funcionario[i].NIF);
printf("\n\tSalario: %.1f $00", funcionario[i].salario);
printf("\n\tCategoria: %c",funcionario[i].categoria);
printf("\n\tHoras de trabalho: %d horas", funcionario[i].Hora_Trabalhados);
printf("\n\n----------------------------------------------------------\n");
}
printf("\n\tDeseja realmente eliminar o Funcionário? S/N:");
scanf("%c",&resp);

if ( ( resp == 'S' ) || ( resp == 's' ) ) {
funcionario[i].ativo=0;
printf("\n\tFuncionário eliminado com sucesso\n");
break;
} else {
if ( ( resp == 'N' ) || ( resp == 'n' ) ) {
printf("\tEliminação cancelada!\n");
break;
}
}
}
i++;

if ( i > 99 )
printf("\n\n\t\tNIF não encontrado\n");
}
fclose(file);
printf ("\n\n\n\t\t\tPressione ENTER para Continuar->");
fflush(stdin);
pressioneEnter();
system("cls");
}

void menu(struct Funcionario funcionario[],int n) {
int op;
do {
system("COLOR 0F"); //Menu
printf("\n\n\t\t\t\t---> SISTEMA DE REGISTO E CONTROLE DE FUNCIONÁRIO \n\n");
printf("\n\t\t* 1 ------- INSERIR OS FUNCIONÁRIOS E ENVIA-LOS PARA O FICHEIRO ------------------------ *\n");
printf("\n\t\t* 2 ------- IMPRIMIR A LISTA DOS FUNCIONÁRIOS DO FICHEIRO ------------------------------ *\n");
printf("\n\t\t* 3 ------- IMPRIMIR OS FUNCIONÁRIOS POR CATEGORIA ------------------------------------- *\n");
printf("\n\t\t* 4 ------- GASTO DA UNIVERSIDADE COM OS FUNCIONÁRIOS ---------------------------------- *\n");
printf("\n\t\t* 5 ------- CALCULAR O SALÁRIO DE UM FUNCIONÁRIO X EM FUNÇÃO DO SEU SALÁRIO POR HORA --- *\n");
printf("\n\t\t* 6 ------- ORDENAR FUNCIONÁRIO NA ORDEM CRESCENTE ------------------------------------- *\n");
printf("\n\t\t* 7 ------- IMPRIMIR OS FUNCIONÁRIOS COM SALÁRIO MAIOR QUE 75000$ ---------------------- *\n");
printf("\n\t\t* 8 ------- ELIMINAR UM FUNCIONÁRIO A PARTIR DO Nº DO NIF ------------------------------ *\n");
printf("\n\t\t* 0 ------- Sair\n\n");
printf("\n\tEscolha uma opcao: ");
scanf("%d",&op);
printf("\n");
switch (op) {
case 0:
printf("\n\n\n\n\n\t-> Saindo... \n\n");
break;
case 1:
system("cls");
IncerirFuncionario(funcionario,n);
break;
case 2:
system("cls");
ImprimirFuncionarios(funcionario,n);
break;
case 8:
system("cls");
EliminarFuncionario(funcionario,n);
break;
default:
system("COLOR C0");
printf("\n\t\t\t\t*-*-*-*-- ERRO --> Numero INVALIDO!\n\n");
printf ("\n\tPressione ENTER para Tentar Novamente->");
fflush(stdin);
pressioneEnter();
system("cls");
}
} while (op != 0);

int main() {
setlocale(LC_ALL, "Portuguese");
struct Funcionario funcionario[100];
int n;
system("COLOR F0"); //Abertura do programa
printf("\n\n\n\n\n\t\t\t....................................................................\n");
printf("\n\t\t\t\t----> SISTEMA DE REGISTO E CONTROLE DE FUNCIONÁRIO \n");
printf("\n\t\t\t.....................................................................\n\n\n\n\n");
printf ("\n\t\t\t UNICV \n\n");
printf ("\n\tPressione ENTER para iniciar->");
fflush(stdin);
pressioneEnter();
system("cls");
menu(funcionario,n);
return 0;
}



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts