Bom dia, fiz um cadastro de alunos de uma academia como trabalho da facul. Também fiz no DevC++. Estou com problemas com a minha função cadastrar. Ela funcionava normalmente mas fiz algumas alterações ai ela parou de funcionar e depois mesmo restaurando ela não voltou.
Posso estar deixando passar alguma coisa muito óbvia. deem uma olhada na função.
Cadastrar.h
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
#include <string>
struct Cadastrar1 {
//Cadastro
int x;
char nome[1000];
char cpf[1000];
char endereco[1000];
char email[1000];
char telefone[1000];
int dia;
int mes;
int ano;
//Cadastro
};
FILE * fp;
struct Cadastrar1 C;
int cadastrar(){
int confirmaCadastro;
COMECACADASTRO: system("CLS");
int escolha;
fp = fopen("banco.txt", "w");
if(fp == NULL){
printf("\nErro com conexão com o banco\n");
printf("Informe o administrador do sistema\n");
system("PAUSE");
return EXIT_SUCCESS;
}
C.x++;
printf("\nInsira o nome\n");
fflush(stdin);
gets(C.nome);
printf("\nInsira o CPF\n");
fflush(stdin);
gets(C.cpf);
printf("\nInsira o e-mail\n");
fflush(stdin);
gets(C.email);
printf("\nInsira o endereco\n");
fflush(stdin);
gets(C.endereco);
printf("\nInsira o telefone\n");
fflush(stdin);
gets(C.telefone);
REFAZDIA: printf("\nInsira o dia da data de nascimento\n");
fflush(stdin);
scanf("%d", &C.dia);
if(C.dia < 1 || C.dia > 31){
printf("\nOpcao de dia invalida\n");
goto REFAZDIA;
}
else{
REFAZMES: printf("\nInsira o mes da data de nascimento\n");
fflush(stdin);
scanf("%d", &C.mes);
if(C.mes < 1 || C.mes > 12){
printf("\nOpcao de mes invalida\n");
goto REFAZMES;
}
else{
if(C.dia == 31 && C.dia != 1){
if(C.dia == 31 && C.dia != 3){
if(C.dia == 31 && C.dia != 5){
if(C.dia == 31 && C.dia != 7){
if(C.dia == 31 && C.dia != 8){
if(C.dia == 31 && C.dia != 10){
if(C.dia == 31 != C.dia != 12){
printf("\nData invalida, este mes não contem 31 dias\n");
goto REFAZDIA;
}
}
}
}
}
}
}
if(C.mes == 2 && C.dia > 28){
printf("\nO mes de fevereiro não contem dias acima de 28\n");
goto REFAZDIA;
}
}
REFAZANO: printf("\nInsira o ano da data de nascimento\n");
O meu cadastro de clientes não funciona
em C, C++
Postado · Editado por darkripper
Bom dia, fiz um cadastro de alunos de uma academia como trabalho da facul. Também fiz no DevC++. Estou com problemas com a minha função cadastrar. Ela funcionava normalmente mas fiz algumas alterações ai ela parou de funcionar e depois mesmo restaurando ela não voltou.
Posso estar deixando passar alguma coisa muito óbvia. deem uma olhada na função.
Cadastrar.h
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
#include <string>
struct Cadastrar1 {
//Cadastro
int x;
char nome[1000];
char cpf[1000];
char endereco[1000];
char email[1000];
char telefone[1000];
int dia;
int mes;
int ano;
//Cadastro
};
FILE * fp;
struct Cadastrar1 C;
int cadastrar(){
int confirmaCadastro;
COMECACADASTRO: system("CLS");
int escolha;
fp = fopen("banco.txt", "w");
if(fp == NULL){
printf("\nErro com conexão com o banco\n");
printf("Informe o administrador do sistema\n");
system("PAUSE");
return EXIT_SUCCESS;
}
C.x++;
printf("\nInsira o nome\n");
fflush(stdin);
gets(C.nome);
printf("\nInsira o CPF\n");
fflush(stdin);
gets(C.cpf);
printf("\nInsira o e-mail\n");
fflush(stdin);
gets(C.email);
printf("\nInsira o endereco\n");
fflush(stdin);
gets(C.endereco);
printf("\nInsira o telefone\n");
fflush(stdin);
gets(C.telefone);
REFAZDIA: printf("\nInsira o dia da data de nascimento\n");
fflush(stdin);
scanf("%d", &C.dia);
if(C.dia < 1 || C.dia > 31){
printf("\nOpcao de dia invalida\n");
goto REFAZDIA;
}
else{
REFAZMES: printf("\nInsira o mes da data de nascimento\n");
fflush(stdin);
scanf("%d", &C.mes);
if(C.mes < 1 || C.mes > 12){
printf("\nOpcao de mes invalida\n");
goto REFAZMES;
}
else{
if(C.dia == 31 && C.dia != 1){
if(C.dia == 31 && C.dia != 3){
if(C.dia == 31 && C.dia != 5){
if(C.dia == 31 && C.dia != 7){
if(C.dia == 31 && C.dia != 8){
if(C.dia == 31 && C.dia != 10){
if(C.dia == 31 != C.dia != 12){
printf("\nData invalida, este mes não contem 31 dias\n");
goto REFAZDIA;
}
}
}
}
}
}
}
if(C.mes == 2 && C.dia > 28){
printf("\nO mes de fevereiro não contem dias acima de 28\n");
goto REFAZDIA;
}
}
REFAZANO: printf("\nInsira o ano da data de nascimento\n");
fflush(stdin);
scanf("%d", C.ano);
if(C.ano < 1900 || C.ano > 2010){
printf("\nAno invalido\n");
goto REFAZANO;
}
}
fwrite(&C, sizeof©, 1, fp);
system("CLS");
printf("\nConfirmacao de dados\n");
VOLTACONFIRMA:
printf("Nome ............ : %s\n", C.nome);
printf("CPF ............. : %s\n", C.cpf);
printf("E-mail .......... : %s\n", C.email);
printf("Endereco ........ : %s\n", C.endereco);
printf("Telefone ........ : %s\n", C.telefone);
printf("Data de nascimento: %d/%d/%d\n\n\n", C.dia, C.mes, C.ano);
printf("\nConfimacao de cadastro\n");
printf("\n1 - Confirmar cadastro \n2 - Ajustar Nome \n3 - Ajustar CPF \n4 - Ajustar E-mail \n5 - Ajustar Endereco \n6 - Ajustar Telefone \n7 - Ajutar Data de nascimento \n8 - Refazer cadastro\n\n");
scanf("%i", &confirmaCadastro);
switch(confirmaCadastro){
case 1: system("CLS");
printf("\nCadastro confirmado com Sucesso\n");
break;
case 2: system("CLS");
printf("\nInsira o nome novamente\n");
gets(C.nome);
goto VOLTACONFIRMA;
break;
case 3: system("CLS");
printf("\nInsira o CPF novamente\n");
gets(C.cpf);
goto VOLTACONFIRMA;
break;
case 4: system("CLS");
printf("\nInsira o E-mail novamente\n");
gets(C.email);
goto VOLTACONFIRMA;
break;
case 5: system("CLS");
printf("\nInsira o endereco novamente\n");
gets(C.endereco);
goto VOLTACONFIRMA;
break;
case 6: system("CLS");
printf("\nInsira o telefone novamente\n");
gets(C.telefone);
goto VOLTACONFIRMA;
break;
case 7: system("CLS");
REFAZREFAZDIA: printf("\nInsira o dia da data de nascimento\n");
fflush(stdin);
scanf("%d", &C.dia);
if(C.dia < 1 || C.dia > 31){
printf("\nOpcao de dia invalida\n");
goto REFAZREFAZDIA;
}
else{
REFAZREFAZMES: printf("\nInsira o mes da data de nascimento\n");
fflush(stdin);
scanf("%d", &C.mes);
if(C.mes < 1 || C.mes > 12){
printf("\nOpcao de mes invalida\n");
goto REFAZREFAZMES;
}
else{
if(C.dia == 31 && C.dia != 1){
if(C.dia == 31 && C.dia != 3){
if(C.dia == 31 && C.dia != 5){
if(C.dia == 31 && C.dia != 7){
if(C.dia == 31 && C.dia != 8){
if(C.dia == 31 && C.dia != 10){
if(C.dia == 31 != C.dia != 12){
printf("\nData invalida, este mes não contem 31 dias\n");
goto REFAZREFAZDIA;
}
}
}
}
}
}
}
if(C.mes == 2 && C.dia > 28){
printf("\nO mes de fevereiro não contem dias acima de 28\n");
goto REFAZREFAZDIA;
}
}
REFAZREFAZANO: printf("\nInsira o ano da data de nascimento\n");
fflush(stdin);
scanf("%d", C.ano);
if(C.ano < 1900 || C.ano > 2010){
printf("\nAno invalido\n");
goto REFAZREFAZANO;
}
break;
case 8: system("CLS");
goto COMECACADASTRO;
break;
}
}
fwrite(&C, sizeof©, 1, fp);
}
P.S. Peço desculpas antecipadas porque tentei incluir um CODEBOX várias vezes e não consegui. Espero que não fique muito ruim a visualização!