Alguém pode me dar uma força aqui em 1 programa no qual estou fazendo para minha faculdade?
Estamos fazendo 1 sistema simples de registro de pessoas dentro de uma palestra... Porem estamos com problemas na hora de ler os dados dentro do bloco de notas.
(Observação: Só esta salvo em C++ por conta de funções de cor que colocamos, POREM as funções usadas devem ser em C apenas C [Normas do professor])
Problemas:
Linha 91: Ler dentro do bloco de notas para que não tenha 2 CPF's iguais...
Teria que fazer 1 verificação, se possuir 1 CPF já cadastrado, envia uma mensagem de erro.
Linha 300: Fazer a mesma verificação que o de cima... Não pode haver 2 pessoas sentadas no mesmo lugar.
Se possuir uma pessoa sentada naquela cadeira, a cadeira deve ficar vermelha.
Caso contrario ela ficará verde.
#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#include<locale.h>#include<conio.h>#include<time.h>// Sera usado para verificação de caracteres / strings#include<string.h>// Habilita função SetConsoleTextAttribute()#include<windows.h>// COR BRANCA | NOME DO ARQUIVO.TXT#define COR_PRINCIPAL 15#define BLOCO_DE_NOTAS "Cadastro.txt"// Struct Principal de cadastro do palestrantetypedefstruct{char nome[50], email[30], cpf[15];int cadeira[15][10];bool deficiencia;}Palestrante;// Struct de tempostruct tm agora_data={0};time_t tempo_data;// Definir o valor x a struct PalestrantePalestrante x;// Função base para alterar cor de caractere
HANDLE hConsole =GetStdHandle(STD_OUTPUT_HANDLE);// Citando funçõesvoid registro();void representacao();void checkPeaple();void cadeiras();// Criando ponteiro de memoriaFILE* arq;int op, op2;int main(){
setlocale(LC_ALL,"Portuguese");char op;SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
representacao();
scanf("%s",&op);switch(op){case'1':
registro();break;case'2':
printf("\nComando ainda não cadastrado.");
getch();
system("cls");
main();break;case'3':
checkPeaple();break;case'4':
exit(0);break;default:
printf("\nComando inexistente.\n\n",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
system("pause");
system("cls");
main();break;}}void registro(){// Armazenar o NOME
printf("\n- Digite o primeiro Nome: ");
fflush(stdin);
scanf("%[^\n]s", x.nome,SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY));// Armazenar o E-MAIL
printf("- Digite o E-Mail: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
scanf("%s",&x.email,SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY));// Armazenar o CPF
printf("- Digite o CPF [Apenas numeros]: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
scanf("%s",&x.cpf,SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY));char info[50];
arq = fopen(BLOCO_DE_NOTAS,"r");if(arq == NULL)
printf("Erro, não foi possivel abrir o arquivo\n");elsewhile((fgets(info,sizeof(info), arq))!=NULL )if(!(strcmp(x.cpf, info))){
printf("%s", info);}
fclose(arq);// Armazenar a deficienciaint def;
printf("- Possui deficiencia [1 or 0]: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
scanf("%d",&def,SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY));if(def ==1){
x.deficiencia =true;}elseif(def ==0){
x.deficiencia =false;}else{
printf("\nComando inexistente.\n\n",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
system("pause");
system("cls");
representacao();
printf("\n");
registro();}// Chamando a função de apresentação das cadeiras// 8 x 15 [8 linhas - 15 fileiras - 120 acentos]SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
cadeiras();// Printar dados digitados
printf("\n\n.----------------------------------------.\n");
printf("| Nome: ");
printf("%s\n", x.nome,SetConsoleTextAttribute(hConsole,3));
printf("| Email: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
printf("%s\n", x.email,SetConsoleTextAttribute(hConsole,3));
printf("| CPF: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
printf("%s\n", x.cpf,SetConsoleTextAttribute(hConsole,3));
printf("| Possui deficiencia: [",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));if(x.deficiencia ==true){
printf("%s", x.deficiencia ?"true":"false",SetConsoleTextAttribute(hConsole,6| FOREGROUND_INTENSITY));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}else{
printf("%s", x.deficiencia ?"true":"false",SetConsoleTextAttribute(hConsole,12));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}// Variaveis globais usadas em diversas funçõesint i, f;
printf("\n| Assento selecionado: ");for(i =0; i <15; i++){for(f =0; f <8; f++){if(x.cadeira[i][f]== op){
printf("%i", op,SetConsoleTextAttribute(hConsole,3));}}}// Selecionando data e horario de cadastro
time(&tempo_data);
agora_data =*localtime(&tempo_data);
printf("\n| Horario de cadastro: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
printf("[%.2d:%.2d]", agora_data.tm_hour, agora_data.tm_min,SetConsoleTextAttribute(hConsole,3| FOREGROUND_INTENSITY));
printf("\n| Data de cadastro: ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
printf("[%.2d:%.2d:%d]", agora_data.tm_mday, agora_data.tm_mon+1, agora_data.tm_year+1900,SetConsoleTextAttribute(hConsole,3| FOREGROUND_INTENSITY));
printf("\n*----------------------------------------*",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));// Editar dadosint edit;
printf("\n\n- [0. Cancelar | 1. Editar | 2. Armazenar]: ");
scanf("%i",&edit);if(edit ==2){// Armazenar no BLOCO DE NOTAS
arq = fopen(BLOCO_DE_NOTAS,"a");if(arq == NULL){
printf("Não foi possivel abrir o arquivo.",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
exit(0);}
fprintf(arq,"%s %s %s %s %i [%.2d:%.2d] [%.2d:%.2d:%d]\n", x.nome, x.email, x.cpf, x.deficiencia ?"true":"false", op, agora_data.tm_hour, agora_data.tm_min, agora_data.tm_mday, agora_data.tm_mon+1, agora_data.tm_year+1900);
printf("- Dado armazenado -\n\n",SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
fclose(arq);
system("pause");
system("cls");
main();}elseif(edit ==1){
system("cls");
representacao();
printf("\n");
registro();}elseif(edit ==0){
system("cls");
main();}else{
printf("\nComando inexistente.\n\n",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
system("pause");
system("cls");
representacao();
printf("\n");
registro();}}// Apenas apresentação da tela principalvoid representacao(){
printf("\n\t[SYSTEM] Palestra\n\n.-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-.\n");
printf("| 1. Register |\n");
printf("| 2. Delete |\n");
printf("| 3. Check People |\n");
printf("| 4. Exit |\n");
printf("*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*\n\nSua Escolha: ");}// Checkando pessoas [Pesquisa de pessoas {DENTRO DO BLOCO_DE_NOTAS}]void checkPeaple(){
printf("\n. [NOME] [EMAIL] [CPF] [DEFICIENCIA] [ASSENTO] [HORARIO] [DATA] .\n",SetConsoleTextAttribute(hConsole,14| FOREGROUND_INTENSITY));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
arq = fopen(BLOCO_DE_NOTAS,"r");if(arq == NULL){
printf("Não foi possivel abrir o arquivo.\n\n",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
system("pause");
exit(0);}char frase[5000];
printf("\n");while(fgets(frase,5000, arq)!= NULL){
printf("%s", frase);}char ch;int num =0;
arq = fopen(BLOCO_DE_NOTAS,"r");if(arq == NULL)
printf("Erro, não foi possivel abrir o arquivo\n");elsewhile((ch=fgetc(arq))!= EOF )if(ch =='\n')
num++;
printf("\n. Existem [%d] pessoas cadastradas .\n", num,SetConsoleTextAttribute(hConsole,13| FOREGROUND_INTENSITY));SetConsoleTextAttribute(hConsole, COR_PRINCIPAL);
fclose(arq);
fclose(arq);
printf("\n");
getch();
system("cls");
main();}// Apresentação das cadeirasvoid cadeiras(){int i, f, incremento =0;
printf("\n .-----------------------------------------------.");for(i =0; i <15; i++){
printf("\n | ", i+1);for(f =0; f <8; f++){
incremento++;
x.cadeira[i][f]= incremento;if((x.cadeira[i][f]==5)||(x.cadeira[i][f]==5+8*i)){
printf(" ");
printf(" ",SetConsoleTextAttribute(hConsole,70));
printf(" ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}if((x.cadeira[i][f]>=1)&&(x.cadeira[i][f])<=16){
printf("[");
printf("%.3i", x.cadeira[i][f],SetConsoleTextAttribute(hConsole,6| FOREGROUND_INTENSITY));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));if((x.cadeira[i][f]%8)==0){
printf(" |");}continue;}
printf("[");
printf("%.3i", x.cadeira[i][f],SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));if((x.cadeira[i][f]%8)==0){
printf(" |");}}}
printf("\n *--------------------| |--------------------*");if(x.deficiencia ==true){
printf("\n\n[*] Você tem acesso aos acentos ");
printf("amarelos",SetConsoleTextAttribute(hConsole,6| FOREGROUND_INTENSITY));
printf(".",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}else{
printf("\n\n[*] Você ");
printf("NÃO ",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));
printf("tem acesso aos acentos ",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
printf("amarelos",SetConsoleTextAttribute(hConsole,6| FOREGROUND_INTENSITY));
printf(".",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}
printf("\n\nDigite o cadeira que deseja: ");
scanf("%i",&op);if(op >120){
printf("\n[-] ");
printf("Não",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));
printf(" existe cadeira com essa numeração no auditório.\n\n",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
getch();
system("cls");
representacao();
printf("\n");
registro();}if(x.deficiencia ==false){for(i =0; i <15; i++){for(f =0; f <8; f++){if((op >=1)&&(op <=16)){
printf("\nVocê ");
printf("NÃO",SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));
printf(" pode escolher essa cadeira.",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));
getch();
system("cls");
representacao();
printf("\n");
registro();}}}}}// Cadeira vermelha ao cadastrarvoid cadeiraCadastrada(){int i, f, incremento =0;
printf("\n .-----------------------------------------------.");for(i =0; i <15; i++){
printf("\n | ", i+1);for(f =0; f <10; f++){if(x.cadeira[i][f]== x.cadeira[op-1][op2-1]){
printf("[");
printf("%.3i", x.cadeira[i][f],SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}elseif((x.cadeira[i][f]>=1)&&(x.cadeira[i][f])<=20){
printf("[");
printf("%.3i", x.cadeira[i][f],SetConsoleTextAttribute(hConsole,6| FOREGROUND_INTENSITY));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}else{
printf("[");
printf("%.3i", x.cadeira[i][f],SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY));
printf("]",SetConsoleTextAttribute(hConsole, COR_PRINCIPAL));}}}
printf("\n *--------------------| |--------------------*");}
Gente se alguém puder por favor me ajudar nessas coisas, ficarei muito grato !
Pergunta
tataboy67
Alguém pode me dar uma força aqui em 1 programa no qual estou fazendo para minha faculdade?
Estamos fazendo 1 sistema simples de registro de pessoas dentro de uma palestra... Porem estamos com problemas na hora de ler os dados dentro do bloco de notas.
(Observação: Só esta salvo em C++ por conta de funções de cor que colocamos, POREM as funções usadas devem ser em C apenas C [Normas do professor])
Problemas:
Gente se alguém puder por favor me ajudar nessas coisas, ficarei muito grato !
Editado por tataboy67Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.