Ir para conteúdo
rafaellima21

Ajuda com programa - não sei como fazer este if

Recommended Posts

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <ctype.h>

struct pedido

{

char namePed[200];

char CPF[200];

char numPed[200];

char qtdPed[200];

char valorped[200];

int cod;

}logP[200];


struct cadastro

{

char CPF[200];

char telefone[200];

char nome[200];

char idade[200];

char sexo[200];

char civil[200];

char veiculo[200];

char placa[200];

char cor[200];

double seguro[200];

char endereco[200];

char data[200];

int vazio,cod;

struct pedido clientePed;


}log[200];

//AQUI DECLARO AS FUNÇÕES A SEREM USADAS

int verifica_pos(void);

int verifica_cod( int cod );

int opt;

void cadastroP(int cod,int pos);

void list();

void cadastroPedido();

void consultaCod (void);

void excluirCliente (void);

int main(void){ //INICIO DO MAIN


int i,Opcao,OpcaoCliente,posicao,retorno;

int codaux;

do

{

printf("1 - Cadastrar Novo Cliente\n");

printf("2 - Cliente\n");

printf("3 - Alterar Cliente\n");

printf("4 - Excluir Cliente\n");

printf("5 - Cadastrar Pedido\n");

printf("6 - Alterar Pedido\n");

printf("7 - Excluir Pedido\n");

printf("8 - Sair\n");

printf(" Selecione uma opcao por favor: ");

scanf("%d", &Opcao);

getchar();

if (Opcao == 1)

{

printf("Voce selecionou a opcao 1 - Cadastrar Novo Cliente\n");

posicao=verifica_pos();


if ( posicao != -1 )

{


printf("\nEntre com um codigo de 1 a 200 para seu cadastro: \n");

scanf("%d",&codaux);fflush(stdin);


retorno = verifica_cod( codaux );


if ( retorno == 1 )

cadastroP( codaux, posicao );

else{

printf("\nCodigo ja existente ou invalido pressione enter para voltar ao menu principal\n");

getchar();

system("cls");

main();

}


}

else

printf("\nNao e possivel realizar mais cadastros!\n");


break;


}

else if (Opcao == 2)

{

system("cls");

do{

printf("Voce selecionou a opcao 2 - Clientes\n\n");

printf("1 - Pesquisar cliente por codigo\n");

printf("2 - Listar todos os clientes\n");

printf("3 - Voltar ao menu principal\n");

printf("Selecione uma opcao por favor: ");

scanf("%d", &OpcaoCliente);

getchar();

if(OpcaoCliente == 1){

consultaCod();

}

else if(OpcaoCliente == 2){

list();

}

else if(OpcaoCliente == 3){

printf("Voce selecionou voltar ao menu principal, pressione ENTER para continuar");

getchar();

system("cls");

}

else

printf("Opcao Invalida\n\n");

}while(OpcaoCliente =!3 || OpcaoCliente > 3 || OpcaoCliente < 0 || OpcaoCliente == 0);

}

else if (Opcao == 3)

{

printf("Voce selecionou a opcao 3 - Alterar Cliente\n");

}

else if (Opcao == 4)

{

printf("Voce selecionou a opcao 4 - Excluir Cliente\n");

excluirCliente();

}

else if (Opcao == 5)

{

printf("Voce selecionou a opcao 5 - Cadastrar Pedido\n");

cadastroPedido();

}

else if (Opcao == 6)

{

printf("Voce selecionou a opcao 6 - Alterar Pedido\n");

}

else if (Opcao == 7)

{

printf("Voce selecionou a opcao 7 - Excluir Pedido\n");

}

else if (Opcao == 8)

{

printf("Voce selecionou a opcao 8 - Sair\n");

}

else{

printf("Opcao invalida, favor pressione enter para voltar ao menu principal");

getchar();

system("cls");

}

} while (Opcao != 8 || Opcao < 8);


} // FIM DO MAIN


void list(){ // Lista os usuarios cadastrados.

int i,j;

for(i=0;i<200;i++){

if(log.cod!=NULL){

printf("\n Codigo: %d \n Nome: %s \n Endereco: %s \n Idade: %s \n Sexo: %s \n Estado Civil: %s \n Veiculo: %s \n Placa: %s \n Cor: %s \n\n", log.cod, log.nome, log.endereco, log.idade, log.sexo, log.civil, log.veiculo, log.placa, log.cor);

}

}

printf("Pressione enter para voltar ao menu principal");

getchar();

system("cls");


} //FIM DO LIST


void cadastroP(int cod, int pos){ //Cadastro das pessoas

// int i;

// do{

char sexo;

pos = verifica_pos();

log[pos].cod = cod;

printf("\nInforme o nome do cliente: ");

gets(log[pos].nome);


printf("\nInforme o Endereco do cliente: ");

gets(log[pos].endereco);


printf("\nInforme a idade do cliente: ");

gets(log[pos].idade);


printf("\nInforme o sexo do cliente (M-> Masculino / F-> Feminino): ");

gets(log[pos].sexo);


printf("\nInforme o estado civil do cliente (C-> Casado / S-> Solteiro / D-> Divorciado): ");

gets(log[pos].civil);


printf("\nInforme o veiculo: ");

gets(log[pos].veiculo);


printf("\nInforme a placa do veiculo: ");

gets(log[pos].placa);


printf("\nInforme a cor do veiculo: ");

gets(log[pos].cor);



log[pos].vazio = 1;


// opt ==1;

// getchar();

// }while(opt==1);

// system("cls");


//char sexo[200] = log[pos].sexo, sexom[200] = "m";


if (sexo == 'm')

{

printf("\nEntrou!");

}

else{

printf("\nNão Entrou!");

}


printf("\nCadastro Realizado com Sucesso!\n\n");

getchar();


system("cls");



main();


} // FIM DO CADASTRO DE PESSOAS


int verifica_pos( void ) //VERIFICADOR DA POSIÇÃO

{

int cont = 0;


while ( cont <= 200 )

{


if ( log[cont].vazio == 0 )

return(cont);


cont++;


}


return(-1);


} // FIM DO VERIFICADOR


int verifica_cod( int cod ) // VERIFICADOR DE CÓDIGO

{

int cont = 0;


while ( cont <= 200 )

{

if ( log[cont].cod == cod )

return(0);


cont++;

}


return(1);


} // FIM DO VERIFICADOR


void cadastroPedido(){ //Cadastro dos pedidos

system("cls");

int i;

int Option;

int OpcaoPedido;

char nomeCad[200];

printf("\nDigite seu nome como esta no cadastro: ");

gets(nomeCad);

for(i=0;i<200;i++){

if(strcmp(log.nome, nomeCad)==0){

do{

printf("\nEscolha o seu pedido: "); //PEDIDOS MERAMENTE ILUSTRATIVOS, COLOQUEI SÓ PARA VER SE CONSEGUIA ANEXAR A 1 CADATRO MAS NÃO CONSEGUI.

printf("\n1- Sanduba esperto");

printf("\n2- Ceasar Salad");

printf("\n3- Raviolli\n:");

scanf("%d", &OpcaoPedido);

if(OpcaoPedido == 1){

strcpy(log.clientePed.namePed, "Sanduba esperto");

printf("\nVoce escolheu %s, seu pedido foi adicionado ao seu cadastro.",log.clientePed.namePed);

printf("\nPressione 1 para continuar pedindo ou 2 para volar ao menu principal: ");

scanf("%d", &Option);

i++;

}

else if(OpcaoPedido == 2){

strcpy(log.clientePed.namePed, "Ceasar Salad");

printf("\nVoce escolheu %s, seu pedido foi adicionado ao seu cadastro.", log.clientePed.namePed);

printf("\nPressione 1 para continuar pedindo ou 2 para volar ao menu principal: ");

scanf("%d", &Option);

i++;

}

else if(OpcaoPedido == 3){

strcpy(log.clientePed.namePed, "Raviolli");

printf("\nVoce escolheu %s, seu pedido foi adicionado ao seu cadastro.", log.clientePed.namePed);

printf("\nPressione 1 para continuar pedindo ou 2 para volar ao menu principal: ");

scanf("%d", &Option);

i++;

}

}while(Option == 1);

system("cls");



}

}

} // FIM DO CADASTRO DE PEDIDOS.

void consultaCod (void) // CONSULTAR 1 CADASTRADO QUALQUER VIA CÓDIGO DADO POR USUÁRIO.

{

int cont = 0, cod;


printf("\nEntre com o codigo\n");

scanf("%d",&cod);

fflush(stdin);

system("cls");


while ( cont <= 200 )

{


if (log[cont].cod==cod)

{

if (log[cont].vazio==1)

{


printf("\nCodigo: %d \nNome: %s\nCPF: %s\nEndereco: %s\nTelefone: %s\n\n", log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].endereco,log[cont].telefone);



system ("pause");


system("cls");


break;


}

}


cont++;


if ( cont > 200 ){

printf("\nCodigo nao encontrado, pressione enter para volar ao menu principal\n");

getchar();

system("cls");

}


}

} // FIM DA FUNÇÃO CONSULTAR

// EXCLUI CLIENTE

void excluirCliente(void) // EXCLUI CLIENTE

{

int cod, cont = 0;

char resp;

printf("\nEntre com o codigo do registro que deseja excluir: \n");

scanf("%d", &cod );


while ( cont <= 200 )

{


if ( log[cont].cod == cod )

// {


// if (log[cont].vazio == 1 )

{

printf("\n Codigo: %d \n Nome: %s \n Endereco: %s \n Idade: %s \n Sexo: %s \n Estado Civil: %s \n Veiculo: %s \n Placa: %s \n Cor: %s \n\n", log[cont].cod, log[cont].nome, log[cont].endereco, log[cont].idade, log[cont].sexo, log[cont].civil, log[cont].veiculo, log[cont].placa, log[cont].cor);

getchar();

printf("\nDeseja realmente exlucir? s/n: ");

scanf("%s",&resp);


if ( ( resp == 'S' ) || ( resp == 's' ) )

{

// log[cont].vazio=0;

// log[cont].cod = NULL;

// log[cont].cod = "%sREGISTRO APAGADO";

strcpy(log[cont].nome, "REGISTRO APAGADO");

strcpy(log[cont].endereco, "-");

strcpy(log[cont].idade, "-");

strcpy(log[cont].sexo, "-");

strcpy(log[cont].civil, "-");

strcpy(log[cont].veiculo, "-");

strcpy(log[cont].placa, "-");

strcpy(log[cont].cor, "-");

printf("\nRegistros apagados com sucesso\n");

break;

}

else

{

if ( ( resp == 'N' ) || ( resp == 'n' ) )

{

printf("Exclusao cancelada!\n");

break;

}

}


}


// }


cont++;


if ( cont > 200 )

printf("\nCodigo nao encontrado\n");


}


system("pause");

system("cls");


}

//FIM DA FUNCAO DE EXCLUIR CLIENTE




o If que eu coloquei para teste que esta em negrito e em vermelho não funciona eu não sei como comparar o conteudo desta variavel sexo, poderiam me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável caractére sexo nunca terá um valor atribuído a ela por que o programa está lendo a partir da entrada de dados do usuário para o vetor de caractéres sexo de duzentas posições do vetor log de estruturas do tipo cadastro e não está repassando esse valor da cadeia de 200 caractéres para a variável de somente 1 caractére. A variável sexo de somente 1 caractére vai sempre ter um valor indefinido. Ela não é inicializada e nem valor algum é atribuído a ela.

Para esse if funcionar você tem que ler a variável sexo de somente 1 caractére diretamente com alguma função de leitura ou então ler o valor caractére que representa o sexo em outra variável e depois copiar esse mesmo valor para essa.

Por exemplo:

sexo = getchar();

Assim a variável sexo já irá armazenar automaticamente a letra digitada pelo usuário que define o sexo que nesse caso vai ser m ou f.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.