在 java / 问题上编写一个基本的汽车租赁程序
Write a Basic Car rental program on java / problems
所以我非常困惑,只是在寻求帮助:L。这就是我导师的指示。
说明:
使用标记值循环。
向每个用户询问:
- 车辆类型(可以使用字符串以外的其他内容,例如:1
经济型,轿车 2 等)
- 租用天数
计算(对于每个客户):
- 租金,
- 税收,
- 到期总计。
三种不同的租赁选择,价格不同:经济型 @ 31.76,轿车 @ 40.32,SUV @ 47.56。 [注意:仅考虑全天单位(无小时费率)]。
销售税为总额的 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,请查看字符的表示方式。特别是,查看 ASCII chart(这是字符编码的通用约定)——原来字符 '1'
是 ASCII 49。实际上,我们可以做与上面相同的事情 "in reverse" 到 "convert" ASCII 49 到它的等效字符,下面的行打印 1
:
System.out.println((char)49);
要了解这种转换的工作原理,您可能需要阅读 this rather excellent article linked to in the comments. If you're curious about how this works in C#, you may also want to read this question。
还有一点:当你做 DailyFee=(int)31.76
时,将其转换为 int
实际上会 "drop" 小数点后的所有内容,所以这与编写 [=25] 没有什么不同=].这是因为 31 是一个整数,而 31.76 是 而不是 (它是一个有理数)。
风格上的一个小问题:您可以考虑在此处使用 switch
语句。
所以我非常困惑,只是在寻求帮助:L。这就是我导师的指示。
说明: 使用标记值循环。
向每个用户询问:
- 车辆类型(可以使用字符串以外的其他内容,例如:1 经济型,轿车 2 等)
- 租用天数
计算(对于每个客户):
- 租金,
- 税收,
- 到期总计。
三种不同的租赁选择,价格不同:经济型 @ 31.76,轿车 @ 40.32,SUV @ 47.56。 [注意:仅考虑全天单位(无小时费率)]。
销售税为总额的 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,请查看字符的表示方式。特别是,查看 ASCII chart(这是字符编码的通用约定)——原来字符 '1'
是 ASCII 49。实际上,我们可以做与上面相同的事情 "in reverse" 到 "convert" ASCII 49 到它的等效字符,下面的行打印 1
:
System.out.println((char)49);
要了解这种转换的工作原理,您可能需要阅读 this rather excellent article linked to in the comments. If you're curious about how this works in C#, you may also want to read this question。
还有一点:当你做 DailyFee=(int)31.76
时,将其转换为 int
实际上会 "drop" 小数点后的所有内容,所以这与编写 [=25] 没有什么不同=].这是因为 31 是一个整数,而 31.76 是 而不是 (它是一个有理数)。
风格上的一个小问题:您可以考虑在此处使用 switch
语句。