超市购物程序设计
一、任务介绍
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() + ",什么也没有买到。");
}
}
}