java 编写一个智能购物计算小程序,在一家商店有书本、铅笔、橡皮、可乐、零食五种商品,商品价格如下表所。假如吸小明带了20元,日必须电买一本书,剩余的钱还可以购买哪种商品,可以购买几件,购买完后又能剥余多少钱?
时间: 2024-09-14 18:14:37 浏览: 105
java选择结构练习-小明都可以买什么
编写这样一个 Java 程序,首先需要创建一个简单的类来表示商品,包括名称、价格和数量等属性。然后创建一个主函数,模拟小明的购物过程。下面是简单的步骤和代码示例:
```java
// 商品类
class Item {
String name;
double price;
// 构造函数和 getters/setters 省略...
public Item(String name, double price) {
this.name = name;
this.price = price;
}
}
public class ShoppingCart {
private Item book; // 书籍
private Item pencil;
private Item eraser;
private Item coke;
private Item snack;
// 初始化商品价格
static final double BOOK_PRICE = 15.0;
static final double PENCIL_PRICE = 1.0;
static final double ERASER_PRICE = 0.5;
static final double COKE_PRICE = 3.0;
static final double SNACK_PRICE = 2.0;
public void buyBookWith20() {
book = new Item("书", BOOK_PRICE);
if (20 - book.price >= 0) {
System.out.println("小明买了一本书,花费 " + book.price + " 元");
double remainingMoney = 20 - book.price;
printOtherItems(remainingMoney);
} else {
System.out.println("小明的钱不够买一本书");
}
}
private void printOtherItems(double money) {
if (money > 0) {
int pencilsToBuy = (int) Math.floor(money / PENCIL_PRICE);
System.out.println("还能买 " + pencilsToBuy + " 支铅笔,每支 " + PENCIL_PRICE + " 元");
if (money % PENCIL_PRICE == 0) { // 如果钱正好够买整数支铅笔
System.out.println("剩余 " + (money - pencilsToBuy * PENCIL_PRICE) + " 元");
} else {
money -= pencilsToBuy * PENCIL_PRICE;
System.out.println("还能买 " + (money / ERASER_PRICE) + " 块橡皮,每块 " + ERASER_PRICE + " 元");
System.out.println("剩余 " + (money - (pencilsToBuy + money / ERASER_PRICE) * ERASER_PRICE) + " 元");
}
// 计算其他商品是否能买
// 这里省略了 Coke 和 Snack 的计算,因为它们的价格已知,可以根据剩余金额直接判断
}
}
// 主函数入口
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCart();
cart.buyBookWith20();
}
}
```
这个程序会先让小明买一本书,如果还有足够的钱,会根据剩余金额计算能买多少铅笔和橡皮。注意这里的代码没有处理完全精确的货币分配,例如如果剩余的钱刚好只能买半块橡皮,则这里假设无法购买。
阅读全文