Responder dúvida

Seja o primeiro a responder

Duvida sobre adicionar hora e usuario a fila

C Structs Desenvolvimento de Projetos Listas Encadeadas Gerenciamento de memória

Consegui desenvolver uma lista que possui uma lista que pode ser adicionada um limite, como em um atendimento.

estou tentando adicionar usuario , hora e data como se fosse um relogio de ponto, estou a uns 3 dias sem conseguir adicionar, usuario não grava e não consigo adicionar a hora a partir de um struct.

Poderiam me ajudar?

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

typedef struct nome{
 
 char *nome; 
 
}
struct Fila {

 int capacidade;
 float *dados;
 int primeiro;
 int ultimo;
 int nItens; 
 char nome;
 
}

void criarFila( struct Fila *f, int c) { 

 f->capacidade = c;
 f->nome;
 f->dados = (float*) malloc (f->capacidade * sizeof(float));
 f->primeiro = 0;
 f->ultimo = -1;
 f->nItens = 0; 

}

void inserir(struct Fila *f, int v) {

 if(f->ultimo == f->capacidade-1)
  f->ultimo = -1;
 f->nome++;
 f->ultimo++;
 f->dados[f->ultimo] = v; // incrementa ultimo e insere
 f->nItens++; // mais um item inserido

}

int remover( struct Fila *f ) { // pega o item do começo da fila

 int temp = f->dados[f->primeiro++]; // pega o valor e incrementa o primeiro

 if(f->primeiro == f->capacidade)
  f->primeiro = 0;

 f->nItens--;  // um item retirado
 return temp;

}

int estaVazia( struct Fila *f ) { // retorna verdadeiro se a fila está vazia

 return (f->nItens==0);

}

int estaCheia( struct Fila *f ) { // retorna verdadeiro se a fila está cheia

 return (f->nItens == f->capacidade);
}

void mostrarFila(struct Fila *f){

 int cont, i;

 for ( cont=0, i= f->primeiro; cont < f->nItens; cont++){

  printf("%.2f\t",f->dados[i++]);

  if (i == f->capacidade)
   i=0;

 }
 printf("\n\n");

}

void main (void) {

 int opcao, capa;
 float valor;
 struct Fila umaFila;
 char nome;

 // cria a fila
 printf("\nCapacidade da fila? ");
 scanf("%d",&capa);
 printf("\nInsira o nome ");
 scanf("%s", &nome);
 
 if ((sequência = (fila *) malloc (sizeof (fila))) == NULL)           
 return -1;         
 if ((nome = (char *) malloc (50 * sizeof (char))) == NULL)           
 return -1; 
 criarFila(&umaFila, capa, &nome);

 // apresenta menu
 while( 1 ){

  printf("\n1 - Inserir elemento\n2 - Remover elemento\n3 - Mostrar Fila\n0 - Sair\n\nOpcao? ");
  scanf("%d", &opcao);

  switch(opcao){

   case 0: exit(0);

   case 1: // insere elemento
    if (estaCheia(&umaFila)){

     printf("\nFila Cheia!!!\n\n");

    }
    else {

     printf("\nValor do elemento a ser inserido? ");
     scanf("%f", &valor);
     inserir(&umaFila,valor);

    }

    break;

   case 2: // remove elemento
    if (estaVazia(&umaFila)){

     printf("\nFila vazia!!!\n\n");

    }
    else {

     valor = remover(&umaFila);
     printf("\n%1f removido com sucesso\n\n", valor) ; 

    }
    break;

    case 3: // mostrar fila
     if (estaVazia(&umaFila)){

      printf("\nFila vazia!!!\n\n");

     }
     else {

      printf("\nConteudo da fila => ");
      mostrarFila(&umaFila);

     }
     break;

    default:
     printf("\nOpcao Invalida\n\n");

  }
 }
}

Foto de Renan O.
Renan perguntou há 1 ano