编写一个关于java/problems的基本租车程序

编写一个关于java/problems的基本租车程序,java,loops,if-statement,summary,sentinel,Java,Loops,If Statement,Summary,Sentinel,所以我非常困惑,只是想寻求帮助:L。这就是我的导师的指导 说明: 使用sentinel值循环 向每个用户询问: 车辆类型(可能使用字符串以外的其他内容,例如:1 经济型2辆,轿车2辆等) 租用天数 计算(每个客户的)成本: 租金 税收 应付总额 有三种不同的租金选择,分别为31.76美元的经济型、40.32美元的轿车和47.56美元的SUV。[注:仅考虑全天单位(无小时费率)] 销售税=总额的6% 使用以下内容创建摘要数据: 顾客人数 收集的总金额 此外,还包括IPO、算法和桌面检查

所以我非常困惑,只是想寻求帮助:L。这就是我的导师的指导

说明: 使用sentinel值循环

向每个用户询问:

  • 车辆类型(可能使用字符串以外的其他内容,例如:1 经济型2辆,轿车2辆等)
  • 租用天数
计算(每个客户的)成本:

  • 租金
  • 税收
  • 应付总额
有三种不同的租金选择,分别为31.76美元的经济型、40.32美元的轿车和47.56美元的SUV。[注:仅考虑全天单位(无小时费率)]

销售税=总额的6%

使用以下内容创建摘要数据:

  • 顾客人数
  • 收集的总金额
此外,还包括IPO、算法和桌面检查值(设计文档)

{我要做什么和我的问题}

package yipe;

public class Umm {

    import java.util.*;

    int count = 0;
    static int CarType, days;
    static double DailyFee, Total;


    public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);

        System.out.print("What vehical would you like to rent?\n");
        System.out.println("Enter 1 for an economy car\n");
        System.out.println("Enter 2 for a sedan car\n");
        System.out.println("Enter 3 for an SUV");
        CarType = keyboard.nextInt();
        if (CarType == '1')
              DailyFee=(int)31.76;
            else if(CarType == '2')
              DailyFee=(int)40.32;
            else if(CarType == '3')
              DailyFee=(int)43.50;

        System.out.print("Please enter the number of days rented. (Example; 3) : ");
        days = keyboard.nextInt();

        Total = (DailyFee * days * 6/100);

        System.out.printf("The total amount due is $" + Total);

    }


}
  • 如何修复IF语句以获得正确的数学结果
  • 我怎样才能循环输入多个信息
  • 如何制作汇总数据
  • 我怎样才能把总数四舍五入到只有两位小数

  • 请注意,
    '1'
    实际上是字符
    1
    不是整数
    1
    。他们其实很不一样

    在Java(以及C#)中,
    int
    char
    类型可以相互转换

    为了举例说明,下面实际打印了49个:

    public class HelloWorld
    {
      public static void main(String[] args)
      {
        System.out.print((int)'1');
      }
    }
    
    类似地,以下打印
    true

    System.out.println('1' == 49);
    
    如您所见,该字符被隐式转换为等效的
    int

    要理解为什么
    '1'
    特别等于49,请查看字符的表示方式。特别是,看一下(这是字符编码的一个常见约定)-结果是字符
    '1'
    是ASCII 49。实际上,我们可以做与上面相同的事情“反向”将ASCII 49“转换”为其等效字符,下面的行打印
    1

    System.out.println((char)49);
    
    要了解这种转换是如何工作的,您可能需要阅读。如果您对C#中的工作原理感到好奇,您可能还想阅读

    还有一点:当您执行
    DailyFee=(int)31.76
    时,将其转换为
    int
    实际上会“删除”小数点后的所有内容,因此这与编写
    DailyFee=31
    没有什么不同。这是因为31是一个整数,而31.76不是(它是一个有理数)


    一个次要的风格点:你可以考虑使用<代码>开关<代码>语句。

    =1,=2。Not==“1”。CarType是一个int,您试图将其与chars“1”等进行比较。。。删除“谢谢你,我非常感谢你的帮助,我这么做了,但是,我的数学公式在试图计算租用天数(*)加(+)时似乎仍然不正确这是6%。回答完问题后,请不要删掉这些问题,这样对将来有类似问题的读者来说才有意义。@EJoshuaS,但没有完全回答。我们试图澄清接下来的两个问题?Re“在Java[…]中,
    int
    char
    类型可以相互转换。”我认为必须提到以下两个问题之间的重要区别: