为了账号安全,请及时绑定邮箱和手机立即绑定

读取数据文件

读取数据文件

慕神8447489 2024-01-17 17:09:50
我正在我的 AP java 课上编写一个程序,我很困惑。该程序应该使用另一个名为 EasyReader 的程序读取数据文件。该程序由一个对象类组成,用于查找最大数、中等数和最小数。Test 类应该读取给出一组数字的数据文件 (numbers.bat),并且该程序应该打印数据文件所有行中的最大、中和最小行。但是,它只读取数据文件的一行(中间一行)而不是全部三行。它正在显示Largest = 7.3 Medium = 5 Smallest = 3.2请帮忙。谢谢你!这是对象类: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;        }    }   最后是数据文件(numbers.bat)4 9 2.5 3.2 5 7.3 12 8.2 9.1现在的输出:Largest = 7.3 Medium = 5.0 Smallest = 3.2预期输出:Largest = 12.0 Medium = 7.3 Smallest = 2.5
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

仅当您的 value1 (A) 大于或等于其他两个时,您的数字构造函数才会执行任何操作。如果不是,则会将小、中和大保留为 0。


编辑:在这里扩展答案,因为它看起来更干净。所以在你的数字构造函数中


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;

            }


        }


    }

只有一个主 if 语句检查 A 是否最大,其余的都嵌套在其中。您还需要一个 if 语句来判断 B 或 C 是否最大。


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

  }


}


查看完整回答
反对 回复 2024-01-17
  • 1 回答
  • 0 关注
  • 37 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信