自动贩卖机完整的java代码
时间: 2023-06-13 19:07:32 浏览: 81
这是一个简单的自动贩卖机Java代码示例,包含了选择商品、投币、退款、购买商品等功能。
```java
import java.util.Scanner;
public class VendingMachine {
// 商品清单
private static String[] products = {"可乐", "雪碧", "矿泉水", "卡布奇诺", "拿铁咖啡"};
// 商品价格清单
private static double[] prices = {3.0, 3.0, 2.5, 8.0, 10.0};
// 投币金额清单
private static double[] coinValues = {0.1, 0.5, 1.0, 5.0, 10.0};
// 商品数量清单
private static int[] quantities = {5, 5, 5, 5, 5};
// 已投币金额
private static double balance = 0.0;
// 用户选择的商品编号
private static int choice = -1;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择要购买的商品:");
for (int i = 0; i < products.length; i++) {
System.out.println((i + 1) + ". " + products[i] + "(" + prices[i] + "元)" + ",数量:" + quantities[i]);
}
choice = scanner.nextInt();
if (choice < 1 || choice > products.length) {
System.out.println("无效的选择,请重新选择!");
continue;
}
if (quantities[choice - 1] == 0) {
System.out.println("商品已售罄,请重新选择!");
continue;
}
System.out.println("您选择了:" + products[choice - 1]);
break;
}
while (true) {
System.out.println("请投币(可投币种类:0.1元、0.5元、1元、5元、10元):");
double coinValue = scanner.nextDouble();
if (!isValidCoinValue(coinValue)) {
System.out.println("无效的投币金额!");
continue;
}
balance += coinValue;
System.out.println("已投币金额:" + balance + "元");
if (balance >= prices[choice - 1]) {
break;
}
}
double change = balance - prices[choice - 1];
System.out.println("购买成功!找零:" + change + "元");
quantities[choice - 1]--;
}
private static boolean isValidCoinValue(double coinValue) {
for (double value : coinValues) {
if (value == coinValue) {
return true;
}
}
return false;
}
}
```
该示例中,自动贩卖机提供了以下功能:
1. 显示商品清单,并允许用户选择商品。
2. 显示投币金额清单,并允许用户投币。
3. 检查投币金额是否有效,并将投币金额加入已投币金额。
4. 检查已投币金额是否足够购买所选商品,如果足够则完成购买并找零。
5. 更新商品数量。