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

我不明白为什么我的计算不起作用

我不明白为什么我的计算不起作用

DIEA 2021-10-13 10:45:52
我对编程很陌生。这是 carHire 类。两者之一。我需要开发一个基于 GUI 的租车应用程序。所以当我输入时,似乎一切正常,但我的租金仍然是0。我想不通。`公共类租车{    private String customerName;    private String licenseNumber;    private int daysHired;        CarHire(){            customerName=null;            licenseNumber=null;            daysHired=0;            }        CarHire(String customerName, String licenseNumber, int daysHired){            this.customerName = customerName;            this.licenseNumber = licenseNumber;            this.daysHired = daysHired;            }            public void setCustomerName(String customerName){                this.customerName = customerName;            }            public void setLicenseNumber(String licenseNumber){                this.licenseNumber = licenseNumber;            }            public void setDaysHired(int daysHired){                this.daysHired = daysHired;            }            public String getCustomerName()            {                return customerName;            }            public String getLicenseNumber()            {                return licenseNumber;            }            public int getDaysHired()            {                return daysHired;            }    public double calculateHireRental(){        final double BASE_RATE = 34.5;    final double NEXT_TIER_RATE = 30.5;    final double LAST_TIER_RATE = 22.5;    final int NEXT_TIER_START_DAY=4;    final int LAST_TIER_START_DAY=7;    double rental= 0.0;        int days = 0;    if(days<NEXT_TIER_START_DAY){               rental=days*BASE_RATE;     }         else if(days<=LAST_TIER_START_DAY){            rental=3*BASE_RATE+(days-3)*NEXT_TIER_RATE;        }        else{    rental=3*BASE_RATE+4*NEXT_TIER_RATE+(days-7)*LAST_TIER_RATE;        }        return rental;    }}`以下是GUI类。
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

在您提供的代码中:在您的 GUI 中,您将结果分配给“daysHired”变量

        int daysHired = Integer.parseInt(daysField.getText());

但是在您的 CarHire 课程中,变量 days 已经预定义为 0:

int days = 0;

所以无论你乘以“天”(乘以 0) - 你总是会得到 0:

 rental=days*BASE_RATE;


查看完整回答
反对 回复 2021-10-13
?
www说

TA贡献1775条经验 获得超8个赞

public double calculateHireRental(){

    final double BASE_RATE = 34.5;

final double NEXT_TIER_RATE = 30.5;

final double LAST_TIER_RATE = 22.5;


final int NEXT_TIER_START_DAY=4;

final int LAST_TIER_START_DAY=7;


double rental= 0.0;


/*Delete the "int days = 0;" variable and use the class member "daysHired" instead*/


if(daysHired<NEXT_TIER_START_DAY){   

        rental=daysHired*BASE_RATE;

 } 

    else if(daysHired<=LAST_TIER_START_DAY){

        rental=3*BASE_RATE+(daysHired-3)*NEXT_TIER_RATE;

    }

    else{

rental=3*BASE_RATE+4*NEXT_TIER_RATE+(daysHired-7)*LAST_TIER_RATE;

    }

    return rental;

}

尝试这个...


查看完整回答
反对 回复 2021-10-13
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

calculateHireRental()你有int days = 0;,所以第一个if是真的,你返回days * BASE_RATE哪个是0

删除days变量并改用类成员daysHired


查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 127 浏览

添加回答

举报

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