Accn Postado Junho 4, 2010 Denunciar Share Postado Junho 4, 2010 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(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 4, 2010 Denunciar Share Postado Junho 4, 2010 #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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Accn Postado Junho 5, 2010 Autor Denunciar Share Postado Junho 5, 2010 A função fflush ok, mas não consigo fazer a verificação do vetor para dar a mensagem de código existente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 5, 2010 Denunciar Share Postado Junho 5, 2010 Como assim não consegue fazer a verificação de vetor? O código que postei não funciona? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Accn Postado Junho 5, 2010 Autor Denunciar Share Postado Junho 5, 2010 Não funcionou, estou tentando. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Accn Postado Junho 5, 2010 Autor Denunciar Share Postado Junho 5, 2010 não consegui fazer, o código continua repetindo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Junho 6, 2010 Denunciar Share Postado Junho 6, 2010 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Accn Postado Junho 7, 2010 Autor Denunciar Share Postado Junho 7, 2010 Não executou a função count, deu erro, mesmo com o #include <algorithm> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 7, 2010 Denunciar Share Postado Junho 7, 2010 Poste como está seu código. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Accn Postado Junho 9, 2010 Autor Denunciar Share Postado Junho 9, 2010 consegui criando um auxiliar do codigo.Valeu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Accn
Preciso dar a mensagem que o codigo já existe, pois no cadastro eu consigo repetir o mesmo nº do codigo.
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
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.