From b6b17636f999cbe21674fcd8f4811c890642fc5e Mon Sep 17 00:00:00 2001 From: LudoPassos Date: Thu, 15 Dec 2022 18:24:32 -0300 Subject: [PATCH] V0.1.2: Projeto Ficha de academia em C MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Erro resolvido "Unexpected type name 'dados': expected expression" -Menu.c incompleto, implementar os prints seguindo a nova lógica de sintaxe encontrada na função print_elementos_struct(dados *p) - Implementar os loops com o [i] para poder recebermos múltiplas informações de cadastro de cada Aluno da academia --- CMakeLists.txt => arquivos/CMakeLists.txt | 4 +- arquivos/dados.h | 17 +++++ {funcoes => arquivos}/funcoes.c | 42 ++++--------- arquivos/linker.h | 19 ++++++ main.c => arquivos/main.c | 10 +-- arquivos/menu.c | 76 +++++++++++++++++++++++ funcoes/funcoes.h | 11 ---- 7 files changed, 133 insertions(+), 46 deletions(-) rename CMakeLists.txt => arquivos/CMakeLists.txt (55%) create mode 100644 arquivos/dados.h rename {funcoes => arquivos}/funcoes.c (54%) create mode 100644 arquivos/linker.h rename main.c => arquivos/main.c (70%) create mode 100644 arquivos/menu.c delete mode 100644 funcoes/funcoes.h diff --git a/CMakeLists.txt b/arquivos/CMakeLists.txt similarity index 55% rename from CMakeLists.txt rename to arquivos/CMakeLists.txt index fe5d1a0..20ad409 100644 --- a/CMakeLists.txt +++ b/arquivos/CMakeLists.txt @@ -3,5 +3,7 @@ project(fichaacademia C) set(CMAKE_C_STANDARD 99) -add_executable(fichaacademia main.c funcoes/funcoes.c funcoes/funcoes.h) +add_executable(fichaacademia main.c funcoes.c menu.c dados.h linker.h) + + diff --git a/arquivos/dados.h b/arquivos/dados.h new file mode 100644 index 0000000..c873a78 --- /dev/null +++ b/arquivos/dados.h @@ -0,0 +1,17 @@ +// +// Created by LudoPassos on 14/12/22. +// + +#ifndef FICHAACADEMIA_DADOS_H +#define FICHAACADEMIA_DADOS_H + + typedef struct dados_cliente{ + int *codigoCadastro; + char *nome[51]; //fgets + int *Idade; + char *genero[2]; + float *massaCorporal; + float *altura; +}dados[i]; + +#endif //FICHAACADEMIA_DADOS_H diff --git a/funcoes/funcoes.c b/arquivos/funcoes.c similarity index 54% rename from funcoes/funcoes.c rename to arquivos/funcoes.c index e753fd3..7a69ff4 100644 --- a/funcoes/funcoes.c +++ b/arquivos/funcoes.c @@ -2,40 +2,25 @@ // Created by LudoPassos on 03/12/22. // #include -#include "funcoes.h" -int n; -int c = 0; +#include "dados.h" +#include "linker.h" +int i; -int dadosAtleta() { - struct dados { - int codigoCadastro; - char nome[50]; //fgets - int Idade; - char genero[1]; - float massaCorporal; - float altura; - }dados[n]; - //colocar abaixo dentro de um loop para receber multiplas structs diferentes de alunos diferentes. - - struct dados dados_aluno; //criando a variável dados_aluno do tipo struct + void dadosAtleta(dados *r) { + //colocar abaixo dentro de um loop para receber multiplas structs diferentes de alunos diferentes. + //criando a variável dados_aluno do tipo struct //struct dadosAtleta *p, dadosAtleta1; //p = &dadosAtleta1; //printf("\nInsira seu código de cadastro ou digite 0 para criar um novo:"); //implementar //se a posição for nula ou 0, o programa direcionará para criar uma nova posição. //fflush(stdin); - printf("\nInsira um codigo de cadastro com tres digitos: "); //impplementar: isdigit(ch); Implementar Sizeof() para 3 caracteres; - scanf("3%d", &dados->codigoCadastro); - while (1) { - c = getchar(); - if(c == ' ' || c == '\n' || c == EOF) - break; - } + scanf("3%d", r->codigoCadastro); fflush(stdin); printf("\nInsira o nome do aluno: "); //input apenas de caracteres não numericos - scanf("%s", &dados->nome[50]); + scanf("%s", r->nome[50]); fflush(stdin); printf("\nInsira a idade do Aluno: "); //input apenas de números @@ -43,22 +28,19 @@ int dadosAtleta() { ch = getchar(); if (ch>= ) }*/ - scanf("%3d", &dados->Idade); + scanf("%3d", r->Idade); fflush(stdin); printf("\nInsira o genero do Aluno: "); //tratar a entrada de dados aqui. - scanf("%s", &dados->genero[1]); + scanf("%s", r->genero[i]); fflush(stdin); printf("\nInsira a massa corporal do Aluno em kilogramas: "); - scanf("%f", &dados->massaCorporal); + scanf("%f", r->massaCorporal); fflush(stdin); printf("\nInsira a altura em centimetros: "); - scanf("%f", &dados->altura); //precisam ter apenas três caracteres, colocar limitação de entrada; + scanf("%f", r->altura); //precisam ter apenas três caracteres, colocar limitação de entrada; fflush(stdin); - - - return 0; } diff --git a/arquivos/linker.h b/arquivos/linker.h new file mode 100644 index 0000000..ad1f02a --- /dev/null +++ b/arquivos/linker.h @@ -0,0 +1,19 @@ +// +// Created by LudoPassos on 14/12/22. +// + +#ifndef FICHAACADEMIA_LINKER_H +#define FICHAACADEMIA_LINKER_H +void dadosAtleta(); +extern void verificar(); +void menu(); + + +#endif + +// Created by LudoPassos on 03/12/22. +// + + + + diff --git a/main.c b/arquivos/main.c similarity index 70% rename from main.c rename to arquivos/main.c index 4667ad0..fa7bf95 100644 --- a/main.c +++ b/arquivos/main.c @@ -1,13 +1,15 @@ #include #include -#include "funcoes/funcoes.h" -int dadosAtleta(); -struct dados; +#include "linker.h" -int main() { + + + +int main(void) { printf("Bem vindo ao sistema automatizado de treino de musculacao\n"); sleep(1); dadosAtleta(); + menu(); //extern method return 0; diff --git a/arquivos/menu.c b/arquivos/menu.c new file mode 100644 index 0000000..1da8604 --- /dev/null +++ b/arquivos/menu.c @@ -0,0 +1,76 @@ +// +// Created by LudoPassos on 12/12/22. +// +//Integrar dois arquivos C secundários a árvore principal do projeto. +// https://www.reddit.com/r/C_Programming/comments/5efqtc/what_exactly_is_a_module_in_c/ +// https://cboard.cprogramming.com/c-programming/29913-extern-structs.html + +#include +#include +#include "dados.h" +#include "linker.h" +struct dados; + + + +void menu() { + int op; + do { + system("cls"); + printf("Bem vindo ao sistema automatizado de treino de musculacao\n"); + + printf("\n1 - Cadastrar Aluno\n2 - verificar se ja possui cadastro"); + printf("\n0 - Sair"); + scanf("%i", &op); + getchar(); + switch (op) { + case 1: + dadosAtleta(); + break; + case 2: + verificar(); + break; + + } + + } while (op != 0); + +} + +void verificar() { + char Nome[50]; + int op; + int *cod; + do { + system("cls"); + printf("\nInsira um codigo de cadastro com tres digitos: "); + scanf("%d", &cod); + for (int i = 0; i<3; ++i) { + if (&p->codigoCadastro == cod) { //Comparison between pointer and integer ('int *' and 'int') + // >>> fazer um cast para comparar dois tipos possíveis + + + /// BAGUNCEI O CÓDIGO FOI MAL MANO EU TAVA CONSERTANDO AS COISAS + /// LOGO LOGO EU CONSERTO ESSE TRECHO + } + } + // Printar "usuario está cadastrado" + //printar o struct inteiro + + //Por ultimo implementar uma nova função que permitirá que o usuário + //consulte os dados cadastrados(struct). + //só vai entrar o If se o código digitado for igual 1 + } + printf("\nDigite 0 para sair ou 1 para verificar novamente"); + scanf("%d", &op); + getchar(); + } while (op!=0); + + +void print_elementos_struct(dados *p){ // CONSEGUI!!! é só usar ponteiros para printar cada um dos elementos. Vejam os links no Discord + printf("Nome %s\n", p->nome); + printf("Idade %d\n", p->Idade); + printf("Sexo %.s\n", p->genero); + printf("Massa corporal %.2f\n", p->massaCorporal); + printf("altura %f\n", p->altura); +} \ No newline at end of file diff --git a/funcoes/funcoes.h b/funcoes/funcoes.h deleted file mode 100644 index 7679b50..0000000 --- a/funcoes/funcoes.h +++ /dev/null @@ -1,11 +0,0 @@ -// -// Created by LudoPassos on 03/12/22. -// - -#ifndef FICHAACADEMIA_FUNCOES_H -#define FICHAACADEMIA_FUNCOES_H -int dadosAtleta(); -struct dados; - - -#endif //FICHAACADEMIA_FUNCOES_H