Ir para conteúdo
Matheus William

Controle de funcionários(erro na gravação de dados)

Recommended Posts

Olá pessoal tudo bem? Eu estou fazendo um programa para controle de funcionários em C, e estou com problemas em algumas partes do código.Os dados de cadastramento de funcionário e departamento não está sendo gravados nos seus respectivos arquivo, e em "cadastrar departamento" depois de digitar o código do departamento que sera criado e apertar enter o programa buga.

 

Segue o código:

 

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

typedef struct{
    long int codigo, cod_gerente;
    char nome[30],sigla[5];
    unsigned short int ramal;
}TDepartamento;

typedef struct{
    long int cod_dep, numero;
    char nome[60],matricula[10],dataNascimento[11],cpf[12],rua[40],bairro[30],
    complemento[20],cidade[30],estado[3],telefone[15],email[30];
    double salario;
}TFuncionario;

typedef struct{
    long int codfun, coddep;
    char data[11];
}Thistoricofuncionario;

typedef struct{
    long int codgerente, coddep;
    char data[11];
}Thistoricodepartamento;

typedef struct{
    long int codfun;
    unsigned short int mes,ano;
    double salario;
}Thistoricosalario;

int pesquisaDep(FILE *da, long int *cod){
    TDepartamento v;
    int posicao=0;
    /*posição no início do arquivo*/
    fseek(da,0,SEEK_SET);
    while(fread(&v,sizeof(TDepartamento),1,da)==1){
        if(v.codigo==cod)
            return posicao;
        else
            posicao++;
    }
    return -1;
}
/*retorna a posiço do registro ou -1 se não encontrar*/
int pesquisaFun(FILE *a, char *matricula){
    TFuncionario r;
    int posicao=0;
    /*posição no início do arquivo*/
    fseek(a,0,SEEK_SET);
    while(fread(&r,sizeof(TFuncionario),1,a)==1){
        if(r.matricula==matricula)
            return posicao;
        else
            posicao++;
    }
    return -1;
}


/*Cadastrar um Departamento*/
void cadDep(FILE *da, FILE *a){
    int sair,p;
    long int cod,codger;
    unsigned short int ch;
    TDepartamento vd;
    do{
        printf("\n******************************************************\n");
        printf("\n*          Cadastramento de Departamento             *\n");
        printf("\n******************************************************\n");
        printf("\nCódigo do Departamento:");
        scanf("%li",&cod);
        if(pesquisaDep(da,cod)==-1){
            strcpy(vd.codigo,cod);
            setbuf(stdin,NULL);
            printf("\nNome do departamento:");
            fgets(vd.nome,30,stdin);
            setbuf(stdin,NULL);
            if((strlen(vd.nome)==0) || (strcmp(vd.nome,"0")==0)){
                printf("\nO campo nome não pode estar vazio!Digite novamente:");
                fgets(vd.nome,30,stdin);
            }
            printf("\nSigla do Departamanto:");
            fgets(vd.sigla,5,stdin);
            setbuf(stdin,NULL);
            printf("\nCodigo do funcionario que será gerente do departamento:");
            scanf("%li",codger);
            if(pesquisaFun(a,codger)==-1)
                strcpy(vd.cod_gerente,codger);
            else
                printf("\nMatricula de funcionario inexistente!!!");
            printf("\nRamal:");
            fflush(stdin);
            scanf("%d",&ch);
            if(isdigit(ch)){
                strcpy(vd.ramal,ch);
            }
            else{
                printf("voce não digitou um numero!!!\n\n");
                scanf("%d",&ch);
            }

            /*posicionando no final do arquivo*/
            fseek(da,0,SEEK_END);
            fwrite(&vd,sizeof(TDepartamento),1,da);

        }
        else
            printf("\nDepartamento já existe!!!!");

        printf("\n\nDeseja sair do cadastro? 1-Sim 2-Não ");
        scanf("%d",&sair);
    }while(sair!=1);
}

/*Validar o CPF do funcionario*/
int validarCPF(char cpf[]){
    int i, j, digito1 = 0, digito2 = 0;
    if(strlen(cpf) != 11)
        return 0;
    else if((strcmp(cpf,"00000000000") == 0) || (strcmp(cpf,"11111111111") == 0) || (strcmp(cpf,"22222222222") == 0) ||
            (strcmp(cpf,"33333333333") == 0) || (strcmp(cpf,"44444444444") == 0) || (strcmp(cpf,"55555555555") == 0) ||
            (strcmp(cpf,"66666666666") == 0) || (strcmp(cpf,"77777777777") == 0) || (strcmp(cpf,"88888888888") == 0) ||
            (strcmp(cpf,"99999999999") == 0))
        return 0; /*se o CPF tiver todos os números iguais ele é inválido.*/
    else{
        /*digito 1---------------------------------------------------*/
        for(i = 0, j = 10; i < strlen(cpf)-2; i++, j--) /*multiplica os números de 10 a 2 e soma os resultados dentro de digito1*/
            digito1 += (cpf[i]-48) * j;
        digito1 %= 11;
        if(digito1 < 2)
            digito1 = 0;
        else
            digito1 = 11 - digito1;
        if((cpf[9]-48) != digito1)
            return 0; /*se o digito 1 não for o mesmo que o da validação CPF é inválido*/
        else{
        /*digito 2--------------------------------------------------*/
            for(i = 0, j = 11; i < strlen(cpf)-1; i++, j--) /*multiplica os números de 11 a 2 e soma os resultados dentro de digito2*/
                    digito2 += (cpf[i]-48) * j;
        digito2 %= 11;
        if(digito2 < 2)
            digito2 = 0;
        else
            digito2 = 11 - digito2;
        if((cpf[10]-48) != digito2)
            return 0; /*se o digito 2 não for o mesmo que o da validação CPF é inválido*/
        }
    }
    return -1;
}


/*Cadastrar um funcionario*/
void cadFun(FILE *a, FILE *da){
    int i,cod,sair,achou,data;
    char mat[10],cp[11];
    TFuncionario vf;
    TDepartamento vd;
    do{
        printf("\n******************************************************\n");
        printf("\n*          Cadastramento de Funcionarios             *\n");
        printf("\n******************************************************\n");

        printf("\nForneça a matricula:");
        fgets(mat,10,stdin);
        if(pesquisaFun(a,mat)==-1){
            strcpy(vf.matricula,mat);
            setbuf(stdin,NULL);
            printf("\nNome do Funcionario:");
            fgets(vf.nome,60,stdin);
            setbuf(stdin,NULL);
            if(vf.nome==NULL){
                printf("\nO nome não pode estar vazio!!!");
                fgets(vf.nome,60,stdin);
                setbuf(stdin,NULL);
            }
            printf("\nSalario do Funcionario:");
            scanf("%lf",&vf.salario);
            setbuf(stdin,NULL);
            printf("\nData de nascimento:");
            fgets(vf.dataNascimento,11,stdin);
            setbuf(stdin,NULL);

            printf("\nCPF:");
            fgets(cp,12,stdin);
            setbuf(stdin,NULL);
            if(validarCPF(cp)==-1)
                strcpy(vf.cpf,cp);
            else{
                printf("\nCPF inválido!Digite-o novamente:");
                fgets(cp,12,stdin);
                setbuf(stdin,NULL);
            }


            printf("\n******************************************************\n");
            printf("\n*                    Endereço                        *\n");
            printf("\n******************************************************\n");
            printf("\nRua:");
            fgets(vf.rua,40,stdin);
            setbuf(stdin,NULL);
            printf("\nBairro:");
            fgets(vf.bairro,30,stdin);
            setbuf(stdin,NULL);
            printf("\nNúmero:");
            scanf("%li",&vf.numero);
            setbuf(stdin,NULL);
            printf("\nComplemento:");
            fgets(vf.complemento,20,stdin);
            setbuf(stdin,NULL);
            printf("\nCidade:");
            fgets(vf.cidade,30,stdin);
            setbuf(stdin,NULL);
            printf("\nEstado:");
            fgets(vf.estado,3,stdin);
            setbuf(stdin,NULL);

            printf("\n******************************************************\n");
            printf("\n*                Informações de contato              *\n");
            printf("\n******************************************************\n");
            printf("\nTelefone:");
            fgets(vf.telefone,15,stdin);
            setbuf(stdin,NULL);
            printf("\nE-mail:");
            fgets(vf.email,30,stdin);
            setbuf(stdin,NULL);
            printf("\nForneça o Código do departamento:");
            scanf("%d",&cod);
            if(pesquisaDep(da,cod)==-1)
                strcpy(vf.cod_dep,cod);
            else
                printf("\nDepartamento inexistente!!!");


            /*posicionando no final do arquivo*/
            fseek(a,0,SEEK_END);
            fwrite(&vf,sizeof(TFuncionario),1,a);

        }
        else
            printf("\nMatricula de funcionario repetida!!!!");
        printf("\n\nDeseja sair do cadastro? 1-Sim 2-Não ");
        scanf("%d",&sair);

    }while(sair!=1);
}


/*Consultar um funcionario cadastrado*/
void consFun(FILE *a, FILE *da){
    int sair,p;
    TFuncionario rf;
    do{
        printf("\nForneça a matricula:");
        fgets(rf.matricula,10,stdin);
        if(pesquisaFun(a,rf.matricula)==-1){

            /*posicionando no final do arquivo*/
            fseek(a,sizeof(TFuncionario)*p,SEEK_SET);
            fread(&rf,sizeof(TFuncionario),1,a);
            printf("\n******************************************************\n");
            printf("\n*                 Dados do Funcionario               *\n");
            printf("\n******************************************************\n");
            printf("\nMatricula: %s",&rf.matricula);
            printf("\nNome: %s",&rf.nome);
            printf("\nSalario: %.2f",&rf.salario);
            printf("\nData de nascimento: %s",&rf.dataNascimento);
            printf("\nCPF: %s",&rf.cpf);
            printf("\nRua: %s",&rf.rua);
            printf("\nBairro: %s",&rf.bairro);
            printf("\nNúmero: %li",&rf.numero);
            printf("\nComplemento: %s",&rf.complemento);
            printf("\nCidade: %s",&rf.cidade);
            printf("\nEstado: %s",&rf.estado);
            printf("\nTelefone: %s",&rf.telefone);
            printf("\nE-mail: %s",&rf.email);

        }
        else
            printf("\nMatriclua inexistente!!!");

        printf("\n\nDeseja sair da consulta? 1-Sim 2-Não ");
        scanf("%d",&sair);
    }while(sair!=1);
}


/*Alterar os dados de um funcionario e atualizar o arquivo histfun*/
void alteracaoFun(FILE *a,FILE *da, FILE *hist){
    int cod,sair,achou,data,p;
    char cp[11];
    TFuncionario rf;
    TDepartamento rd;
    do{

        printf("\n******************************************************\n");
        printf("\n*       Alteração de Dados do Funcionarios           *\n");
        printf("\n******************************************************\n");

        printf("\nForneça a matricula:");
        fgets(rf.matricula,10,stdin);

        p=pesquisaFun(a,rf.matricula);
        if(p==-1){

            setbuf(stdin,NULL);
            printf("\nNome do Funcionario:");
            fgets(rf.nome,60,stdin);
            if(rf.nome==NULL){
                printf("\nO nome não pode estar vazio!!!");
                fgets(rf.nome,60,stdin);
            }
            setbuf(stdin,NULL);
            printf("\nData de nascimento:");
            fgets(rf.dataNascimento,11,stdin);
            setbuf(stdin,NULL);

            printf("\nCPF:");
            fgets(cp,12,stdin);

            if(validarCPF(cp)==1)
                strcmp(rf.cpf,cp);
            else{
                printf("\nCPF inválido!Digite-o novamente:");
                fgets(cp,12,stdin);
            }
            setbuf(stdin,NULL);

            printf("\n******************************************************\n");
            printf("\n*                    Endereço                        *\n");
            printf("\n******************************************************\n");
            printf("\nRua:");
            fgets(rf.rua,40,stdin);
            setbuf(stdin,NULL);
            printf("\nBairro:");
            fgets(rf.bairro,30,stdin);
            setbuf(stdin,NULL);
            printf("\nNúmero:");
            scanf("%li",&rf.numero);
            setbuf(stdin,NULL);
            printf("\nComplemento:");
            fgets(rf.complemento,20,stdin);
            setbuf(stdin,NULL);
            printf("\nCidade:");
            fgets(rf.cidade,30,stdin);
            setbuf(stdin,NULL);
            printf("\nEstado:");
            fgets(rf.estado,3,stdin);
            setbuf(stdin,NULL);

            printf("\n******************************************************\n");
            printf("\n*                Informações de contato              *\n");
            printf("\n******************************************************\n");
            printf("\nTelefone:");
            fgets(rf.telefone,15,stdin);
            setbuf(stdin,NULL);
            printf("\nE-mail:");
            fgets(rf.email,30,stdin);
            setbuf(stdin,NULL);

            /*posicionando no final do arquivo*/
            fseek(a,sizeof(TFuncionario)*p,SEEK_SET);
            fwrite(&rf,sizeof(TFuncionario),1,a);
        }
        else
            printf("\nMatriclua inexistente!!!");

        printf("\n\nDeseja sair da alteração? 1-Sim 2-Não ");
        scanf("%d",&sair);

    }while(sair!=1);
}


/*Alterar o departamento do funcionario e atualizar o arquivo histdep*/
void alteracaoFunDep(FILE *a,FILE *da, FILE *hist){
    int sair,p,cod,achou;
    TFuncionario rf;
    TDepartamento rd;
    do{
        printf("\nForneça a matricula do funcionario:");
        fgets(rf.matricula,10,stdin);

        p=pesquisaFun(a,rf.matricula);
        if(p==-1){
            do{
                setbuf(stdin,NULL);
                printf("\nForneça o novo departamento do funcionario:");
                fgets(rf.cod_dep,60,stdin);
                setbuf(stdin,NULL);
                achou=0;
                if(pesquisaDep(da,rd.codigo)==1)
                    printf("\nDepartamento não cadastrado!!!");
                else
                    achou=1;
            }while(achou==0);
            strcpy(rf.cod_dep,cod);

            /*posicionando no final do arquivo*/
            fseek(a,sizeof(TFuncionario)*p,SEEK_SET);
            fwrite(&rf,sizeof(TFuncionario),1,a);
        }
        else
            printf("\nMatriclua inexistente!!!");

        printf("\n\nDeseja sair da alteração? 1-Sim 2-Não ");
        scanf("%d",&sair);
    }while(sair!=1);
}

/*Alterar o salario do funcionario*/
void alteracaoSalarioFun(FILE *a,FILE *hist){
    int sair,p,cod,achou;
    TFuncionario rf;
    TDepartamento rd;
    do{
        printf("\nForneça a matricula do funcionario:");
        fgets(rf.matricula,10,stdin);

        p=pesquisaFun(a,rf.matricula);
        if(p==-1){
                setbuf(stdin,NULL);
                printf("\nForneça o novo salario do funcionario:");
                scanf("%lf",&rf.salario);
                setbuf(stdin,NULL);

            /*posicionando no final do arquivo*/
            fseek(a,sizeof(TFuncionario)*p,SEEK_SET);
            fwrite(&rf,sizeof(TFuncionario),1,a);
        }
        else
            printf("\nMatriclua inexistente!!!");

        printf("\n\nDeseja sair da alteração? 1-Sim 2-Não ");
        scanf("%d",&sair);
    }while(sair!=1);
}

/*Alterar o salario do funcionario e atualizar o arquivo histsal*/
void alteracaoGerenteDep(FILE *da,FILE *a, FILE *hist){
    int sair,p,cod,achou;
    TFuncionario rf;
    TDepartamento rd;
    do{
        printf("\nForneça o codigo do departamento:");
        scanf("%li",&rd.codigo);

        p=pesquisaDep(da,rd.codigo);
        if(p==-1){
                setbuf(stdin,NULL);
                printf("\nForneça a matricula do novo gerente do departamento:");
                scanf("%li",&rd.cod_gerente);
                setbuf(stdin,NULL);

            /*posicionando no final do arquivo*/
            fseek(a,sizeof(TFuncionario)*p,SEEK_SET);
            fwrite(&rf,sizeof(TFuncionario),1,a);
        }
        else
            printf("\nMatriclua inexistente!!!");

        printf("\n\nDeseja sair da alteração? 1-Sim 2-Não ");
        scanf("%d",&sair);
    }while(sair!=1);
}


int main(){
    FILE *func;
    FILE *dep;
    FILE *histfun;
    FILE *histdep;
    FILE*histsal;
    int opcao;
    func = fopen("funcionario.dat","rb+");
    dep = fopen("departamento.dat","rb+");
    histfun = fopen("histfun.dat","rb+");
    histdep = fopen("histdep.dat","rb+");
    histsal = fopen("histsal.dat","rb+");

    if (dep==NULL)
     dep=fopen("departamento.dat","wb+");
        if (dep==NULL){
         printf("\nErro na abertura do arquivo");
        }
        else
            func=fopen("funcionario.dat","rb+");
            if(func==NULL){
                func=fopen("funcionario.dat","wb+");
            }
            if(func==NULL){
                printf("\nErro na abertura do arquivo");
            }
            else{
                histfun=fopen("histfun.dat","rb+");
            }
            if(histfun==NULL){
                histfun=fopen("histfun.dat","wb+");
            }
            if(histfun==NULL){
                printf("\nErro na abertura do arquivo");
            }
            else{
                histdep=fopen("histdep.dat","rb+");
            }
            if(histdep==NULL){
                histdep=fopen("histdep.dat","wb+");
            }
            if(histdep==NULL){
                printf("\nErro na abetura do arquivo");
            }
            else{
                histsal=fopen("histsal.dat","rb+");
            }
            if(histsal==NULL){
                histsal=fopen("histsal.dat","wb+");
            }
            if(histsal==NULL){
                printf("\nErro na abertura do arquivo");
            }

    else
        do{
            printf("\n******************************************************\n");
            printf("\n*            Controle de Funcionarios                *\n");
            printf("\n******************************************************\n");
            printf("\n1-Cadastro de Departamentos\n2-Cadastro de Funcionarios");
            printf("\n3-Consultar Funcionario");
            printf("\n4-Relatorio de Funcionários por Departamento");
            printf("\n5-Alterar um funcionario");
            printf("\n6-Alterar Departamento de um Funcionario");
            printf("\n7-Alterar Gerente de um Departamento");
            printf("\n8-Gerar Folha de Pagamento");
            printf("\n9-Alterar o salario de um Funcionario");
            printf("\n10-Historico de Salario em um periodo");
            printf("\n11-Gerentes de um Departamento");
            printf("\n12-Fim\nForneça sua opção:");
            scanf("%d", &opcao);
            switch(opcao){
                case 1:
                    cadDep(dep,func);
                    break;
                case 2:
                    cadFun(func, dep);
                    break;
                case 3:
                    consFun(func,dep);
                    break;
                case 5:
                    alteracaoFun(func,dep, histfun);
                    break;
                case 6:
                    alteracaoFunDep(func,dep,histfun);
                    break;
                case 7:
                    alteracaoGerenteDep(dep,func,histdep);
                case 9:
                    alteracaoSalarioFun(func,histsal);
                    break;

            }
        }while(opcao!=12);
        fclose(func);
        fclose(dep);
        fclose(histfun);
        fclose(histdep);
        fclose(histsal);
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por renatomarq5s
      Boa tarde pessoal!!
      Estou iniciando no JS/Jquery e me apareceu um problema que não achei nenhuma solução
       
      Eu sei que quando usamos aspas duplas dentro dela podemos usar aspas simples.
       
      EX:  $("head").prepend("<meta http-equiv='Content-Security-Policy'>"); ou  $("head").prepend('<meta http-equiv="Content-Security-Policy">');
       
      Mas tenho um caso que tem que já tem aspas simpes e dupla, o que devo fazer?
      Segue o exemplo do código.
       
      $("head").prepend("<meta http-equiv='Content-Security-Policy' content='default-src gap://ready file://* *; style-src " + "self" + "http://* https://* " + "unsafe-inline" + "; script-src " + "self" + " http://* https://* " + "unsafe-inline" + "unsafe-eval" + '>");  
      Obrigado, e boa tarde a todos
    • Por LucasCBSouto
      Pessoal, estou com dificuldades na solução deste problema:  
       
      Seja um número N natural maior ou igual a 1. Fazer um algoritmo que calculo S = 1 + 1/2+ 1/3 + 1/4 + ... + 1/N.
       
      Meu código está assim:
       
      #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, n; float soma; print("Entre com n: "); scanf("%d", &n); soma = 0; { for (i=1; i<=&n; i++) soma = soma + (1/i); } printf("\n O somatorio das fracoes eh: %f", soma); }  
      Alguém pode me dizer por que não funcionando? O que deve mudar ou o que falta inserir?
       
      Solução:
      https://forum.imasters.com.br/topic/316721-resolvido soma-com-fração/
    • Por roberto de souza gomes
      boa noite pessoal, eu sou estudante de ADS , e sou novo na programacao, estou desenvolvendo 
      um sistema para um trabalho final do curso, um sistema de controle de entrada e saida de usuarios,
      mas nele esta acontecendo um erro, quando eu digito um numero de uma cadeira que ja esta comprada
      ele aceita, estou vendo e revendo o codigo  mas nao vejo erro.
      alguem pode apontar o meu erro?
      obrigado, segue o codigo:
       
      #include <stdio.h>
      #include <time.h>
      #include <stdlib.h>
      #define linha 11
      #define coluna 11
      #define valor_minimo 29
      #define valor_maximo 121
      int valida(int num, int *ant, int cont);
      void edita (int sort,int cont);
      void chamaSorteio();
      void CadeiraNum();//declara a funcao que preenche os lugares com numeros
      void painel();//declara a funcao que mostra a matriz
      void compra();//declara a funcao que faz a compra dos lugares
      void cad();
      int resp;
      int matriz[linha][coluna];//
      FILE *ponteiroArquivo;   
      struct cadastro{
          char nome [50];
          char cpf [15];
          char email [30];
          };
           struct cadastro aux;
      int main(){
          int opcao=0;
          int contador=0,lugares=92;
          char nomes[30];
          char timeStr[9];
          
          struct tm *data_hora_atual;
          time_t segundos;
          time(&segundos);
          data_hora_atual = localtime(&segundos); 
          
          CadeiraNum(matriz);//aqui complementa a funcao cadeiraNum(); colocando os numeros.
          
          do{
              //a partir daqui e mostrado para o usuario as opcoes do programa principal
               system("cls"); 
               printf("\n\n                      MENU  \n\n");      
               printf("                  1- Reservar Cadeira       (Ainda restam (%d) lugares)\n",lugares-contador);        
               printf("                  2- Mostrar Painel de lugares\n"); 
               printf("                  3- Sorteio\n");       
               printf("                  4- SAIR           \n");        
               printf("                   opcao: ");
               scanf("%d",&opcao);               
                             
           switch(opcao){
              case 1:
                system("cls");          
                //cad();
               // getch();
                system("cls"); 
                painel(matriz);//antes de escolher o lugar antes e chamado a matriz e o usuario pode ver o painel, inclusive com os lugares do teatro comprados atualizados.
                texto:
                printf("\n\nDigite o numero da cadeira desejada: \n");
                scanf("%d",&resp);
                 
                if ((resp<=0) || (resp>=122)){  
                    printf("Esta cadeira não existe!!!Escolha outra!\n");
                    goto texto; 
                  getch();              
              }else if ((resp>=1) && (resp<=22)){  
                    printf("Esta cadeira ja esta reservada!!!Escolha outra!\n");
                    goto texto; 
                  getch();              
              }
              else if ((resp>=23) && (resp<=28)){  
                    printf("Esta cadeira é preferencial!!!Escolha outra!\n");
                    goto texto; 
                  getch();              
              }else if (matriz[linha][coluna]==0){
                  printf("Esta cadeira esta ocupada!!! Escolha outra!\n");
                  goto texto;
                  getch();
              }
              else (printf(" \n"));
                 ponteiroArquivo=fopen("arquivo.txt","r"); 
                fgets(nomes,30,ponteiroArquivo);
                
                fclose(ponteiroArquivo);
                system("cls"); 
                
               _strtime( timeStr );
                printf_s( "\tParabens %s pela sua compra no dia %d/%d/%d as %s \n\nSeu ticket sera enviado por e-mail!!\n",aux.nome, data_hora_atual->tm_mday,data_hora_atual->tm_mon+1,data_hora_atual->tm_year+1900,timeStr);
                  printf("seu assento e %d\n",resp);
                  contador++;
                system("pause");         
                break;
              
              case 2:
                system("cls");
                system("cls");
                painel(matriz);//chama a funcao painel que contem a matriz 
                printf("\n\n");
                system("pause");
                break;
                
              case 3:
                system("cls");
                chamaSorteio();
                system("pause");
                break;
                
              //o usuario escolhendo este caso o programa retorna nada e fecha
              case 4:
                return 0;
                break;
                   
              default:
                  printf("OPCAO INVALIDA!!!\n");
                  system("pause");
              break;
           }
        }while(1==1); 
        
          
      system("pause");    
      return(0);
      }
      //esta e a funcao responsavel por preencher todos os lugares do teatro com numeros!
      void CadeiraNum(){
          int c,l;
          int num;
          num=1;
          
          for(l=1;l<=linha;l++)
           for(c=1;c<=coluna;c++){      
           matriz[l][c]=num;
             num++; 
          }
          matriz[3][1]=333; 
          matriz[3][2]=333;
          matriz[3][3]=333;
          matriz[3][4]=333;
          matriz[3][5]=333;
          matriz[3][6]=333;
          /**/
          matriz[1][1]=222; 
          matriz[1][2]=222;
          matriz[1][3]=222;
          matriz[1][4]=222;
          matriz[1][5]=222;
          matriz[1][6]=222;
          matriz[1][7]=222;
          matriz[1][8]=222;
          matriz[1][9]=222;
          matriz[1][10]=222;
          matriz[1][11]=222;
          /**/
          matriz[2][1]=222;
          matriz[2][2]=222;
          matriz[2][3]=222;
          matriz[2][4]=222;
          matriz[2][5]=222;
          matriz[2][6]=222;
          matriz[2][7]=222;
          matriz[2][8]=222;
          matriz[2][9]=222;
          matriz[2][10]=222;
          matriz[2][11]=222;   
      }
      //esta e a funcao que cria as linhas e as colunas do teatro matriz
      void painel(){
        
        int c,l;
        printf("\n            PAINEL DE OCUPACOES   \n\n");
        printf("          ");
         
        
        for(c=1;c<=coluna;c++)
          printf("\t%d",c);
        
        for(l=1;l<=linha;l++){
           printf("\n\n\t%d",l);
           for(c=1;c<=coluna;c++)
           
             
          if(matriz[l][c]==222){
               printf("\t(R)");
           }else if(matriz[l][c]==resp){
               matriz[l][c]=0;
               printf("\t(C)");
           }else if(matriz[l][c]==0){
               printf("\t(c)");
           }
           else if(matriz[l][c]==333){
               printf("\t(P)");
           }     else printf("\t(%d)",matriz[l][c]);
                  
        }
          printf("\n\n\t(29-121) - LUGAR LIVRE    (p) - Assento preferencial   (C) - CADEIRA JA COMPRADA   (R) CADEIRA RESERVADA\n");

      //funcao que marca no lugar escolhido o valor 0 guardando o lugar 
      /*void compra(int l, int c){
        
        
        if(resp==matriz[linha][linha]){
          matriz[linha][coluna] = 0;
      }
      } */
      void cad(){
          
          ponteiroArquivo=(fopen("arquivo.txt","a")); // "a"  - cria um arquivo novo, ou modifica um ja existente.
          getchar();
          printf("\t\tSEJA BEM VINDO AO TEATRO DA UNIP!!\n\n");
          printf("Antes de comprar a cadeira vamos fazer um breve cadastro........\n\npresssione ENTER para continuar......\n\n\n");
          getch();
          printf("Digite seu nome: ");
          fgets (aux.nome, 50 ,stdin);
          getchar();
          printf("Digite seu CPF: ");  
          fgets (aux.cpf, 15 ,stdin);
          getchar();
          printf("Digite seu Email: ");
          fgets (aux.email , 30 ,stdin);
          //gravando com fprintf no arquivo
          printf("\n");
          
          fprintf(ponteiroArquivo, "\n------------------------\n");
          fprintf(ponteiroArquivo,"nome: %s\n",aux.nome);
          fprintf(ponteiroArquivo,"CPF: %s\n",aux.cpf);
          fprintf(ponteiroArquivo,"Email: %s\n",aux.email);
          fclose(ponteiroArquivo);//fecha o arquivo
      }
      void chamaSorteio(){
          int i;
          int sorteados[4];
          
          srand(time(NULL));
          
          printf("---------|SORTEIO\n\n");
          
          for(i=0;i<4;i++){
              sorteados = valor_minimo+rand()%(valor_maximo-valor_minimo);
              if(i==0){
                  edita(sorteados,i);
              }
              else {
                  sorteados = valida(sorteados,sorteados,i);
                  edita(sorteados,i);
              }
          }
          printf("------------------------------------------");
              getch();
              printf("\nParabens a todos os premiados!!\n\n");
              getch();
      }
      int valida(int num, int *ant, int cont){
          int aux;
          
          for(aux=0;aux<cont;aux++){
              while(num==*(ant+aux)){
                  num=valor_minimo+rand()%(valor_maximo-valor_minimo);
              }        
          }
          return num;
      }
      void edita (int sort,int cont){
                  
              printf("\t%d°premiado usuario da caderia : %.2d\n",cont+1,sort);        
              
      }
    • Por teteuvec
      Prezados boa noite,
       
      Estou tentando atualizar dados no BD. Porém ao aplicar o update não gera erro e nem atualiza no DB.
      Segue abaixo o script. Já testei a conexão com o DB e funciona perfeitamente como function.
       
      <?php session_start(); if ($_SESSION['validate_login'] != true) { header("Location: /index.php"); } ini_set( "display_errors", true ); error_reporting( E_ALL ); require_once('../phpfunctions.php'); header('Content-Type: text/html; charset=utf-8'); switch ($_POST['action']) { case '0': $recordset = mysqli_query(connect(tupa), "SELECT * FROM people_records WHERE cpf_cnpj = {$_POST['cpf_cnpj']} ORDER BY id DESC") or die(mysqli_error(connect(tupa))); $_row = mysqli_num_rows($recordset); if ($_row == 0) { mysqli_query(connect(tupa), "UPDATE people_records SET name = {$_POST['name']}, cpf_cnpj = {$_POST['cpf_cnpj']}, cellphone = {$_POST['cellphone']}, telephone = {$_POST['telephone']} WHERE id = {$_POST['id']}") or die (mysqli_error(connect(tupa))); } else { echo "<script language='JavaScript'>alert('Este registro já existe.')</script>"; } mysqli_free_result($recordset); echo "<script language='JavaScript'>location.href='../system.php';</script>"; break;  
       
    • Por matheus1302
      Alguem tem um programa em C que faça isso ou me de uma luz consegui fazer do infixa para posfixa mais nao consegui o contrario.
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.