Mudanças entre as edições de "Projeto de Programação 1 - Programa Controle de Acesso"

De MediaWiki do Campus São José
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;