设计以下程序

编写程序实现软料购买:编写程序,接收用户输入的信息,选择购买的饮料。可供选择的饮料有:咖啡、矿泉水和可乐。其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。购买可乐时可以选择:买可口可乐还是百事可乐。

首先定义一个父类,并且定义为抽象类

public abstract class Drink{
    String name;//饮料的名字
    int capacity;//饮料的容量
    public abstract void info();//定义的一个抽象方法,后面其他的子类可以直接重写调用
}

建一个咖啡类

public class Coffee extends Drink {
	private String ingredients;//饮料的配料
	//set/get方法
	public void setIngredients(String ingredients) {
		this.ingredients = ingredients;
	}
	public String getIngredients() {
		return ingredients;
	}

	@Override
	public void info() {
		System.out.println("名称:"+name);
		System.out.println("容量:"+capacity+"ml");
		System.out.println("配料:"+ingredients);
	}
	
}

创建可乐类,并继承Drink,重写info()方法,并添加可乐的属性`

public class Coke extends Drink {
	//可乐的种类
	private String type;
	//使用封装,set/get方法
	public void setType(String type) {
		this.type = type;
	}
	public String getType() {
		return type;
	}
	
	@Override
	public void info() {
		System.out.println("您购买饮料的信息如下:");
		System.out.println("名称:"+name);
		System.out.println("种类:"+type);
		System.out.println("容量:"+capacity+"ml");
	}
	
}

创建Water类,继承Drink类,重写info()方法

public class Water extends Drink{

	public void info() {
		System.out.println("您要购买的信息如下:");
		System.out.println("名称:"+name);
		System.out.println("容量:"+capacity+"ml");
	}

}

创建测试类

public class DrinkTest {
    static Scanner in = new Scanner(System.in);
	static String jixu;
	public static void main(String[] args) {
		do {
		//提示语
		System.out.println("~~~~~~~~~~~~自动售水机欢迎您~~~~~~~~~~~~");
		System.out.println("请选择购买的饮料:1.咖啡  2.矿泉水  3.可乐 4.退出");
		int type = in.nextInt();
		if(type == 1) {
			System.out.println("请输入购买容量:");
			Coffee c = new Coffee();//创建咖啡对象
			c.capacity = in.nextInt();
			c.name = "咖啡";
			//使用switch提示用户加糖,加奶,还是什么都不加操作
			System.out.println("是否需要添加配料: 1.加糖  2.加奶 3.什么都不加");
			int num = in.nextInt();//定义变量用来接收用户输入的操作
			//将变量使用在switch中,执行不同的操作
			switch(num) {
				case 1:
					c.setIngredients("加糖");
					break;
				case 2:
					c.setIngredients("加奶");
					break;
				case 3:
					c.setIngredients("什么都不加");
					break;
					default :
						System.out.println("您输入的指令不正确");
						break;
			}
			System.out.println("您要购买的饮料信息如下:");
			c.info();
			//如果用户输入2的时候,执行的操作如下
		}else if(type == 2) {
			System.out.println("请输入购买容量:");
			Water w = new Water();
			w.name = "矿泉水";
			w.capacity = in.nextInt();
			w.info();
			//如果用户输入的是3,执行的操作
		}else if(type == 3) {
			System.out.println("请输入购买容量:");
			Coke c = new Coke();
			c.name = "可乐";
			c.capacity = in.nextInt();
			System.out.println("请选择可乐的种类: 1.可口可乐  2.百事可乐");
			//因为可乐分种类,所以定义num变量来接收用户输入的种类
			int num = in.nextInt();
			//根据种类的不同,执行不同的操作
			switch(num) {
				case 1 :
					//如果是可口可乐将赋值
					c.setType("可口可乐");
					break;
				case 2:
					c.setType("百事可乐");
					break;
					default:
						System.out.println("不好意思,没您想要的可乐");
						break;
			}
			c.info();
            //退出程序
		}else if(type == 4) {
			System.out.println("欢迎下次光临");
			break;
		}
		System.out.println("请问您是否继续购买: y or n"); 
            //使用jixu变量来接收用户输入的是否是y
		 jixu = in.next();
            //如果输入的是y执行,否则执行
		 if(jixu.equals("y")) {
			 System.out.println("请继续操作......");
		 }else {
			 System.out.println("谢谢使用.....");
		 }
		
	}while("y".equals(jixu));
}
//使用变量jixu来接收用户输入的是否是y
		 jixu = in.next();
            //如果输入的是y执行,否则执行
		 if(jixu.equals("y")) {
			 System.out.println("请继续操作......");
		 }else {
			 System.out.println("谢谢使用.....");
		 }
	}while("y".equals(jixu));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值