Jump to content

Ajuda - leitura de ArrayList()


hardcore
 Share

Recommended Posts

Ora bem! Neste meu primeiro post queria pedir a vossa ajuda para o seguinte caso  ?:

Vou só inserir as partes do código importantes para a resolução do meu problema:

Classe Jogador:

namespace Projecto
{
    [serializable]
    class Jogador
    {
        private string nome;
        private double salario;
        private int[] golos = new int[34];

        /*construtor da classe Jogador*/
        public Jogador(string nom)
        {
            nome = nom;
        }

        public Jogador(string nom, double sal)
        {
            nome = nom;
            salario = sal;
        }

        /*MÉTODOS DE SAÍDA*/
        /*devolve o valor de nome*/
        public string getNome()
        {
            return nome;
        }

        /*devolve o valor de salário*/
        public double getSal()          
        {
            return salario;
        }

        /*devolve a representação textual das instâncias de jogador*/
        public override string ToString()
        {
            return ("O jogador " +nome+ " tem um salário de " +salario+ " Euros");
        }

        public Jogador()
        {
        }
    }
}

Classe Equipa:

namespace Projecto
{
    [serializable]
    class Equipa : ICloneable
    {
        private string nome;
        private ArrayList jogadores;

        /*construtor que recebe, como parâmetro, apenas o nome da Equipa*/
        public Equipa (string n) 
        {
            nome = n;
            jogadores = new ArrayList();
        }

        /*METODOS DE SAIDA*/
        /*devolve o nome da equipa*/
        public string getNome() 
        {
            return nome;
        }

        public Equipa()
        {
        }
    }
}

Classe Main

Console.WriteLine("Insira a equipa: ");
string NomeEs = Console.ReadLine();
Console.WriteLine("Introduza o nome do jogador: ");
string NomeJogS = Console.ReadLine();
                      

Equipa equiAux2 = new Equipa();
Jogador jogAux = new Jogador();

foreach (Equipa eq in equipa)
{
         if (eq.getNome() == NomeEs)
         {
               foreach (Jogador jg in jogador)
               {
                     if (jg.getNome() == NomeJogS)
                     {
                           jogAux = jg;
                                                 
                      }
          }
          Jogador jog2 = new Jogador(NomeJogS);
          Console.WriteLine(jog2.ToString());
                               
      }
}

Ora bem, o que se passa é o seguinte... O programa é constituído por uma série de  cases num deles é introduzido o nome da equipa e noutro é introduzido o nome do jogador de uma determinada equipa e o salário. Quando executo esta opção que postei (que serve para procurar o salário de um determinado jogador de uma determinada equipa) o resultado é sempre 0. Alguém consegue explicar-me onde eu tenho o erro?

Cumprimentos.

1 Abraço

*Edit*

Desculpem lá. Devia ter postado da secção de "Dúvidas e Ajudas" um moderador que mude para lá sff.

Link to comment
Share on other sites

se reparares aqui:

foreach (Jogador jg in jogador)

{

      if (jg.getNome() == NomeJogS)

          {

            jogAux = jg;                                               

          }

}

o jogAux vai receber todos os valores mas só fica com o ultimo pois estes foram substituindo os anteriores.

agora se era na realidade isso que querias fazer, peço desculpa

se não ajuda o que eu disse explica melhor o teu codigo com comentários ( \\ ).

apenas este é necessário(a principio):

Console.WriteLine("Insira a equipa: ");
string NomeEs = Console.ReadLine();
Console.WriteLine("Introduza o nome do jogador: ");
string NomeJogS = Console.ReadLine();
                      

Equipa equiAux2 = new Equipa();
Jogador jogAux = new Jogador();

foreach (Equipa eq in equipa)
{
         if (eq.getNome() == NomeEs)
         {
               foreach (Jogador jg in jogador)
               {
                     if (jg.getNome() == NomeJogS)
                     {
                           jogAux = jg;
                                                 
                      }
          }
          Jogador jog2 = new Jogador(NomeJogS);
          Console.WriteLine(jog2.ToString());
                               
      }
}

o querias dizer era classes e não cases

#EDITADO#

ja tens isto desde 27 de Maio de 2007? ja deves ter solução para isto suponho...

Link to comment
Share on other sites

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
 Share

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