【发布时间】:2015-11-13 11:27:25
【问题描述】:
我这周刚开始上 Java 课程,我们的第一个项目将于周日到期,但我遇到了一些麻烦。该项目的基本要点是,我们必须创建一个程序来计算购买后返还的零钱,并告诉用户有多少 25 美分硬币和五分硬币构成了该零钱。
问题是老师希望输入的形式是“pay:cost”,这不适合任何原始类型。所以他建议使用字符串和子字符串将“支付”和“成本”与冒号分开,但我不知道该怎么做。 “支付”和“成本”也必须是特定范围内的数字,我认为这就是 if-else 语句的用途。问题是我没有牢牢掌握语法,需要一些帮助来设置它。
这是他为项目逐字给出的说明,以及我现在拥有的代码。请记住,这是宝宝的第一个项目,所以请多多包涵。任何帮助表示赞赏。
说明:
1.) 您必须检查用户输入的数据是否符合要求的语法。如果没有,您的程序必须显示错误对话框并退出。仅当满足以下所有条件时,输入才有效:
输入的格式为 pay:cost,其中 pay 和 cost 都是整数。
pay 是美元的整数(100、200、300,...)。
工资小于或等于 900 美分。
pay 大于或等于 cost。
成本大于或等于 5,并且只能使用 25 美分、硬币和镍表示(即 5、10、15、... 95、100、105、... 890、895 或900)。
2.) 如果输入有效,那么您的程序必须显示一个消息对话框,显示提供正确找零所需的五分钱、一角硬币和四分之一硬币的最小数量,其中零钱 = 工资 - 成本。
3.) 当用户关闭输出消息对话框时,您的程序必须退出。
4.) 你只能导入 javax.swing.JOptionPane
代码:
import javax.swing.JOptionPane;
public class ChangeMakerWindow {
public static void main(String[] args) {
String amountString = JOptionPane.showInputDialog("Enter the amount you pay in cents,\n" +
"followed by the cost of the item in cents.\n" +
"The input must be in the form: pay:cost,\n" +
"where pay is a whole number (100, 200, 300, etc) to a maximum of 900,\n" +
"and cost is a multiple of five (5, 10, 15, etc) to a maximum of 900");
int pay, cost, change, originalChange, quarters, dimes, nickles;
change = pay - cost;
originalChange = change;
quarters = change / 25;
change = change % 25;
dimes = change / 10;
change = change %10;
nickles = change / 5;
JOptionPane.showMessageDialog(null, originalChange +
" cents in coins can be given as:\n" +
quarters + " quarters\n" +
dimes + " dimes\n" +
nickles + " nickles\n");
System.exit(0);
}
}
【问题讨论】:
-
我实施了一个基本解决方案来帮助您获得报酬和成本。剩下的就是你的基本逻辑了。
标签: java string if-statement substring