Lecture des fichiers de données

Tristan Remus:

Je suis en train d'écrire un programme dans ma classe AP java et je suis très confus. Le programme est censé lire un fichier de données à l'aide d'un autre programme appelé EasyReader. Le programme se compose d'une classe d'objets qui trouve le plus grand nombre, le nombre moyen, et le plus petit nombre. La classe de test est censé lire le fichier de données (numbers.bat) qui donne un ensemble de nombres et le programme est censé imprimer le plus grand, moyen, et le plus petit de toutes les lignes du fichier de données. Cependant, il est en train de lire une seule ligne du fichier de données (celle du milieu) au lieu de trois. Il affiche

Largest = 7.3 Medium = 5 Smallest = 3.2

aide s'il vous plaît. Je vous remercie!

Voici la classe de l'objet:

public class Numbers 
{

    double small;
    double medium;
    double large;

    public Numbers(double A, double B, double C)
    {

      if(A>=B && A>=C)
      {
        large = A;


        if(B>=C && B<=A)
        {
          medium = B;

          small = C;
        }
        else
        {
          medium = C;
          small = B;
        }

      } 
      else if(B>=A && B>=C)
      {
          large = B;


            if(A>=C && A<=B)
            {
              medium = A;

              small = C;
            }
            else
            {
              medium = C;
              small = A;
            }


      } 

      else 
      {
          large = C;


            if(A>=B && A<=C)
            {
              medium = A;

              small = B;
            }
            else
            {
              medium = B;
              small = A;
            }

      }

    }



        public double large()
        {
            return large;

        }
        public double medium()
        {
            return medium;

        }
        public double small()
        {
            return small;

        }
    }   

Voici la classe de test:

public class NumbersTest 
{

    public static void main(String[] args) 
    {

        EasyReader file = new EasyReader("numbers.dat");
        double value1 = file.readDouble();
        double value2 = file.readDouble();
        double value3 = file.readDouble();


        value1 = file.readDouble();
        value2 = file.readDouble();
        value3 = file.readDouble();




         Numbers nums = new Numbers(value1, value2, value3);

         System.out.println("Largest = " + nums.large()  + " Medium = " + nums.medium() + " Smallest = " + nums.small());
    }


}

Et enfin le fichier de données (numbers.bat)

4 9 2.5
3.2 5 7.3
12 8.2 9.1 

La sortie en ce moment:

Largest = 7.3 Medium = 5.0 Smallest = 3.2

Le résultat attendu:

Largest = 12.0 Medium = 7.3 Smallest = 2.5
Linus Gudmundsson:

Vos numéros constructeur ne fait rien si votre valeur1 (A) est supérieure ou égale à deux autres. Dans le cas contraire, il laissera les petites, moyennes et grandes à 0.

Edit: Élargir la réponse ici car il semble plus propre. Donc, dans votre constructeur numéro

public Numbers(double A, double B, double C)
{



            if(A>=B && A>=C)
            {
                large = A;


            if(B>=C && B<=A)
            {
                medium = B;

                small = C;
            }
            else
            {
                medium = C;
                small = B;
            }

        }

    }

Vous avez seulement un principal si la vérification des états si A est le plus important, et le reste sont imbriqués en elle. Vous aurez également besoin d'une instruction if pour si B ou C sont les plus grandes.

public Numbers(double A, double B, double C)
{

  if(A>=B && A>=C)
  {
    large = A;


    if(B>=C && B<=A)
    {
      medium = B;

      small = C;
    }
    else
    {
      medium = C;
      small = B;
    }

  } else if if(B>=A && B>=C)
  {
    //B is the largest, add code to determine medium and small as you did before
  } else {
    //C is the largest, add code to determine medium and small as you did before
  }

}

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=330613&siteId=1
conseillé
Classement