Jump to content

Recommended Posts

Posted

Boa tarde, será que alguém me pode dar um ajuda???(sou muito iniciante) ?

è o seguinte tenho um conjunto de classes e tenho uma classe ao qual dei o nome de GestorPessoas e criei um metodo searchPessoa e criei o codigo desse mesmo metodo, mas agora no main não o consigo fazer....no main tenho 8 casos um dos quais é pesquisar, mas so consegui que  quando ele compila so me pede o nome da pessoa e depois não faz nada diz para premir enter e desaparece.

Podem ajudar-me???

O código que ja tenho é o seguinte:

no cpp:

int GestorPessoa::SearchPessoa(CString m_nome)
{
int i;

for (i=1; i<size;i++)
{
if(m_nome == P[i]->GetNome())//o metodo qie permite conhecer o nome do objecto.
	return i;
}

return -1;//para achar pelo menos um valor

}

no main:

		//		cout <<"Opção 6 - Pesquisar Registo\n";
			//Interface
			system ("cls");

			cout << "\t Escreva o nome da Pessoa:";

			cin >> size;

			for (i=1; i< size; i++)
			{


				flush(cin);

				cin.getline (id.GetBuffer (2),2);
				flush (cin);

	         GP.SearchPessoa(m_nome);


			}

(Aqui tenho quase a certeza que o meu código nao faz sentido nenhum pois eu copiei de outro exercicio que fiz na aula, mas foi uma tentativa de dar resultado)

obrigado  a todos...

Posted

E esta...(penso eu) mas vou colocar aqui todo o meu main é que eu so enviei uma das partes que eu nao consigo resolver.... entao o main todo é o seguinte:

#include "stdafx.h"
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
#include "../Classes/GestorPessoa.h"

//Declaração de Funções
int MenuPrincipal(void);
int SubMenuSave (void);
void Pausa (void);
void flush(istream & is);

int main(int argc, char* argv[]) 
{

//Declarações

int opcao, i;
CString id;
char NmFicheiro[16];
ifstream ifile;
CString m_nome;

//Base de dados
GestorPessoa GP;
int size =0;

//Ciclo Principal
do
{
	system("cls");//para que possa desaparecer o menu depois de escolhermos um novo...
	//Menu Principal - 1º(mas a 1a funçao é o menuprincipal)
	opcao = MenuPrincipal();

	switch (opcao)
	{
		case 1:
		//interface
			system ("cls");
			//perguntar quantos registos a introduzir
			cout << "\n"
				 << "\t Quantas pessoas quer introduzir?";
			cin >> size;
			//Introduzir registos

			for (i=0; i< size; i++)
			{
				//Adicionar Pessoas à base de Dados
				//Utilizador/Funcionario

				cout << "\n"
					 << "\t Deseja introduzir Funcionario (F) ou Utilizador(U)?";

				flush(cin);

				cin.getline (id.GetBuffer (2),2);
				flush (cin);
				GP.AddPessoa(id);
			}

			Pausa();	
			break;

		case 2: 

		//Interface
			system ("cls");

			cout << "\t Escreva o nome do Ficheiro:";
		cin >> NmFicheiro;

	ifile.open(NmFicheiro);//abrir ficheiro

	if(ifile.is_open())
	{
		GP.ReadFile(ifile);
		ifile.close();
	}
	else
		cout <<"ERRO: Não existe o ficheiro!\n";

			Pausa();
			break;

		case 3:
			//Interface
			system ("cls");

			GP.ShowPessoas();
			Pausa();
			break;

		case 4: 
			cout <<"Opção 4 - Adicionar um registo\n";
			Pausa();
			break;

		case 5: 
			cout <<"Opção 5 - Alterar um Registo de uma Pessoa\n";
			Pausa();
			break;

		case 6: 
	//		cout <<"Opção 6 - Pesquisar Registo\n";
			//Interface
			system ("cls");

			cout << "\t Escreva o nome da Pessoa:";

			cin >> size;

			for (i=1; i< size; i++)
			{


				flush(cin);

				cin.getline (id.GetBuffer (2),2);
				flush (cin);

	         GP.SearchPessoa(m_nome);


			}


			Pausa();
			break;



		case 7: 
			cout <<"Opção 7 - Remover Registo\n";
			Pausa();
			break;



		case 8:
			cout <<"Guardar base de dados\n";
			//Interface
			system ("cls");

			GP.SaveFile(SubMenuSave());
			Pausa();
			break;

		default:;
	}

} while(opcao !=9);

//colocar o switch, leva os argumentos que sao inteiros 

return (0);

}

int MenuPrincipal(void)
{
int opcao;
cout << endl;
cout<<"\t Menu:\n\n"
	<< "\t\t01 - Criar uma base de dados\n"
	<< "\t\t02 - Carregar uma base de dados\n"
	<< "\t\t03 - Listar  base de dados\n"
	<< "\t\t04 - Adicionar um registo\n"
	<< "\t\t05 - Alterar o registo de uma pessoa\n"
	<< "\t\t06 - Pesquisar registo\n"
	<< "\t\t07 - Remover Registo\n"
	<< "\t\t08 - Guardar base de dados\n\n"
	<< "\t\t09 - Sair\n\n";


cout << "         Opcao: "; cin >> opcao;

return (opcao);

}

int SubMenuSave(void)
{
int opcao;

//Interface gráfica

cout <<endl;
cout <<"\t Menu:\n\n"
	 <<"\t\t01- Todos\n"
	 <<"\t\t02- So Funcionarios\n"
	 <<"\t\t03- So Utilizadores\n"
	 <<"\n\t\t09-Sair\n\n";
cout <<"Opcao:";cin>>opcao;

return opcao;

}

void Pausa(void)
{
flush(cin);
cout << "Prima tecla ENTER!\n";
cin.get();
}

void flush(istream & is)
{
is.clear();
char nextChar;
while ( (nextChar = is.get ())!='\n'&& nextChar !=EOF){};
is.clear();
}

estou com problemas n caso 6......

Posted

Será que podias editar o teu Post e colocar isso sobre código?

Tens uma opção que diz inserir código numa ComboBox, escolhe C++ e mete lá esse pedaço de código porque assim está super impossível de ler isso lol!

Posted

Não sei como criar no main a opção 6(pesquisar) e a opção de remover......podem ajudar-me??

Espero que assim esteja mais claro...  ?

isto é omeu main:


#include "stdafx.h"
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
#include "../Classes/GestorPessoa.h"

//Declaração de Funções
int MenuPrincipal(void);
int SubMenuSave (void);
void Pausa (void);
void flush(istream & is);

int main(int argc, char* argv[]) 
{

//Declarações

   int opcao, i;
   CString id;
   char NmFicheiro[16];
   ifstream ifile;
   CString m_nome;

   //Base de dados
   GestorPessoa GP;
   int size =0;

   //Ciclo Principal
   do
   {
      system("cls");//para que possa desaparecer o menu depois de escolhermos um novo...
      //Menu Principal - 1º(mas a 1a funçao é o menuprincipal)
      opcao = MenuPrincipal();
      
      switch (opcao)
      {
         case 1:
         //interface
            system ("cls");
            //perguntar quantos registos a introduzir
            cout << "\n"
                << "\t Quantas pessoas quer introduzir?";
            cin >> size;
            //Introduzir registos

            for (i=0; i< size; i++)
            {
               //Adicionar Pessoas à base de Dados
               //Utilizador/Funcionario

               cout << "\n"
                   << "\t Deseja introduzir Funcionario (F) ou Utilizador(U)?";
               
               flush(cin);
      
               cin.getline (id.GetBuffer (2),2);
               flush (cin);
               GP.AddPessoa(id);
            }

            Pausa();   
            break;
         
         case 2: 

         //Interface
            system ("cls");

            cout << "\t Escreva o nome do Ficheiro:";
         cin >> NmFicheiro;

      ifile.open(NmFicheiro);//abrir ficheiro

      if(ifile.is_open())
      {
         GP.ReadFile(ifile);
         ifile.close();
      }
      else
         cout <<"ERRO: Não existe o ficheiro!\n";
            
            Pausa();
            break;

         case 3:
            //Interface
            system ("cls");
            
            GP.ShowPessoas();
            Pausa();
            break;
   
         case 4: 
            cout <<"Opção 4 - Adicionar um registo\n";
            Pausa();
            break;

         case 5: 
            cout <<"Opção 5 - Alterar um Registo de uma Pessoa\n";
            Pausa();
            break;

         case 6: 
      //      cout <<"Opção 6 - Pesquisar Registo\n";
            //Interface
            system ("cls");
         
            cout << "\t Escreva o nome da Pessoa:";
            
            cin >> size;

            for (i=1; i< size; i++)
            {
         
                              
               flush(cin);
      
               cin.getline (id.GetBuffer (2),2);
               flush (cin);
      
               GP.SearchPessoa(m_nome);


            }


            Pausa();
            break;


            
         case 7: 
            cout <<"Opção 7 - Remover Registo\n";
            Pausa();
            break;



         case 8:
            cout <<"Guardar base de dados\n";
            //Interface
            system ("cls");

            GP.SaveFile(SubMenuSave());
            Pausa();
            break;

         default:;
      }

   } while(opcao !=9);

   //colocar o switch, leva os argumentos que sao inteiros 

   return (0);

}

int MenuPrincipal(void)
{
   int opcao;
   cout << endl;
   cout<<"\t Menu:\n\n"
      << "\t\t01 - Criar uma base de dados\n"
      << "\t\t02 - Carregar uma base de dados\n"
      << "\t\t03 - Listar  base de dados\n"
      << "\t\t04 - Adicionar um registo\n"
      << "\t\t05 - Alterar o registo de uma pessoa\n"
      << "\t\t06 - Pesquisar registo\n"
      << "\t\t07 - Remover Registo\n"
      << "\t\t08 - Guardar base de dados\n\n"
      << "\t\t09 - Sair\n\n";

   
   cout << "         Opcao: "; cin >> opcao;

   return (opcao);

}

int SubMenuSave(void)
{
   int opcao;
   
   //Interface gráfica

   cout <<endl;
   cout <<"\t Menu:\n\n"
       <<"\t\t01- Todos\n"
       <<"\t\t02- So Funcionarios\n"
       <<"\t\t03- So Utilizadores\n"
       <<"\n\t\t09-Sair\n\n";
   cout <<"Opcao:";cin>>opcao;
   
   return opcao;

}

void Pausa(void)
{
   flush(cin);
   cout << "Prima tecla ENTER!\n";
   cin.get();
}

void flush(istream & is)
{
   is.clear();
   char nextChar;
   while ( (nextChar = is.get ())!='\n'&& nextChar !=EOF){};
   is.clear();
}

isto é o meu cpp:

// GestorPessoa.h: interface for the GestorPessoa class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GESTORPESSOA_H__23B301BC_6D22_4203_9FCF_70A6E759E54F__INCLUDED_)
#define AFX_GESTORPESSOA_H__23B301BC_6D22_4203_9FCF_70A6E759E54F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Pessoa.h"
#define N 100


class GestorPessoa  
{
private:
Pessoa *P[N];   //objecto que guarda a informação e apontador para definir um tipo - array
int size;//tamanho, porque queremos uma base de dados, para sabermos quantos registos temos


public:
Pessoa * GetPessoa(CString m_nome);
GestorPessoa();

virtual ~GestorPessoa();

void AddPessoa(CString id);

void ShowPessoas (void);

void SaveFile(int opcao);

void ReadFile(ifstream & ifile);

int SearchPessoa(CString m_nome);

bool RemovePessoa(CString m_nome);

};

#endif // !defined(AFX_GESTORPESSOA_H__23B301BC_6D22_4203_9FCF_70A6E759E54F__INCLUDED_)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.