Java 显示更改需求信息
我需要编写一个java程序来计算销售交易中的账单和零钱 它只能分发20、10、5、1、25美分、10美分、5美分和1美分 如果它不需要分配面额(比如说你的零钱是50美分,它应该只分配两个25美分,不应该提及其他货币) 我无法让它分配正确数量的货币,它只分配所有货币(例如,如果它是21美元,我给出纳员22美元,代码告诉我给.013美元20秒,.294美元10秒,等等) 如果有人能帮我,那就太好了Java 显示更改需求信息,java,Java,我需要编写一个java程序来计算销售交易中的账单和零钱 它只能分发20、10、5、1、25美分、10美分、5美分和1美分 如果它不需要分配面额(比如说你的零钱是50美分,它应该只分配两个25美分,不应该提及其他货币) 我无法让它分配正确数量的货币,它只分配所有货币(例如,如果它是21美元,我给出纳员22美元,代码告诉我给.013美元20秒,.294美元10秒,等等) 如果有人能帮我,那就太好了 double price; // declares how much the price is do
double price; // declares how much the price is
double moneyGiven; // declares how much money the cashier is given
int change; // declares how much change is given in return
System.out.println("Enter the Price of the item:");
price = IO.readDouble()*100;
{
{
System.out.println("Enter the Amount Given:");
moneyGiven = IO.readDouble()*100;
{
if (moneyGiven > price)
System.out.println("Your Change is:");
change = moneyGiven - price;
int twenties = change / 2000;
if (twenties >= 1) {
change = change % 2000;
System.out.println(twenties + "$20 Bills");
}
int tens = change / 1000;
if (tens >= 1) {
change = change % 1000;
System.out.println(tens + "$10 Bills");
}
int fives = change / 500;
if (fives >= 1) {
change = change % 500;
System.out.println(fives + "$5 Bills");
}
int ones = change / 100;
if (ones >= 1) {
change = change % 100;
System.out.println(ones + "$1 Bills");
}
int quarters = change / 25;
if (quarters >= 1) {
change = change % 25;
System.out.println(quarters + "Quarters");
}
int dimes = change / 10;
if (dimes >= 1) {
change = change % 10;
System.out.println(dimes + "Dimes");
}
int nickles = change / 5;
if (nickles >= 1) {
change = change % 5;
System.out.println(nickles + "Nickles");
}
int pennies = change / 1;
if (pennies >= 1) {
change = change % 1;
System.out.println(pennies + "Pennies");
}
if (moneyGiven <= price)
System.out.println("Not enough!");
if (moneyGiven == price)
System.out.println("There is no Change to be given.");
}
}
}
}
}
双倍价格;//声明价格是多少
给双倍的钱;//声明出纳收到的金额
int change;//声明将给出多少更改作为回报
System.out.println(“输入项目价格:”);
价格=IO.readDouble()*100;
{
{
System.out.println(“输入给定的金额:”);
moneyGiven=IO.readDouble()*100;
{
如果(给定的金额>价格)
System.out.println(“您的更改是:”);
变化=给定的货币-价格;
国际二十年代=变化/2000年;
如果(二十岁>=1){
更改=更改%2000;
系统输出打印项次(20美元+20美元票据);
}
int tens=变化/1000;
如果(十个>=1){
更改=更改%1000;
System.out.println(十位数+十美元钞票);
}
int fives=变化/500;
如果(五个>=1){
更改=更改%500;
系统输出打印项次(五美元+五美元);
}
整数=变化/100;
如果(个数>=1){
更改=更改%100;
系统输出打印项次(个数+1美元票据);
}
国际季度=变化/25;
如果(四分之一>=1){
更改=更改%25;
系统输出打印项次(季度+季度);
}
int dimes=变化/10;
如果(一角硬币>=1){
更改=更改%10;
系统输出打印项次(一角+一角);
}
int nickles=变化/5;
如果(刻痕>=1){
更改=更改%5;
系统输出打印LN(刻痕+“刻痕”);
}
整便士=零钱/1;
如果(便士>=1){
更改=更改%1;
系统输出打印项数(便士+便士);
}
如果(moneyGiven这里有一些错误:
在if
语句后面有分号。这意味着以下大括号中的代码总是被执行
您似乎要检查从5开始余数是否大于0,而不是1
每个面额的输出都是除法的结果,可能是小数。您需要输出此面额的下限
我相信我找到了答案,但它返回的答案是十进制答案,即1.0,5.0。如果没有.0,我如何让它返回答案?
但是,我希望对我的代码进行任何输入:
double price; // declares how much the price is
double moneyGiven; // declares how much money the cashier is given
double change; // declares how much change is given in return
System.out.println("Enter the Price of the item:");
price = IO.readDouble()*100; {
{
System.out.println("Enter the Amount Given:");
moneyGiven = IO.readDouble()*100; {
if (moneyGiven > price)
System.out.println("Your Change is:");
change = moneyGiven - price;
double twenties = change / 2000;
if (twenties >= 1) {
change = change % 2000;
System.out.println(Math.floor(twenties) + "$20 Bills"); }
double tens = change / 1000;
if (tens >= 1) {
change = change % 1000;
System.out.println(Math.floor(tens) + "$10 Bills"); }
double fives = change / 500;
if (fives >= 1) {
change = change % 500;
System.out.println(Math.floor(fives) + "$5 Bills"); }
double ones = change / 100;
if (ones >= 1) {
change = change % 100;
System.out.println(Math.floor(ones) + "$1 Bills"); }
double quarters = change / 25;
if (quarters >= 1) {
change = change % 25;
System.out.println(Math.floor(quarters) + "Quarters"); }
double dimes = change / 10;
if (dimes >= 1) {
change = change % 10;
System.out.println(Math.floor(dimes) + "Dimes"); }
double nickles = change / 5;
if (nickles >= 1) {
change = change % 5;
System.out.println(Math.floor(nickles) + "Nickles"); }
double pennies = change / 1;
if (pennies >= 1) {
change = change % 1;
System.out.println(Math.floor(pennies) + "Pennies"); }
if (moneyGiven <= price)
System.out.println("Not enough!");
if (moneyGiven == price)
System.out.println("There is no Change to be given.");
}
}
}
}
}
double price;//声明价格是多少
double moneyGiven;//声明给出纳员多少钱
double change;//声明作为回报所做的更改量
System.out.println(“输入项目价格:”);
价格=IO.readDouble()*100{
{
System.out.println(“输入给定的金额:”);
moneyGiven=IO.readDouble()*100{
如果(给定的金额>价格)
System.out.println(“您的更改是:”);
变化=给定的货币-价格;
双倍20=变动/2000;
如果(二十岁>=1){
更改=更改%2000;
System.out.println(数学地板(二十年代)+“20美元钞票”);)
双十=变化/1000;
如果(十个>=1){
更改=更改%1000;
System.out.println(数学地板(十位数)+“10美元钞票”);}
双五=零钱/500;
如果(五个>=1){
更改=更改%500;
System.out.println(数学地板(五个)+“$5钞票”);}
双1=变化/100;
如果(个数>=1){
更改=更改%100;
System.out.println(数学地板(个)+“$1账单”);}
双季度=变化/25;
如果(四分之一>=1){
更改=更改%25;
System.out.println(数学楼层(四分之一)+“四分之一”);}
双倍硬币=零钱/10;
如果(一角硬币>=1){
更改=更改%10;
System.out.println(数学地板(十美分)+“十美分”);}
双刻痕=变化/5;
如果(刻痕>=1){
更改=更改%5;
System.out.println(数学地板(刻痕)+“刻痕”);}
双便士=零钱/1;
如果(便士>=1){
更改=更改%1;
System.out.println(数学地板(便士)+“便士”);}
如果(moneyGiven请为您的示例添加准确的输入和结果。如果价格为$21,那么最终在价格中的值是多少?
?此处有许多可能的失败点,我们需要更多信息。下面是一个返回示例:输入项目的价格:21.32输入给定的金额:22您的更改为:0.136$5账单0.681美元钞票2.72季度1.8美分1.6镍币3.0便士有很多问题。您是否使用了正确的IDE?如果没有,您需要一个。自动括号对齐将有助于查看范围。例如,您有If(moneyGiven price)
。由于所有If();
语句(分号),因此它按书面形式执行,但修复后将永远不会执行。使用当前代码更新:我的编辑--我查看了一个建议的编辑,只修复了缩进--代码和语法仍然存在问题。好的,我删除了分号,但是,当我输入的值小于所需量时,它不会返回“不够”,与statme相同我不知道你所说的数字2是什么意思。其余的是什么意思