parte 6 – várias funções em C para manipulação de ficheiros e estruturas dinâmicas
Assunto deste post: várias funções em C para manipulação de ficheiros (de texto para binários e de binários para texto e estruturas dinâmicas (lista ligada e vector dinâmico de estruturas)
//ficheiro parte1.c
#include "parte1Comum.h"
int menu(){
int i;
puts("1 - adiciona grupo");
puts("2 - remove grupo");
puts("3 - lista grupo");
puts("4 - pesquisa grupo");
puts("5 - ");
puts("6 - ");
puts("7 - carregar grupo de um ficheiro binario");
puts("8 - terminar");
puts("Escolha uma opcao: ");
do{
scanf(" %d", &i);
}while(i <0 || i >8);
return i;
}
void main() {
int escolha;
pGrupo listaGrupo=NULL;
pMesa listaMesa[TAM]={NULL};
int totalMesas=0;
int h, m, pessoas;
char mesa[20];
do{
printf("\ntotal de mesas: %d\n\n", totalMesas);
escolha = menu();
switch(escolha){
case 1:
printf("\nA que horas e minutos vem a reserva? (formato h m)\n");
scanf(" %d", &h);
scanf(" %d", &m);
printf("\nQuantas pessoas?\n");
scanf(" %d", &pessoas);
printf("\nQual a mesa?\n");
scanf(" %99[^\n]", mesa);
adicionaGrupo(listaMesa[TAM], &totalMesas, &listaGrupo, h, m, pessoas, mesa);
break;
case 2: break;
case 3:
listagemGrupo(listaGrupo);
break;
case 4: break;
case 5: break;
case 6: break;
case 7: break;
}
}while(escolha != 8);
}
//ficheiro parte1Comum.h
#ifndef PARTE1COMUM_H
#define PARTE1COMUM_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 20
typedef struct tipoA mesa, *pMesa;
typedef struct tipoB grupo, *pGrupo;
struct tipoA{
char id[20];
int conta, valorTot;
};
struct tipoB{
struct hora{int h, m;} in, out;
int num, valor;
pMesa ptr;
pGrupo prox;
};
pGrupo adicionaGrupo(pMesa v, int *tot, pGrupo *lista, int h, int m, int pessoas, char *idM);
void adicionaGrupoAux();
pGrupo listagemGrupo(pGrupo lista);
#endif /* PARTE1COMUM_H */
//ficheiro parte1Comum.c
#include "parte1Comum.h"
//funções
//receber um grupo: dados do grupo e preenhcer os dados da mesa
pGrupo adicionaGrupo(pMesa v, int *tot, pGrupo *lista, int h, int m, int pessoas, char *idM){
printf("\nvamos la ver se apanho os dados\n");
printf("%d\t%d\t%d\t%d\t%s\t", *tot, h ,m ,pessoas, idM);
pGrupo novo;
novo = malloc(sizeof(grupo));
if(novo==NULL){
printf("\nerro: nao foi possivel reservar memoria");
return NULL;
}else{
if(*tot==0){
//primeira reserva mesa
novo->in.h = h;
novo->in.m = m;
novo->num = pessoas;
novo->prox = NULL;
(*tot)++;
//v[0].id = idM;
//strcpy(v[0].id, idM);
printf("\n\n%s",v[0].id);
return novo;
}
}
return novo;
free(novo);
}
pGrupo listagemGrupo(pGrupo lista){
printf("entrei");
return NULL;
}
Tags : C, Learn C, linguagem C
0 thoughts on “parte 6 – várias funções em C para manipulação de ficheiros e estruturas dinâmicas”