超市购物程序设计

一、任务介绍

1.任务描述

去超市购物说人们日常生活的重要事情之一。在超市中有很多日常生活的用法,如水果、蔬菜、洗衣机、电冰箱等。人们只能买到超市中的已有商品,如果所需要的商品在超市中没有或已经卖完了,那么顾客将不能再超市买到商品。

2.任务要求

使用所学知识,编写一个超市购物程序,实现超市购物功能。购物时,如果顾客所要买的商品在超市中有,则提示购物者买到了某商品;如果超市中没有顾客所要买的商品,则提示顾客在超市中什么也没买到。

3.运行结果

超市购物程序设计

超市购物程序设计

二、实现思路

本程序共可分为三个类:商品、超市和顾客。

商品具有商品名称的属性。

超市不仅有商品名称,还库存了不同的商品,因此,还包括库存这一属性(即由不同商品组成的数组)。超市有卖货行为,即判断顾客所需要的商品是否在库存内,如果在,说明顾客可以购买到商品,返回商品;如果不在,说明顾客不能买到商品,返回null。

顾客有名字属性,还有购物行为。顾客可以决定要去的超市和要购买的商品。

顾客的购物行为和超市的卖货行为类似。

超市购物程序设计

三、具体程序

package setclass;
public class Goods{
    private String name;
    public Goods(String name){
        this.name=name;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
package setclass;
//超市包括超市名称、超市商品的库存量(由商品组成的数组),卖货方法(查看商品是否在库存中)
public class Supermarket {
    private String name;
    private Goods[] store;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Goods[] getStore() {
        return store;
    }

    public void setStore(Goods[] store) {
        this.store = store;
    }
    //卖货行为
    public Goods sellGoods(String name){
        for(int i=0;i<store.length;i++){
            if(store[i].getName()==name){
                return store[i];//商品在该超市的库存中,返回商品
            }
        }
        return null;//商品不在该超市的库存中,返回null.
    }
}
package setclass;

//购物者包括购物者的名字,购物方法(要买的商品,指定的超市)
public class Consumer {
    private String name;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public Goods shopping(Supermarket s,String goodsName){
        return s.sellGoods(goodsName);
    }


}

测试代码为

package setclass;
public class Text {
    public static void main(String[] args){
      //创建商品
        Goods g1=new Goods("油饼");
        Goods g2=new Goods("豆浆机");
        Goods g3=new Goods("黄豆");

        Goods g4=new Goods("自然堂");
        Goods g5=new Goods("洁柔");
      //创建超市
        Supermarket m=new Supermarket();
        m.setName("华润万家");
        m.setStore(new Goods[]{g4,g5});

        Supermarket s=new Supermarket();
        s.setName("家乐福");
        s.setStore(new Goods[]{g1,g2,g3});//给s超市的库存赋值。
        //顾客
        Consumer c=new Consumer();
        c.setName("小寒");
        //购物行为
        /*Goods go1=c.shopping(m,"豆浆机");
        if(go1!=null) {
          System.out.println(c.getName() + "在" + m.getName() + "买到了"+go1.getName()+"。");
         }else {
          System.out.println(c.getName() + "在" + m.getName() + ",什么也没有买到。");
         }*/

        Goods go2=c.shopping(s,"豆浆机");
        if(go2!=null) {
            System.out.println(c.getName() + "在" + s.getName() + "买到了"+go2.getName());
        }else {
            System.out.println(c.getName() + "在" + s.getName() + ",什么也没有买到。");
        }
     }

}