标签:Drink drink 饮料 drinkName num 自动售货机 简单 Coin public
简单饮料售货机
实现功能:
设计一个处理单价为5角钱的饮料自动售货机:规格说明
若投入一角或一元的硬币,选择饮料,输出饮料。若无零钱则显示没有零钱,退回硬币,若有零钱,找回零钱并送出饮料,
设计分析:
使用面对对象的方法对自动售货机处理的逻辑进行具体实现,首先使用抽象的思维规划出有硬币Coin,饮料Drink,自动售货机的类,硬币存在不同价值的硬币对象,饮料类有类型属性,可以生成不同类型的饮料对象,自动售货机类,有零钱个数属性,有出售饮料的功能,和内部的找钱逻辑,故有公有的sellDrink()方法出售饮料,私有的returnCharge方法用与找钱。
package com.company;
import java.util.Scanner;
import java.util.concurrent.Callable;
public class AutoMain {
public static void main(String[] args) {
com.company.AutoBooth autoBooth = new com.company.AutoBooth(80);
System.out.println("请选择饮料:");
Scanner scanner = new Scanner(System.in);
String drinks=scanner.nextLine();
// Drink drink=new Drink("drinks");
Drink drink = new Drink();
drink.setDrinkName(drinks);
System.out.println(drink.getDrinkName());
Coin coin = new Coin(10);
autoBooth.sellDrink(drink,coin);
// int num=autoBooth.getNum();
System.out.println( "您要的饮料为:"+autoBooth.getDrink().getDrinkName());
System.out.println("投币金额为:"+coin.getCoinValue()+"饮料名:"+autoBooth.getDrink().getDrinkName()+" 找零"+autoBooth.getReturnCoin().getCoinValue());
}
}
package com.company;
public class Coin {
private int coinValue;
public Coin() {
}
public Coin(int coinValue) {
this.coinValue = coinValue;
}
public int getCoinValue() {
return coinValue;
}
public void setCoinValue(int coinValue) {
this.coinValue = coinValue;
}
}
package com.company;
public class Drink {
private String drinkName;
private double drinkPrice;
public Drink() {
}
public Drink(String drinkName) {
this.drinkName = drinkName;
}
public Drink(String drinkName, double drinkPrice) {
this.drinkName = drinkName;
this.drinkPrice = drinkPrice;
}
public String getDrinkName() {
return drinkName;
}
public void setDrinkName(String drinkName) {
this.drinkName = drinkName;
}
public double getDrinkPrice() {
return drinkPrice;
}
public void setDrinkPrice(double drinkPrice) {
this.drinkPrice = drinkPrice;
}
}
package com.company;
public class AutoBooth {
private Drink drink;
private Coin ReturnCoin;
private int num;
public AutoBooth() {
}
public AutoBooth(int num) {
this.num = num;
}
public AutoBooth(Drink drink, Coin coin, int num) {
this.drink = drink;
this.ReturnCoin = coin;
this.num = num;
}
public Drink getDrink() {
return drink;
}
public void setDrink(Drink drink) {
this.drink = drink;
}
public Coin getReturnCoin() {
return ReturnCoin;
}
public void setReturnCoin(Coin coin) {
this.ReturnCoin = coin;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public void sellDrink(Drink drink,Coin coin)
{
if(coin.getCoinValue()==5)
{
this.drink=drink;
this.ReturnCoin=new Coin(0);
this.num++;
}
if(coin.getCoinValue()==10)
{
if(this.num>0)
{
this.ReturnCoin=new Coin(5);
this.num--;
this.drink=drink;
}
else
{
this.ReturnCoin=new Coin(10);
this.drink=new Drink("橙汁");
}
}
}
}
实现效果:
新手小白,欢迎各位大神指导建议
标签:Drink,drink,饮料,drinkName,num,自动售货机,简单,Coin,public 来源: https://blog.csdn.net/xiaohutongxueya/article/details/121617500
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。