通过JavaSE的选择、循环、方法的重写、有参构造等知识点模拟实现自动贩卖机的功能
User,用户操作端
import java.util.Scanner;
public class User {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
shopping shopping = new shopping();
System.out.println("欢迎使用自动贩卖机");
System.out.println("是否进行购物:1、是\t2、否");
int select = sc.nextInt();
if (select == 1){
shopping.show(1);
System.out.println("请选择相应序号");
int choose = sc.nextInt();
while (choose >= 5){
if (choose == 5){
System.out.println("库存充足哟。。。");
System.out.println("请再次选择相应序号");
}else {
System.out.println("没有此商品,请重新选择");
}
choose = sc.nextInt();
}
System.out.println("请输入购买数量");
int num = sc.nextInt();
while (true){
shopping.shop(choose,num);
System.out.println();
shopping.show();
System.out.println("如继续购物,请再次选择相应序号");
choose = sc.nextInt();
while (choose >= 6){
if (choose == 6){
shopping.shop(6);
System.out.println("请再次选择相应序号");
}else {
System.out.println("没有此商品,请重新选择");
}
choose = sc.nextInt();
}
if(choose == 5){
System.out.println("欢迎下次光临!");
break;
}
System.out.println("请输入购买数量");
num = sc.nextInt();
}
}else {
System.out.println("欢迎下次光临!");
}
}
}
shopping,数据处理
public class shopping {
goods cola = new goods("可口可乐",3,10);
goods noodles = new goods("红烧牛肉面",5.5,10);
goods ham = new goods("火腿肠",2.5,10);
goods spicy = new goods("卫龙",0.5,100);
public void show(){
System.out.println("现还有以下商品供您选择:");
System.out.println("1、"+cola.goodsname+"\t价格:"+cola.price+"\t剩余:"+cola.number);
System.out.println("2、"+noodles.goodsname+"\t价格:"+noodles.price+"\t剩余:"+noodles.number);
System.out.println("3、"+ham.goodsname+"\t价格:"+ham.price+"\t剩余:"+ham.number);
System.out.println("4、"+spicy.goodsname+"\t价格:"+spicy.price+"\t剩余:"+spicy.number);
System.out.println("5、退出购物");
System.out.println("6、一键补货");
}
public void show(int i){
System.out.println("现还有以下商品供您选择:");
System.out.println("1、"+cola.goodsname+"\t价格:"+cola.price+"\t剩余:"+cola.number);
System.out.println("2、"+noodles.goodsname+"\t价格:"+noodles.price+"\t剩余:"+noodles.number);
System.out.println("3、"+ham.goodsname+"\t价格:"+ham.price+"\t剩余:"+ham.number);
System.out.println("4、"+spicy.goodsname+"\t价格:"+spicy.price+"\t剩余:"+spicy.number);
System.out.println("5、一键补货");
}
public void shop(int choose,int num){
switch (choose){
case 1:
if(cola.number == 0){
System.out.println("已售罄,等待补货!");
}else if (num>cola.number){
System.out.println("库存不足,请重新选择");
}else {
cola.number = cola.number - num;
success();
}
break;
case 2:
if(noodles.number == 0){
System.out.println("已售罄,等待补货!");
}else if (num>noodles.number){
System.out.println("库存不足,请重新选择");
}else {
noodles.number = noodles.number - num;
success();
}
break;
case 3:
if(ham.number == 0){
System.out.println("已售罄,等待补货!");
}else if (num>ham.number){
System.out.println("库存不足,请重新选择");
}else {
ham.number = ham.number - num;
success();
}
break;
case 4:
if(spicy.number == 0){
System.out.println("已售罄,等待补货!");
}else if (num>spicy.number){
System.out.println("库存不足,请重新选择");
}else {
spicy.number = spicy.number - num;
success();
}
break;
case 5:
System.out.println("欢迎下次光临!");
break;
case 6:
System.out.println("补货ing......");
this.cola.number = 10;
this.noodles.number = 10;
this.ham.number = 10;
this.spicy.number = 100;
break;
default:
System.out.println("没有此商品,请重新选择");
break;
}
}
public void shop(int choose){
switch (choose){
case 5:
System.out.println("欢迎下次光临!");
break;
case 6:
System.out.println("补货ing......");
System.out.println("补货完毕");
System.out.println();
this.cola.number = 10;
this.noodles.number = 10;
this.ham.number = 10;
this.spicy.number = 100;
break;
default:
System.out.println("没有此商品,请重新选择");
break;
}
}
public void success(){
System.out.println("扫码支付中。。。");
System.out.println("正在处理。。。");
System.out.println("购买成功!");
}
}
goods,构造
public class goods {
String goodsname; //商品名
double price; //价格
int number; //剩余数量
public goods() {
}
public goods(String goodsname, double price, int number) {
this.goodsname = goodsname;
this.price = price;
this.number = number;
}
}
效果如下: