Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) nº cod. repete


Accn

Pergunta

Preciso dar a mensagem que o codigo já existe, pois no cadastro eu consigo repetir o mesmo nº do codigo.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<io.h>
#include<math.h>


#define TAM 5

    //................................................................funções
char mprincipal();
char mcliente();
void inscliente();
void lcliente();
void alteracliente();
void exccliente();
char mconta();
void insconta();
void depositoconta();
void saqueconta();

   //------------------------------------------------------------ variaveis

  int cod,exc,i;
  char nome[20],ender[20],mp,mcl,mcl1,mco; 
  float total, saldo, deposito, retirada,cta,vlr;
  
  //----------------------------------------------------------vetor cadastro de  clientes 
  int vetcod[TAM]; 
  char vetnome[TAM][25];
  char vetender[TAM][25];   
  char mprincipal(){
       do{
  system("COLOR F0");
  cout<<"\n\n***Menu Principal***";
  cout<<"\n\n1 - Cliente";
  cout<<"\n2 - Conta";
  cout<<"\n0 - Fim\n";
  cout<<"\n\nEscolha uma opcao: ";
  cin>>mp;
  system("cls");
         }while ((mp!='0')&&(mp!='1')&&(mp!='2'));
  return mp;
                   }
//------------------------------------------------------------       //menu cliente
  char mcliente(){
       do{
  cout<<"\n\n***MENU CLIENTE***";   
  cout<<"\n\n1 - Cadastro";     
  cout<<"\n2 - Lista";
  cout<<"\n3 - Alterar";
  cout<<"\n4 - Excluir";
  cout<<"\n0 - Retorna Menu Principal";
  cout<<"\n\nEscolha uma opcao: ";
  cin>>mcl;
  system("cls");
         }while ((mcl!='1')&&(mcl!='2')&&(mcl!='3')&&(mcl!='4')&&(mcl!='0'));
switch (mcl){
       case '1': inscliente();break;
       case '2': lcliente();break;
       case '3': alteracliente();break;
       case '4': exccliente();break;    
            }
                  }

 //------------------------------------------------------------------ 
  
void inscliente(){     
   do{    i=0;
while ((vetcod[i]!=0) && (i<TAM))i++; 
if (i==TAM)
     {
cout<<"\ncadastro de clientes cheio!";
getche();
system("cls");
     }
else {
     cout<<"***CADASTRO***";
     cout<<"\n\nCodigo: ";
     cin>>vetcod[i];  
     fflush(stdin);
     cout<<"\nNome: ";
     cin>>vetnome[i];
     fflush(stdin);
     cout<<"\nEndereco: ";
     cin>>vetender[i];
     fflush(stdin);      
     cout<<"\n\nDeseja fazer outro cadastro (S/N)? ";
     cin>>mcl1;                  
     system ("cls");
     }
     }
     while (mcl1 == 's');
     }

//-------------------------------------------------------------------      // lista clientes
void lcliente(){ 
   cout<<"\n\n***LISTA***";         
   for (i=0;i<TAM;i++)
   cout<<"\n\nCodigo: "<<vetcod[i]<<"\nNome: "<<vetnome[i]<<"\nEndereco: "<<vetender[i]<<"";
   cout<<"\n\n*****Pressione enter para retornar ao Menu Principal*****";
   getche();
   system("cls");
               }
//-------------------------------------------------------------------      // altera clientes  
void alteracliente(){
   int aux_cod = 0;
   int i = 0;
   cout<<"\n\n***ALTERAR CADASTRO***";      
   cout<<"\n\nCodigo do cliente: ";
   cin>>aux_cod;
   while ((vetcod[i] != aux_cod) && (i < TAM)) i++;
   if (i == TAM)
   {
         cout<<"\nCliente não cadastrado!";
        
         getch();
         system("cls");
   }
   else 
        {
   cout<<"\nNovo codigo: ";
   cin>>vetcod[i];
   cout<<"\nNovo Nome: ";
   cin>>vetnome[i];
   cout<<"\nNovo Endereco: ";
   cin>>vetender[i];   
   cout<<"\n\nDados alterados com sucesso!";
   getche();
   system("cls");
         }                   
  }
//---------------------------------------------------------------------       // exclui clientes
void exccliente(){
   int aux_cod = 0;
   int i = 0; 
    cout<<"\n\n***EXCLUIR CADASTRO***";   
    cout<<"\n\nCodigo do cliente: ";
    cin>>aux_cod;
     
    while ((vetcod[i] != aux_cod) &&(i < TAM)) i++;
    if (i< TAM)
       {    
    cout<<"\n\nTem certeza que deseja excluir este cliente? ";    
    cout<<"\n\n1 - Sim\n2 - não\n\nOpcao: ";        
    cin>>exc;  
       }       
    if (exc==1)
    {
    cout<<"\nCliente Excluido!";    
    vetcod[i]=0; 
    vetender[i][0]=0; 
    vetnome[i][0]=0;
    getche();
    system("cls");           
    }    
    else
    {
    cout<<"\nExclusao cancelada!";
    cout<<"\n\n***Cliente não Cadastrado***";
    getche();
    system("cls");
    }              
    }

//--------------------------------------------------------------------        //menu conta    
char mconta(){
     do{
      cout<<"\n\n***MENU CONTA***";     
      cout<<"\n\n1 - Cadastro";
      cout<<"\n2 - Deposito";
      cout<<"\n3 - Saque";
      cout<<"\n0 - Menu Principal\n";
      cout<<"\n\nEscolha uma opcao: ";
      cin>>mco;
      system("cls");
       } while ((mco!='1')&&(mco!='2')&(mco!='3')&&(mco!='0'));
      
      switch (mco){
             case '1': insconta();break;
             case '2': depositoconta();break;
             case '3': saqueconta();break;
             case '0': mprincipal();break;}
                  }
//------------------------------------------------------------------      // conta cadastro
void insconta(){                             
      cout<<"\n***Cadastrar conta***";   
      cout<<"\n\nCodigo do cliente :";
      cin>>cod;
      cout<<"\nConta: ";
      cin>>cta;
      cout<<"\nValor do deposito: ";
      cin>>vlr; 
      system("cls"); 
                }
  
//------------------------------------------------------------------     // conta deposito 
void depositoconta(){
      cout<<"\n***Deposito***";      
      cout<<"\n\nValor do deposito: ";
      cin>>deposito;
      cout<<"\nSaldo: ";
      cin>>saldo;
      total = saldo + deposito;
      cout<<"\nSaldo da conta: R$ "<<total;
      getche(); 
      system("cls");        
                    }
                   
//-----------------------------------------------------------------     //conta saque
void saqueconta(){
      cout<<"\n***Saque***";      
      cout<<"\n\nSaldo Atual: ";
      cin>>saldo;
      cout<<"\nValor do Saque: ";
      cin>>retirada;
      total = saldo - retirada;
      cout<<"\nSaldo da conta: R$ "<<total; 
      getche();
      system("cls");           
                 }
                  
//------------------------------------------------------------------    //MAIN 
int main (){                  
    bool laco=1;
    do{ mp = mprincipal();         
    switch (mp)
    {
     case '1': mcliente();break;
     case '2': mconta();break;
     case '0': laco=0;}
           }
           while (laco);
           
    getche();
}

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

#include<iostream.h>
O correto é #include <iostream> (sem o .h) Pelo visto você está utilizando o Dev-Cpp. Essa IDE é bem desatualizada, recomendo que utilize outra. Para verificar se o código já foi digitado, basta percorrer todo o vetor e verificar se o novo valor coincide com algum dos códigos cadastrados. Exemplo:
bool cadastro_repetido;
 do{
     //Obtém o código
     cout<<"\n\nCodigo: ";
     cin>>vetcod[i];
     fflush(stdin);
     //Verifica se está repetido
     cadastro_repetido=false;
     for(unsigned int x=0;x<i;x++){
         if(vetcod[x]==vetcod[i]){
             //está repetido
             cout << "O codigo esta repetido";
             cadastro_repetido=true;
         }
     }
 }while(cadastro_repetido);

Obs.:

Ao utilizar std::cout aquelas chamadas à função fflush não são necessárias.

Link para o comentário
Compartilhar em outros sites

  • 0

void inscliente(){     
   do{    i=0;
while ((vetcod[i]!=0) && (i<TAM))i++; 
if (i==TAM)
     {
cout<<"\ncadastro de clientes cheio!";
getche();
system("cls");
     }
else {
     int temp;

     cout<<"***CADASTRO***";
     cout<<"\n\nCodigo: ";
     cin>>temp;

     if(((int) count(vetcod, vetcod + TAM, temp)) != 0) {
         cout << "O valor que voce deseja inserir já existe." << endl;
         goto hack;
     }

     fflush(stdin);
     cout<<"\nNome: ";
     cin>>vetnome[i];
     fflush(stdin);
     cout<<"\nEndereco: ";
     cin>>vetender[i];
     fflush(stdin);   
hack:   
     cout<<"\n\nDeseja fazer outro cadastro (S/N)? ";
     cin>>mcl1;                  
     system ("cls");
     }
     }
     while (mcl1 == 's');
     }

Fiz um "quick fix" no código, veja se funciona. Não se esqueça de incluir o seguinte no ínicio do programa: #include <algorithm> Para a função std::count funcionar.

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...