饮料自动贩卖机java
时间: 2023-04-05 16:01:41 浏览: 207
我可以回答这个问题。饮料自动贩卖机是一种自动售货机,它可以通过投币或刷卡等方式,让用户选择并购买自己喜欢的饮料。在Java中,可以使用面向对象的思想来设计和实现这个自动贩卖机。例如,可以定义一个Drink类来表示饮料,包括饮料的名称、价格、库存等信息。然后,可以定义一个VendingMachine类来表示自动贩卖机,包括自动贩卖机的状态、可选饮料列表、投币口、找零口等信息。最后,可以使用Java的GUI技术来实现自动贩卖机的界面,让用户可以方便地选择和购买自己喜欢的饮料。
相关问题
java饮料自动贩卖机
Java饮料自动贩卖机可以使用简单工厂模式来实现。简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,我们创建对象而不是通过直接实例化类来完成的。这样可以将对象的创建与使用分离,从而提高代码的可维护性和可扩展性。
具体实现步骤如下:
1. 定义一个饮料抽象类Drink,包含两个抽象方法sell和comein。
2. 定义具体饮料类,如Coffee、Tea等,继承Drink类并实现其抽象方法。
3. 定义一个饮料工厂类DrinkFactory,包含一个静态方法createDrink,根据传入的参数创建相应的饮料对象。
4. 在主函数中调用DrinkFactory的createDrink方法创建饮料对象,并调用其sell和comein方法实现售卖和进货功能。
以下是一个简单的Java饮料自动贩卖机的代码示例:
```java
// 饮料抽象类
public abstract class Drink {
public abstract void sell(String name, int num);
public abstract void comein(String name, int num);
}
// 咖啡类
public class Coffee extends Drink {
private String Coffeename;
private int num;//按升作单位
public Coffee() {
Coffeename = "咖啡";
num = 20;
}
@Override
public void sell(String name, int num) {
this.num -= num;
System.out.println("你的" + num + "ml" + Coffeename + "已出柜");
}
@Override
public void comein(String name, int num) {
this.num += num;
System.out.println(Coffeename + "总量为:" + this.num);
}
}
// 饮料工厂类
public class DrinkFactory {
public static Drink createDrink(String drinkType) {
Drink drink = null;
if (drinkType.equalsIgnoreCase("coffee")) {
drink = new Coffee();
} else if (drinkType.equalsIgnoreCase("tea")) {
drink = new Tea();
}
return drink;
}
}
// 主函数
public class Main {
public static void main(String[] args) {
Drink coffee = DrinkFactory.createDrink("coffee");
coffee.sell("咖啡", 10);
coffee.comein("咖啡", 5);
}
}
```
创建一个自动贩卖机 能够添加饮料 打印欢迎词 列出饮料信息 付钱挑饮料 交付饮料并从贩卖机中弹出(对应空位空出) 显示购买后找的钱 显示贩卖机余额 java完整代码
// 自动贩卖机类
public class VendingMachine {
private String[] drinks; // 饮料名称数组
private double[] prices; // 饮料价格数组
private int[] quantities; // 饮料数量数组
private double balance; // 贩卖机余额
// 构造方法,初始化饮料信息、数量和贩卖机余额
public VendingMachine(String[] drinks, double[] prices, int[] quantities, double balance) {
this.drinks = drinks;
this.prices = prices;
this.quantities = quantities;
this.balance = balance;
}
// 添加饮料
public void addDrink(String drink, double price, int quantity) {
String[] new_drinks = new String[drinks.length + 1];
double[] new_prices = new double[prices.length + 1];
int[] new_quantities = new int[quantities.length + 1];
for (int i = 0; i < drinks.length; i++) {
new_drinks[i] = drinks[i];
new_prices[i] = prices[i];
new_quantities[i] = quantities[i];
}
new_drinks[drinks.length] = drink;
new_prices[prices.length] = price;
new_quantities[quantities.length] = quantity;
drinks = new_drinks;
prices = new_prices;
quantities = new_quantities;
}
// 打印欢迎词和饮料信息
public void printInfo() {
System.out.println("欢迎使用自动贩卖机!");
System.out.println("本贩卖机提供以下饮料:");
for (int i = 0; i < drinks.length; i++) {
System.out.println((i + 1) + ". " + drinks[i] + " ¥" + prices[i] + " (还剩 " + quantities[i] + " 瓶)");
}
}
// 付钱挑饮料
public boolean buyDrink(int index, double money) {
if (index < 0 || index >= drinks.length) {
System.out.println("输入的饮料编号不正确!");
return false;
}
if (quantities[index] <= 0) {
System.out.println("抱歉,该饮料已售罄!");
return false;
}
if (money < prices[index]) {
System.out.println("您的金额不足!");
return false;
}
System.out.println("谢谢光临,您购买的是 " + drinks[index] + " !");
System.out.println("找您 " + (money - prices[index]) + " 元钱。");
quantities[index]--;
balance += prices[index];
return true;
}
// 显示贩卖机余额
public void showBalance() {
System.out.println("贩卖机余额为:¥" + balance);
}
// 主程序,测试自动贩卖机
public static void main(String[] args) {
// 初始化自动贩卖机
String[] drinks = {"可乐", "雪碧", "矿泉水"};
double[] prices = {3.0, 3.0, 2.0};
int[] quantities = {5, 5, 10};
double balance = 0.0;
VendingMachine vm = new VendingMachine(drinks, prices, quantities, balance);
// 添加新饮料
vm.addDrink("芬达", 3.5, 3);
// 打印欢迎词和饮料信息
vm.printInfo();
// 购买饮料
boolean success = vm.buyDrink(0, 5.0);
if (success) {
vm.showBalance();
}
// 再次打印欢迎词和饮料信息
vm.printInfo();
}
}
阅读全文