Ir ao conteúdo
  • Cadastre-se

Miraizovski

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Obrigado pelo ajuda parceiro, vou tentar arrumar aqui
  2. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define RISOTO 10.00; #define LASAGNA 25.00; void cadastro(); void logar(); void italiano(); struct Cliente { char nome[30]; int rg; int cpf; char endereco[50]; int telefone; char login[20]; char senha[20]; int contar; }; struct Cliente cliente[30]; int main() { setlocale(LC_ALL, "Portuguese"); int opcao, prato, restaurante; printf("Digite (1) para fazer login ou (2) para se cadastrar: "); scanf("%d", &opcao); while(opcao < 1 || opcao > 2) { printf("\nOpcão inválida, digite novamente:"); scanf("%d", &opcao); } if(opcao == 1) { logar(); } else if(opcao == 2) { cadastro(); } return 0; } void cadastro() { int cont = 0; int maisClientes; int clientes; do { maisClientes = 0; printf("\nDigite seus dados para efetuar o cadastro:\n\n"); printf("Nome completo: "); fflush(stdin); fgets(cliente[cont].nome,30,stdin); printf("RG: "); scanf("%d", &cliente[cont].rg); printf("CPF: "); scanf("%d", &cliente[cont].cpf); printf("Endereço: "); fflush(stdin); fgets(cliente[cont].endereco,50,stdin); printf("Telefone: "); scanf("%d", &cliente[cont].telefone); printf("Login: "); fflush(stdin); scanf("%s", &cliente[cont].login); printf("Senha: "); fflush(stdin); scanf("%s", &cliente[cont].senha); printf("\n"); fflush(stdin); printf("Deseja cadastrar mais clientes? (1)SIM (2)NÃO: "); scanf("%d", &clientes); printf("\n"); if(clientes == 1) { cliente[0].contar++; maisClientes++; cont++; system("cls"); } else { system("cls"); printf("Login!!\n\n"); logar(); } } while(maisClientes == 1); } void logar() { char login[20], senha[20]; int contador; printf("\nNome de usuario: "); fflush(stdin); scanf("%s", &login); fflush(stdin); printf("Senha: "); fflush(stdin); scanf("%s", &senha); system("cls"); if(strcmp(login,"adm") == 0 && strcmp(senha,"adm") == 0) { printf("\nBem vindo administrador\n\n"); } for(contador = 0; contador <= cliente[0].contar; contador++) { if(strcmp(login, cliente[contador].login) == 0 && strcmp(senha, cliente[contador].senha) == 0 ) { printf("Bem vindo cliente"); printf("%s", cliente[contador].login); } else if(strcmp(login, cliente[contador].login) != 0 || strcmp(senha, cliente[contador].senha) != 0) { printf("Usuario invalido"); logar(); } } } void italiano() { printf("\nRISOTO - R$10,00\n"); printf("LASAGNA - R$25,00\n"); } Estou fazendo esse trabalho e preciso criar um sistema de cadastro e login de clientes, o sistema deve permitir o cadastro de vários clientes. Utilizei a função strcmp para fazer a validação do login e funciona perfeitamente se eu cadastrar somente um cliente. Mas se eu cadastrar mais de um cliente o programa printa a mensagem de usuario invalido mesma com o login e senha corretos. Alguém sabe me dizer o que estou fazendo de errado? Acredito que a forma que estou utilizando o for na modulo logar seja ineficiente.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!