自助饮品消费系统-Java代码实现
需求分析
代码实现:
package com.zxf;
//父类:饮料类
public class Beverages {
private String size;
private int num;
private String note;
private String ice;
private String name;
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
private int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getIce() {
return ice;
}
public void setIce(String ice) {
this.ice = ice;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public void showInfo() {
}
public void showInfo2() {
}
public void money(int i) {
}
}
package com.zxf;
//可乐类
public class Coke extends Beverages {
public static final String name = "可乐";
private static final int price_mid = 5;
private static final int price_big = 7;
private static final int price_extraBig = 9;
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("请录入你需要的可乐的信息(备注可口可乐还是百事可乐,是否加冰):");
}
public void money(int i) {
switch (i) {
case 1:
setPrice(price_extraBig);
break;
case 2:
setPrice(price_big);
break;
default:
setPrice(price_mid);
break;
}
}
public void showInfo2() {
System.out.println("订单消息:您购买了"+name+":"+getNote()+",购买的"+getSize()+",购买数量"+getNum()+"杯,价钱:"+getPrice()+"*"+getNum()+"="+getPrice()*getNum());
}
}
package com.zxf;
//咖啡类
public class Coffee extends Beverages {
public static final String name = "咖啡";
private static final int price_mid = 11;
private static final int price_big = 15;
private static final int price_extraBig = 20;
public static int getPrice_mid() {
return price_mid;
}
public static int getPrice_big() {
return price_big;
}
public static int getPrice_extraBig() {
return price_extraBig;
}
@Override
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("请录入你需要的咖啡的信息(备注加奶、加冰、加糖情况)");
}
public void money(int i) {
switch (i) {
case 1:
setPrice(price_extraBig);
break;
case 2:
setPrice(price_big);
break;
default:
setPrice(price_mid);
break;
}
}
public void showInfo2() {
System.out.println("订单消息:您购买了"+name+":"+getNote()+",购买的"+getSize()+",购买数量"+getNum()+"杯,价钱:"+getPrice()+"*"+getNum()+"="+getPrice()*getNum());
}
}
package com.zxf;
//奶茶类
public class TeaMike extends Beverages {
public static final String name = "奶茶";
private static final int price_mid = 8;
private static final int price_big = 12;
private static final int price_extraBig = 15;
@Override
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("请录入你需要的奶茶的信息(备注加红豆、椰果、布丁、珍珠)");
}
public void money(int i) {
switch (i) {
case 1:
setPrice(price_extraBig);
break;
case 2:
setPrice(price_big);
break;
default:
setPrice(price_mid);
break;
}
}
public void showInfo2() {
System.out.println("订单消息:您购买了"+name+":"+getNote()+",购买的"+getSize()+",购买数量"+getNum()+"杯,价钱:"+getPrice()+"*"+getNum()+"="+getPrice()*getNum());
}
}
package com.zxf;
//饮料工厂
public class Drink {
//提供饮料
public static Beverages getBeverages(int i){
Beverages beverages = null ;
if(i==1){
beverages = new Coke();
}
if(i==2){
beverages = new Coffee();
}
if (i==3){
beverages = new TeaMike();
}
return beverages;
}
}
package com.zxf;
//购买系统
import java.util.Scanner;
public class Buy{
public static void main(String[] args) {
System.out.println("请录入你要购买的饮品:1.可乐 2.咖啡 3.奶茶");
/*
* 输入要购买的饮品序号
*/
Scanner sc = new Scanner(System.in);
Beverages beverages = Drink.getBeverages(sc.nextInt());
beverages.showInfo();
/*
* 输入备注
*/
beverages.setNote(sc.next());
/*
* 输入饮料大小
*/
System.out.println("选择: 1.超大杯 2.大杯 3.中杯");
switch (sc.nextInt()){
case 1:
beverages.setSize("超大杯");
beverages.money(1);
break;
case 2:
beverages.setSize("大杯");
beverages.money(2);
break;
default:
beverages.setSize("中杯");
beverages.money(3);
break;
}
/*
* 输入购买数量
*/
System.out.println("请输入购买数量");
beverages.setNum(sc.nextInt());
//输出订单消息
beverages.showInfo2();
}
}
总结:
我的思路是:先从购买系统入手,一步一步完善各种饮料类的方法和属性,接着提取出简单的饮料工厂