Skip to content

Commit

Permalink
V0.1.2: Projeto Ficha de academia em C
Browse files Browse the repository at this point in the history
-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
  • Loading branch information
caio-passos committed Dec 15, 2022
1 parent a436a25 commit b6b1763
Show file tree
Hide file tree
Showing 7 changed files with 133 additions and 46 deletions.
4 changes: 3 additions & 1 deletion CMakeLists.txt → arquivos/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)



17 changes: 17 additions & 0 deletions arquivos/dados.h
Original file line number Diff line number Diff line change
@@ -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
42 changes: 12 additions & 30 deletions funcoes/funcoes.c → arquivos/funcoes.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,45 @@
// Created by LudoPassos on 03/12/22.
//
#include <stdio.h>
#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
/* do{
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;
}

19 changes: 19 additions & 0 deletions arquivos/linker.h
Original file line number Diff line number Diff line change
@@ -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.
//




10 changes: 6 additions & 4 deletions main.c → arquivos/main.c
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
#include <stdio.h>
#include <unistd.h>
#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;
Expand Down
76 changes: 76 additions & 0 deletions arquivos/menu.c
Original file line number Diff line number Diff line change
@@ -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 <stdio.h>
#include <stdlib.h>
#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);
}
11 changes: 0 additions & 11 deletions funcoes/funcoes.h

This file was deleted.

0 comments on commit b6b1763

Please sign in to comment.