• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

naodinha

Ajuda na criação de um main de Classe

5 mensagens neste tópico

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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_)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora