编写一个模拟超市购物程序。购物时,如果购物者要购买的商品在超市中有,则提示“购物者买到了某商品”;如果没有所需的商品,则提示“购物者所需某商品无货”。

要求

编写一个模拟超市购物程序。购物时,如果购物者要购买的商品在超市中有,则提示“购物者买到了某商品”;如果没有所需的商品,则提示“购物者所需某商品无货”。该程序涉及商品、超市、购物者三个类,具体要求如下:

(1)商品类Product,包含商品名属性和set及get方法;

(2)超市类Market,包含超市名属性、存放商品的Product类型数组属性,set、get超市名的方法,能够获取商品或者存入商品的get、set方法,卖货的方法sell(StringProductName),该方法的功能是查找超市是否有所要购买的商品,如果有,则返回商品名;如果没有则返回空;

(3)购物者类Person,包含购物者姓名,set、get姓名的方法;购物的方法shopping,要求把超市和商品作为参数,调用Market类的sell方法返回购物结果;

(4)定义测试类Shopping,创建电脑、电视机、沙发、茶几等商品;创建超市,并将商品存入超市中;

创建购物者对象,并进行购物;输入超市名和要购买的商品名,根据购物结果给出结论。

  1. 商品类Product
class Product{
    String nameProduct;
    void setName(String x){
        nameProduct=x;
    }
    String getName(){
        return nameProduct;
    }
}
  1. 超市类Market
class Market{
    String nameMarket;
    Product[] products=new Product[100];
    void setName(String x){
        nameMarket=x;
    }
    String getName(){
        return nameMarket;
    }
    void setProduct(Product[] x){
        products=x;
    }
    Product[] getProduct(){
        return products;
    }
    String sell(String nameProduct){
        int num=-1;
        for(int i=0;i<products.length;i++){
            if(products[i].getName().equals(nameProduct)){
                num=i;break;
            }
        }
        if(num!=-1){
            return products[num].getName();
        }
        else return null;
    }
}

3.购物者类Person

class Person{
    String namePerson;
    void setName(String x){
        namePerson=x;
    }
    String getName(){
        return namePerson;
    }
    boolean shopping(Market x,Product y) {
        for (int i = 0; i < x.products.length; i++) {
            if (y.equals(x.products[i])) {
                return true;
            }
        }
        return false;
    }
}

4.定义测试类Shopping

public class Main{
    public static void main(String[] args){
    Product[] p=new Product[100];
    p[0]=new Product();
    p[1]=new Product();
    p[2]=new Product();
    p[3]=new Product();
    p[0].setName("电脑");
    p[1].setName("电视机");
    p[2].setName("沙发");
    p[3].setName("茶几");
    Market[] m=new Market[100];
    m[0]=new Market();
    m[1]=new Market();
    m[0].setName("彬彬超市");
    m[1].setName("耳东超市");
    m[0].setProduct(p);
    m[1].setProduct(p);
    Person 小王=new Person();
    Scanner s=new Scanner(System.in);
    String market=s.next();
    String product=s.next();
    Market mar=new Market();
    Product pro=new Product();
    switch(market){
        case "彬彬超市": mar=m[0];break;
        case "耳东超市": mar=m[1];break;
    }
    switch(product){
        case "电脑": pro=p[0];break;
        case "电视机": pro=p[1];break;
        case "沙发": pro=p[2];break;
        case "茶几": pro=p[3];break;
    }
    boolean num=小王.shopping(mar,pro);
    if(num){
        System.out.println("小王买到了"+product);
    }
    else{
        System.out.println("小王所需商品无货");
    }
    }
}

注:这里商品为电脑,电视机,沙发,茶几,超市名称为彬彬超市和耳东超市,消费者的名称叫小王。

完整代码如下:

import java.util.*;
class Product{
    String nameProduct;
    void setName(String x){
        nameProduct=x;
    }
    String getName(){
        return nameProduct;
    }
}

class Market{
    String nameMarket;
    Product[] products=new Product[100];
    void setName(String x){
        nameMarket=x;
    }
    String getName(){
        return nameMarket;
    }
    void setProduct(Product[] x){
        products=x;
    }
    Product[] getProduct(){
        return products;
    }
    String sell(String nameProduct){
        int num=-1;
        for(int i=0;i<products.length;i++){
            if(products[i].getName().equals(nameProduct)){
                num=i;break;
            }
        }
        if(num!=-1){
            return products[num].getName();
        }
        else return null;
    }
}

class Person{
    String namePerson;
    void setName(String x){
        namePerson=x;
    }
    String getName(){
        return namePerson;
    }
    boolean shopping(Market x,Product y) {
        for (int i = 0; i < x.products.length; i++) {
            if (y.equals(x.products[i])) {
                return true;
            }
        }
        return false;
    }
}
public class Main{
    public static void main(String[] args){
    Product[] p=new Product[100];
    p[0]=new Product();
    p[1]=new Product();
    p[2]=new Product();
    p[3]=new Product();
    p[0].setName("电脑");
    p[1].setName("电视机");
    p[2].setName("沙发");
    p[3].setName("茶几");
    Market[] m=new Market[100];
    m[0]=new Market();
    m[1]=new Market();
    m[0].setName("彬彬超市");
    m[1].setName("耳东超市");
    m[0].setProduct(p);
    m[1].setProduct(p);
    Person 小王=new Person();
    Scanner s=new Scanner(System.in);
    String market=s.next();
    String product=s.next();
    Market mar=new Market();
    Product pro=new Product();
    switch(market){
        case "彬彬超市": mar=m[0];break;
        case "耳东超市": mar=m[1];break;
    }
    switch(product){
        case "电脑": pro=p[0];break;
        case "电视机": pro=p[1];break;
        case "沙发": pro=p[2];break;
        case "茶几": pro=p[3];break;
    }
    boolean num=小王.shopping(mar,pro);
    if(num){
        System.out.println("小王买到了"+product);
    }
    else{
        System.out.println("小王所需商品无货");
    }
    }
}