Ir para conteúdo

RAfa

Membros
  • Postagens

    1
  • Registro em

  • Última visita

Conquistas de RAfa

0

Reputação

  1. RAfa

    problemas em um codigo

    boa noite estou com um problema em um codigo toda vez que executo parece Erro ao abrir o arquivo ESPETACULOS.txt sendo que ja verifiquei o nome e estão na mesmo pasta #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SESSIONS 100 #define MAX_SEATS 112 #define MAX_USERS 10 // Estrutura para armazenar informações de uma sessão typedef struct { char id[4]; char title[20]; char director[20]; int duration; int ageRecommendation; char date[9]; char time[6]; } Session; // Estrutura para armazenar informações de um assento typedef struct { char session[4]; char row; char seats[17]; } Seat; // Estrutura para armazenar informações de um usuário typedef struct { char login[21]; char password[21]; char type; } User; // Função para carregar as sessões do arquivo ESPETACULOS.TXT int loadSessions(Session sessions[], int *sessionCount) { FILE *file = fopen("ESPETACULOS.txt", "r"); if (file == NULL) { printf("Erro ao abrir o arquivo ESPETACULOS.txt\n"); return 0; } // Loop para ler cada linha do arquivo e armazenar as informações nas estruturas de sessão while (!feof(file)) { if (fscanf(file, "%3s %20s %20s %d %d %8s %5s", sessions[*sessionCount].id, sessions[*sessionCount].title, sessions[*sessionCount].director, &sessions[*sessionCount].duration, &sessions[*sessionCount].ageRecommendation, sessions[*sessionCount].date, sessions[*sessionCount].time) != 7) { break; } (*sessionCount)++; } fclose(file); return 1; } // Função para salvar as sessões no arquivo ESPETACULOS.TXT void saveSessions(Session sessions[], int sessionCount) { FILE *file = fopen("ESPETACULOS.txt", "w"); if (file == NULL) { printf("Erro ao abrir o arquivo ESPETACULOS.txt\n"); return; } // Loop para escrever cada sessão no arquivo for (int i = 0; i < sessionCount; i++) { fprintf(file, "%s %s %s %d %d %s %s\n", sessions[i].id, sessions[i].title, sessions[i].director, sessions[i].duration, sessions[i].ageRecommendation, sessions[i].date, sessions[i].time); } fclose(file); } // Função para carregar os assentos do arquivo ASSENTOS.TXT int loadSeats(Seat seats[], int *seatCount) { FILE *file = fopen("ASSENTOS.txt", "r"); if (file == NULL) { printf("Erro ao abrir o arquivo ASSENTOS.txt\n"); return 0; } // Loop para ler cada linha do arquivo e armazenar as informações nas estruturas de assento while (!feof(file)) { if (fscanf(file, "%3s %c %16s", seats[*seatCount].session, &seats[*seatCount].row, seats[*seatCount].seats) != 3) { break; } (*seatCount)++; } fclose(file); return 1; } // Função para salvar os assentos no arquivo ASSENTOS.TXT void saveSeats(Seat seats[], int seatCount) { FILE *file = fopen("ASSENTOS.txt", "w"); if (file == NULL) { printf("Erro ao abrir o arquivo ASSENTOS.txt\n"); return; } // Loop para escrever cada assento no arquivo for (int i = 0; i < seatCount; i++) { fprintf(file, "%s %c %s\n", seats[i].session, seats[i].row, seats[i].seats); } fclose(file); } // Função para carregar os usuários do arquivo USUARIOS.TXT int loadUsers(User users[], int *userCount) { FILE *file = fopen("USUARIOS.txt", "r"); if (file == NULL) { printf("Erro ao abrir o arquivo USUARIOS.txt\n"); return 0; } // Loop para ler cada linha do arquivo e armazenar as informações nas estruturas de usuário while (!feof(file)) { if (fscanf(file, "%20s %20s %c", users[*userCount].login, users[*userCount].password, &users[*userCount].type) != 3) { break; } (*userCount)++; } fclose(file); return 1; } // Função para salvar os usuários no arquivo USUARIOS.TXT void saveUsers(User users[], int userCount) { FILE *file = fopen("USUARIOS.txt", "w"); if (file == NULL) { printf("Erro ao abrir o arquivo USUARIOS.txt\n"); return; } // Loop para escrever cada usuário no arquivo for (int i = 0; i < userCount; i++) { fprintf(file, "%s %s %c\n", users[i].login, users[i].password, users[i].type); } fclose(file); } // Função para realizar o login do usuário User *login(User users[], int userCount) { char login[21]; char password[21]; printf("Login: "); scanf("%20s", login); printf("Senha: "); scanf("%20s", password); // Verificar se as credenciais estão corretas for (int i = 0; i < userCount; i++) { if (strcmp(users[i].login, login) == 0 && strcmp(users[i].password, password) == 0) { User *user = malloc(sizeof(User)); strcpy(user->login, users[i].login); strcpy(user->password, users[i].password); user->type = users[i].type; return user; } } printf("Credenciais inválidas.\n"); return NULL; } // Função para cadastrar uma nova sessão void addSession(Session sessions[], int *sessionCount) { printf("ID da sessão: "); scanf("%3s", sessions[*sessionCount].id); printf("Título: "); scanf(" %[^\n]", sessions[*sessionCount].title); printf("Diretor: "); scanf(" %[^\n]", sessions[*sessionCount].director); printf("Duração (em minutos): "); scanf("%d", &sessions[*sessionCount].duration); printf("Recomendação de faixa etária: "); scanf("%d", &sessions[*sessionCount].ageRecommendation); printf("Data da sessão (dd/mm/aa): "); scanf("%8s", sessions[*sessionCount].date); printf("Horário da sessão (hh:mm): "); scanf("%5s", sessions[*sessionCount].time); (*sessionCount)++; } // Função para excluir uma sessão existente void deleteSession(Session sessions[], int *sessionCount) { char sessionId[4]; printf("ID da sessão a ser excluída: "); scanf("%3s", sessionId); // Encontrar a sessão com o ID correspondente e removê-la int found = 0; for (int i = 0; i < *sessionCount; i++) { if (strcmp(sessions[i].id, sessionId) == 0) { for (int j = i; j < *sessionCount - 1; j++) { sessions[j] = sessions[j + 1]; } (*sessionCount)--; found = 1; break; } } if (found) { printf("Sessão excluída com sucesso.\n"); } else { printf("Sessão não encontrada.\n"); } } // Função principal int main() { Session sessions[MAX_SESSIONS]; int sessionCount = 0; Seat seats[MAX_SEATS]; int seatCount = 0; User users[MAX_USERS]; int userCount = 0; User *currentUser = NULL; // Carregar sessões, assentos e usuários dos arquivos if (!loadSessions(sessions, &sessionCount) || !loadSeats(seats, &seatCount) || !loadUsers(users, &userCount)) { return 1; } // Loop principal do programa while (1) { // Verificar se há um usuário logado if (currentUser == NULL) { currentUser = login(users, userCount); if (currentUser == NULL) { break; } } // Menu de opções printf("\n--- Menu ---\n"); if (currentUser->type == 'G') { printf("1. Cadastrar sessão\n"); printf("2. Excluir sessão\n"); // Mais opções do gerente... } printf("0. Sair\n"); printf("Escolha uma opção: "); int option; scanf("%d", &option); switch (option) { case 1: if (currentUser->type == 'G') { addSession(sessions, &sessionCount); saveSessions(sessions, sessionCount); } break; case 2: if (currentUser->type == 'G') { deleteSession(sessions, &sessionCount); saveSessions(sessions, sessionCount); } break; case 0: // Logout do usuário free(currentUser); currentUser = NULL; break; default: printf("Opção inválida.\n"); break; } } // Salvar sessões, assentos e usuários nos arquivos saveSessions(sessions, sessionCount); saveSeats(seats, seatCount); saveUsers(users, userCount); return 0; }
×
×
  • Criar Novo...