Ir para conteúdo
Fórum Script Brasil

Andrah

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Posts postados por Andrah

  1. /*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-->não 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.nome);
                printf("\n\tDigite o NIF do funcionário: ");
                scanf("%d",&funcionario.NIF);
                printf("\n\tDigite o salario do funcionario: ");
                scanf("%f", &funcionario.salario);
                printf("\n\tDigite a categoria do funcionário: ");
                scanf(" %c", &funcionario.categoria);
                printf("\n\tDigite a Hora trabalhados pelo funcionário: ");
                scanf("%d", &funcionario.Hora_Trabalhados);
                printf("\n\n");
                //A Escrevendo no arquivo
                fprintf(file,"\t%s \t %d \t %.1f \t %c\t %d\n",funcionario.nome,funcionario.NIF,funcionario.salario,funcionario.categoria,funcionario.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-->não 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.nome);
                fscanf(file,"%d",funcionario.NIF);
                fscanf(file,"%.1f $00",funcionario.salario);
                fscanf(file,"%c",funcionario.categoria);
                fscanf(file,"%d horas",funcionario.Hora_Trabalhados);
                printf("\n\tNome: %s",funcionario.nome);
                printf("\n\tNIF: %d",funcionario.NIF);
                printf("\n\tSalario: %.1f $00", funcionario.salario);
                printf("\n\tCategoria: %c",funcionario.categoria);
                printf("\n\tHoras de trabalho: %d horas", funcionario.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-->não 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.NIF == nif ) {
                // FALTOU

                if ( funcionario.ativo== 1 ) {

                    printf("\n\tNome: %s",funcionario.nome);
                    printf("\n\tNIF: %d",funcionario.NIF);
                    printf("\n\tSalario: %.1f $00", funcionario.salario);
                    printf("\n\tCategoria: %c",funcionario.categoria);
                    printf("\n\tHoras de trabalho: %d horas", funcionario.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.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;
            printf ("\n\tPressione ENTER para iniciar->");
            fflush(stdin);
            pressioneEnter();
            system("cls");
            menu(funcionario,n);
            return 0;
        }
     

     

  2. Alguém poderia me ajudar com código em C?

    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-->não 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.nome);
                printf("\n\tDigite o NIF do funcionário: ");
                scanf("%d",&funcionario.NIF);
                printf("\n\tDigite o salario do funcionario: ");
                scanf("%f", &funcionario.salario);
                printf("\n\tDigite a categoria do funcionário: ");
                scanf(" %c", &funcionario.categoria);
                printf("\n\tDigite a Hora trabalhados pelo funcionário: ");
                scanf("%d", &funcionario.Hora_Trabalhados);
                printf("\n\n");
                //A Escrevendo no arquivo
                fprintf(file,"\t%s \t %d \t %.1f \t %c\t %d\n",funcionario.nome,funcionario.NIF,funcionario.salario,funcionario.categoria,funcionario.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-->não 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.nome);
                fscanf(file,"%d",funcionario.NIF);
                fscanf(file,"%.1f $00",funcionario.salario);
                fscanf(file,"%c",funcionario.categoria);
                fscanf(file,"%d horas",funcionario.Hora_Trabalhados);
                printf("\n\tNome: %s",funcionario.nome);
                printf("\n\tNIF: %d",funcionario.NIF);
                printf("\n\tSalario: %.1f $00", funcionario.salario);
                printf("\n\tCategoria: %c",funcionario.categoria);
                printf("\n\tHoras de trabalho: %d horas", funcionario.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-->não 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.NIF == nif ) {
                // FALTOU

                if ( funcionario.ativo== 1 ) {

                    printf("\n\tNome: %s",funcionario.nome);
                    printf("\n\tNIF: %d",funcionario.NIF);
                    printf("\n\tSalario: %.1f $00", funcionario.salario);
                    printf("\n\tCategoria: %c",funcionario.categoria);
                    printf("\n\tHoras de trabalho: %d horas", funcionario.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.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;
            printf ("\n\tPressione ENTER para iniciar->");
            fflush(stdin);
            pressioneEnter();
            system("cls");
            menu(funcionario,n);
            return 0;
        }
     

×
×
  • Criar Novo...