Mudanças entre as edições de "Projeto de Programação 1 - Programa Controle de Acesso"
Ir para navegação
Ir para pesquisar
Linha 89: | Linha 89: | ||
printf("\nNovo usuário '%s' cadastrado com sucesso!\n", TabelaUsuarios[aux].UserId); | printf("\nNovo usuário '%s' cadastrado com sucesso!\n", TabelaUsuarios[aux].UserId); | ||
} | } | ||
+ | } | ||
+ | break; | ||
+ | |||
+ | ==== Desbloquear um Usuário ==== | ||
+ | |||
+ | case 3: /*** PARA DESBLOQUEAR USUÁRIO ***/ | ||
+ | printf("\nPara desbloquear usuário:\n"); | ||
+ | printf("\nEntre com o nome do usuário a ser desbloqueado: "); | ||
+ | scanf(" %s", userID); | ||
+ | |||
+ | /* Loop para encontrar o usuário na tabela */ | ||
+ | for (aux=0;aux<TAB_USER && userEncontrado;aux++) { | ||
+ | if( strcmp(userID, TabelaUsuarios[aux].UserId)==0) | ||
+ | userEncontrado=0; | ||
+ | } | ||
+ | |||
+ | /* Se o usuário for encontrado será desbloqueado */ | ||
+ | if (userEncontrado==0) { | ||
+ | aux--; | ||
+ | if (TabelaUsuarios[aux].ContUser>=3) { | ||
+ | printf("\nUsuário encontrado bloqueado! Desbloqueando usuário..."); | ||
+ | TabelaUsuarios[aux].ContUser=0; | ||
+ | |||
+ | /* Condição para verificar o sucesso da operação.*/ | ||
+ | if(TabelaUsuarios[aux].ContUser<=3) | ||
+ | printf("\nUsuário desbloqueado com sucesso!\n"); | ||
+ | } else | ||
+ | printf("\nUsuário encontrado desbloqueado! Tente novamente com outro usuário.\n"); | ||
+ | } else | ||
+ | printf("\nUsuário não cadastrado!\n"); | ||
+ | break; | ||
+ | |||
+ | |||
+ | ==== Excluir um Usuário ==== | ||
+ | |||
+ | case 4: /*** PARA EXCLUIR UM USUÁRIO ***/ | ||
+ | printf("\nDigite o nome de usuário que deseja excluir: "); | ||
+ | scanf(" %s", userID); | ||
+ | |||
+ | /* Loop para encontrar o usuário na tabela.*/ | ||
+ | for (i=0;i<TAB_USER && userEncontrado; i++) { | ||
+ | if( strcmp(userID, TabelaUsuarios[i].UserId)==0) | ||
+ | userEncontrado=0; | ||
+ | } | ||
+ | /* Se usuário for encontrado será deletado */ | ||
+ | if (userEncontrado==0) { | ||
+ | printf("\nExcluindo usuário...\n"); | ||
+ | i--; | ||
+ | TabelaUsuarios[i].UserId[0]='\0'; | ||
+ | TabelaUsuarios[i].Senha[0]='\0'; | ||
+ | TabelaUsuarios[i].ContUser=0; | ||
+ | TabelaUsuarios[i].MsgUser[0]='\0'; | ||
+ | |||
+ | /* Condição para verificar o sucesso da operação.*/ | ||
+ | if(TabelaUsuarios[i].UserId[0]==0) | ||
+ | printf("\nUsuário excluído com sucesso!\n"); | ||
+ | } else | ||
+ | printf("\nUsuário não cadastrado!\n"); | ||
+ | |||
+ | break; | ||
+ | |||
+ | ==== Imprimir Tabela de Usuários ==== | ||
+ | |||
+ | case 5: /*** PARA IMPRIMIR TABELA DE USUÁRIOS. ***/ | ||
+ | printf("\nListando tabela de usuários cadastrados...\n"); | ||
+ | |||
+ | for(aux=0;TabelaUsuarios[aux].UserId[0] && aux<TAB_USER;aux++) { | ||
+ | printf("\n%s",TabelaUsuarios[aux].UserId); | ||
+ | cont++; | ||
+ | } | ||
+ | printf("\n\nNúmero de usuários cadastrados: %d\n", cont); | ||
+ | break; | ||
+ | |||
+ | |||
+ | ==== Limpar Lista de Usuários ==== | ||
+ | |||
+ | case 6: /*** PARA LIMPAR LISTA DE USUÁRIOS ***/ | ||
+ | printf("\nLimpando tabela de usuários...\n"); | ||
+ | for(i=0;TabelaUsuarios[i].UserId[0];i++) { | ||
+ | TabelaUsuarios[i].UserId[0]='\0'; | ||
+ | TabelaUsuarios[i].Senha[0]='\0'; | ||
+ | TabelaUsuarios[i].ContUser=0; | ||
+ | TabelaUsuarios[i].MsgUser[0]='\0'; | ||
+ | } | ||
+ | break; | ||
+ | |||
+ | |||
+ | ==== Modificar mensagem particular do Usuário ==== | ||
+ | |||
+ | case 7: /*** PARA MODIFICAR MENSAGEM PARTICULAR DO USUÁRIO. ***/ | ||
+ | printf("\nPara modificar mensagem particular do usuário:\n"); | ||
+ | printf("\nEntre com o nome de usuário que deseja modificar a mensagem: "); | ||
+ | scanf(" %s", userID); | ||
+ | |||
+ | /* Loop para encontrar o usuário na tabela.*/ | ||
+ | for (i=0;i<TAB_USER && userEncontrado; i++) { | ||
+ | if( strcmp(userID, TabelaUsuarios[i].UserId)==0) | ||
+ | userEncontrado=0; | ||
+ | } | ||
+ | /* Se usuário for encontrado será modificado a mensagem particular. */ | ||
+ | if (userEncontrado==0) { | ||
+ | printf("\nEntre com a nova mensagem: "); | ||
+ | i--; | ||
+ | scanf(" %s", TabelaUsuarios[i].MsgUser); | ||
+ | |||
+ | /* Verificação do sucesso da operação.*/ | ||
+ | printf("\nA nova mensagem é '%s'.\n", TabelaUsuarios[i].MsgUser); | ||
+ | printf("\nMensagem particular modificada com sucesso!\n"); | ||
+ | }else | ||
+ | printf("\nUsuário não cadastrado!\n"); | ||
+ | break; | ||
+ | |||
+ | |||
+ | ==== Modificar mensagem padrão ==== | ||
+ | |||
+ | case 13: /*** PARA MODIFICAR MENSAGEM PADRAO ***/ | ||
+ | printf("\nPara modificar mensagem padrão:\n"); | ||
+ | printf("\nEntre com a nova mensagem: "); | ||
+ | scanf(" %s", MsgPadrao); | ||
+ | |||
+ | /* Verificação do sucesso da operação.*/ | ||
+ | printf("\nA nova mensagem é '%s'.\n", MsgPadrao); | ||
+ | printf("\nMensagem padrão modificada com sucesso!\n"); | ||
+ | break; | ||
+ | |||
+ | |||
+ | ==== Modificar senha do Administrador ==== | ||
+ | |||
+ | case 15: /*** PARA MODIFICAR SENHA DO ADMINISTRADOR ***/ | ||
+ | printf("\nPara modificar senha do administrador:\n"); | ||
+ | printf("\nEntre com a senha atual do admin: "); | ||
+ | scanf(" %s", senha); | ||
+ | |||
+ | for (i=0;i<TAB_ADMIN && userEncontrado; i++) { | ||
+ | if( strcmp(userID, TabelaAdmin[i].UserAdmin)==0) | ||
+ | userEncontrado=0; | ||
+ | } | ||
+ | /* Condição para modificar a atual senha do administrador.*/ | ||
+ | if (userEncontrado==0) { | ||
+ | i--; | ||
+ | if (strcmp(senha, TabelaAdmin[i].SenhaAdmin)==0) { | ||
+ | printf("\nEntre com a nova senha: "); | ||
+ | scanf(" %s", senha); | ||
+ | printf("\nConfirme a nova senha: "); | ||
+ | scanf(" %s", TabelaAdmin[i].SenhaAdmin); | ||
+ | |||
+ | /* Condição para verificar o sucesso da operação.*/ | ||
+ | if (strcmp(senha, TabelaAdmin[i].SenhaAdmin)==0) | ||
+ | printf("\nSenha do administrador modificada com sucesso!\n"); | ||
+ | else | ||
+ | printf("\nFalha ao modificar a senha. Dados incorretos. Tente novamente e verifique a nova senha.\n"); | ||
+ | } else | ||
+ | printf("\nDados incorretos. Tente novamente e verifique a senha do administrador fornecida.\n"); | ||
} | } | ||
break; | break; |
Edição das 20h48min de 8 de abril de 2013
Proposta de trabalho:
- Sistema de controle de acesso;
- Interface GUI para o administrador;
- Interface usuário GUI simulando o display LCD;
- Arquivo de log de entrada/saída de usuários com horário e data;
- Armazenamento da base de dados em arquivo;
- Prever possibilidade de vários administradores;
Sistema de controle de acesso
Ações do Administrador
Bloquear Usuário
case 1: /*** PARA BLOQUEAR USUÁRIO ***/ printf("\nPara bloquear usuário:\n"); printf("\nEntre com o nome do usuário a ser bloqueado: "); scanf(" %s", userID); /* Loop para encontrar o usuário na tabela */ for (aux=0, userEncontrado=1;aux<TAB_USER && userEncontrado;aux++) { if( strcmp(userID, TabelaUsuarios[aux].UserId)==0) userEncontrado=0; } /* Se o usuário for encontrado será bloqueado */ if (userEncontrado==0) { aux--; if (TabelaUsuarios[aux].ContUser>=3) { printf("\nUsuário encontrado já bloqueado!\n"); } else{ printf("\nBloqueando usuário...\n"); TabelaUsuarios[aux].ContUser = 3; /* Condição para verificar o sucesso da operação.*/ if(TabelaUsuarios[aux].ContUser>=3) printf("\nUsuário bloqueado com sucesso!\n"); } } else printf("\nUsuário não cadastrado!\n"); break;
Cadastrar novo Usuário
case 2: /*** PARA CADASTRAR NOVO USUÁRIO ***/ printf("\nPara cadastrar novo usuário: "); /* Loop para encontrar o final da tabela */ for(i=0;TabelaUsuarios[i].UserId[0] && i<TAB_USER;i++) aux++; /* Condição para novo cadastro.*/ if (i==TAB_USER) printf("\nLimite de cadastro de usuários atingido.\n"); else { printf("\nEntre com um novo nome de Usuário:\n"); scanf(" %s", userID); /* Loop para encontrar o usuário na tabela */ for (i=0; i<aux && userEncontrado; i++) { if( strcmp(userID, TabelaUsuarios[i].UserId)==0) userEncontrado=0; } /* Se o usuário for encontrado já está cadastrado. */ if (userEncontrado==0) printf("\nUsuário já cadastrado.Tente novamente com outro usuário.\n"); else { strcat(TabelaUsuarios[aux].UserId,userID); printf("\nEntre com uma nova senha para o novo usuário %s:\n", userID); scanf(" %s", senha); strcat(TabelaUsuarios[aux].Senha,senha); strcat(TabelaUsuarios[aux].MsgUser,"Bom Dia"); /* Condição para verificar o sucesso da operação.*/ if(strcmp(userID, TabelaUsuarios[aux].UserId)==0 && strcmp(senha, TabelaUsuarios[aux].Senha)==0) printf("\nNovo usuário '%s' cadastrado com sucesso!\n", TabelaUsuarios[aux].UserId); } } break;
Desbloquear um Usuário
case 3: /*** PARA DESBLOQUEAR USUÁRIO ***/ printf("\nPara desbloquear usuário:\n"); printf("\nEntre com o nome do usuário a ser desbloqueado: "); scanf(" %s", userID); /* Loop para encontrar o usuário na tabela */ for (aux=0;aux<TAB_USER && userEncontrado;aux++) { if( strcmp(userID, TabelaUsuarios[aux].UserId)==0) userEncontrado=0; } /* Se o usuário for encontrado será desbloqueado */ if (userEncontrado==0) { aux--; if (TabelaUsuarios[aux].ContUser>=3) { printf("\nUsuário encontrado bloqueado! Desbloqueando usuário..."); TabelaUsuarios[aux].ContUser=0; /* Condição para verificar o sucesso da operação.*/ if(TabelaUsuarios[aux].ContUser<=3) printf("\nUsuário desbloqueado com sucesso!\n"); } else printf("\nUsuário encontrado desbloqueado! Tente novamente com outro usuário.\n"); } else printf("\nUsuário não cadastrado!\n"); break;
Excluir um Usuário
case 4: /*** PARA EXCLUIR UM USUÁRIO ***/ printf("\nDigite o nome de usuário que deseja excluir: "); scanf(" %s", userID); /* Loop para encontrar o usuário na tabela.*/ for (i=0;i<TAB_USER && userEncontrado; i++) { if( strcmp(userID, TabelaUsuarios[i].UserId)==0) userEncontrado=0; } /* Se usuário for encontrado será deletado */ if (userEncontrado==0) { printf("\nExcluindo usuário...\n"); i--; TabelaUsuarios[i].UserId[0]='\0'; TabelaUsuarios[i].Senha[0]='\0'; TabelaUsuarios[i].ContUser=0; TabelaUsuarios[i].MsgUser[0]='\0'; /* Condição para verificar o sucesso da operação.*/ if(TabelaUsuarios[i].UserId[0]==0) printf("\nUsuário excluído com sucesso!\n"); } else printf("\nUsuário não cadastrado!\n"); break;
Imprimir Tabela de Usuários
case 5: /*** PARA IMPRIMIR TABELA DE USUÁRIOS. ***/ printf("\nListando tabela de usuários cadastrados...\n"); for(aux=0;TabelaUsuarios[aux].UserId[0] && aux<TAB_USER;aux++) { printf("\n%s",TabelaUsuarios[aux].UserId); cont++; } printf("\n\nNúmero de usuários cadastrados: %d\n", cont); break;
Limpar Lista de Usuários
case 6: /*** PARA LIMPAR LISTA DE USUÁRIOS ***/ printf("\nLimpando tabela de usuários...\n"); for(i=0;TabelaUsuarios[i].UserId[0];i++) { TabelaUsuarios[i].UserId[0]='\0'; TabelaUsuarios[i].Senha[0]='\0'; TabelaUsuarios[i].ContUser=0; TabelaUsuarios[i].MsgUser[0]='\0'; } break;
Modificar mensagem particular do Usuário
case 7: /*** PARA MODIFICAR MENSAGEM PARTICULAR DO USUÁRIO. ***/ printf("\nPara modificar mensagem particular do usuário:\n"); printf("\nEntre com o nome de usuário que deseja modificar a mensagem: "); scanf(" %s", userID); /* Loop para encontrar o usuário na tabela.*/ for (i=0;i<TAB_USER && userEncontrado; i++) { if( strcmp(userID, TabelaUsuarios[i].UserId)==0) userEncontrado=0; } /* Se usuário for encontrado será modificado a mensagem particular. */ if (userEncontrado==0) { printf("\nEntre com a nova mensagem: "); i--; scanf(" %s", TabelaUsuarios[i].MsgUser); /* Verificação do sucesso da operação.*/ printf("\nA nova mensagem é '%s'.\n", TabelaUsuarios[i].MsgUser); printf("\nMensagem particular modificada com sucesso!\n"); }else printf("\nUsuário não cadastrado!\n"); break;
Modificar mensagem padrão
case 13: /*** PARA MODIFICAR MENSAGEM PADRAO ***/ printf("\nPara modificar mensagem padrão:\n"); printf("\nEntre com a nova mensagem: "); scanf(" %s", MsgPadrao); /* Verificação do sucesso da operação.*/ printf("\nA nova mensagem é '%s'.\n", MsgPadrao); printf("\nMensagem padrão modificada com sucesso!\n"); break;
Modificar senha do Administrador
case 15: /*** PARA MODIFICAR SENHA DO ADMINISTRADOR ***/ printf("\nPara modificar senha do administrador:\n"); printf("\nEntre com a senha atual do admin: "); scanf(" %s", senha); for (i=0;i<TAB_ADMIN && userEncontrado; i++) { if( strcmp(userID, TabelaAdmin[i].UserAdmin)==0) userEncontrado=0; } /* Condição para modificar a atual senha do administrador.*/ if (userEncontrado==0) { i--; if (strcmp(senha, TabelaAdmin[i].SenhaAdmin)==0) { printf("\nEntre com a nova senha: "); scanf(" %s", senha); printf("\nConfirme a nova senha: "); scanf(" %s", TabelaAdmin[i].SenhaAdmin); /* Condição para verificar o sucesso da operação.*/ if (strcmp(senha, TabelaAdmin[i].SenhaAdmin)==0) printf("\nSenha do administrador modificada com sucesso!\n"); else printf("\nFalha ao modificar a senha. Dados incorretos. Tente novamente e verifique a nova senha.\n"); } else printf("\nDados incorretos. Tente novamente e verifique a senha do administrador fornecida.\n"); } break;