Ir para conteúdo
Fórum Script Brasil

tataboy67

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre tataboy67

tataboy67's Achievements

0

Reputação

  1. 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 palestrante typedef struct { char nome[50], email[30], cpf[15]; int cadeira[15][10]; bool deficiencia; } Palestrante ; // Struct de tempo struct tm agora_data= {0}; time_t tempo_data; // Definir o valor x a struct Palestrante Palestrante x; // Função base para alterar cor de caractere HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // Citando funções void registro(); void representacao(); void checkPeaple(); void cadeiras(); // Criando ponteiro de memoria FILE * 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"); else while( (fgets(info, sizeof(info), arq))!=NULL ) if (!(strcmp(x.cpf, info))) { printf("%s", info); } fclose(arq); // Armazenar a deficiencia int 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; }else if (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ções int 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 dados int 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(); }else if (edit == 1) { system("cls"); representacao(); printf("\n"); registro(); }else if (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 principal void 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"); else while( (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 cadeiras void 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 cadastrar void 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)); }else if ((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 !
×
×
  • Criar Novo...