naodinha Posted May 29, 2009 at 07:13 PM Report #268423 Posted May 29, 2009 at 07:13 PM 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...
Ferreira Posted May 29, 2009 at 07:24 PM Report #268429 Posted May 29, 2009 at 07:24 PM Esse main devia estar dentro de uma função. http://twitter.com/ferreira
naodinha Posted May 29, 2009 at 07:46 PM Author Report #268441 Posted May 29, 2009 at 07:46 PM 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......
RVicente Posted May 29, 2009 at 09:39 PM Report #268458 Posted May 29, 2009 at 09:39 PM 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!
naodinha Posted May 29, 2009 at 10:41 PM Author Report #268479 Posted May 29, 2009 at 10:41 PM 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_)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now