Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

×

Informação importante

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