[RESOLVIDO] O que tem de errado nesse programa?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[RESOLVIDO] O que tem de errado nesse programa?

Mensagem por Perdigão em Sab 9 Jul 2011 - 17:30

Código:
#include <iostream>
using namespace std;

int main(void)
{
   int I, OPC = 1, PESQNU;
   bool ACHA;
   char PESQNO[32];
   struct CAD_INFO
   {
      char NOME[32];
      long int NUMERO;
   };
   struct CAD_INFO CAD[20];

   int OPCAO = 0;
   while(OPCAO <= 5)
   {
   cout << "\nAgenda Eletronica\n";
   cout << "-----------------\n";
   cout << endl << endl;
   cout << "[1] Cadastrar Informacoes" << endl;
   cout << "[2] Mostrar Todos Cadastros" << endl;
   cout << "[3] Pesquisar por Nome" << endl;
   cout << "[4] Pesquisar por Numero" << endl;
   cout << "[5] Alterar um Cadastro" << endl;
   cout << "[6] Fechar Agenda" << endl << endl;
   cout << "O Que Deseja Fazer?.....: "; cin >> OPCAO;
   }
   if(OPCAO <= 5)
   {
   switch (OPCAO)
   {

   case 1:
   I = 0;
   OPC = 1;
   while(OPC == 1)
   {
      cout << "Entre com o Nome";
      cin >> CAD[1].NOME;
      I++;
      cout << "Deseja continuar?" << "[1]Sim [2]Nao" << endl;
      cin >> OPC;
   }
   break;

   case 2:

   for(I = 0; I <= 19; I++)
      {
   cout << CAD[I].NOME << CAD[I].NUMERO << endl;
      }
   break;

   case 3:

   I = 0;
   cout << "Digite o nome a ser Pesquisado.....: ";
   cin >> PESQNO;
   ACHA = false;
   while(ACHA == false && I <= 19)
   {
   if(PESQNO == CAD[I].NOME)
   {
      ACHA = true;
   }
   else
      I++;
   }
   break;

   case 4:

   I = 0;
   cout << "Digite o numero a ser Pesquisado.....: ";
   cin >> PESQNU;
   ACHA = false;
   while(ACHA == false && I <= 19)
   {
   if(PESQNU == CAD[I].NUMERO)
   {
      ACHA = true;
   }
   else
      I++;
   }
      
   break;
   case 5:

   I = 0;
   cout << "Numero do Registro.....: ";
   cin >> I;
   cout << "Digite o Nome...: ";
   cin >> CAD[I].NOME;
   cout << "Digite o Numero.: ";
   cin >> CAD[I].NUMERO;
      
   break;
   }
   }
   return 0;
}

O programa é uma agenda eletrônica que é possivel cadastrar 20 nomes e telefones, pesquisar qualquer um deles por nome ou por numero de telefone, alterar qualquer nome ou telefone registrado.

Eu consigo compilar o programa sem nenhum erro ou warning, ou seja, ta liso...
Mas eu executo e ele abre e vai pro menu, dai eu escolho qualquer opção, mas ele não fez o que era pra fazer...
A única opção que funciona é a opção Fechar Agenda, que obviamente, fecha o programa!!!
Taaa, e ai??
Descobriram o meu erro????
Ajudem aee
edoo, se q é feraa


Última edição por Perdigão em Dom 10 Jul 2011 - 20:51, editado 1 vez(es)
avatar
Perdigão
Bronze Member
Bronze Member

Mensagens : 249
Posts : 2895
Agradecimentos : 9
Data de inscrição : 16/06/2011

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] O que tem de errado nesse programa?

Mensagem por IsLifersBozo? em Dom 10 Jul 2011 - 8:24

se não da erro de sintaxe
e nao da erro de nada na hora de compilar
provavelmente deve ser erro na source.
vc pegou a source pronta?
avatar
IsLifersBozo?
Bronze Member
Bronze Member

Mensagens : 219
Posts : 7369
Agradecimentos : 6
Data de inscrição : 02/06/2011
Idade : 22

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] O que tem de errado nesse programa?

Mensagem por Perdigão em Dom 10 Jul 2011 - 12:38

edoo, tarde de mais mano kkkk
ja arrumei todos os erros, e adc uma função pra cadastrar endereço da pessoa tbm...
ahhh, e eu mesmo fiz essa base, desde o começo até o fim.
Nao to no meu pc agora, mas quando eu tiver nele, eu posto a source com erros corrigidos...
só que o comando cin.getline nao pego uaiiii....
tive que usar "cin >>" mesmo.O ruim é que esse comando só aceita a palavra até o primeiro [SPACE], e cin.getline, aceita até lotar a variavel, mesmo que tenha muitos [Espaços].

faloww
avatar
Perdigão
Bronze Member
Bronze Member

Mensagens : 249
Posts : 2895
Agradecimentos : 9
Data de inscrição : 16/06/2011

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] O que tem de errado nesse programa?

Mensagem por Perdigão em Dom 10 Jul 2011 - 15:37

A Source Correta para quem quser estudar, é esta:

Código:
// Exercício A

#include <iostream>
#include <cstring>
using namespace std;

class CAD_INFO
   {
   public:
      char NOME[32];
      char END[32];
      long int NUMERO;
   };CAD_INFO CAD[20];

int main(void)
{
   int I, J, OPC = 1, PESQNU, X = 0;
   bool ACHA;
   char PESQNO[32], A[32];

   for(I = 0; I <= 19; I++)
   {
      CAD[I].NUMERO = 0;
   }

   int OPCAO = 0;
   while(OPCAO <= 5)
   {
   cout << "\nAgenda Eletronica\n";
   cout << "-----------------\n";
   cout << endl << endl;
   cout << "[1] Cadastrar Informacoes" << endl;
   cout << "[2] Mostrar Todos Cadastros" << endl;
   cout << "[3] Pesquisar por Nome" << endl;
   cout << "[4] Pesquisar por Numero" << endl;
   cout << "[5] Alterar um Cadastro" << endl;
   cout << "[6] Fechar Agenda" << endl << endl;
   cout << "O Que Deseja Fazer?.....: "; cin >> OPCAO;
   cout << endl << endl;
   if(OPCAO <= 5)
   {
      switch (OPCAO)
      {
      
   case 1:
   OPC = 1;
   while(OPC == 1)
   {
      cout << "USE _ (underline) AO INVES DE ESPACOS";
      cout << endl;
      cout << "Entre com o Nome.....: ";
      cin >> CAD[X].NOME;
      cout << "Entre com o Numero...: ";
      cin >> CAD[X].NUMERO;
      cout << "Entre com Endereco...: ";
      cin >> CAD[X].END;
      X++;
      cout << "Deseja cadastrar mais um?" << "[1]Sim [2]Nao" << endl;
      cin >> OPC;
   }
   break;

   case 2:

   for(J = 0; J <= 18; J++)
   {
      for(I = J + 1; I <= 19; I++)
      {
         if(strcmp(CAD[J].NOME, CAD[I].NOME) >= 0)
         {
            strcpy(A, CAD[J].NOME);
            strcpy(CAD[J].NOME, CAD[I].NOME);
            strcpy(CAD[I].NOME, A);
         }
      }
   }

   for(I = 0; I <= 19; I++)
      {
         cout << "Nome: "<< CAD[I].NOME << endl;
         cout << "Numero: " << CAD[I].NUMERO << endl;
         cout << "Endereco: " << CAD[I].END << endl << endl;
      }
   break;

   case 3:

   I = 0;
   cout << "Digite o nome a ser Pesquisado.....: ";
   cin >> PESQNO;
   ACHA = false;
   while(ACHA == false && I <= 19)
   {
   if(strcmp(PESQNO, CAD[I].NOME) == 0)
   {
      ACHA = true;
   }
   else
      I++;
   }
   if(ACHA == true)
      cout << CAD[I].NUMERO;
   else
      cout << "Nao Encontrado...";
   cout << endl;
   break;

   case 4:

   I = 0;
   cout << "Digite o numero a ser Pesquisado.....: ";
   cin >> PESQNU;
   ACHA = false;
   while(ACHA == false && I <= 19)
   {
   if(PESQNU == CAD[I].NUMERO)
   {
      ACHA = true;
   }
   else
      I++;
   }
      
   break;
   case 5:
   I = 0;
   J = I - 1;
   cout << "Numero do Registro.....: ";
   cin >> I;
   cout << "Digite o Nome......: ";
   cin >> CAD[J].NOME;
   cout << "Digite o Numero....: ";
   cin >> CAD[J].NUMERO;
   cout << "Digite o Endereco..: ";
   cin.getline(CAD[X].END, sizeof(CAD[X].END));
      
   break;
   }
   }
   }
   return 0;
}

É uma Agenda Eletrônica, que permite cadastrar até 20 Contatos, cada um com Nome, Telefeon e Endereço.
Permite Mostrar todos Cadastrados, Editar qualquer contato que esteja errado.
Permite pesquisar um Contato por Nome ou Numero.

Obs: Usei Programação Orientada a Objeto para fazer essa source.

Então é isso pessoal! Falow
avatar
Perdigão
Bronze Member
Bronze Member

Mensagens : 249
Posts : 2895
Agradecimentos : 9
Data de inscrição : 16/06/2011

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] O que tem de errado nesse programa?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum