1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Explicações C++

Discussão em 'Programação' iniciada por alexnuno, 23 de Janeiro de 2008. (Respostas: 13; Visualizações: 1745)

  1. viva,

    tenho que fazer um trabalho em c++,(19 de fevereiro data limite) e estou a atravessar enumeras dificuldades, admito que faltam bases, muitas mesmo, faço pesquisas na net mas grande parte das vezes não consigo decifrar a informação que encontro, já li e re-li tutoriais ... para perceber uma coisa demoro muito tempo, e depois muitas vezes até penso: Isto até era simples, porque não dheguei lá mais cedo !!!

    o tempo vai pansado e demoro dias para fazer muito pouco.

    tenho que mudar de estratégia , tenho que pedir ajuda, dai escrever este texto.

    nos meus já vários anos de estudante, achei que nunca seria necessário recorrer a explicações, acreditava que era tudo uma questão de empenho, desta vez desisto e claro está a questão é a seguinte:

    Haverá alguém que possa ou que conheça alguém que me possa dar explicações em C++?

    Coimbra
     
  2. Baderous

    Baderous Banido

    Não seria mais fácil ires colocando aqui as tuas dúvidas?
     
  3. olá,

    posso também entrar por ai, a questão é que é tudo muito incerto posso ou não obter ajuda.... é um risco!

    mas não há nada como tentar, também é verdade!
     
  4. Baderous

    Baderous Banido

    Há muita gente neste fórum que domina C++, por isso não perdes nada.
     
  5. sim vou tentar, há uns dias que ando nisto e não está mesmo a andar para a frente, a este ritmo não chego a lado nenhum preciso mesmo de ajuda!

    obrigado pelo conselho.

    string Admin::Create_Regente()
    {
    string nome,login;
    char response;



    cout << "Deseja criar Regente ? (Y/N)" << endl;
    cin >> response;

    if ((toupper(response) == 'Y'))
    {
    cout << "Nome:" << endl; // o id será lhe atribuido de um modo dinâmico
    cin >> nome;
    cout << "Login:" << endl;
    cin >> login;

    ifstream in_file("c:\\Regente.txt",ios::in|ios::out);
    if (!in_file)
    {
    cout << "\nERROR: File could not be opened.";
    exit(1);
    }
    else if
    {
    while(!in_file)
    {
    in_file.read((char*)&reg,sizeof(Regente);
    }
    }


    ....

    então cá vou começar a expor as minhas limitações:

    a ideia do código acima é :

    tenho a classe a Admin que tem o metodo create_regente, pertendo criar um objecto regente (uma instância da classe regente) com um nome com um login entre outras coisas, e depois quero gravar tudo para ficheiro, mas não quero logins repetidos, então cria ir ao ficheiro ver se já existia, para garantir que não haja logins repetidos...

    Assim para só para começar era isto !!!

    Obrigado
     
    Última edição pelo moderador: 23 de Janeiro de 2008
  6. espero não ser mal interpretado, mas dado o meu desespero, pergunto:

    já falei em cima se haveria alguém que desse explicações em c++. Vou também apostar em por as minha duvidas aqui neste forum pode ser alguém me ajude, assim o espero, e agora pergunto se alguém conhece mais foruns de programação (bons) onde eu possa encontrar um outro público alvo no sentido de obter a tão desejada ajuda.

    espero que não levem a mal, não é nada de pessoal contra este forum em questão, nem muito menos para com os users que por aqui passam, é só mesmo... pela minha causa.

    obrigado

    encontrei, o penso ser, arquivos deste mesmo forum, posts antigos, a falarem de um dev shed forum, lá davam boas referências, é um forum, talvez inglês !!!
    entretanto já pedi ajuda internacional :)

    espero que não levem a mal estas minhas acções impulsivas.

    obrigado
     
    Última edição pelo moderador: 24 de Janeiro de 2008
  7. OubeLa

    OubeLa Power Member

    Como é que está organizado o ficheiro?

    Percorres o ficheiro até ao fim

    while (!ficheiro.eof())

    Guardas a informação para strings (por exemplo, usando getline) e depois comparas.
     
  8. mj2p

    mj2p I'm Cool Cuz I Fold

    Oi. Quantos a tirar dúvidas aqui no forum, conta comigo para aquilo que puder.

    Se bem precebi, queres criar uma instancia da classe, através de um método da própria classe, certo? Ou queres, por exemplo, inserir um novo registo dentro da classe?

    Quando eu tenho de fazer algum tipo de programa para gestões deste tipo, uso sempre ou listas ligadas ou um array de apontadores da classe, mas até mais listas.

    O que pretendes fazer exactamente? Esclarece-me para eu te poder ajudar.

    Vá, cumps
     
  9. o ficheiro .... estava a pretender cria-lo agora...

    o ficheiro não tinha de inicio ... e depois é que se ia inserindo os valores não tenho o ficheiro organizado de maneira nenhuma!!

    devia?


    viva,

    o que pretendo e criar uma instancia da classe regente através de um método não da própria classe mas sim de um metodo de uma outra classe, a classe administrador.

    e sim queria usar lista ligadas.


    e depois há aquela história de não ter login repetidos, p.e, no ficheiro que guarda a instâncias da classe regente. é um projecto para contabilizar a presença de alunos nas aulas. quem cria o Regente e o Docente é o administrador.

    será perceptível?
     
    Última edição pelo moderador: 24 de Janeiro de 2008
  10. mj2p

    mj2p I'm Cool Cuz I Fold

    Bem, para não teres logins repetidos, aquilo que eu faria seria passar, no inicio do programa, todos os dados do ficheiro para a lista ligada. Depois, quando quisesses inserir um novo login, utilizando métodos da própria lista (no método inserir é possível verificar se um determinado dado já se encontra presente na lista). Se não se encontrar nenhum, então inseria o novo registo na lista e depois no ficheiro.

    Vá, cumps
     
  11. Isso não seria mau!?

    ao a passar tudo do ficheiro para memória e depois verificar na lista, em aplicações de maior dimensão, não se iria estar a sobrecarregar excessivamente a memória?

    a ideia que tenho é que vou ter que abrir o ficheiro e comparar aquilo que não quero que se repita com todo o que está lá dentro.... a mellhor maneira de o fazer é que ainda não cheguei lá !!!

    outra questão, uma função que não faça parte de nenhuma classe, p.e. estou a pensar neste projecto que as passwords sejam geradas automaticamente, devo criar para ai uma função CreatePass() p.e mas não estou a ver que tenha que fazer parte de nenhuma classe em concreto, ou é obrigatório fazer ? será que isto tem a ver com as funções friend ?

    se não for obrigatório e não tiver a ver com funções friend, onde a hei-de declarar no main, no ficheiro cpp da classe, no ficheiro header da classe, já tentei de várias maneiras mas dá -me erro ao compilar ... que estarei a fazer mal ?

    cumps
     
    Última edição: 25 de Janeiro de 2008
  12. mj2p

    mj2p I'm Cool Cuz I Fold

    Quanto às sobrecargas que referis-te, não grande problema quanto a isso. A maior parte das coisas são alojadas dinamicamente e depois destruidas. E penso que este será a melhor maneira de fazeres isso em C++.

    Quanto à tua função de criar as passwords, pelo que percebi, tens três classes diferentes, certo? O Regente, o administrador, e mais não sei quem (:007:). Podias poder a tua função dentro de uma destas classes e depois usares poliformismo. Se não estiveres tão familiarizado com o poliformismo, também não será nenhum pecado grave se puseres em cada classe uma nova função para criar as passwords.

    Quanto a meteres a tua função no módulo onde está a função main(), é possível, desde que cries a instancia da classe antes de main(), ou então como um objecto estático.

    Vá, cumps
     
  13. Tyran

    Tyran Power Member

    Depende, se forem mesmo muitos logins mesmo será melhor andar pelo ficheiro a ver se repete, caso contrário o idela será carregar para a memória sim e depois libertas porque se torna mais rápido o acesso neste caso...

    cumpzz
     

  14. olá,

    vou tentar usar o polimorfismo.

    obrigado

    vou optar por andar pelo ficheiro a ver se se repetem ....

    cumps
     
    Última edição pelo moderador: 29 de Janeiro de 2008

Partilhar esta Página